SpyBara
Go Premium

Documentation 2026-10-27 22:59 UTC to 2026-10-28 23:57 UTC

71 files changed +2,756 −2,499. 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

106 106 

107macOS Terminal non agisce sui marcatori e Claude Code non li emette in WezTerm. In quei terminali, cerca invece nello scrollback l'etichetta `you:`.107macOS Terminal non agisce sui marcatori e Claude Code non li emette in WezTerm. In quei terminali, cerca invece nello scrollback l'etichetta `you:`.

108 108 

109## Rispondete a menu e prompt109## Rispondere a menu e prompt

110 110 

111In modalità lettore di schermo, i menu che normalmente navighereste con i tasti freccia, inclusi i prompt di permesso, diventano elenchi numerati. Claude Code annuncia ogni opzione come una riga numerata, quindi un prompt `Select with numbers` che nomina l'intervallo valido. Digitate il numero dell'opzione che desiderate e premete Invio.111In modalità screen reader, i menu in cui normalmente navighi con i tasti freccia, incluse le richieste di permesso, diventano elenchi numerati. Claude Code annuncia ogni opzione come una riga numerata, seguita da un prompt `Select with numbers` che indica l'intervallo valido. Digita il numero dell'opzione che desideri e premi Enter.

112 112 

113* Premete Escape per annullare un menu il cui prompt termina con `or Escape to cancel`.113* Premi Escape per annullare un menu il cui prompt termina con `or Escape to cancel`.

114* Se digitate un numero che non è nell'elenco, Claude Code annuncia l'intervallo valido e vi consente di riprovare.114* Se digiti un numero che non è nell'elenco, Claude Code annuncia l'intervallo valido e ti permette di riprovare.

115 115 

116Il selettore [`/effort`](https://code.claude.com/docs/it/model-config#adjust-effort-level), che è un cursore al di fuori della modalità lettore di schermo, diventa lo stesso tipo di elenco numerato.116Il selettore [`/effort`](https://code.claude.com/docs/it/model-config#adjust-effort-level), che al di fuori della modalità screen reader è uno slider, diventa lo stesso tipo di elenco numerato.

117 117 

118I prompt sì-o-no chiedono una risposta digitata invece di un menu a due opzioni. Rispondete con `y` o `n` e premete Invio. Funzionano anche `yes` e `no`.118I prompt sì-o-no chiedono una risposta digitata invece di un menu a due opzioni. Rispondi `y` o `n` e premi Enter. Funzionano anche `yes` e `no`.

119 119 

120## Ascoltate quando Claude Code ha bisogno di voi120## Ascoltate quando Claude Code ha bisogno di voi

121 121 

Details

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

222. **Valutare e rispondere.** Claude valuta lo stato attuale e determina come procedere. Può rispondere con testo, richiedere una o più chiamate di strumenti, o entrambi. L'SDK produce uno o più oggetti [`AssistantMessage`](#message-types), uno per ogni blocco di contenuto, come un blocco di testo o una richiesta di chiamata di strumento.222. **Valutare e rispondere.** Claude valuta lo stato attuale e determina come procedere. Può rispondere con testo, richiedere una o più chiamate di strumenti, o entrambi. L'SDK produce uno o più oggetti [`AssistantMessage`](#message-types), uno per ogni blocco di contenuto, come un blocco di testo o una richiesta di chiamata di strumento.

233. **Eseguire gli strumenti.** L'SDK esegue ogni strumento richiesto e raccoglie i risultati. Ogni set di risultati degli strumenti viene restituito a Claude per la decisione successiva. Potete utilizzare [hooks](https://code.claude.com/docs/it/agent-sdk/hooks.md) per intercettare, modificare o bloccare le chiamate di strumenti prima che vengano eseguite.233. **Eseguire gli strumenti.** L'SDK esegue ogni strumento richiesto e raccoglie i risultati. Ogni set di risultati degli strumenti viene restituito a Claude per la decisione successiva. Potete utilizzare [hooks](https://code.claude.com/docs/it/agent-sdk/hooks.md) per intercettare, modificare o bloccare le chiamate di strumenti prima che vengano eseguite.

244. **Ripetere.** I passaggi 2 e 3 si ripetono come un ciclo. Ogni ciclo completo è un turno. Claude continua a chiamare gli strumenti ed elaborare i risultati fino a quando non produce una risposta senza chiamate di strumenti.244. **Ripetere.** I passaggi 2 e 3 si ripetono come un ciclo. Claude continua a chiamare gli strumenti ed elaborare i risultati fino a quando non produce una risposta senza chiamate agli strumenti.

255. **Restituire il risultato.** L'SDK produce un [`AssistantMessage`](#message-types) finale con la risposta di testo (senza chiamate di strumenti), seguito da un [`ResultMessage`](#message-types) con il testo finale, l'utilizzo dei token, il costo e l'ID della sessione.255. **Restituire il risultato.** L'SDK produce un [`AssistantMessage`](#message-types) finale con la risposta di testo (senza chiamate di strumenti), seguito da un [`ResultMessage`](#message-types) con il testo finale, l'utilizzo dei token, il costo e l'ID della sessione.

26 26 

27Una domanda rapida ("quali file ci sono qui?") potrebbe richiedere uno o due turni di chiamata di `Glob` e risposta con i risultati. Un'attività complessa ("refactorizza il modulo di autenticazione e aggiorna i test") può concatenare dozzine di chiamate di strumenti su molti turni, leggendo file, modificando codice ed eseguendo test, con Claude che adatta il suo approccio in base a ogni risultato.27Una domanda rapida come "quali file ci sono qui?" potrebbe richiedere due o tre [turni](#turns-and-messages): uno o due che chiamano `Glob`, poi uno che risponde con i risultati. Un'attività complessa come "refactorizza il modulo di autenticazione e aggiorna i test" può concatenare dozzine di chiamate agli strumenti su molti turni, con Claude che si adatta dopo ogni risultato.

28 28 

29## Turni e messaggi29## Turni e messaggi

30 30 

31Un turno è un viaggio di andata e ritorno all'interno del ciclo: Claude produce output che include chiamate di strumenti, l'SDK esegue quegli strumenti e i risultati vengono restituiti a Claude automaticamente. Questo accade senza cedere il controllo al vostro codice. I turni continuano fino a quando Claude non produce output senza chiamate di strumenti, a quel punto il ciclo termina e il risultato finale viene consegnato.31Un turno è un passaggio all'interno del ciclo: Claude produce output e, se questo include chiamate agli strumenti, l'SDK le esegue e i risultati vengono restituiti a Claude automaticamente. Questo accade senza cedere il controllo al tuo codice. I turni continuano fino a quando Claude non produce output senza chiamate agli strumenti, a quel punto il ciclo termina e il risultato finale viene consegnato.

32 32 

33Considerate come potrebbe apparire una sessione completa per il prompt "Correggi i test falliti in auth.ts".33Considerate come potrebbe apparire una sessione completa per il prompt "Correggi i test falliti in auth.ts".

34 34 

Details

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

1275| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Aggiornamenti dei permessi da applicare |1275| `updated_permissions` | `list[PermissionUpdate] \| None` | `None` | Aggiornamenti dei permessi da applicare |

1276 1276 

1277Se restituisci `PermissionResultAllow` con più di 4.096 elementi in `updated_permissions`, Claude Code considera il risultato non valido e nega la chiamata allo strumento. Ogni [`PermissionUpdate`](#permissionupdate) conta come un elemento, e così anche ogni voce del suo elenco `rules` o `directories`. Il messaggio di diniego termina con `updatedPermissions may hold at most 4096 updates, rules and directories in all.` Per evitare il diniego, restituisci al massimo 4.096 elementi.

1278 

1277### `PermissionResultDeny`1279### `PermissionResultDeny`

1278 1280 

1279Risultato che indica che la chiamata allo strumento deve essere negata.1281Risultato che indica che la chiamata allo strumento deve essere negata.

Details

1405 };1405 };

1406```1406```

1407 1407 

1408Se restituisci `allow` con più di 4.096 elementi in `updatedPermissions`, Claude Code considera il risultato non valido e nega la chiamata allo strumento. Ogni aggiornamento conta come un elemento, così come ogni voce del suo elenco `rules` o `directories`. Il messaggio di rifiuto termina con `updatedPermissions may hold at most 4096 updates, rules and directories in all`. Perché la chiamata venga consentita, restituisci 4.096 elementi o meno.1408Se restituisci `allow` con più di 4.096 elementi in `updatedPermissions`, Claude Code considera il risultato non valido e nega la chiamata allo strumento. Ogni aggiornamento conta come un elemento, e lo stesso vale per ogni voce del suo elenco `rules` o `directories`. Il messaggio di negazione termina con `updatedPermissions may hold at most 4096 updates, rules and directories in all.` Per far consentire la chiamata, restituisci 4.096 elementi o meno.

1409 1409 

1410### `ToolConfig`1410### `ToolConfig`

1411 1411 


4706 humanSchedule: string;4706 humanSchedule: string;

4707 recurring: boolean;4707 recurring: boolean;

4708 durable?: boolean; // true quando persistito in .claude/scheduled_tasks.json; false quando solo sessione4708 durable?: boolean; // true quando persistito in .claude/scheduled_tasks.json; false quando solo sessione

4709 nextFireAt?: number;

4709};4710};

4710```4711```

4711 4712 

4712Restituisce l'ID del lavoro e una descrizione leggibile della pianificazione.4713Restituisce l'ID del lavoro, una descrizione leggibile della pianificazione e l'orario della prossima esecuzione. `nextFireAt` lo indica in millisecondi di epoca, con il [jitter](https://code.claude.com/docs/it/scheduled-tasks.md#jitter) già applicato, quindi corrisponde al momento in cui il lavoro è impostato per essere eseguito. Il campo richiede TypeScript Agent SDK v0.3.299 o successivo e Claude Code v2.1.299 o successivo.

4713 4714 

4714### CronDelete4715### CronDelete

4715 4716 


4736 prompt: string;4737 prompt: string;

4737 recurring?: boolean;4738 recurring?: boolean;

4738 durable?: boolean;4739 durable?: boolean;

4740 nextFireAt?: number;

4739 }[];4741 }[];

4740};4742};

4741```4743```

4742 4744 

4743Restituisce i lavori cron pianificati: lavori durevoli da `.claude/scheduled_tasks.json` e lavori solo sessione dalla sessione corrente. Un lavoro solo sessione porta `durable: false`; i lavori letti dal disco omettono il campo.4745Restituisce i lavori cron pianificati: lavori durevoli da `.claude/scheduled_tasks.json` e lavori solo sessione dalla sessione corrente. Un lavoro solo sessione porta `durable: false`; i lavori letti dal disco omettono il campo.

4744 4746 

4747`nextFireAt` è l'orario della prossima esecuzione del lavoro in millisecondi di epoca, [jitter](https://code.claude.com/docs/it/scheduled-tasks.md#jitter) incluso. Nessun valore è precedente alla chiamata `CronList`: un lavoro il cui orario [è passato senza un'esecuzione](https://code.claude.com/docs/it/scheduled-tasks.md#how-scheduled-tasks-run) riporta l'orario della chiamata. Il campo richiede TypeScript Agent SDK v0.3.299 o successivo e Claude Code v2.1.299 o successivo.

4748 

4745### ScheduleWakeup4749### ScheduleWakeup

4746 4750 

4747**Nome dello strumento:** `ScheduleWakeup`4751**Nome dello strumento:** `ScheduleWakeup`


5459};5463};

5460```5464```

5461 5465 

5466La promise di `setMcpServers()` si risolve dopo che i server stdio, HTTP e SSE appena aggiunti si sono connessi o non sono riusciti a farlo, quindi gli strumenti dei server che si sono connessi sono disponibili al turno successivo.

5467 

5462Quando chiami `setMcpServers()`, Claude Code applica queste regole:5468Quando chiami `setMcpServers()`, Claude Code applica queste regole:

5463 5469 

5464* **Server non indicati dalla chiamata**: al di fuori di una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md), Claude Code disconnette i server aggiunti da una precedente chiamata `setMcpServers()` e i server SDK in-process, e li elenca in `removed`. Gli altri server continuano a funzionare e non sono elencati in `removed`, tra cui i server stdio, HTTP e SSE dell'opzione [`mcpServers`](#options), i server dei file di impostazioni e i server forniti dai plugin.5470* **Server non indicati dalla chiamata**: al di fuori di una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md), Claude Code disconnette i server aggiunti da una precedente chiamata `setMcpServers()` e i server SDK in-process, e li elenca in `removed`. Gli altri server continuano a funzionare e non sono elencati in `removed`, tra cui i server stdio, HTTP e SSE dell'opzione [`mcpServers`](#options), i server dei file di impostazioni e i server forniti dai plugin.


5468* **Server integrati avviati dalla CLI all'avvio**: se la chiamata ne indica uno, Claude Code scarta quella voce e la riporta in `errors`.5474* **Server integrati avviati dalla CLI all'avvio**: se la chiamata ne indica uno, Claude Code scarta quella voce e la riporta in `errors`.

5469* **Server stdio, HTTP o SSE che condividono il nome con un server di un ambito di installazione MCP come `.mcp.json`**: con quel nome la sessione usa gli strumenti del tuo server anziché quelli del [server dell'ambito di installazione](https://code.claude.com/docs/it/mcp.md#mcp-installation-scopes). Prima di Claude Code v2.1.305, Claude Code poteva disconnettere il tuo server e connettere il server dell'ambito di installazione quando la tua app [ricaricava i plugin](#query-object).5475* **Server stdio, HTTP o SSE che condividono il nome con un server di un ambito di installazione MCP come `.mcp.json`**: con quel nome la sessione usa gli strumenti del tuo server anziché quelli del [server dell'ambito di installazione](https://code.claude.com/docs/it/mcp.md#mcp-installation-scopes). Prima di Claude Code v2.1.305, Claude Code poteva disconnettere il tuo server e connettere il server dell'ambito di installazione quando la tua app [ricaricava i plugin](#query-object).

5470 5476 

5471La promise si risolve dopo che i server stdio, HTTP e SSE appena aggiunti si sono connessi o non sono riusciti a farlo, quindi gli strumenti dei server che si sono connessi sono disponibili al turno successivo.

5472 

5473`added` elenca i server che Claude Code ha aggiunto o sostituito, indipendentemente dal fatto che si siano connessi. Un server che non è riuscito a connettersi compare sia in `added` sia in `errors`, con il testo dell'errore in `errors` e una riga `failed` in [`mcpServerStatus()`](#methods). Prima di Claude Code v2.1.257, un server il cui tentativo di connessione generava un'eccezione veniva riportato solo in `errors`.5477`added` elenca i server che Claude Code ha aggiunto o sostituito, indipendentemente dal fatto che si siano connessi. Un server che non è riuscito a connettersi compare sia in `added` sia in `errors`, con il testo dell'errore in `errors` e una riga `failed` in [`mcpServerStatus()`](#methods). Prima di Claude Code v2.1.257, un server il cui tentativo di connessione generava un'eccezione veniva riportato solo in `errors`.

5474 5478 

5479Un valore di `errors` che inizia con `Blocked by enterprise` indica che una policy ha rifiutato il server, non che la connessione non è riuscita:

5480 

5481* `Blocked by enterprise policy (allowedMcpServers/deniedMcpServers)`: il server non è in `added`. Una voce di [`deniedMcpServers`](https://code.claude.com/docs/it/managed-mcp#policy-based-control-with-allowlists-and-denylists) corrisponde al server, oppure è impostato un elenco `allowedMcpServers` che lo omette. Se quell'elenco si trova in un file di impostazioni che carichi tramite [`settingSources`](#options), modifica il file. Se si trova nelle impostazioni gestite, chiedi ai tuoi amministratori di modificarlo.

5482* `Blocked by enterprise managed policy`: il server è in `added`, con una riga `failed` in `mcpServerStatus()`. Chiedi a un amministratore quale policy lo blocca.

5483 

5475### `RewindFilesResult`5484### `RewindFilesResult`

5476 5485 

5477Risultato di un'operazione `rewindFiles()`.5486Risultato di un'operazione `rewindFiles()`.

agent-teams.md +97 −95

Details

59 59 

60L'avvio di compagni di squadra richiede anche una sessione interattiva. In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con il flag `-p`, incluse le sessioni di Agent SDK, Claude non genera compagni di squadra, e un subagente che Claude denomina viene eseguito come un ordinario [subagente](https://code.claude.com/docs/it/sub-agents.md) anche con i team di agenti abilitati.60L'avvio di compagni di squadra richiede anche una sessione interattiva. In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con il flag `-p`, incluse le sessioni di Agent SDK, Claude non genera compagni di squadra, e un subagente che Claude denomina viene eseguito come un ordinario [subagente](https://code.claude.com/docs/it/sub-agents.md) anche con i team di agenti abilitati.

61 61 

62## Avviare il vostro primo team di agenti62## Avvia il tuo primo team di agenti

63 63 

64Dopo aver abilitato i team di agenti, descrivete il compito e i compagni di team che desiderate in linguaggio naturale. Claude li genera e coordina il lavoro in base al vostro prompt.64Dopo aver abilitato i team di agenti, descrivi in linguaggio naturale l'attività e i compagni di team che desideri. Claude li genera e coordina il lavoro in base al tuo prompt.

65 65 

66Questo esempio funziona bene perché i tre ruoli sono indipendenti e possono esplorare il problema senza aspettarsi l'uno l'altro:66Questo esempio funziona bene perché i tre ruoli sono indipendenti e possono esplorare il problema senza doversi aspettare a vicenda:

67 67 

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

69Sto progettando uno strumento CLI che aiuta gli sviluppatori a tracciare i commenti TODO69I'm designing a CLI tool that helps developers track TODO comments across

70nel loro codebase. Genera tre compagni di team per esplorare questo da diversi angoli: uno70their codebase. Spawn three teammates to explore this from different angles:

71su UX, uno su architettura tecnica, uno che gioca l'avvocato del diavolo.71one on UX, one on technical architecture, one playing devil's advocate.

72```72```

73 73 

74Da lì, Claude popola un [elenco di attività condiviso](https://code.claude.com/docs/it/interactive-mode.md#task-list) in una [sessione che dispone dei Task tools](https://code.claude.com/docs/it/tools-reference.md#task-tool-availability), genera compagni di team per ogni prospettiva, li fa esplorare il problema, e sintetizza i risultati al termine.74A quel punto, Claude popola un [elenco di attività condiviso](https://code.claude.com/docs/it/interactive-mode.md#task-list) in una [sessione che dispone degli strumenti Task](https://code.claude.com/docs/it/tools-reference.md#task-tool-availability), genera compagni di team per ciascuna prospettiva, fa loro esplorare il problema e sintetizza i risultati al termine.

75 75 

76Claude a volte potrebbe utilizzare [subagenti](https://code.claude.com/docs/it/sub-agents.md) invece di creare un team. I subagenti appaiono nello stesso pannello dell'agente dei compagni di team, quindi il pannello da solo non conferma che un team si sia formato. Se Claude ha generato subagenti invece, chiedete di nuovo e richiedete esplicitamente un team di agenti.76A volte Claude potrebbe usare dei [subagent](https://code.claude.com/docs/it/sub-agents.md) invece di creare un team. I subagent compaiono nello stesso pannello degli agenti dei compagni di team, quindi il pannello da solo non conferma che si sia formato un team. Se Claude ha generato dei subagent, chiedi di nuovo e richiedi esplicitamente un team di agenti.

77 77 

78Il terminale del lead elenca i compagni di team nel pannello dell'agente sotto l'input del prompt. Dal pannello:78Il terminale del lead elenca i compagni di team nel pannello degli agenti sotto l'input del prompt. Dal pannello:

79 79 

80* **Frecce su e giù**: selezionare un compagno di team80* **Frecce su e giù**: seleziona un compagno di team

81* **Invio**: aprire la trascrizione del compagno di team selezionato e messaggiargli direttamente81* **Enter**: apri la trascrizione del compagno di team selezionato e inviagli direttamente un messaggio

82* **Escape**: cancellare la selezione. Mentre state visualizzando la trascrizione di un compagno di team, Escape interrompe il turno corrente di quel compagno di team82* **Escape**: annulla la selezione. Mentre visualizzi la trascrizione di un compagno di team, Escape interrompe il turno corrente di quel compagno di team

83 83 

84La riga di un compagno di team inattivo rimane nel pannello mentre qualsiasi compagno di team o subagent è ancora al lavoro, quindi puoi selezionarla per rivedere la sua trascrizione o assegnargli altro lavoro. Una volta che ogni agente nel pannello è inattivo, le righe inattive si nascondono dopo 30 secondi e riappaiono al turno successivo del compagno di team; il compagno di team rimane in esecuzione e raggiungibile mentre è nascosto.84La riga di un compagno di team inattivo rimane nel pannello finché un qualsiasi compagno di team o subagent è ancora al lavoro, così puoi selezionarla per rivedere la sua trascrizione o assegnargli altro lavoro. Quando tutti gli agenti nel pannello sono inattivi, le righe inattive si nascondono dopo 30 secondi e ricompaiono al turno successivo del compagno di team; il compagno di team resta in esecuzione e raggiungibile anche mentre è nascosto.

85 85 

86Quando più di tre compagni di team sono inattivi contemporaneamente, le righe oltre le prime tre si comprimono in una singola riga che conta i compagni di team compressi, come `2 idle agents` quando cinque sono inattivi. Selezionatela e premete Invio per espandere le righe compresse, oppure premete Esc per comprimerle di nuovo. I compagni di team al lavoro, i compagni di team non riusciti, e il compagno di team che state visualizzando mantengono sempre le loro righe proprie.86Quando più di tre compagni di team sono inattivi contemporaneamente, le righe successive alle prime tre vengono compresse in un'unica riga che conta i compagni di team compressi, ad esempio `2 idle agents` quando cinque sono inattivi. Selezionala e premi Enter per espandere le righe compresse, oppure premi Esc per comprimerle di nuovo. I compagni di team al lavoro, quelli con errori e il compagno di team che stai visualizzando mantengono sempre la propria riga.

87 87 

88Se desiderate che ogni compagno di team sia in un riquadro diviso proprio, consultate [Scegliere una modalità di visualizzazione](#choose-a-display-mode).88Se vuoi ogni compagno di team in un proprio riquadro diviso, consulta [Scegli una modalità di visualizzazione](#choose-a-display-mode).

89 89 

90## Controllare il vostro team di agenti90## Controllare il tuo team di agenti

91 91 

92Dite al lead cosa desiderate in linguaggio naturale. Gestisce il coordinamento del team, l'assegnazione delle attività e la delega in base alle vostre istruzioni.92Comunica al lead ciò che desideri in linguaggio naturale. Si occupa del coordinamento del team, dell'assegnazione delle attività e della delega in base alle tue istruzioni.

93 93 

94### Scegliere una modalità di visualizzazione94### Scegliere una modalità di visualizzazione

95 95 

96I team di agenti supportano due modalità di visualizzazione:96I team di agenti supportano due modalità di visualizzazione:

97 97 

98* **In-process**: tutti i compagni di team vengono eseguiti all'interno del vostro terminale principale. Utilizzate i tasti freccia su e giù nel pannello dell'agente per selezionare un compagno di team, quindi premete Invio per visualizzarlo e digitate per messaggiarlo direttamente. Funziona in qualsiasi terminale, nessuna configurazione extra richiesta.98* **In-process**: tutti i compagni di squadra vengono eseguiti all'interno del tuo terminale principale. Usa i tasti freccia su e giù nel pannello degli agenti per selezionare un compagno di squadra, poi premi Enter per visualizzarlo e digita per inviargli messaggi direttamente. Funziona in qualsiasi terminale, senza alcuna configurazione aggiuntiva.

99* **Split panes**: ogni compagno di team ottiene il proprio riquadro. Potete vedere l'output di tutti contemporaneamente e fare clic su un riquadro per interagire direttamente. Richiede tmux o iTerm2.99* **Riquadri divisi**: ogni compagno di squadra ha il proprio riquadro. Puoi vedere l'output di tutti contemporaneamente e fare clic su un riquadro per interagire direttamente. Richiede tmux o iTerm2.

100 100 

101> [!NOTE]101> [!NOTE]

102>102>

103> `tmux` ha limitazioni note su certi sistemi operativi e tradizionalmente funziona meglio su macOS. Utilizzare `tmux -CC` in iTerm2 è il punto di ingresso suggerito in `tmux`.103> `tmux` ha limitazioni note su alcuni sistemi operativi e tradizionalmente funziona meglio su macOS. L'uso di `tmux -CC` in iTerm2 è il punto di ingresso consigliato per `tmux`.

104 104 

105L'impostazione predefinita è `"in-process"`. Impostate `"auto"` per abilitare split panes quando state già eseguendo all'interno di una sessione tmux, o quando il vostro terminale è iTerm2 con la CLI `it2` installata, altrimenti ricadete in in-process. L'impostazione `"tmux"` abilita la modalità split-pane e rileva automaticamente se utilizzare tmux o iTerm2 in base al vostro terminale.105Il valore predefinito è `"in-process"`. Imposta `"auto"` per abilitare i riquadri divisi quando stai già eseguendo all'interno di una sessione tmux, oppure quando il tuo terminale è iTerm2 con la CLI `it2` installata, ripiegando su in-process negli altri casi. L'impostazione `"tmux"` abilita la modalità a riquadri divisi e rileva automaticamente se usare tmux o iTerm2 in base al tuo terminale.

106 106 

107Impostate `"iterm2"` per utilizzare esplicitamente i split panes nativi di iTerm2. Questa modalità richiede la [CLI `it2`](https://github.com/mkusaka/it2) e mostra un errore con il comando di installazione se `it2` è mancante. Il prompt di configurazione che offre di installare `it2` o passare a tmux appare sotto `"auto"` o `"tmux"` quando il vostro terminale è iTerm2 e tmux è disponibile come fallback.107Imposta `"iterm2"` per usare esplicitamente i riquadri divisi nativi di iTerm2. Questa modalità richiede la [CLI `it2`](https://github.com/mkusaka/it2) e mostra un errore con il comando di installazione se `it2` manca. La richiesta di configurazione che propone di installare `it2` o di passare a tmux compare con `"auto"` o `"tmux"` quando il tuo terminale è iTerm2 e tmux è disponibile come fallback.

108 108 

109Per sovrascrivere l'impostazione predefinita, impostate [`teammateMode`](https://code.claude.com/docs/it/settings-reference#teammatemode) in `~/.claude/settings.json`:109Per sovrascrivere il valore predefinito, imposta [`teammateMode`](https://code.claude.com/docs/it/settings-reference#teammatemode) in `~/.claude/settings.json`:

110 110 

111```json theme={null}111```json theme={null}

112{112{


114}114}

115```115```

116 116 

117Per impostare la modalità per una singola sessione, passatela come flag:117Per impostare la modalità per una singola sessione, passala come flag:

118 118 

119```bash theme={null}119```bash theme={null}

120claude --teammate-mode auto120claude --teammate-mode auto

121```121```

122 122 

123La modalità `--teammate-mode` è sperimentale e non appare in `claude --help`.123Il flag `--teammate-mode` è sperimentale e non compare in `claude --help`.

124 124 

125La modalità split-pane richiede [tmux](https://github.com/tmux/tmux/wiki) o iTerm2 con la CLI [`it2`](https://github.com/mkusaka/it2). Per installare manualmente:125La modalità a riquadri divisi richiede [tmux](https://github.com/tmux/tmux/wiki) oppure iTerm2 con la [CLI `it2`](https://github.com/mkusaka/it2). Per installarli manualmente:

126 126 

127* **tmux**: installate tramite il gestore di pacchetti del vostro sistema. Consultate il [wiki di tmux](https://github.com/tmux/tmux/wiki/Installing) per istruzioni specifiche della piattaforma.127* **tmux**: installalo tramite il gestore di pacchetti del tuo sistema. Consulta il [wiki di tmux](https://github.com/tmux/tmux/wiki/Installing) per le istruzioni specifiche per piattaforma.

128* **iTerm2**: installate la CLI [`it2`](https://github.com/mkusaka/it2), quindi abilitate l'API Python in **iTerm2 → Settings → General → Magic → Enable Python API**.128* **iTerm2**: installa la [CLI `it2`](https://github.com/mkusaka/it2), poi abilita la Python API in **iTerm2 → Settings → General → Magic → Enable Python API**.

129 129 

130### Specificare compagni di team e modelli130### Specificare compagni di squadra e modelli

131 131 

132Claude decide il numero di compagni di team da generare in base al vostro compito, oppure potete specificare esattamente quello che desiderate:132Claude decide il numero di compagni di squadra da generare in base alla tua attività, oppure puoi specificare esattamente ciò che desideri:

133 133 

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

135Spawn 4 teammates to refactor these modules in parallel. Use Sonnet for135Spawn 4 teammates to refactor these modules in parallel. Use Sonnet for

136each teammate.136each teammate.

137```137```

138 138 

139Claude Code sceglie il modello di ogni compagno di team dal primo di questi che si applica:139Claude Code sceglie il modello di ciascun compagno di squadra dalla prima delle seguenti fonti applicabile:

140 140 

1411. Il modello che il vostro prompt di spawn nomina per quel compagno di team.1411. Il modello che il tuo prompt di generazione indica per quel compagno di squadra.

1422. Per un compagno di team generato da una [definizione di subagent](#use-subagent-definitions-for-teammates), il `model` della definizione, dove `inherit` seleziona il modello del lead.1422. Per un compagno di squadra generato da una [definizione di subagent](#use-subagent-definitions-for-teammates), il `model` della definizione, dove `inherit` seleziona il modello del lead.

1433. [`CLAUDE_CODE_SUBAGENT_MODEL`](https://code.claude.com/docs/it/model-config#environment-variables), quando è impostato su qualsiasi cosa diversa da `inherit`.1433. [`CLAUDE_CODE_SUBAGENT_MODEL`](https://code.claude.com/docs/it/model-config#environment-variables), quando è impostata su un valore diverso da `inherit`.

1444. Il modello attuale del lead.1444. Il modello corrente del lead.

145 145 

146Se un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) installato imposta un modello nel suo hook [`agent.spawn`](https://code.claude.com/docs/it/plugins/mods/reference#subagents), Claude Code utilizza quel modello al posto della prima fonte.146Se un [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) installato imposta un modello nel suo hook [`agent.spawn`](https://code.claude.com/docs/it/plugins/mods/reference#subagents), Claude Code usa quel modello al posto della prima fonte.

147 147 

148Se impostate [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](https://code.claude.com/docs/it/sub-agents#run-every-subagent-on-one-model), le prime due fonti non si applicano. Claude Code sceglie il modello di ogni compagno di team da `CLAUDE_CODE_SUBAGENT_MODEL` quando è impostato su qualsiasi cosa diversa da `inherit`, e dal modello attuale del lead altrimenti. Richiede Claude Code versione 2.1.257 o successiva.148Se imposti [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1`](https://code.claude.com/docs/it/sub-agents#run-every-subagent-on-one-model), le prime due fonti non si applicano. Claude Code sceglie il modello di ogni compagno di squadra da `CLAUDE_CODE_SUBAGENT_MODEL` quando è impostata su un valore diverso da `inherit`, e altrimenti dal modello corrente del lead. Richiede Claude Code v2.1.257 o successiva.

149 149 

150Prima della versione 2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` veniva per primo in questo ordine.150Prima della v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` veniva per prima in questo ordine.

151 151 

152> [!NOTE]152> [!NOTE]

153>153>

154> `teammateDefaultModel` è stato rimosso nella versione 2.1.234; Claude Code ignora un valore rimasto. Nominate il modello nel vostro prompt invece.154> `teammateDefaultModel` è stato rimosso nella v2.1.234; Claude Code ignora un eventuale valore residuo. Indica invece il modello nel tuo prompt.

155 155 

156Claude Code controlla il modello che seleziona per un compagno di team rispetto alla lista di autorizzazione [`availableModels`](https://code.claude.com/docs/it/model-config#restrict-model-selection) della vostra organizzazione. Quando la lista di autorizzazione blocca un valore, Claude Code sostituisce un altro modello:156Claude Code verifica il modello che seleziona per un compagno di squadra rispetto all'allowlist [`availableModels`](https://code.claude.com/docs/it/model-config#restrict-model-selection) della tua organizzazione. Quando l'allowlist blocca un valore, Claude Code lo sostituisce con un altro modello:

157 157 

158* **Alias di famiglia come `opus`**: Sull'API Anthropic e Claude Platform su AWS, Claude Code esegue il compagno di team sulla versione più recente di quella famiglia che la lista di autorizzazione consente. Su provider con ID modello specifici del provider, dove la [sostituzione non funziona](https://code.claude.com/docs/it/model-config.md#restrict-model-selection), un alias bloccato ricade come qualsiasi altro valore bloccato secondo il punto successivo158* **Alias di famiglia come `opus`**: sull'API Anthropic e su Claude Platform on AWS, Claude Code esegue il compagno di squadra sulla versione più recente di quella famiglia consentita dall'allowlist. Sui provider con ID di modello specifici del provider, dove la [sostituzione non opera](https://code.claude.com/docs/it/model-config.md#restrict-model-selection), un alias bloccato usa il fallback come qualsiasi altro valore bloccato, secondo il punto successivo

159* **Qualsiasi altro valore bloccato, incluso un alias di famiglia su provider dove la sostituzione non funziona, o uno la cui famiglia non ha versione consentita**: Claude Code esegue il compagno di team sul modello del lead invece. Se impostate `CLAUDE_CODE_SUBAGENT_MODEL`, Claude Code prova prima quel modello, secondo le stesse regole159* **Qualsiasi altro valore bloccato, incluso un alias di famiglia sui provider dove la sostituzione non opera, o uno la cui famiglia non ha alcuna versione consentita**: Claude Code esegue invece il compagno di squadra sul modello del lead. Se imposti `CLAUDE_CODE_SUBAGENT_MODEL`, Claude Code prova prima quel modello, secondo queste stesse regole

160 160 

161Per impostazione predefinita, i compagni di team ereditano il [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) del lead. In modalità split-pane questo si applica dalla v2.1.186; le versioni precedenti non passavano lo sforzo della sessione del lead ai compagni di team in split-pane.161Per impostazione predefinita, i compagni di squadra ereditano il [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) del lead. Nella modalità a riquadri divisi questo si applica dalla v2.1.186; le versioni precedenti non passavano il livello di sforzo della sessione del lead ai compagni di squadra nei riquadri divisi.

162 162 

163### Richiedere ai compagni di team di pianificare prima di implementare163### Far pianificare i compagni di squadra prima dell'implementazione

164 164 

165Per compiti complessi o rischiosi, potete richiedere ai compagni di team di pianificare prima di implementare. Un compagno di team che Claude genera mentre il lead è in [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode) lavora in modalità piano di sola lettura fino a quando il suo piano non è pronto. Passate il lead in plan mode per primo, quindi chiedete il compagno di team:165Per attività complesse o rischiose, puoi far pianificare i compagni di squadra prima dell'implementazione. Un compagno di squadra che Claude genera mentre il lead è in [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode) lavora in plan mode di sola lettura finché il suo piano non è pronto. Porta prima il lead in plan mode, poi chiedi il compagno di squadra:

166 166 

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

168Spawn an architect teammate to refactor the authentication module.168Spawn an architect teammate to refactor the authentication module.

169```169```

170 170 

171Quando quel compagno di team finisce di pianificare, invia una richiesta di approvazione del piano al lead. Se non hai cambiato la modalità di permesso di quel compagno di team da quando è stato generato, Claude Code approva il piano non appena arriva la richiesta, senza che il lead lo esamini. Le modifiche e i comandi del compagno di team passano comunque attraverso le richieste di permesso descritte in [Permessi](#permissions). Una volta approvato il piano, il compagno di team esce dal plan mode e inizia l'implementazione.171Quando quel compagno di squadra termina la pianificazione, invia una richiesta di approvazione del piano al lead. Se non hai cambiato la modalità di permesso di quel compagno di squadra da quando è stato generato, Claude Code approva il piano non appena arriva la richiesta, senza che il lead lo esamini. Le modifiche e i comandi del compagno di squadra passano comunque attraverso le richieste di permesso descritte in [Permessi](#permissions). Una volta approvato, il compagno di squadra esce dal plan mode e inizia l'implementazione.

172 172 

173Se metti in plan mode un compagno di team in-process in esecuzione premendo [`Shift+Tab`](https://code.claude.com/docs/it/permission-modes#switch-permission-modes) mentre visualizzi la sua sessione, è il lead a esaminare il piano di quell'esecuzione invece di Claude Code che lo approva. Non ti viene chiesto di approvarlo; il lead lo approva o lo rimanda indietro per una revisione.173Se metti in plan mode un compagno di squadra in-process in esecuzione premendo [`Shift+Tab`](https://code.claude.com/docs/it/permission-modes#switch-permission-modes) mentre visualizzi la sua sessione, è il lead a esaminare il piano di quell'esecuzione invece che Claude Code ad approvarlo. Non ti viene chiesto di approvarlo; il lead lo approva o lo rimanda indietro per una revisione.

174 174 

175### Parlare direttamente con i compagni di team175### Parlare direttamente con i compagni di squadra

176 176 

177Ogni compagno di team è una sessione Claude Code completa e indipendente. Potete messaggiare qualsiasi compagno di team direttamente per fornire istruzioni aggiuntive, fare domande di follow-up o reindirizzare il loro approccio.177Ogni compagno di squadra è una sessione Claude Code completa e indipendente. Puoi inviare messaggi direttamente a qualsiasi compagno di squadra per dare istruzioni aggiuntive, porre domande di approfondimento o reindirizzare il suo approccio.

178 178 

179* **Modalità in-process**: utilizzate i tasti freccia su e giù nel pannello dell'agente per selezionare un compagno di team, quindi premete Invio per visualizzare la sua sessione e digitate per inviargli un messaggio. Premete `x` su un compagno di team selezionato per fermarlo. Premete Ctrl+T per attivare/disattivare l'elenco delle attività.179* **Modalità in-process**: usa i tasti freccia su e giù nel pannello degli agenti per selezionare un compagno di squadra, poi premi Enter per visualizzare la sua sessione e digita per inviargli un messaggio. Premi `x` su un compagno di squadra selezionato per fermarlo. Premi Ctrl+T per mostrare o nascondere l'elenco delle attività.

180* **Modalità split-pane**: fate clic nel riquadro di un compagno di team per interagire direttamente con la sua sessione. Ogni compagno di team ha una visualizzazione completa del proprio terminale.180* **Modalità a riquadri divisi**: fai clic sul riquadro di un compagno di squadra per interagire direttamente con la sua sessione. Ogni compagno di squadra ha una visualizzazione completa del proprio terminale.

181 181 

182Mentre stai visualizzando un compagno di team in-process, il testo semplice e le [skill](https://code.claude.com/docs/it/skills.md) vanno a quel compagno di team, mentre i comandi integrati vanno alla sessione del lead, con queste protezioni:182Mentre visualizzi un compagno di squadra in-process, il testo semplice e le [skill](https://code.claude.com/docs/it/skills.md) vanno a quel compagno di squadra, mentre i comandi integrati vanno alla sessione del lead, con queste salvaguardie:

183 183 

184* `/compact`, `/clear` e `/rewind` agiscono sulla conversazione del lead, quindi Claude Code ti chiede di confermare prima di eseguirne uno da questa vista.184* `/compact`, `/clear` e `/rewind` agiscono sulla conversazione del lead, quindi Claude Code ti chiede di confermare prima di eseguirne uno da questa visualizzazione.

185* `/model` e `/fast` impostano il modello e la modalità veloce del lead, non quelli del compagno di team, quindi non vengono eseguiti da questa vista. Un avviso ti spiega il motivo.185* `/model` e `/fast` impostano il modello e la modalità veloce del lead, non del compagno di squadra, quindi non vengono eseguiti da questa visualizzazione. Un avviso te ne spiega il motivo.

186 186 

187Il modello e la modalità veloce di un compagno di team sono fissati quando viene generato.187Il modello e la modalità veloce di un compagno di squadra sono fissati al momento della sua generazione.

188 188 

189### Assegnare e rivendicare attività189### Assegnare e rivendicare le attività

190 190 

191L'elenco di attività condiviso coordina il lavoro nel team. Il lead crea attività e i compagni di team le elaborano. Le attività hanno tre stati: in sospeso, in corso e completate. Un'attività può anche dipendere da altre attività e appare come bloccata nell'elenco delle attività fino a quando queste non sono completate. I compagni di team non rivendicano autonomamente un'attività bloccata, ma tu o il lead potete comunque assegnarla.191L'elenco condiviso delle attività coordina il lavoro all'interno del team. Il lead crea le attività e i compagni di squadra le portano a termine. Le attività hanno tre stati: in sospeso, in corso e completata. Un'attività può anche dipendere da altre attività e risulta bloccata nell'elenco delle attività finché queste non sono completate. I compagni di squadra non rivendicano autonomamente un'attività bloccata, ma tu o il lead potete comunque assegnarla.

192 192 

193Gli agenti [senza i Task tools](https://code.claude.com/docs/it/tools-reference.md#task-tool-availability) coordinano attraverso messaggi invece della lista di attività condivisa.193Gli agenti [senza gli strumenti Task](https://code.claude.com/docs/it/tools-reference.md#task-tool-availability) si coordinano invece tramite messaggi anziché tramite l'elenco condiviso delle attività.

194 194 

195Il lead può assegnare attività esplicitamente, oppure i compagni di team possono auto-rivendicare:195Il lead può assegnare le attività esplicitamente, oppure i compagni di squadra possono rivendicarle autonomamente:

196 196 

197* **Il lead assegna**: dite al lead quale attività assegnare a quale compagno di team197* **Assegnazione da parte del lead**: indica al lead quale attività affidare a quale compagno di squadra

198* **Auto-rivendicazione**: dopo aver completato un'attività, un compagno di team raccoglie la prossima attività non assegnata e non bloccata da solo198* **Rivendicazione autonoma**: dopo aver terminato un'attività, un compagno di squadra prende da solo la successiva attività non assegnata e non bloccata

199 199 

200La rivendicazione delle attività utilizza il file locking per prevenire race condition quando più compagni di team tentano di rivendicare la stessa attività simultaneamente.200La rivendicazione delle attività usa il blocco dei file per evitare race condition quando più compagni di squadra cercano di rivendicare la stessa attività contemporaneamente.

201 201 

202### Spegnere i compagni di team202### Arrestare i compagni di squadra

203 203 

204Per terminare gracefully la sessione di un compagno di team, fate riferimento ad esso per nome. Ad esempio, con un compagno di team denominato ricercatore:204Per terminare in modo ordinato la sessione di un compagno di squadra, fai riferimento a lui per nome. Ad esempio, con un compagno di squadra chiamato researcher:

205 205 

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

207Ask the researcher teammate to shut down207Ask the researcher teammate to shut down

208```208```

209 209 

210Il lead invia una richiesta di arresto. Il compagno di team può approvare, uscendo gracefully, o rifiutare con una spiegazione.210Il lead invia una richiesta di arresto. Il compagno di squadra può approvarla, uscendo in modo ordinato, oppure rifiutarla con una spiegazione.

211 211 

212Le directory condivise del team vengono pulite automaticamente quando la sessione termina, quindi non c'è un passaggio di pulizia separato. Consulta [Architecture](#architecture) per sapere quali directory vengono rimosse e quali restano su disco.212Le directory condivise del team vengono ripulite automaticamente al termine della sessione, quindi non c'è un passaggio di pulizia separato. Consulta [Architettura](#architecture) per sapere quali directory vengono rimosse e quali restano sul disco.

213 213 

214### Applicare quality gate con hooks214### Applicare controlli di qualità con gli hook

215 215 

216Utilizzate [hooks](https://code.claude.com/docs/it/hooks.md) per applicare regole quando i compagni di team finiscono il lavoro o le attività vengono create o completate:216Usa gli [hook](https://code.claude.com/docs/it/hooks.md) per applicare regole quando i compagni di squadra terminano il lavoro o quando le attività vengono create o completate:

217 217 

218* [`TeammateIdle`](https://code.claude.com/docs/it/hooks#teammateidle): viene eseguito quando un compagno di team sta per andare inattivo. Uscite con codice 2 per inviare feedback e mantenere il compagno di team al lavoro.218* [`TeammateIdle`](https://code.claude.com/docs/it/hooks#teammateidle): viene eseguito quando un compagno di squadra sta per diventare inattivo. Esci con codice 2 per inviare un feedback e mantenere il compagno di squadra al lavoro.

219* [`TaskCreated`](https://code.claude.com/docs/it/hooks#taskcreated): viene eseguito quando un'attività sta per essere creata. Uscite con codice 2 per prevenire la creazione e inviare feedback.219* [`TaskCreated`](https://code.claude.com/docs/it/hooks#taskcreated): viene eseguito quando un'attività viene creata. Esci con codice 2 per impedirne la creazione e inviare un feedback.

220* [`TaskCompleted`](https://code.claude.com/docs/it/hooks#taskcompleted): viene eseguito quando un'attività sta per essere contrassegnata come completata. Uscite con codice 2 per prevenire il completamento e inviare feedback.220* [`TaskCompleted`](https://code.claude.com/docs/it/hooks#taskcompleted): viene eseguito quando un'attività viene contrassegnata come completata. Esci con codice 2 per impedirne il completamento e inviare un feedback.

221 221 

222## Come funzionano i team di agenti222## Come funzionano i team di agenti

223 223 


415 415 

416Controllate il progresso dei compagni di team, reindirizzate gli approcci che non funzionano e sintetizzate i risultati man mano che arrivano. Lasciare un team senza supervisione per troppo tempo aumenta il rischio di sforzo sprecato.416Controllate il progresso dei compagni di team, reindirizzate gli approcci che non funzionano e sintetizzate i risultati man mano che arrivano. Lasciare un team senza supervisione per troppo tempo aumenta il rischio di sforzo sprecato.

417 417 

418## Troubleshooting418## Risoluzione dei problemi

419 419 

420### I compagni di team non appaiono420### I teammate non compaiono

421 421 

422Se i compagni di team non appaiono dopo aver chiesto a Claude di crearli:422Se i teammate non compaiono dopo che hai chiesto a Claude di generarli:

423 423 

424* In modalità in-process, i compagni di team appaiono nel pannello agente sotto l'input del prompt. Utilizzate i tasti freccia su e giù per selezionarne uno, quindi premete Invio per visualizzarlo.424* In modalità in-process, i teammate compaiono nel pannello degli agenti sotto l'input del prompt. Usa i tasti freccia su e giù per selezionarne uno, poi premi Enter per visualizzarlo.

425* Una riga di compagno di team che è scomparsa dopo essere rimasta inattiva è stata nascosta, non interrotta. Le righe inattive si nascondono 30 secondi dopo che l'intero pannello diventa inattivo e riappaiono al turno successivo del compagno di team. Quando più di tre compagni di team sono inattivi, le loro righe in eccesso si comprimono in una singola riga `N idle agents` che Invio espande. Inviate un messaggio al compagno di team per nome per riportare una riga nascosta.425* Una riga di un teammate scomparsa dopo essere rimasta inattiva è stata nascosta, non arrestata. Le righe inattive si nascondono 30 secondi dopo che l'intero pannello diventa inattivo e ricompaiono al turno successivo del teammate. Quando più di tre teammate sono inattivi, le righe in eccesso si comprimono in un'unica riga `N idle agents` che Enter espande. Invia un messaggio al teammate per nome per far ricomparire una riga nascosta.

426* Controllate che il compito che avete dato a Claude fosse abbastanza complesso da giustificare un team. Claude decide se creare compagni di team in base al compito.426* Verifica che l'attività che hai assegnato a Claude fosse abbastanza complessa da giustificare un team. Claude decide se generare teammate in base all'attività.

427* Se avete esplicitamente richiesto split panes, assicuratevi che tmux sia installato e disponibile nel vostro PATH:427* Se hai richiesto esplicitamente i riquadri divisi, assicurati che tmux sia installato e disponibile nel tuo PATH:

428 ```bash theme={null}428 ```bash theme={null}

429 which tmux429 which tmux

430 ```430 ```

431* Per iTerm2, verificate che la CLI `it2` sia installata e che l'API Python sia abilitata nelle preferenze di iTerm2.431* Per iTerm2, verifica che la CLI `it2` sia installata e che la Python API sia abilitata nelle preferenze di iTerm2.

432 432 

433### Claude crea compagni di team invece di subagent433### Claude genera teammate invece di subagent

434 434 

435Mentre i team di agenti sono abilitati, un subagent che Claude nomina nella sessione del lead viene avviato come compagno di team. Claude [può nominare subagent autonomamente](#how-claude-starts-agent-teams), quindi questo può accadere durante una delega che non hai mai inquadrato come lavoro di team.435Mentre i team di agenti sono abilitati, un subagent a cui Claude assegna un nome nella sessione del lead viene avviato come teammate. Claude [può assegnare nomi ai subagent di propria iniziativa](#how-claude-starts-agent-teams), quindi questo può accadere durante una delega che non hai mai impostato come lavoro di team.

436 436 

437Per fare in modo che i subagent denominati vengano avviati di nuovo come subagent, disattiva i team di agenti impostando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` a `0`:437Per fare in modo che i subagent con nome vengano di nuovo avviati come subagent, disattiva i team di agenti impostando `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` su `0`:

438 438 

439```json settings.json theme={null}439```json settings.json theme={null}

440{440{


444}444}

445```445```

446 446 

447Non è necessario avviare una nuova sessione: Claude Code riapplica i valori `env` del file di impostazioni alla sessione in esecuzione quando salvi, e rilegge la variabile ogni volta che Claude genera un subagent, quindi il prossimo subagent che Claude nomina viene avviato come subagent.447Non è necessario avviare una nuova sessione: Claude Code riapplica i valori `env` del file delle impostazioni alla sessione in esecuzione quando salvi, e rilegge la variabile ogni volta che Claude genera un subagent, quindi il prossimo subagent a cui Claude assegna un nome viene avviato come subagent.

448 448 

449L'impostazione della variabile a `0` nel vostro `settings.json` utente sostituisce un'esportazione shell. Altre fonti di impostazioni possono comunque abilitare i team di agenti:449Impostare la variabile su `0` nel tuo `settings.json` utente sovrascrive un export della shell. Altre fonti di impostazioni possono comunque abilitare i team di agenti:

450 450 

451* **File di impostazioni con precedenza più alta**: le impostazioni del progetto, le impostazioni locali e un payload `--settings` si applicano dopo le impostazioni utente, quindi una voce `env` che imposta la variabile a `1` in una qualsiasi di esse vince. Vedere [Precedenza delle impostazioni](https://code.claude.com/docs/it/settings.md#settings-precedence).451* **File di impostazioni con precedenza più alta**: le impostazioni di progetto, le impostazioni locali e un payload `--settings` vengono applicati dopo le impostazioni utente, quindi una voce `env` che imposta la variabile su `1` in uno qualsiasi di essi ha la precedenza. Consulta [Precedenza delle impostazioni](https://code.claude.com/docs/it/settings.md#settings-precedence).

452* **Impostazioni gestite**: le [impostazioni gestite](https://code.claude.com/docs/it/server-managed-settings.md) si applicano dopo ogni altra fonte. Se la vostra organizzazione abilita i team di agenti lì, chiedete al vostro amministratore di modificare il valore gestito.452* **Impostazioni gestite**: le [impostazioni gestite](https://code.claude.com/docs/it/server-managed-settings.md) vengono applicate dopo ogni altra fonte. Se la tua organizzazione abilita lì i team di agenti, chiedi al tuo amministratore di modificare il valore gestito.

453 453 

454Dopo la modifica, Claude potrebbe comunque nominare subagent, e il nome continua a funzionare come indirizzo [`SendMessage`](https://code.claude.com/docs/it/sub-agents#resume-subagents). Claude riceve il risultato di ogni subagent quando si completa.454Dopo la modifica, Claude potrebbe ancora assegnare nomi ai subagent, e il nome continua a funzionare come [indirizzo `SendMessage`](https://code.claude.com/docs/it/sub-agents#resume-subagents). Claude riceve il risultato di ogni subagent quando questo termina.

455 455 

456### Troppi prompt di permesso456### Troppe richieste di permesso

457 457 

458Le richieste di permesso dei compagni di team si propagano al lead, il che può creare attrito. Pre-approvate le operazioni comuni nelle vostre [impostazioni di permesso](https://code.claude.com/docs/it/permissions.md) prima di generare i compagni di team per ridurre le interruzioni.458Le richieste di permesso dei teammate risalgono fino al lead, il che può creare attrito. Pre-approva le operazioni comuni nelle tue [impostazioni dei permessi](https://code.claude.com/docs/it/permissions.md) prima di generare i teammate per ridurre le interruzioni.

459 459 

460### I compagni di team si fermano anticipatamente460### Gli agenti si fermano in anticipo

461 461 

462I compagni di team possono fermarsi dopo aver incontrato errori invece di recuperare. Controllate il loro output selezionando il compagno di team nel pannello agente e premendo Invio in modalità in-process, o facendo clic sul riquadro in modalità split, quindi:462I teammate potrebbero fermarsi dopo aver riscontrato errori invece di riprendersi. Controlla il loro output selezionando il teammate nel pannello degli agenti e premendo Enter in modalità in-process, oppure facendo clic sul riquadro in modalità divisa, poi:

463 463 

464* Date loro istruzioni aggiuntive direttamente464* Dai loro direttamente istruzioni aggiuntive

465* Generate un compagno di team sostitutivo per continuare il lavoro465* Genera un teammate sostitutivo per continuare il lavoro

466 466 

467Un messaggio dal lead o da un altro compagno di team riattiva un compagno di team in-process che è in attesa di riprovare una richiesta API non riuscita, quindi riprova immediatamente invece di aspettare il ritardo di ripetizione completo.467Un messaggio dal lead o da un altro teammate risveglia un teammate in-process che è in attesa di riprovare una richiesta API non riuscita, in modo che riprovi immediatamente invece di attendere l'intero intervallo prima del nuovo tentativo.

468 

469Anche il lead può fermarsi in anticipo, decidendo che il team ha finito prima che tutte le attività siano effettivamente completate. Se succede, digli di continuare.

468 470 

469### Sessioni tmux orfane471### Sessioni tmux orfane

470 472 

471Se una sessione tmux persiste dopo che la sessione Claude Code termina, potrebbe non essere stata completamente pulita. Elencate le sessioni e uccidete quella creata dal team:473Se una sessione tmux persiste dopo la fine della sessione di Claude Code, potrebbe non essere stata ripulita completamente. Elenca le sessioni e termina quella creata dal team:

472 474 

473```bash theme={null}475```bash theme={null}

474tmux ls476tmux ls

Details

24 24 

25## Accedi con Bedrock25## Accedi con Bedrock

26 26 

27Se disponi di credenziali AWS e desideri iniziare a utilizzare Claude Code tramite Amazon Bedrock, la procedura guidata di accesso ti guida attraverso i passaggi. Completi i prerequisiti lato AWS una volta per account; la procedura guidata gestisce il lato Claude Code.27Se hai credenziali AWS e vuoi iniziare a usare Claude Code tramite Amazon Bedrock, la procedura guidata di accesso ti accompagna passo dopo passo. Completi i prerequisiti lato AWS una sola volta per account; la procedura guidata si occupa della parte relativa a Claude Code.

28 28 

29**1. Abilita i modelli Anthropic nel tuo account AWS**29**1. Abilita i modelli Anthropic nel tuo account AWS**

30 30 

31Nella [console di Amazon Bedrock](https://console.aws.amazon.com/bedrock/), apri il catalogo dei modelli, seleziona un modello Anthropic e invia il modulo del caso d'uso. L'accesso viene concesso immediatamente dopo l'invio. Consulta [Invia i dettagli del caso d'uso](#1-submit-use-case-details) per AWS Organizations e [Configurazione IAM](#iam-configuration) per le autorizzazioni di cui il tuo ruolo ha bisogno.31Nella [console di Amazon Bedrock](https://console.aws.amazon.com/bedrock/), apri il Model catalog, seleziona un modello Anthropic e invia il modulo del caso d'uso. L'accesso viene concesso immediatamente dopo l'invio. Consulta [Invia i dettagli del caso d'uso](#1-submit-use-case-details) per AWS Organizations e [Configurazione IAM](#iam-configuration) per i permessi di cui il tuo ruolo ha bisogno.

32 32 

33**2. Avvia Claude Code e scegli Amazon Bedrock**33**2. Avvia Claude Code e scegli Amazon Bedrock**

34 34 

35Esegui `claude`. Al prompt di accesso, seleziona **piattaforma di terze parti**, quindi **Amazon Bedrock**. Se sei già connesso e visualizzi il prompt della chat, esegui `/setup-bedrock` per aprire la procedura guidata. Finché `CLAUDE_CODE_USE_BEDROCK=1` non è impostato, Claude Code [nasconde il comando dal menu dei comandi](https://code.claude.com/docs/it/commands.md#how-the-command-menu-matches-what-you-type); digitalo per intero.35Esegui `claude`. Al prompt di accesso, seleziona **3rd-party platform**, quindi **Amazon Bedrock**. Se hai già effettuato l'accesso e vedi invece il prompt della chat, esegui `/setup-bedrock` per aprire la procedura guidata. Finché `CLAUDE_CODE_USE_BEDROCK=1` non è impostata, Claude Code [nasconde il comando dal menu dei comandi](https://code.claude.com/docs/it/commands.md#how-the-command-menu-matches-what-you-type); digitalo per intero.

36 36 

37**3. Segui i prompt della procedura guidata**37**3. Segui le indicazioni della procedura guidata**

38 38 

39Scegli come autenticarti ad AWS: un profilo AWS rilevato dalla tua directory `~/.aws`, una chiave API di Amazon Bedrock, una chiave di accesso e un segreto, o credenziali già presenti nel tuo ambiente. La procedura guidata chiede la tua regione, verifica quali modelli Claude il tuo account può invocare e ti consente di fissarli. Salva il risultato nel blocco `env` del tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md), quindi non è necessario esportare variabili di ambiente da solo.39Scegli come autenticarti su AWS: un profilo AWS rilevato dalla tua directory `~/.aws`, una chiave API di Amazon Bedrock, una chiave di accesso e un segreto, oppure credenziali già presenti nel tuo ambiente. La procedura guidata ti chiede la regione, verifica quali modelli Claude il tuo account può invocare e ti permette di fissarli. Salva il risultato nel blocco `env` del tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md), così non devi esportare tu stesso le variabili d'ambiente.

40 40 

41Dopo aver effettuato l'accesso, esegui `/setup-bedrock` in qualsiasi momento per riaprire la procedura guidata e modificare le tue credenziali, regione o pin dei modelli. Il passaggio del pin del modello inizia dai tuoi modelli attualmente fissati. La procedura guidata scrive in `~/.claude/settings.json`, o in `$CLAUDE_CONFIG_DIR/settings.json` quando [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars#variables) è impostato.41Dopo aver effettuato l'accesso, esegui `/setup-bedrock` in qualsiasi momento per riaprire la procedura guidata e modificare le credenziali, la regione o i modelli fissati. Il passaggio per fissare i modelli parte dai modelli attualmente fissati. La procedura guidata scrive in `~/.claude/settings.json`, oppure in `$CLAUDE_CONFIG_DIR/settings.json` quando [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars#variables) è impostata.

42 42 

43## Configurazione manuale43## Configurazione manuale

44 44 

Details

17 17 

18Se il browser non si apre automaticamente, premete `c` per copiare l'URL di accesso negli appunti, quindi incollatelo nel vostro browser.18Se il browser non si apre automaticamente, premete `c` per copiare l'URL di accesso negli appunti, quindi incollatelo nel vostro browser.

19 19 

20Se il vostro browser mostra un codice di accesso invece di reindirizzarvi dopo aver effettuato l'accesso, incollatelo nel terminale al prompt `Paste code here if prompted`. Questo accade quando il browser non riesce a raggiungere il server di callback locale di Claude Code, il che è comune in WSL2, sessioni SSH e container.20Se il tuo browser mostra un codice di accesso invece di reindirizzarti dopo aver effettuato l'accesso, incollalo nel terminale al prompt `Paste code here if prompted`.

21 21 

22Quando l'accesso è completato, il terminale mostra `Login successful` e vi chiede di premere `Enter` per continuare.22Quando l'accesso è completato, il terminale mostra `Login successful` e vi chiede di premere `Enter` per continuare.

23 23 


127Non avete la scelta su ogni macchina. Claude Code crea una chiave API senza chiedere in questi casi:127Non avete la scelta su ogni macchina. Claude Code crea una chiave API senza chiedere in questi casi:

128 128 

129* Eseguite contro un provider cloud, come [Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry](https://code.claude.com/docs/it/third-party-integrations.md) o [Claude Platform on AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md)129* Eseguite contro un provider cloud, come [Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry](https://code.claude.com/docs/it/third-party-integrations.md) o [Claude Platform on AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md)

130* Qualsiasi file di impostazioni imposta [`forceLoginOrgUUID`](#restrict-login-to-your-organization), o imposta `forceLoginMethod` su `"claudeai"` o `"console"`130* Un qualsiasi file di impostazioni imposta [`forceLoginOrgUUID`](#restrict-login-to-your-organization), o imposta `forceLoginMethod` su `"claudeai"`

131* `forceLoginMethod` è `"console"` e nessun file di impostazioni imposta `forceLoginOrgUUID`, finché non riprovi dalla schermata di errore dopo un accesso non riuscito

131* Una fonte di impostazioni gestite sulla vostra macchina, come il file di impostazioni gestite, un profilo MDM, o le impostazioni gestite dal server memorizzate nella cache, esiste ma Claude Code [non può leggerla](https://code.claude.com/docs/it/managed-settings.md#invalid-entries-in-managed-settings) e nessun'altra fonte gestita fornisce una policy132* Una fonte di impostazioni gestite sulla vostra macchina, come il file di impostazioni gestite, un profilo MDM, o le impostazioni gestite dal server memorizzate nella cache, esiste ma Claude Code [non può leggerla](https://code.claude.com/docs/it/managed-settings.md#invalid-entries-in-managed-settings) e nessun'altra fonte gestita fornisce una policy

132 133 

133Annullate l'impostazione di `ANTHROPIC_API_KEY` prima di accedere senza una chiave.134Annullate l'impostazione di `ANTHROPIC_API_KEY` prima di accedere senza una chiave.


140 141 

141Tutto il resto sui profili si applica a questo accesso, incluso dove si classifica rispetto alle vostre altre credenziali, la riga `Profile` che ottenete in `/status`, e le funzionalità che necessitano di un accesso claude.ai. Vedete [Anthropic profiles and federation credentials](#anthropic-profiles-and-federation-credentials).142Tutto il resto sui profili si applica a questo accesso, incluso dove si classifica rispetto alle vostre altre credenziali, la riga `Profile` che ottenete in `/status`, e le funzionalità che necessitano di un accesso claude.ai. Vedete [Anthropic profiles and federation credentials](#anthropic-profiles-and-federation-credentials).

142 143 

144#### Smettere di offrire l'accesso senza chiave sulle macchine gestite

145 

146Per impedire a Claude Code di offrire l'[accesso senza chiave](#sign-in-without-an-api-key), usa i tuoi strumenti di gestione dei dispositivi per distribuire [`forceLoginOrgUUID`](https://code.claude.com/docs/it/settings-reference#forceloginorguuid) nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) sulla macchina di ogni sviluppatore. Impostalo sull'[ID della tua organizzazione Console](https://platform.claude.com/settings/organization). Prima di distribuirlo, assicurati che ogni sviluppatore abbia un [ruolo che può creare chiavi API](#claude-console-authentication). Una volta distribuito, uno sviluppatore senza quel ruolo non può accedere a Console tramite `/login`.

147 

148Con il solo `forceLoginMethod` impostato su `"console"`, gli sviluppatori possono riprovare un accesso non riuscito e scegliere l'opzione senza chiave. Una volta distribuito `forceLoginOrgUUID`, la schermata di accesso rimuove quell'opzione, ma gli sviluppatori possono comunque usare un [profilo Anthropic](#anthropic-profiles-and-federation-credentials) che hanno già o che creano con [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication). Dopo averlo distribuito, gestisci queste credenziali e questi accessi su ogni macchina:

149 

150* **Accessi senza chiave**: per far passare uno sviluppatore a una chiave API, chiedigli di uscire e poi accedere di nuovo a Console, operazione che crea la chiave. Per un accesso senza chiave, esegue `claude auth logout` nella sua shell. Per un profilo creato con `ant auth login`, esegue `ant auth logout`. Claude Code rifiuta la sessione se sulla macchina sono presenti sia un profilo sia una chiave API, quindi deve uscire prima.

151* **Credenziali d'ambiente e di helper**: Claude Code rifiuta le sessioni che si autenticano con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper`, anche quando sono fornite dalle impostazioni gestite. Rimuovi queste credenziali, poi chiedi agli sviluppatori di eseguire `/login` per creare una chiave API salvata.

152* **Accessi claude.ai**: Claude Code [rifiuta un accesso](#restrict-login-to-your-organization) a un'organizzazione che non hai elencato, incluso uno già in uso sulla macchina. Per mantenerne uno, aggiungilo a un array `forceLoginOrgUUID`.

153 

143### Autenticazione del provider cloud154### Autenticazione del provider cloud

144 155 

145Per i team che utilizzano Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry:156Per i team che utilizzano Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry:


172* **`claude setup-token` e `/install-github-app`**: applicano solo `forceLoginMethod`, quindi possono coniare un token in un'organizzazione diversa183* **`claude setup-token` e `/install-github-app`**: applicano solo `forceLoginMethod`, quindi possono coniare un token in un'organizzazione diversa

173* **Accesso [gateway](https://code.claude.com/docs/it/claude-apps-gateway)**: selezionato da `forceLoginMethod: "gateway"` piuttosto che limitato da esso, e non autentica rispetto a un'organizzazione Anthropic, quindi `forceLoginOrgUUID` non si applica; utilizzate il vostro provider di identità gateway per limitare l'accesso184* **Accesso [gateway](https://code.claude.com/docs/it/claude-apps-gateway)**: selezionato da `forceLoginMethod: "gateway"` piuttosto che limitato da esso, e non autentica rispetto a un'organizzazione Anthropic, quindi `forceLoginOrgUUID` non si applica; utilizzate il vostro provider di identità gateway per limitare l'accesso

174 185 

175Distribuite le chiavi attraverso il vostro strumento di gestione dei dispositivi. Le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) raggiungono solo gli account che sono già autenticati nella vostra organizzazione, quindi non possono reindirizzare il primo accesso di uno sviluppatore. Se la vostra organizzazione distribuisce anche impostazioni gestite dal server, impostate le chiavi in entrambi i luoghi: le fonti di impostazioni gestite [non si uniscono](https://code.claude.com/docs/it/server-managed-settings.md#settings-precedence), e le impostazioni gestite dal server memorizzate nella cache sostituiscono il file gestito dal dispositivo, a parte alcuni [eccezioni per chiave](https://code.claude.com/docs/it/server-managed-settings.md#per-key-exceptions-across-managed-sources). `forceLoginOrgUUID` e i valori `"claudeai"` e `"console"` di `forceLoginMethod` non sono tra quelle eccezioni, quindi manteneteli in entrambi i luoghi.186Distribuisci `forceLoginMethod` e `forceLoginOrgUUID` tramite i tuoi strumenti di gestione dei dispositivi. Uno sviluppatore riceve le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) solo dopo essersi autenticato nella tua organizzazione, quindi non puoi reindirizzare un primo accesso con quelle impostazioni. Se distribuisci anche impostazioni gestite dal server da claude.ai, imposta entrambe le chiavi anche lì finché ogni client non esegue la v2.1.299 o successiva. Per sapere dove impostare le chiavi in seguito e quale valore della fonte si applica, consulta [Quale fonte gestita fornisce le chiavi di accesso](https://code.claude.com/docs/it/managed-settings.md#which-managed-source-supplies-login-keys).

176 187 

177In una distribuzione [gateway](https://code.claude.com/docs/it/claude-apps-gateway), mantenete anche `forceLoginMethod` e `forceLoginOrgUUID` fuori dalle [impostazioni che il gateway serve](https://code.claude.com/docs/it/claude-apps-gateway-config.md#managed).188In una distribuzione [gateway](https://code.claude.com/docs/it/claude-apps-gateway), mantenete anche `forceLoginMethod` e `forceLoginOrgUUID` fuori dalle [impostazioni che il gateway serve](https://code.claude.com/docs/it/claude-apps-gateway-config.md#managed).

178 189 

Details

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

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

4 4 

5# Addebiti delle richieste del classificatore in modalità auto5# Addebiti per le richieste del classificatore della modalità auto

6 6 

7> Risolvi l'avviso di Claude Code che dice che questa sessione non è idonea per le richieste del classificatore senza addebito della modalità auto: cosa significa, perché appare e cosa fare.7> Risolvi l'avviso di Claude Code secondo cui questa sessione non è idonea alle richieste del classificatore senza addebito della modalità auto: cosa significa, perché compare e cosa fare.

8 8 

9In [auto mode](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), un classificatore controlla azioni come comandi shell e richieste di rete prima che vengano eseguite. Ovunque [i controlli lato server siano attivi](https://code.claude.com/docs/it/permission-modes.md#server-side-classifier-review), il server esegue questi controlli come parte delle richieste del modello della sessione stessa, senza addebito. Questo avviso significa che i controlli del server non stanno raggiungendo la sessione, quindi Claude Code sta effettuando le proprie richieste del classificatore, e sul vostro account queste richieste contano verso l'utilizzo dei token:9In [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), un classificatore controlla azioni come i comandi della shell e le richieste di rete prima che vengano eseguite. Ovunque [i controlli lato server sono attivi](https://code.claude.com/docs/it/permission-modes.md#server-side-classifier-review), il server esegue tali controlli come parte delle richieste al modello della sessione stessa, senza addebito. Questo avviso significa che i controlli del server non raggiungono la tua sessione, quindi Claude Code effettua invece le proprie richieste al classificatore e, sul tuo account, tali richieste vengono conteggiate nel tuo utilizzo di token:

10 10 

11```text theme={null}11```text theme={null}

12We're changing auto mode to no longer charge for classifier requests in Claude Code. However, this session isn't eligible.12We're changing auto mode to no longer charge for classifier requests in Claude Code. However, this session isn't eligible.

13```13```

14 14 

15Al prompt, Claude Code blocca la prima azione che dovrebbe controllare in questo modo finché non rispondi. La modalità auto continua a funzionare, e le sue richieste del classificatore vengono addebitate come prima.15Al prompt, Claude Code trattiene la prima azione che controllerebbe in quel modo finché non rispondi. La modalità auto continua a funzionare e le sue richieste al classificatore vengono fatturate come in precedenza.

16 16 

17La causa più comune è un gateway LLM o un proxy tra Claude Code e l'API, e quando Claude Code riesce a identificarne uno, l'avviso lo nomina. Premi **Invio** per continuare, oppure consulta [Rendere la sessione idonea](#make-the-session-eligible) per evitare che appaia nelle nuove sessioni.17La causa più comune è un gateway LLM o un proxy tra Claude Code e l'API e, quando Claude Code riesce a identificarlo, l'avviso lo nomina. Premi **Enter** per continuare, oppure consulta [Rendere la sessione idonea](#make-the-session-eligible) per evitare che compaia nelle nuove sessioni.

18 18 

19## Rispondere alla notifica19## Rispondere all'avviso

20 20 

21La notifica blocca l'azione fino a quando non rispondete:21L'avviso tiene in sospeso l'azione finché non rispondi:

22 22 

23* **Invio** continua: l'azione bloccata e il resto della sessione utilizzano le richieste di classificazione proprie di Claude Code, fatturate come utilizzo di token come prima, e la notifica non appare di nuovo in quella sessione. Quando la notifica ha nominato un gateway, riconoscerla impedisce che riappaia su questa macchina per 24 ore. Quando non l'ha fatto, la notifica ritorna la prossima volta che una sessione torna indietro.23* **Enter** prosegue: l'azione in sospeso e il resto della sessione usano le richieste al classificatore di Claude Code, fatturate come utilizzo di token come prima, e l'avviso non compare più in quella sessione. Quando l'avviso indicava un gateway, confermarlo evita che ricompaia su questa macchina per 24 ore. Quando non lo indicava, l'avviso torna la prossima volta che una sessione ricorre al fallback.

24* **Esc** o **Ctrl+C** annulla: l'azione bloccata non viene eseguita e il turno corrente si ferma, con la sessione ancora in modalità auto. Nulla viene ricordato, quindi la notifica appare di nuovo prima dell'azione controllata successiva.24* **Esc** o **Ctrl+C** annulla: l'azione in sospeso non viene eseguita e il turno corrente si interrompe, con la sessione ancora in modalità auto. Non viene memorizzato nulla, quindi l'avviso compare di nuovo prima della successiva azione controllata.

25 25 

26Per smettere di utilizzare la modalità auto, passate ai modalità di autorizzazione con `Shift+Tab` dopo aver risposto.26Per smettere invece di usare la modalità auto, cambia modalità di permesso con `Shift+Tab` dopo aver risposto.

27 27 

28Dove la notifica non può attendere una risposta, Claude Code segnala lo stesso testo e la sessione continua in modalità auto, a meno che un riconoscimento gateway su questa macchina negli ultimi 24 ore non l'abbia chiuso. In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `-p` stampa il testo su stderr e nell'output `stream-json` emette un messaggio di avvertimento `system`, che le applicazioni Agent SDK possono leggere dal flusso di messaggi.28Dove l'avviso non può attendere una risposta, Claude Code riporta lo stesso testo e la sessione prosegue in modalità auto, a meno che una conferma relativa a un gateway su questa macchina nelle ultime 24 ore non l'abbia già chiuso. In [modalità non interattiva](https://code.claude.com/docs/it/headless.md) con `-p` stampa il testo su stderr, e nell'output `stream-json` emette un messaggio di avviso `system`, che le applicazioni dell'Agent SDK possono leggere dal flusso dei messaggi.

29 29 

30## Rendere la sessione idonea30## Rendere la sessione idonea

31 31 

Details

50 50 

51Durante l'anteprima di ricerca, i canali personalizzati non sono nella [lista di approvazione approvata](https://code.claude.com/docs/it/channels.md#supported-channels). Usa `--dangerously-load-development-channels` per testare localmente. Vedi [Test durante l'anteprima di ricerca](#test-during-the-research-preview) per i dettagli.51Durante l'anteprima di ricerca, i canali personalizzati non sono nella [lista di approvazione approvata](https://code.claude.com/docs/it/channels.md#supported-channels). Usa `--dangerously-load-development-channels` per testare localmente. Vedi [Test durante l'anteprima di ricerca](#test-during-the-research-preview) per i dettagli.

52 52 

53## Esempio: crea un ricevitore webhook53## Esempio: creare un ricevitore di webhook

54 54 

55Questa procedura dettagliata crea un server a file singolo che ascolta le richieste HTTP e le inoltra nella tua sessione di Claude Code. Alla fine, qualsiasi cosa possa inviare un HTTP POST, come una pipeline CI, un avviso di monitoraggio o un comando `curl`, può inviare eventi a Claude.55Questa procedura guidata crea un server in un singolo file che rimane in ascolto delle richieste HTTP e le inoltra alla tua sessione di Claude Code. Alla fine, qualsiasi cosa in grado di inviare un HTTP POST, come una pipeline CI, un avviso di monitoraggio o un comando `curl`, potrà inviare eventi a Claude.

56 56 

57Questo esempio utilizza [Bun](https://bun.sh) come runtime per il suo server HTTP integrato e il supporto di TypeScript. Puoi utilizzare [Node](https://nodejs.org) o [Deno](https://deno.com) invece; l'unico requisito è l'[MCP SDK](https://www.npmjs.com/package/@modelcontextprotocol/sdk).57Questo esempio usa [Bun](https://bun.sh) come runtime per il suo server HTTP integrato e il supporto a TypeScript. Puoi usare invece [Node](https://nodejs.org) o [Deno](https://deno.com); l'unico requisito è l'[MCP SDK](https://www.npmjs.com/package/@modelcontextprotocol/sdk).

58 58 

59**1. Crea il progetto**59**1. Crea il progetto**

60 60 

61Gli esempi di [relay delle autorizzazioni](#relay-permission-prompts) importano `zod` direttamente, quindi viene installato insieme all'MCP SDK. Crea una nuova directory e installa entrambi:61Gli esempi di [inoltro dei permessi](#relay-permission-prompts) importano `zod` direttamente, quindi va installato insieme all'MCP SDK. Crea una nuova directory e installali entrambi:

62 62 

63```bash theme={null}63```bash theme={null}

64mkdir webhook-channel && cd webhook-channel64mkdir webhook-channel && cd webhook-channel

65bun add @modelcontextprotocol/sdk zod65bun add @modelcontextprotocol/sdk zod

66```66```

67 67 

68**2. Scrivi il server di canale**68**2. Scrivi il server del canale**

69 69 

70Crea un file chiamato `webhook.ts`. Questo è l'intero server di canale: si connette a Claude Code tramite stdio e ascolta i POST HTTP sulla porta 8788. Quando arriva una richiesta, invia il corpo a Claude come evento di canale.70Crea un file chiamato `webhook.ts`. Questo è l'intero server del canale: si connette a Claude Code tramite stdio e rimane in ascolto di HTTP POST sulla porta 8788. Quando arriva una richiesta, invia il corpo a Claude come evento del canale.

71 71 

72```ts title="webhook.ts" theme={null}72```ts title="webhook.ts" theme={null}

73#!/usr/bin/env bun73#!/usr/bin/env bun

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

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

76 76 

77// Crea il server MCP e dichiaralo come canale77// Create the MCP server and declare it as a channel

78const mcp = new Server(78const mcp = new Server(

79 { name: 'webhook', version: '0.0.1' },79 { name: 'webhook', version: '0.0.1' },

80 {80 {

81 // questa chiave è ciò che lo rende un canale — Claude Code registra un listener per essa81 // this key is what makes it a channel — Claude Code registers a listener for it

82 capabilities: { experimental: { 'claude/channel': {} } },82 capabilities: { experimental: { 'claude/channel': {} } },

83 // Claude Code lo consegna a Claude come contesto quando il server si connette, quindi sa come gestire questi eventi83 // Claude Code delivers this to Claude as context when the server connects, so it knows how to handle these events

84 instructions: 'Gli eventi dal canale webhook arrivano come <channel source="webhook" ...>. Sono unidirezionali: leggili e agisci, nessuna risposta prevista.',84 instructions: 'Events from the webhook channel arrive as <channel source="webhook" ...>. They are one-way: read them and act, no reply expected.',

85 },85 },

86)86)

87 87 

88// Connettiti a Claude Code tramite stdio (Claude Code genera questo processo)88// Connect to Claude Code over stdio (Claude Code spawns this process)

89await mcp.connect(new StdioServerTransport())89await mcp.connect(new StdioServerTransport())

90 90 

91// Avvia un server HTTP che inoltra ogni POST a Claude91// Start an HTTP server that forwards every POST to Claude

92Bun.serve({92Bun.serve({

93 port: 8788, // qualsiasi porta aperta funziona93 port: 8788, // any open port works

94 // solo localhost: nulla al di fuori di questa macchina può POST94 // localhost-only: nothing outside this machine can POST

95 hostname: '127.0.0.1',95 hostname: '127.0.0.1',

96 async fetch(req) {96 async fetch(req) {

97 const body = await req.text()97 const body = await req.text()

98 await mcp.notification({98 await mcp.notification({

99 method: 'notifications/claude/channel',99 method: 'notifications/claude/channel',

100 params: {100 params: {

101 content: body, // diventa il corpo del tag <channel>101 content: body, // becomes the body of the <channel> tag

102 // ogni chiave diventa un attributo del tag, ad es. <channel path="/" method="POST">102 // each key becomes a tag attribute, e.g. <channel path="/" method="POST">

103 meta: { path: new URL(req.url).pathname, method: req.method },103 meta: { path: new URL(req.url).pathname, method: req.method },

104 },104 },

105 })105 })


108})108})

109```109```

110 110 

111Il file configura il server, si connette tramite stdio e avvia un listener HTTP, in questo ordine:111Il file configura il server, si connette tramite stdio e avvia un listener HTTP, in quest'ordine:

112 112 

113* **Configurazione del server**: crea il server MCP con `claude/channel` nelle sue capacità, che è ciò che dice a Claude Code che questo è un canale. Claude Code consegna la stringa [`instructions`](#server-options) a Claude come contesto quando il server si connette: dì a Claude quali eventi aspettarsi, se rispondere e come instradare le risposte se dovrebbe.113* **Configurazione del server**: crea il server MCP con `claude/channel` tra le sue capability, ed è questo che indica a Claude Code che si tratta di un canale. Claude Code consegna la stringa [`instructions`](#server-options) a Claude come contesto quando il server si connette: indica a Claude quali eventi aspettarsi, se rispondere e, in caso affermativo, come instradare le risposte.

114* **Connessione stdio**: si connette a Claude Code tramite stdin/stdout. Questo è standard per qualsiasi [server MCP](https://modelcontextprotocol.io/docs/concepts/transports#standard-io).114* **Connessione stdio**: si connette a Claude Code tramite stdin/stdout. Questo è standard per qualsiasi [server MCP](https://modelcontextprotocol.io/docs/concepts/transports#standard-io).

115* **Listener HTTP**: avvia un server web locale sulla porta 8788. Ogni corpo POST viene inoltrato a Claude come evento di canale tramite `mcp.notification()`. Il `content` diventa il corpo dell'evento e ogni voce `meta` diventa un attributo sul tag `<channel>`. Il listener ha bisogno dell'accesso all'istanza `mcp`, quindi viene eseguito nello stesso processo. Potresti dividerlo in moduli separati per un progetto più grande.115* **Listener HTTP**: avvia un server web locale sulla porta 8788. Ogni corpo di POST viene inoltrato a Claude come evento del canale tramite `mcp.notification()`. Il `content` diventa il corpo dell'evento e ogni voce di `meta` diventa un attributo del tag `<channel>`. Il listener ha bisogno di accedere all'istanza `mcp`, quindi viene eseguito nello stesso processo. Per un progetto più grande potresti suddividerlo in moduli separati.

116 116 

117**3. Registra il tuo server con Claude Code**117**3. Registra il server con Claude Code**

118 118 

119Aggiungi il server alla tua configurazione MCP in modo che Claude Code sappia come avviarlo. Per un `.mcp.json` a livello di progetto nella stessa directory, usa un percorso relativo. Per la configurazione a livello di utente in `~/.claude.json`, usa il percorso assoluto completo in modo che il server possa essere trovato da qualsiasi progetto:119Aggiungi il server alla tua configurazione MCP in modo che Claude Code sappia come avviarlo. Per un `.mcp.json` a livello di progetto nella stessa directory, usa un percorso relativo. Per la configurazione a livello utente in `~/.claude.json`, usa il percorso assoluto completo, così il server può essere trovato da qualsiasi progetto:

120 120 

121```json title=".mcp.json" theme={null}121```json title=".mcp.json" theme={null}

122{122{


126}126}

127```127```

128 128 

129Claude Code legge la tua configurazione MCP all'avvio e genera ogni server come un sottoprocesso.129Claude Code legge la tua configurazione MCP all'avvio e avvia ciascun server come sottoprocesso.

130 130 

131**4. Testalo**131**4. Provalo**

132 132 

133Durante l'anteprima di ricerca, i canali personalizzati non sono nella lista di approvazione, quindi avvia Claude Code con il flag di sviluppo:133Durante l'anteprima di ricerca, i canali personalizzati non sono nell'allowlist, quindi avvia Claude Code con il flag di sviluppo:

134 134 

135```bash theme={null}135```bash theme={null}

136claude --dangerously-load-development-channels server:webhook136claude --dangerously-load-development-channels server:webhook

137```137```

138 138 

139Claude Code mostra prima una finestra di dialogo di avviso a schermo intero che elenca i canali di sviluppo che stai caricando. Seleziona **Sto utilizzando questo per lo sviluppo locale** per continuare, o **Esci** per uscire.139Claude Code mostra prima una finestra di avviso a schermo intero che elenca i canali di sviluppo che stai caricando. Seleziona **I am using this for local development** per continuare, oppure **Exit** per uscire.

140 140 

141La prima volta che avvii una sessione in questo progetto, Claude Code chiede il consenso prima di utilizzare il nuovo server da `.mcp.json`. La finestra di dialogo segnala "Nuovo server MCP trovato in questo progetto: webhook". Seleziona **Usa questo server MCP** per continuare.141La prima volta che avvii una sessione in questo progetto, Claude Code chiede anche il consenso prima di usare il nuovo server da `.mcp.json`. La finestra di dialogo riporta "New MCP server found in this project: webhook". Seleziona **Use this MCP server** per continuare.

142 142 

143Dopo che accetti, Claude Code genera il tuo `webhook.ts` come un sottoprocesso e il listener HTTP si avvia automaticamente sulla porta che hai configurato (8788 in questo esempio). Non è necessario eseguire il server da solo.143Dopo che hai accettato, Claude Code avvia il tuo `webhook.ts` come sottoprocesso e il listener HTTP si avvia automaticamente sulla porta che hai configurato, 8788 in questo esempio. Non devi eseguire il server tu stesso.

144 144 

145Un avviso attenuato sotto il banner di avvio conferma che il canale è registrato: `Channels (experimental) messages from server:webhook inject directly in this session · restart without --dangerously-load-development-channels to stop`.145Un avviso in grigio sotto il banner di avvio conferma che il canale è registrato: `Channels (experimental) messages from server:webhook inject directly in this session · restart without --dangerously-load-development-channels to stop`.

146 146 

147Se vedi "bloccato dalla politica dell'organizzazione", il tuo amministratore dell'organizzazione deve prima [abilitare i canali](https://code.claude.com/docs/it/channels.md#enterprise-controls).147Se vedi "blocked by org policy", l'amministratore della tua organizzazione deve prima [abilitare i canali](https://code.claude.com/docs/it/channels.md#enterprise-controls).

148 148 

149In un terminale separato, simula un webhook inviando un HTTP POST con un messaggio al tuo server. Questo esempio invia un avviso di errore CI alla porta 8788 (o qualsiasi porta tu abbia configurato):149In un terminale separato, simula un webhook inviando un HTTP POST con un messaggio al tuo server. Questo esempio invia un avviso di errore CI alla porta 8788 (o a qualsiasi porta tu abbia configurato):

150 150 

151```bash theme={null}151```bash theme={null}

152curl -X POST localhost:8788 -d "build failed on main: https://ci.example.com/run/1234"152curl -X POST localhost:8788 -d "build failed on main: https://ci.example.com/run/1234"

153```153```

154 154 

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

156 156 

157```text theme={null}157```text theme={null}

158<channel source="webhook" path="/" method="POST">158<channel source="webhook" path="/" method="POST">


160</channel>160</channel>

161```161```

162 162 

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

164 164 

165Se l'evento non arriva, la diagnosi dipende da ciò che `curl` ha restituito:165Se l'evento non arriva, la diagnosi dipende da ciò che ha restituito `curl`:

166 166 

167* **`curl` ha successo ma nulla raggiunge Claude**: esegui `/mcp` nella tua sessione per controllare lo stato del server. Uno stato `failed` di solito significa un errore di dipendenza o importazione nel tuo file server. Per vedere la traccia stderr, riavvia con `claude --debug --dangerously-load-development-channels server:webhook` e controlla il log di debug in `~/.claude/debug/<session-id>.txt`.167* **`curl` ha successo ma nulla raggiunge Claude**: esegui `/mcp` nella tua sessione per controllare lo stato del server. Uno stato `failed` di solito indica un errore di dipendenza o di importazione nel file del server. Per vedere la traccia di stderr, riavvia con `claude --debug --dangerously-load-development-channels server:webhook` e controlla il log di debug in `~/.claude/debug/<session-id>.txt`.

168* **`curl` fallisce con "connessione rifiutata"**: la porta non è ancora associata o un processo stantio da un'esecuzione precedente la sta mantenendo. `lsof -i :<port>` mostra cosa sta ascoltando; `kill` il processo stantio prima di riavviare la tua sessione.168* **`curl` fallisce con "connection refused"**: la porta non è ancora associata oppure un processo residuo di un'esecuzione precedente la sta occupando. `lsof -i :<port>` mostra cosa è in ascolto; termina il processo residuo con `kill` prima di riavviare la sessione.

169 169 

170Il [server fakechat](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/fakechat) estende questo modello con un'interfaccia web, allegati di file e uno strumento di risposta per chat bidirezionale.170Il [server fakechat](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/fakechat) estende questo schema con un'interfaccia web, allegati di file e uno strumento di risposta per la chat bidirezionale.

171 171 

172## Test durante l'anteprima di ricerca172## Test durante l'anteprima di ricerca

173 173 

checkpointing.md +24 −24

Details

8 8 

9Claude Code traccia automaticamente le modifiche ai file di Claude mentre lavori, permettendoti di annullare rapidamente le modifiche e tornare a stati precedenti se qualcosa non va come previsto.9Claude Code traccia automaticamente le modifiche ai file di Claude mentre lavori, permettendoti di annullare rapidamente le modifiche e tornare a stati precedenti se qualcosa non va come previsto.

10 10 

11## Come funziona il checkpointing11## Come funzionano i checkpoint

12 12 

13Mentre lavori con Claude, il checkpointing cattura automaticamente lo stato del tuo codice prima di ogni prompt che invii e che avvia un turno.13Mentre lavori con Claude, il checkpointing acquisisce automaticamente lo stato del tuo codice prima di ogni prompt che invii e che avvia un turno.

14 14 

15### Tracciamento automatico15### Tracciamento automatico

16 16 

17Claude Code traccia tutti i cambiamenti effettuati dai suoi strumenti di modifica dei file:17Claude Code traccia tutte le modifiche apportate dai suoi strumenti di modifica dei file:

18 18 

19* Ogni prompt che invii e che avvia un turno crea un nuovo checkpoint19* Ogni prompt che invii e che avvia un turno crea un nuovo checkpoint

20* Claude Code mantiene snapshot dei file per i 100 checkpoint più recenti in una sessione. L'eliminazione di un checkpoint più vecchio cancella i file snapshot che nessun checkpoint rimanente referenzia, ad eccezione del primo snapshot di ogni file, che l'estensione VS Code utilizza come baseline per i suoi diff di sessione.20* Claude Code conserva gli snapshot dei file per i 100 checkpoint più recenti di una sessione. L'eliminazione di un checkpoint più vecchio cancella i file di snapshot a cui non fa riferimento nessuno dei checkpoint rimanenti, eccetto il primo snapshot di ciascun file, che l'estensione VS Code usa come base per i diff della sessione.

21* Claude Code salva i checkpoint con la conversazione, quindi puoi comunque eseguire `/rewind` dopo aver ripreso una sessione21* Claude Code salva i checkpoint insieme alla conversazione, quindi puoi comunque eseguire `/rewind` dopo aver ripreso una sessione

22* Claude Code elimina gli snapshot dei file di una sessione nella [retention sweep](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), per impostazione predefinita circa 30 giorni dopo l'ultimo salvataggio della sessione. Il riavvolgimento a un checkpoint i cui snapshot sono scomparsi può fallire con [`No files were restored`](https://code.claude.com/docs/it/errors#no-files-were-restored). Per mantenere gli snapshot più a lungo, imposta [`cleanupPeriodDays`](https://code.claude.com/docs/it/settings-reference#cleanupperioddays).22* Claude Code elimina gli snapshot dei file di una sessione durante la [pulizia di conservazione](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), per impostazione predefinita circa 30 giorni dopo l'ultimo salvataggio di uno snapshot da parte della sessione. Il ritorno a un checkpoint i cui snapshot non esistono più può fallire con [`No files were restored`](https://code.claude.com/docs/it/errors#no-files-were-restored). Per conservare gli snapshot più a lungo, imposta [`cleanupPeriodDays`](https://code.claude.com/docs/it/settings-reference#cleanupperioddays).

23 23 

24### Riavvolgi e riassumi24### Riavvolgere e riassumere

25 25 

26Esegui `/rewind`, oppure premi `Esc` due volte quando il campo di input del prompt è vuoto, per aprire il menu di riavvolgimento.26Esegui `/rewind`, oppure premi `Esc` due volte quando il campo di input del prompt è vuoto, per aprire il menu di riavvolgimento.

27 27 

28> [!NOTE]28> [!NOTE]

29>29>

30> Se il campo di input del prompt contiene testo, doppio `Esc` lo cancella invece di aprire il menu. Il testo cancellato viene salvato nella cronologia di input, quindi premi `Su` per richiamarlo dopo aver terminato nel menu di riavvolgimento.30> Se il campo di input del prompt contiene testo, il doppio `Esc` lo cancella invece di aprire il menu. Il testo cancellato viene salvato nella cronologia di input, quindi premi `Up` per richiamarlo dopo aver finito con il menu di riavvolgimento.

31 31 

32Il menu di riavvolgimento elenca i prompt che hai inviato durante la sessione. Seleziona il punto su cui desideri agire, quindi scegli un'azione:32Il menu di riavvolgimento elenca i prompt che hai inviato durante la sessione. Seleziona il punto su cui vuoi agire, quindi scegli un'azione:

33 33 

34* **Ripristina codice e conversazione**: ripristina sia il codice che la conversazione a quel punto34* **Restore code and conversation**: ripristina sia il codice sia la conversazione a quel punto

35* **Ripristina conversazione**: riavvolgi al messaggio mantenendo il codice attuale35* **Restore conversation**: riavvolge fino a quel messaggio mantenendo il codice attuale

36* **Ripristina codice**: ripristina le modifiche ai file mantenendo la conversazione36* **Restore code**: annulla le modifiche ai file mantenendo la conversazione

37* **Riassumi da qui**: comprimi la conversazione da questo punto in avanti in un riassunto, liberando spazio nella context window37* **Summarize from here**: comprime la conversazione da questo punto in avanti in un riepilogo, liberando spazio nella finestra di contesto

38* **Riassumi fino a qui**: comprimi la conversazione prima di questo punto in un riassunto, mantenendo i messaggi successivi intatti38* **Summarize up to here**: comprime la conversazione precedente a questo punto in un riepilogo, lasciando intatti i messaggi successivi

39* **Non importa**: torna all'elenco dei messaggi senza apportare modifiche39* **Never mind**: torna all'elenco dei messaggi senza apportare modifiche

40 40 

41Le due opzioni di ripristino del codice appaiono solo quando il checkpoint selezionato ha tracciato modifiche ai file da ripristinare. Se nessuna modifica ai file è stata acquisita dopo quel punto, il menu offre solo **Ripristina conversazione**, le opzioni di riassunto e **Non importa**.41Le due opzioni di ripristino del codice compaiono solo quando il checkpoint selezionato ha modifiche ai file tracciate da annullare. Se dopo quel punto non è stata acquisita alcuna modifica ai file, il menu offre solo **Restore conversation**, le opzioni di riepilogo e **Never mind**.

42 42 

43Dopo aver ripristinato la conversazione o aver scelto Riassumi da qui, il prompt originale dal messaggio selezionato viene ripristinato nel campo di input in modo che tu possa reinviarlo o modificarlo.43Dopo aver ripristinato la conversazione o scelto Summarize from here, il prompt originale del messaggio selezionato viene reinserito nel campo di input, così puoi inviarlo di nuovo o modificarlo.

44 44 

45Scegliendo Riassumi fino a qui ti lascia alla fine della conversazione con l'input vuoto. Con entrambe le opzioni di riassunto, un marcatore **Summarized conversation** appare nella conversazione dove i messaggi compressi erano.45Scegliendo Summarize up to here rimani alla fine della conversazione con il campo di input vuoto. Con entrambe le opzioni di riepilogo, un indicatore **Summarized conversation** compare nella conversazione nel punto in cui si trovavano i messaggi compressi.

46 46 

47#### I messaggi riavvolti possono ricomparire se esci prima del prompt successivo47#### I messaggi riavvolti possono ricomparire se esci prima del prompt successivo

48 48 

49Per rimuovere di nuovo i messaggi ricomparsi, esegui `/rewind` nella sessione e seleziona lo stesso prompt, quindi **Ripristina conversazione**. Prima di uscire, invia un prompt a Claude, perché Claude Code salva la conversazione riavvolta insieme a quel prompt. I file che hai ripristinato restano come li ha lasciati il riavvolgimento.49Per rimuovere di nuovo i messaggi ricomparsi, esegui `/rewind` nella sessione e seleziona lo stesso prompt, quindi **Restore conversation**. Prima di uscire, invia un prompt a Claude, perché Claude Code salva la conversazione riavvolta insieme a quel prompt. I file che hai ripristinato rimangono come li ha lasciati il riavvolgimento.

50 50 

51#### Riavvolgi oltre una conversazione cancellata51#### Riavvolgere oltre una conversazione cancellata

52 52 

53Se hai eseguito `/clear` in precedenza nello stesso processo Claude Code, il menu di riavvolgimento mostra una voce aggiuntiva in cima all'elenco etichettata `/resume <session-id> (previous session)`. Selezionala per riprendere la conversazione che era attiva prima che `/clear` venisse eseguito. La voce è disponibile fino a quando non esci da Claude Code o riprendi una sessione diversa.53Se hai eseguito `/clear` in precedenza nello stesso processo di Claude Code, il menu di riavvolgimento mostra una voce aggiuntiva in cima all'elenco con l'etichetta `/resume <session-id> (previous session)`. Selezionala per riprendere la conversazione che era attiva prima dell'esecuzione di `/clear`. La voce è disponibile finché non esci da Claude Code o non riprendi un'altra sessione.

54 54 

55#### Guida un riassunto55#### Guidare un riepilogo

56 56 

57Il riassunto non modifica i file su disco, e i messaggi originali rimangono nella trascrizione della sessione, quindi Claude può comunque fare riferimento ai dettagli. Per guidare su cosa si concentra il riassunto, evidenzia un'opzione **Summarize** con i tasti freccia e digita le istruzioni dove la riga legge **add context (optional)**, quindi premi `Enter`. Selezionando l'opzione con il suo tasto numerico si riassume immediatamente senza istruzioni.57Il riepilogo non modifica i file su disco e i messaggi originali rimangono nella trascrizione della sessione, quindi Claude può ancora fare riferimento ai dettagli. Per guidare l'argomento su cui si concentra il riepilogo, evidenzia un'opzione **Summarize** con i tasti freccia e digita le istruzioni dove la riga indica **add context (optional)**, quindi premi `Enter`. Selezionando l'opzione con il relativo tasto numerico il riepilogo viene creato immediatamente, senza istruzioni.

58 58 

59> [!NOTE]59> [!NOTE]

60>60>

61> Summarize ti mantiene nella stessa sessione e comprime il contesto, come un `/compact` mirato. Per creare un ramo e provare un approccio diverso preservando la sessione originale intatta, usa [`/branch`](https://code.claude.com/docs/it/sessions#branch-a-session) o `claude --continue --fork-session` invece.61> Il riepilogo ti mantiene nella stessa sessione e comprime il contesto, come un `/compact` mirato. Per creare un branch e provare un approccio diverso preservando intatta la sessione originale, usa invece [`/branch`](https://code.claude.com/docs/it/sessions#branch-a-session) oppure `claude --continue --fork-session`.

62 62 

63## Casi d'uso comuni63## Casi d'uso comuni

64 64 

chrome.md +27 −27

Details

59claude --chrome59claude --chrome

60```60```

61 61 

62La prima volta che avvii con Chrome, Claude Code mostra una finestra di dialogo una tantum che introduce l'integrazione e spiega come funzionano i permessi del sito. Premi Invio per continuare.62La prima volta che avvii con Chrome, Claude Code mostra una finestra di dialogo, visualizzata una sola volta, che presenta l'integrazione e spiega come funzionano i permessi dei siti. Premi Enter per continuare.

63 63 

64Per abilitare Chrome per le sessioni future senza il flag, vedi [Abilita Chrome per impostazione predefinita](#enable-chrome-by-default).64Per abilitare Chrome nelle sessioni future senza il flag, consulta [Abilitare Chrome per impostazione predefinita](#enable-chrome-by-default).

65 65 

66**2. Chiedi a Claude di usare il browser**66**2. Chiedi a Claude di usare il browser**

67 67 

68Questo esempio naviga verso una pagina, interagisce con essa e segnala ciò che trova, tutto dal tuo terminale o editor:68Questo esempio naviga verso una pagina, interagisce con essa e riporta ciò che trova, il tutto dal tuo terminale o editor:

69 69 

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

71Go to code.claude.com/docs, click on the search box,71Go to code.claude.com/docs, click on the search box,

72type "hooks", and tell me what results appear72type "hooks", and tell me what results appear

73```73```

74 74 

75Se Claude Code chiede il permesso prima di un'azione del browser, approvalo. La finestra di dialogo inizia con `Claude in Chrome wants to` e offre un'opzione per consentire tutte le azioni su quel sito per la sessione. Claude apre una nuova scheda e avvia l'attività.75Se Claude Code chiede il permesso prima di un'azione nel browser, approvala. La finestra di dialogo inizia con `Claude in Chrome wants to` e offre un'opzione per consentire tutte le azioni su quel sito per la sessione. Claude apre una nuova scheda e avvia l'attività.

76 76 

77Esegui `/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".77Esegui `/chrome` in qualsiasi momento per verificare lo stato della connessione, gestire i permessi, riconnettere l'estensione o scegliere quale browser connesso usare. L'integrazione funziona quando il pannello di stato mostra "Status: Enabled" e "Extension: Installed".

78 78 

79Se 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.79Se è connesso più di un browser, scegli tu quale usa Claude. Quando un'azione nel browser inizia prima che tu abbia scelto, Claude ti chiede di selezionarne uno. Per cambiare browser in seguito, esegui `/chrome` e seleziona **Select browser…**. Claude continua a usare la tua scelta anche quando si connette un altro browser.

80 80 

81Per VS Code, vedi [automazione del browser in VS Code](https://code.claude.com/docs/it/vs-code.md#automate-browser-tasks-with-chrome).81Per VS Code, consulta [automazione del browser in VS Code](https://code.claude.com/docs/it/vs-code.md#automate-browser-tasks-with-chrome).

82 82 

83### Installa l'estensione quando Claude lo chiede83### Installare l'estensione quando Claude lo chiede

84 84 

85Quando Claude ha bisogno del tuo browser in una sessione interattiva e Claude Code non rileva l'estensione, Claude Code mostra un prompt di installazione intitolato "Claude wants to use your browser". Claude Code chiede al massimo una volta per sessione.85Quando Claude ha bisogno del tuo browser in una sessione interattiva e Claude Code non rileva l'estensione, Claude Code mostra una richiesta di installazione intitolata "Claude wants to use your browser". Claude Code lo chiede al massimo una volta per sessione.

86 86 

87Il prompt offre tre scelte:87La richiesta offre tre scelte:

88 88 

89* **Install extension**: apre la pagina di installazione dell'estensione nel tuo browser e avvia una configurazione guidata. Claude Code attende l'installazione, connette l'estensione e abilita gli strumenti del browser nella stessa sessione. Quando la connessione è pronta, seleziona "Continue with browser tools" e Claude riprende l'attività nel tuo browser. Puoi uscire dalla configurazione selezionando "Continue without browser tools" e completare in seguito con `/chrome`.89* **Install extension**: apre la pagina di installazione dell'estensione nel tuo browser e avvia una configurazione guidata. Claude Code attende l'installazione, connette l'estensione e abilita gli strumenti del browser nella stessa sessione. Quando la connessione è pronta, seleziona "Continue with browser tools" e Claude riprende l'attività nel tuo browser. Puoi uscire dalla configurazione selezionando "Continue without browser tools" e completarla in seguito con `/chrome`.

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

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

92 92 

93Due politiche MCP gestite disattivano il prompt:93Due policy MCP gestite disattivano la richiesta:

94 94 

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

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

97 97 

98### Abilita Chrome per impostazione predefinita98### Abilitare Chrome per impostazione predefinita

99 99 

100Per connettere Chrome senza passare `--chrome` ogni volta, esegui `/chrome` in una sessione CLI e seleziona **Enabled by default**. Nell'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md#automate-browser-tasks-with-chrome), digita `/chrome` nella casella del prompt e attiva l'interruttore **Enabled by default**. Le due condividono un'unica impostazione, quindi attivarla in uno dei due punti la attiva sia per la CLI sia per VS Code.100Per connettere Chrome senza passare `--chrome` ogni volta, esegui `/chrome` in una sessione della CLI e seleziona **Enabled by default**. Nell'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md#automate-browser-tasks-with-chrome), digita `/chrome` nella casella del prompt e attiva l'interruttore **Enabled by default**. Le due condividono un'unica impostazione, quindi attivarla in uno dei due punti la attiva sia per la CLI sia per VS Code.

101 101 

102Con l'impostazione attiva e Claude Code v2.1.287 o successiva, ogni sessione VS Code si connette al tuo browser all'avvio, così Claude può usarlo prima che tu digiti `@browser`. Nelle versioni precedenti, o con l'impostazione disattivata, una sessione VS Code si connette quando digiti `@browser`.102Con l'impostazione attiva e Claude Code v2.1.287 o successiva, ogni sessione di VS Code si connette al tuo browser all'avvio, così Claude può usarlo prima che tu digiti `@browser`. Nelle versioni precedenti, o con l'impostazione disattivata, una sessione di VS Code si connette quando digiti `@browser`.

103 103 

104Claude Code si avvia normalmente quando Chrome non è in esecuzione.104Claude Code si avvia normalmente quando Chrome non è in esecuzione.

105 105 

106> [!NOTE]106> [!NOTE]

107>107>

108> L'abilitazione di Chrome per impostazione predefinita aumenta l'utilizzo del contesto poiché gli strumenti del browser e le relative istruzioni vengono sempre caricati. Se noti un aumento del consumo di contesto, disattiva l'impostazione e connettiti solo quando necessario, con `--chrome` nella CLI o digitando [`@browser`](https://code.claude.com/docs/it/vs-code#automate-browser-tasks-with-chrome) nella casella del prompt di VS Code.108> Abilitare Chrome per impostazione predefinita aumenta l'utilizzo del contesto, poiché gli strumenti del browser e le relative istruzioni vengono sempre caricati. Se noti un aumento del consumo di contesto, disattiva l'impostazione e connettiti solo quando necessario, con `--chrome` nella CLI o digitando [`@browser`](https://code.claude.com/docs/it/vs-code#automate-browser-tasks-with-chrome) nella casella del prompt di VS Code.

109 109 

110### Gestisci i permessi del sito110### Gestire i permessi dei siti

111 111 

112I 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](https://code.claude.com/docs/it/permission-modes.md#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.112I permessi a livello di sito vengono ereditati dall'estensione Chrome. Gestisci i permessi nelle impostazioni dell'estensione Chrome per controllare su quali siti Claude può navigare, fare clic e digitare. In [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), quando è il classificatore della modalità auto stesso ad approvare una chiamata del browser verso un sito, l'estensione salta il proprio controllo per sito per quella chiamata, a meno che le tue regole di permesso neghino qualsiasi sito a Claude in Chrome.

113 113 

114### Richieste di permesso nelle sessioni VS Code114### Richieste di permesso nelle sessioni di VS Code

115 115 

116In una sessione VS Code, quando Claude Code ti chiede conferma prima di un'azione del browser, la richiesta appare come un riquadro nel pannello della chat. Quando l'azione riguarda un sito che non hai consentito, il riquadro offre anche di consentire quel sito.116In una sessione di VS Code, quando Claude Code chiede conferma prima di un'azione nel browser, la richiesta appare come una scheda nel pannello della chat. Quando l'azione riguarda un sito che non hai consentito, la scheda offre anche la possibilità di consentire quel sito.

117 117 

118In una sessione che si è connessa al tuo browser all'avvio perché l'impostazione [Enabled by default](#enable-chrome-by-default) è attiva, Claude Code ti chiede conferma prima delle azioni del browser su un sito che non hai consentito, nelle modalità Manual, Edit automatically, Auto e Bypass permissions. Nelle modalità Auto e Bypass permissions, questo vale finché non digiti `@browser` in quella sessione.118In una sessione che si è connessa al tuo browser all'avvio perché [Enabled by default](#enable-chrome-by-default) è attivo, Claude Code ti chiede conferma prima delle azioni nel browser su un sito che non hai consentito, nelle modalità di permesso Manual, Edit automatically, Auto e Bypass permissions. Nelle modalità Auto e Bypass permissions, questo vale finché non digiti `@browser` in quella sessione.

119 119 

120### Strumenti del browser in plan mode120### Strumenti del browser in plan mode

121 121 

122In [plan mode](https://code.claude.com/docs/it/permission-modes.md#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](https://code.claude.com/docs/it/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) e [il recupero del feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching) è disattivato, queste chiamate vengono eseguite senza una richiesta di permesso.122In [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode), appare una richiesta di permesso prima che Claude registri una GIF, apra una nuova scheda o esegua una scorciatoia. In una sessione interattiva della CLI, se la [modalità bypass permissions è disponibile](https://code.claude.com/docs/it/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) e il [recupero dei feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching) è disattivato, queste chiamate vengono eseguite senza richiesta.

123 123 

124Anche una chiamata `tabs_context_mcp` richiede conferma quando imposta `createIfEmpty`, e così fa una chiamata `browser_batch` che include una qualsiasi di queste azioni.124Anche una chiamata `tabs_context_mcp` chiede conferma quando imposta `createIfEmpty`, così come una chiamata `browser_batch` che include una qualsiasi di queste azioni.

125 125 

126## Flussi di lavoro di esempio126## Flussi di lavoro di esempio

127 127 

Details

57 57 

58## Guida rapida58## Guida rapida

59 59 

60Questa guida rapida percorre il percorso minimo: registra un client OAuth nel tuo IdP, scrivi un `gateway.yaml`, esegui il gateway insieme a Postgres con Docker Compose, e verifica l'accesso end-to-end. Utilizza un upstream Amazon Bedrock; Claude Platform su AWS, Agent Platform di Google Cloud, Microsoft Foundry e l'API Anthropic sono ugualmente supportati scambiando il blocco `upstreams` come mostrato nel [riferimento di configurazione](https://code.claude.com/docs/it/claude-apps-gateway-config.md#upstreams). Alla fine hai un gateway a cui uno sviluppatore può `/login`.60Questa guida rapida percorre il cammino minimo: registra un client OAuth nel tuo IdP, scrivi un `gateway.yaml`, esegui il gateway insieme a Postgres con Docker Compose e verifica l'accesso end-to-end. Usa un upstream Amazon Bedrock; Claude Platform on AWS, Google Cloud's Agent Platform, Microsoft Foundry e l'API Anthropic sono ugualmente supportati sostituendo il blocco `upstreams` come mostrato nel [riferimento di configurazione](https://code.claude.com/docs/it/claude-apps-gateway-config.md#upstreams). Alla fine avrai un gateway a cui uno sviluppatore può accedere con `/login`.

61 61 

62> [!NOTE]62> [!NOTE]

63>63>

64> **Distribuisci sulla tua rete privata.** Claude Code si connette solo a un gateway il cui indirizzo è privato. Questo è un meccanismo di sicurezza, perché un gateway affidabile può spingere impostazioni che eseguono comandi su macchine sviluppatore. Posiziona il gateway dietro un load balancer interno o una VPN e assegnagli un nome host che si risolve solo in IP privati. Se la tua rete interna è numerata da spazio IPv4 pubblico che la tua organizzazione possiede, vedi [Consenti un gateway su spazio di indirizzi pubblici che possiedi](#allow-a-gateway-on-public-address-space-you-own).64> **Esegui il deploy sulla tua rete privata.** Claude Code si connette solo a un gateway il cui indirizzo è privato. Si tratta di una protezione di sicurezza, perché un gateway attendibile può inviare impostazioni che eseguono comandi sulle macchine degli sviluppatori. Metti il gateway dietro un load balancer interno o una VPN e assegnagli un hostname che si risolva solo in IP privati. Se la tua rete interna è numerata con spazio IPv4 pubblico di proprietà della tua organizzazione, consulta [Consentire un gateway su spazio di indirizzi pubblici di tua proprietà](#allow-a-gateway-on-public-address-space-you-own).

65 65 

66### Prerequisiti66### Prerequisiti

67 67 

68Avere questi in atto prima di iniziare:68Prima di iniziare, assicurati di avere quanto segue:

69 69 

70| Hai bisogno | Dettagli |70| Ti serve | Dettagli |

71| - | - |71| - | - |

72| Claude Code v2.1.195 o successivo | Il sottocomando `claude gateway` e il flusso di accesso al gateway vengono spediti in v2.1.195. Le build pubbliche precedenti non le includono. Sia la macchina che esegue il server gateway che la macchina di ogni sviluppatore devono essere su v2.1.195 o successivo; esegui `claude update` per ottenere l'ultimo rilascio. L'[upstream Claude Platform su AWS](https://code.claude.com/docs/it/claude-apps-gateway-config.md#claude-platform-on-aws) richiede Claude Code v2.1.198 o successivo sul server gateway. |72| Claude Code v2.1.195 o successivo | Il sottocomando `claude gateway` e il flusso di accesso del gateway sono inclusi dalla v2.1.195. Le build pubbliche precedenti non li includono. Sia la macchina che esegue il server del gateway sia la macchina di ogni sviluppatore devono avere la v2.1.195 o successiva; esegui `claude update` per ottenere l'ultima release. L'[upstream Claude Platform on AWS](https://code.claude.com/docs/it/claude-apps-gateway-config.md#claude-platform-on-aws) richiede Claude Code v2.1.198 o successivo sul server del gateway. |

73| Provider di identità OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, o Dex, o qualsiasi altro IdP conforme a OIDC come PingFederate. Il gateway esegue il discovery OIDC standard e il flusso del codice di autorizzazione rispetto ad esso. SAML e LDAP non sono supportati. |73| Provider di identità OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak o Dex, oppure qualsiasi altro IdP conforme a OIDC come PingFederate. Il gateway esegue la discovery OIDC standard e il flusso authorization-code verso di esso. SAML e LDAP non sono supportati. |

74| PostgreSQL 11 o successivo | Supporta il flusso di accesso del dispositivo e i contatori dei rate limit. Funziona un servizio PostgreSQL gestito, incluso il livello più piccolo; vedi [quali database sono supportati](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#postgres). Con [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md), contiene anche tabelle di spesa durevole, audit e identità che dovrebbero essere sottoposte a backup. TLS tramite `?sslmode=require` è consigliato. PostgreSQL 11, 12 e 13 richiedono Claude Code v2.1.290 o successivo sul server gateway. Il progetto PostgreSQL non mantiene più quelle versioni, quindi usane una più recente dove puoi. |74| PostgreSQL 11 o successivo | Supporta il flusso di accesso del dispositivo e i contatori dei rate limit. Funziona anche un servizio PostgreSQL gestito, incluso il tier più piccolo; consulta [quali database sono supportati](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#postgres). Con i [limiti di spesa](https://code.claude.com/docs/it/claude-apps-gateway-spend-limits.md), contiene anche tabelle durevoli di spesa, audit e identità di cui è opportuno eseguire il backup. Si consiglia TLS tramite `?sslmode=require`. PostgreSQL 11, 12 e 13 richiedono Claude Code v2.1.290 o successivo sul server del gateway. Il progetto PostgreSQL non mantiene più quelle versioni, quindi usane una più recente quando possibile. |

75| Upstream del modello | Credenziali Amazon Bedrock, credenziali Claude Platform su AWS, credenziali Google Cloud, una risorsa Microsoft Foundry o una chiave API Anthropic. Sono supportati più upstream con failover. |75| Upstream del modello | Credenziali Amazon Bedrock, credenziali Claude Platform on AWS, credenziali Google Cloud, una risorsa Microsoft Foundry o una chiave API Anthropic. Sono supportati più upstream con failover. |

76| HTTPS | Il gateway deve essere raggiungibile su `https://` dai laptop degli sviluppatori e da qualsiasi browser utilizzato per l'accesso; il gateway serve la pagina di verifica del dispositivo sullo stesso listener. Fornisci un certificato TLS tramite `listen.tls` o esegui dietro un ingresso che termina TLS, e imposta `listen.public_url` all'origine esterna in entrambi i casi. Su `/login`, Claude Code accetta un'origine `http://` semplice solo quando l'host del gateway è loopback: `localhost`, `127.0.0.1`, o `::1`. |76| HTTPS | Il gateway deve essere raggiungibile tramite `https://` dai laptop degli sviluppatori e da qualsiasi browser usato per l'accesso; il gateway serve la pagina di verifica del dispositivo sullo stesso listener. Fornisci un certificato TLS tramite `listen.tls` oppure esegui il gateway dietro un ingress che termina TLS, e in entrambi i casi imposta `listen.public_url` sull'origine esterna. Con `/login`, Claude Code accetta un'origine `http://` semplice solo quando l'host del gateway è di loopback: `localhost`, `127.0.0.1` o `::1`. |

77| Indirizzo di rete privata | Su `/login`, Claude Code richiede che il nome host o l'indirizzo IP del gateway si risolvano solo in indirizzi privati: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7`, o loopback. Per un gateway che ospiti, qualsiasi indirizzo pubblico al di fuori di un blocco che dichiari è rifiutato; vedi il [modello di minaccia](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#threat-model-summary) nella guida di distribuzione. Se le macchine degli sviluppatori instradano HTTPS attraverso un proxy aziendale, l'accesso richiede anche che l'host proxy si risolva in indirizzi privati; se non lo fa, aggiungi l'host del gateway a `NO_PROXY` in modo che il CLI si connetta direttamente. Se la tua rete interna è numerata da spazio IPv4 pubblico che la tua organizzazione possiede, [dichiara quei blocchi](#allow-a-gateway-on-public-address-space-you-own) in modo che `/login` accetti un gateway lì. |77| Indirizzo di rete privata | Con `/login`, Claude Code richiede che l'hostname o l'indirizzo IP del gateway si risolva solo in indirizzi privati: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7` o loopback. Per un gateway che ospiti tu, qualsiasi indirizzo pubblico al di fuori di un blocco che dichiari viene rifiutato; consulta il [modello delle minacce](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#threat-model-summary) nella guida al deploy. Se le macchine degli sviluppatori instradano HTTPS attraverso un proxy aziendale, l'accesso richiede anche che l'host del proxy si risolva in indirizzi privati; in caso contrario, aggiungi l'host del gateway a `NO_PROXY` in modo che la CLI si connetta direttamente. Se la tua rete interna è numerata con spazio IPv4 pubblico di proprietà della tua organizzazione, [dichiara quei blocchi](#allow-a-gateway-on-public-address-space-you-own) in modo che `/login` accetti un gateway lì. |

78| Runtime Linux | Il server gateway viene eseguito solo sul binario Linux nativo. macOS funziona per lo sviluppo locale. Windows non è supportato come piattaforma server. |78| Runtime Linux | Il server del gateway funziona solo con il binario nativo per Linux. macOS funziona per lo sviluppo locale. Windows non è supportato come piattaforma server. |

79 79 

80### Passaggi80### Passaggi

81 81 

82**1. Registra un client OAuth nel tuo IdP**82**1. Registra un client OAuth nel tuo IdP**

83 83 

84Decidi prima il nome host del gateway, perché l'URI di reindirizzamento deve corrispondere. Crea una nuova applicazione web OIDC e imposta l'URI di reindirizzamento su `https://claude-gateway.<your-domain>/oauth/callback`, dove l'host è lo stesso valore che imposti come [`listen.public_url`](https://code.claude.com/docs/it/claude-apps-gateway-config#listen) nel passaggio 3. Annota `client_id` e `client_secret`. Le istruzioni per IdP sono in [Configurazione del provider di identità](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#identity-provider-setup).84Decidi prima l'hostname del gateway, perché l'URI di reindirizzamento deve corrispondere. Crea una nuova applicazione web OIDC e imposta l'URI di reindirizzamento su `https://claude-gateway.<your-domain>/oauth/callback`, dove l'host è lo stesso valore che imposti come [`listen.public_url`](https://code.claude.com/docs/it/claude-apps-gateway-config#listen) nel passaggio 3. Annota `client_id` e `client_secret`. Le istruzioni per ciascun IdP si trovano in [Configurazione del provider di identità](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#identity-provider-setup).

85 85 

86**2. Provisioning di un database PostgreSQL**86**2. Prepara un database PostgreSQL**

87 87 

88Usa PostgreSQL 11 o successivo. Il livello gestito più piccolo è sufficiente. Il gateway esegue le proprie migrazioni dello schema all'avvio, quindi il ruolo del database ha bisogno dei diritti per creare e alterare le tabelle; vedi [`store`](https://code.claude.com/docs/it/claude-apps-gateway-config#store).88Usa PostgreSQL 11 o successivo. Il tier gestito più piccolo è sufficiente. Il gateway esegue le proprie migrazioni dello schema all'avvio, quindi il ruolo del database necessita dei permessi per creare e modificare tabelle; consulta [`store`](https://code.claude.com/docs/it/claude-apps-gateway-config#store).

89 89 

90**3. Scrivi gateway.yaml**90**3. Scrivi gateway.yaml**

91 91 

92I segreti vengono letti tramite l'espansione `${ENV_VAR}` in modo che il file stesso possa vivere nel controllo della versione. Usa un nome host `public_url` che si risolve in un IP privato sulla tua rete, perché `/login` rifiuta gli indirizzi pubblici. La configurazione minima ha cinque sezioni, e ogni altro campo ha un valore predefinito:92I segreti vengono letti tramite l'espansione `${ENV_VAR}`, così il file stesso può stare nel controllo di versione. Usa un hostname `public_url` che si risolva in un IP privato sulla tua rete, perché `/login` rifiuta gli indirizzi pubblici. La configurazione minima ha cinque sezioni e ogni altro campo ha un valore predefinito:

93 93 

94```yaml gateway.yaml theme={null}94```yaml gateway.yaml theme={null}

95listen:95listen:

96 host: 0.0.0.096 host: 0.0.0.0

97 port: 808097 port: 8080

98 # Obbligatorio a meno che l'host non sia un indirizzo loopback. Utilizzato per l'IdP98 # Required unless host is a loopback address. Used for the IdP

99 # redirect_uri e il documento di discovery.99 # redirect_uri and the discovery document.

100 public_url: https://claude-gateway.internal.example.com100 public_url: https://claude-gateway.internal.example.com

101 101 

102oidc:102oidc:

103 issuer: https://login.example.com # deve servire /.well-known/openid-configuration103 issuer: https://login.example.com # must serve /.well-known/openid-configuration

104 client_id: 0oa1example2104 client_id: 0oa1example2

105 client_secret: ${OIDC_CLIENT_SECRET}105 client_secret: ${OIDC_CLIENT_SECRET}

106 allowed_email_domains: [example.com] # rifiuta id_tokens al di fuori della tua organizzazione106 allowed_email_domains: [example.com] # reject id_tokens outside your org

107 userinfo_fallback: true # per IdP il cui id_token omette email/groups; innocuo altrimenti107 userinfo_fallback: true # for IdPs whose id_token omits email/groups; harmless otherwise

108 108 

109session:109session:

110 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32110 jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32

111 ttl_hours: 1 # limita anche la latenza di revoca su deprovision IdP111 ttl_hours: 1 # also bounds revocation latency on IdP deprovision

112 112 

113store:113store:

114 postgres_url: ${GATEWAY_POSTGRES_URL} # aggiungi ?sslmode=require per Postgres gestito114 postgres_url: ${GATEWAY_POSTGRES_URL} # add ?sslmode=require for managed Postgres

115 115 

116upstreams:116upstreams:

117 - provider: bedrock117 - provider: bedrock

118 region: us-east-1118 region: us-east-1

119 auth: {} # vuoto: catena di credenziali predefinita AWS119 auth: {} # empty: AWS default credential chain

120# (IRSA, ruolo attività EC2/ECS, variabili env, ~/.aws)120# (IRSA, EC2/ECS task role, env vars, ~/.aws)

121 121 

122# I modelli vengono tradotti per upstream automaticamente. Il catalogo integrato122# Models are translated per upstream automatically. The built-in catalog

123# mappa claude-opus-4-8 a us.anthropic.claude-opus-4-8 e così via per ogni123# maps claude-opus-4-8 to us.anthropic.claude-opus-4-8 and so on for every

124# modello Claude supportato da Bedrock. Imposta false e aggiungi un elenco `models:` per124# Bedrock-supported Claude model. Set false and add a `models:` list to

125# esporre solo modelli specifici.125# expose only specific models.

126auto_include_builtin_models: true126auto_include_builtin_models: true

127```127```

128 128 

129Questa configurazione è sufficiente per un ciclo di accesso funzionante con il catalogo di modelli Bedrock predefinito. Una volta in esecuzione, aggiungi RBAC per gruppo tramite [`managed.policies`](https://code.claude.com/docs/it/claude-apps-gateway-config#managed), fan-out di telemetria tramite [`telemetry`](https://code.claude.com/docs/it/claude-apps-gateway-config#telemetry), e failover multi-upstream, ARN di throughput provisioning o regioni non statunitensi tramite [`models`](https://code.claude.com/docs/it/claude-apps-gateway-config#models).129Questa configurazione è sufficiente per un ciclo di accesso funzionante con il catalogo di modelli Amazon Bedrock predefinito. Una volta in esecuzione, aggiungi RBAC per gruppo e impostazioni gestite tramite [`managed.policies`](https://code.claude.com/docs/it/claude-apps-gateway-config#managed), la distribuzione della telemetria tramite [`telemetry`](https://code.claude.com/docs/it/claude-apps-gateway-config#telemetry) e il failover multi-upstream, gli ARN di provisioned throughput o le regioni non statunitensi tramite [`models`](https://code.claude.com/docs/it/claude-apps-gateway-config#models).

130 130 

131> [!NOTE]131> [!NOTE]

132>132>

133> L'upstream Amazon Bedrock ha bisogno di un principale AWS con `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` sia sugli ARN `inference-profile/us.anthropic.*` che sugli ARN `foundation-model/anthropic.*` sottostanti. Ha anche bisogno del modulo di caso d'uso una tantum di Anthropic inviato per l'account dalla console Bedrock Model catalog.133> L'upstream Amazon Bedrock necessita di un principal AWS con `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` sia sugli ARN `inference-profile/us.anthropic.*` sia sugli ARN sottostanti `foundation-model/anthropic.*`. Richiede inoltre che il modulo una tantum di Anthropic sul caso d'uso sia stato inviato per l'account dal Model catalog della console Bedrock.

134>134>

135> Fornisci la credenziale con IRSA su EKS, un ruolo attività ECS o un profilo di istanza EC2 piuttosto che chiavi statiche. Il [riferimento `upstreams`](https://code.claude.com/docs/it/claude-apps-gateway-config#upstreams) ha i dettagli IAM completi, la matrice di credenziali cross-cloud e i blocchi `auth` per gli altri provider.135> Fornisci la credenziale con IRSA su EKS, un task role ECS o un instance profile EC2 anziché con chiavi statiche. Il [riferimento `upstreams`](https://code.claude.com/docs/it/claude-apps-gateway-config#upstreams) contiene tutti i dettagli IAM, la matrice delle credenziali cross-cloud e i blocchi `auth` per gli altri provider.

136 136 

137**4. Eseguilo**137**4. Eseguilo**

138 138 

139Costruisci un'immagine container attorno al binario `claude` che soddisfi i [requisiti dell'immagine](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#container-image), quindi eseguila insieme a Postgres. Il file Compose fa riferimento all'immagine come `registry.example.com/claude-gateway:2.1.198`; sostituisci il tuo registro e tag immagine:139Crea un'immagine container attorno al binario `claude` che soddisfi i [requisiti dell'immagine](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#container-image), quindi eseguila insieme a Postgres. Il file Compose fa riferimento all'immagine come `registry.example.com/claude-gateway:2.1.198`; sostituisci il tuo registry e il tuo tag dell'immagine:

140 140 

141```yaml docker-compose.yaml theme={null}141```yaml docker-compose.yaml theme={null}

142services:142services:


148 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}148 OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}

149 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}149 GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}

150 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway150 GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway

151 # Credenziali AWS: in produzione, ometti questi e usa un ruolo151 # AWS credentials: in production, omit these and use an instance

152 # di istanza. Per il test locale di Compose, passa i tuoi:152 # role. For local Compose testing, pass through your own:

153 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}153 AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}

154 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}154 AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}

155 AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}155 AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}


166volumes: { pgdata: }166volumes: { pgdata: }

167```167```

168 168 

169Il gateway è un singolo binario Linux che legge la configurazione, si connette a Postgres e applica le migrazioni dello schema, esegue il discovery OIDC rispetto al tuo IdP, costruisce client upstream e inizia ad ascoltare.169Il gateway è un singolo binario Linux che legge la configurazione, si connette a Postgres e applica le migrazioni dello schema, esegue la discovery OIDC verso il tuo IdP, crea i client upstream e inizia ad ascoltare.

170 170 

171L'avvio è fail-closed per la configurazione, la connessione Postgres, il discovery OIDC e la costruzione del client upstream. Se uno di questi è irraggiungibile o non configurato correttamente, il gateway esce con un errore piuttosto che servire il traffico in uno stato degradato.171L'avvio è fail-closed per la configurazione, la connessione a Postgres, la discovery OIDC e la creazione dei client upstream. Se uno di questi elementi non è raggiungibile o è configurato in modo errato, il gateway termina con un errore anziché servire traffico in uno stato degradato.

172 172 

173Un avvio riuscito non convalida il percorso di inferenza, perché le credenziali dell'istanza Bedrock e Agent Platform si risolvono sulla prima richiesta, non all'avvio.173Un avvio riuscito non convalida il percorso di inferenza, perché le credenziali di istanza di Amazon Bedrock e di Google Cloud's Agent Platform vengono risolte alla prima richiesta, non all'avvio.

174 174 

175Guarda stderr per la sequenza di avvio. Le righe di log utilizzano il formato `[gateway] <timestamp> <level> <message>`, gli eventi di audit sono JSON a riga singola con un campo `evt`, e un banner di avvio, omesso di seguito, viene stampato tra la migrazione e le righe di ascolto. Un database nuovo stampa una riga `migration N applied` per ogni migrazione dello schema; un database già migrato non stampa nulla. Dovresti vedere, in ordine:175Controlla stderr per la sequenza di avvio. Le righe di log usano il formato `[gateway] <timestamp> <level> <message>`, gli eventi di audit sono JSON su una singola riga con un campo `evt` e un banner di avvio, omesso qui sotto, viene stampato tra le righe di migrazione e quella di ascolto. Un database nuovo stampa una riga `migration N applied` per ciascuna migrazione dello schema; un database già migrato non ne stampa nessuna. Dovresti vedere, in ordine:

176 176 

177```text theme={null}177```text theme={null}

178{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}178{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}


183[gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080183[gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080

184```184```

185 185 

186Il gateway registra anche un avviso che `access_control.allow_cidrs` è vuoto. Questo è previsto qui, perché nulla limita quali indirizzi client il gateway serve fino a quando non imposti un elenco di autorizzazione. Il [riferimento `access_control`](https://code.claude.com/docs/it/claude-apps-gateway-config#http-tuning) ha gli intervalli consigliati.186Il gateway registra anche un avviso che `access_control.allow_cidrs` è vuoto. In questo caso è previsto, perché nulla limita gli indirizzi client serviti dal gateway finché non imposti una allow list. Il [riferimento `access_control`](https://code.claude.com/docs/it/claude-apps-gateway-config#http-tuning) indica gli intervalli consigliati.

187 187 

188Se l'avvio esce prima della riga `claude gateway listening on`, l'ultima riga di stderr nomina il problema:188Se l'avvio termina prima della riga `claude gateway listening on`, l'ultima riga di stderr indica il problema:

189 189 

190* un Postgres irraggiungibile190* un Postgres non raggiungibile

191* un ruolo Postgres senza autorizzazione DDL191* un ruolo Postgres senza permesso DDL

192* un documento di discovery OIDC irraggiungibile o non valido192* un documento di discovery OIDC non raggiungibile o non valido

193* una violazione dello schema di configurazione con il percorso del campo offensivo193* una violazione dello schema di configurazione con il percorso del campo problematico

194 194 

195Correggilo e riavvia.195Correggilo e riavvia.

196 196 

197Se hai già un ingresso che termina TLS, salta Compose ed esegui il binario direttamente con `claude gateway --config gateway.yaml`. Imposta `public_url` all'origine dell'ingresso e associa `listen` a un indirizzo loopback o interno al cluster.197Se hai già un ingress che termina TLS, salta Compose ed esegui direttamente il binario con `claude gateway --config gateway.yaml`. Imposta `public_url` sull'origine dell'ingress e associa `listen` a un indirizzo di loopback o interno al cluster.

198 198 

199**5. Verifica la superficie di autenticazione**199**5. Verifica la superficie di autenticazione**

200 200 

201Tre controlli confermano che il gateway può autenticare un utente reale prima di consegnarlo a uno sviluppatore.201Tre controlli confermano che il gateway è in grado di autenticare un utente reale prima di condividerlo con uno sviluppatore.

202 202 

203Gli esempi utilizzano l'URL pubblico del gateway; per la configurazione locale di Compose senza un ingresso, sostituisci `http://localhost:8080` nei primi due controlli. Il terzo controllo apre `verification_uri_complete`, che è costruito da `public_url`, quindi per Compose locale imposta `public_url: http://localhost:8080` in `gateway.yaml` e aggiungi `http://localhost:8080/oauth/callback` come secondo URI di reindirizzamento sul client OAuth dal passaggio 1, perché il gateway costruisce l'IdP `redirect_uri` da `public_url`. Il link di verifica si apre quindi nel tuo browser locale.203Gli esempi usano l'URL pubblico del gateway; per la configurazione Compose locale senza ingress, sostituisci `http://localhost:8080` nei primi due controlli. Il terzo controllo apre `verification_uri_complete`, che è costruito a partire da `public_url`, quindi per Compose locale imposta `public_url: http://localhost:8080` in `gateway.yaml` e aggiungi `http://localhost:8080/oauth/callback` come secondo URI di reindirizzamento sul client OAuth del passaggio 1, perché il gateway costruisce il `redirect_uri` dell'IdP a partire da `public_url`. Il link di verifica si apre quindi nel tuo browser locale.

204 204 

205In Windows PowerShell, esegui `curl.exe`; il `curl` semplice è un alias per `Invoke-WebRequest` e rifiuta questi flag.205In Windows PowerShell, esegui `curl.exe`; il semplice `curl` è un alias di `Invoke-WebRequest` e rifiuta questi flag.

206 206 

207Per primo, recupera il documento di discovery, che conferma che il gateway è attivo, la configurazione è valida e tutti i controlli di avvio sono passati:207Per prima cosa, recupera il documento di discovery, che conferma che il gateway è attivo, la configurazione è valida e tutti i controlli di avvio sono stati superati:

208 208 

209```bash theme={null}209```bash theme={null}

210curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq210curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq


221 221 

222La risposta include campi aggiuntivi, come `response_types_supported` e `scopes_supported`.222La risposta include campi aggiuntivi, come `response_types_supported` e `scopes_supported`.

223 223 

224Secondo, richiedi un'autorizzazione del dispositivo, che conferma che il flusso di accesso del dispositivo funziona e Postgres è raggiungibile e scrivibile:224In secondo luogo, richiedi un'autorizzazione del dispositivo, che conferma che il flusso di accesso del dispositivo funziona e che Postgres è raggiungibile e scrivibile:

225 225 

226```bash theme={null}226```bash theme={null}

227curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq227curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq


238}238}

239```239```

240 240 

241Terzo, testa la parte del browser aprendo `verification_uri_complete` in un browser e confermando il codice. Dovresti essere reindirizzato alla pagina di accesso del tuo IdP e, dopo l'accesso, tornare al gateway con una conferma di accesso.241In terzo luogo, verifica la parte del browser aprendo `verification_uri_complete` in un browser e confermando il codice. Dovresti essere reindirizzato alla pagina di accesso del tuo IdP e, dopo l'accesso, tornare al gateway con una conferma di accesso avvenuto.

242 242 

243Usa il primo controllo che fallisce per individuare il problema:243Usa il primo controllo non superato per individuare il problema:

244 244 

245* **Il primo controllo fallisce**: l'avvio non è stato completato; controlla stderr245* **Il primo controllo fallisce**: l'avvio non è stato completato; controlla stderr

246* **Il secondo controllo fallisce**: Postgres non è raggiungibile dal gateway o il ruolo non può scrivere; controlla la stringa di connessione e le autorizzazioni246* **Il secondo controllo fallisce**: Postgres non è raggiungibile dal gateway o il ruolo non può scrivere; controlla la stringa di connessione e i grant

247* **Il terzo controllo non raggiunge l'IdP**: controlla che l'URI di reindirizzamento dell'IdP corrisponda esattamente a `https://<gateway>/oauth/callback`247* **Il terzo controllo non raggiunge l'IdP**: verifica che l'URI di reindirizzamento dell'IdP corrisponda esattamente a `https://<gateway>/oauth/callback`

248* **Il terzo controllo raggiunge l'IdP ma rimbalza indietro con un errore**: leggi il log di audit del gateway, che registra ogni rifiuto di autenticazione con il motivo, come `email domain not allowed`248* **Il terzo controllo raggiunge l'IdP ma torna indietro con un errore**: leggi il log di audit del gateway, che registra ogni rifiuto di autenticazione con il motivo, ad esempio `email domain not allowed`

249 249 

250**6. Accedi a uno sviluppatore**250**6. Fai accedere uno sviluppatore**

251 251 

252Questo ultimo passaggio avviene su una macchina sviluppatore, non sul server. Imposta `forceLoginMethod` su `"gateway"`, `forceLoginGatewayUrl` su `public_url` del tuo gateway e `parentSettingsBehavior` su `"merge"` nel [file delle impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) di quella macchina, quindi esegui `/login`, premi Invio sulla schermata **Cloud gateway** e completa l'accesso del browser. [Imposta l'URL del gateway](#set-the-gateway-url) di seguito copre le tre chiavi e la loro distribuzione su ogni macchina sviluppatore.252Quest'ultimo passaggio avviene sulla macchina di uno sviluppatore, non sul server. Imposta `forceLoginMethod` su `"gateway"`, `forceLoginGatewayUrl` sul `public_url` del tuo gateway e `parentSettingsBehavior` su `"merge"` nel [file delle impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) di quella macchina, quindi esegui `/login`, premi Enter nella schermata **Cloud gateway** e completa l'accesso nel browser. La sezione [Impostare l'URL del gateway](#set-the-gateway-url) più avanti descrive le tre chiavi e come distribuirle a ogni macchina degli sviluppatori.

253 253 

254## Connettere gli sviluppatori254## Connettere gli sviluppatori

255 255 

256Gli sviluppatori si connettono dai propri laptop con un unico accesso tramite browser, usando il proprio account aziendale. Non hanno bisogno di un account claude.ai, di una chiave API o di un abbonamento, perché le richieste al modello passano attraverso il gateway usando la credenziale upstream dell'organizzazione. La connessione è guidata dalle [impostazioni gestite lato client](https://code.claude.com/docs/it/claude-apps-gateway-config.md#client-side-managed-settings) che distribuisci tramite MDM, e questa sezione descrive ciò che configura l'amministratore.256Gli sviluppatori si connettono dai propri laptop con un unico accesso tramite browser, usando il proprio account aziendale. Non hanno bisogno di un account claude.ai, di una chiave API o di un abbonamento, perché le richieste al modello passano attraverso il gateway usando la credenziale upstream dell'organizzazione. La connessione è guidata dalle [impostazioni gestite lato client](https://code.claude.com/docs/it/claude-apps-gateway-config.md#client-side-managed-settings) che distribuisci tramite MDM, e questa sezione descrive ciò che configura l'amministratore.

257 257 

258La CLI calcola l'impronta del certificato TLS foglia del gateway alla prima connessione e la fissa (pinning) per hostname. Verifica di nuovo questa impronta fissata durante l'accesso, nei rinnovi silenziosi della sessione e nel recupero delle impostazioni gestite, mentre le richieste di inferenza usano la validazione TLS standard senza il pinning. Le richieste instradate attraverso un proxy HTTPS saltano la verifica del pinning, quindi aggiungi l'host del gateway a `NO_PROXY` per mantenerle dirette.258La CLI calcola l'impronta del certificato TLS foglia del gateway alla prima connessione e la fissa per nome host. Controlla di nuovo questa impronta fissata durante l'accesso, nei rinnovi silenziosi della sessione e nel recupero delle impostazioni gestite, mentre le richieste di inferenza usano la normale convalida TLS senza l'impronta fissata. Le richieste instradate tramite un proxy HTTPS saltano il controllo dell'impronta, quindi aggiungi l'host del gateway a `NO_PROXY` per mantenerle dirette.

259 259 

260Pubblica l'impronta SHA-256 attesa insieme all'URL del gateway, così gli sviluppatori hanno qualcosa con cui confrontarla. Il prompt di `/login` mostra i primi 16 caratteri dell'impronta in esadecimale minuscolo senza due punti. Per stampare l'impronta completa in quel formato a partire dal file del certificato, esegui:260Pubblica l'impronta SHA-256 prevista insieme all'URL del gateway, in modo che gli sviluppatori abbiano un riferimento con cui confrontarla. Il prompt di `/login` mostra i primi 16 caratteri dell'impronta in esadecimale minuscolo senza due punti. Per stampare l'impronta completa in quella forma dal file del certificato, esegui:

261 261 

262```bash theme={null}262```bash theme={null}

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

264```264```

265 265 

266Quando il certificato viene ruotato, ogni sviluppatore vede di nuovo la richiesta di attendibilità, quindi tratta le rotazioni come un evento pianificato e ripubblica l'impronta. Se la policy del tuo gateway include [impostazioni che richiedono approvazione](https://code.claude.com/docs/it/server-managed-settings.md#security-approval-dialogs), lo sviluppatore vede di nuovo anche quella finestra di approvazione dopo aver accettato il nuovo certificato, perché Claude Code associa la [memoria delle approvazioni](https://code.claude.com/docs/it/server-managed-settings.md#approval-memory) al certificato fissato.266Quando il certificato viene ruotato, ogni sviluppatore vede di nuovo la richiesta di attendibilità, quindi tratta le rotazioni come un evento pianificato e ripubblica l'impronta. Se la policy del tuo gateway include [impostazioni che richiedono approvazione](https://code.claude.com/docs/it/server-managed-settings.md#security-approval-dialogs), dopo aver accettato il nuovo certificato lo sviluppatore vede di nuovo anche quella finestra di approvazione, perché Claude Code associa la [memoria delle approvazioni](https://code.claude.com/docs/it/server-managed-settings.md#approval-memory) al certificato fissato.

267 267 

268Un gateway può restituire il campo facoltativo `email` nella sua risposta token per indicare l'account usato per un accesso. Quando lo fa, lo sviluppatore conferma l'account prima che Claude Code salvi la credenziale. Dopo un accesso confermato, `/status` mostra l'account.268Un gateway può restituire il campo facoltativo `email` nella sua risposta del token per indicare l'account usato per un accesso. In tal caso, lo sviluppatore conferma l'account prima che Claude Code salvi la credenziale. Dopo un accesso confermato, `/status` mostra l'account.

269 269 

270La conferma richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore; un client di versione inferiore ignora il campo. Il server gateway incluso nel binario `claude` non restituisce il campo, quindi i suoi accessi si completano senza la conferma.270La conferma richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore; un client con una versione precedente ignora il campo. Il server gateway incluso nel binario `claude` non restituisce il campo, quindi i suoi accessi si completano senza la conferma.

271 271 

272Una volta che lo sviluppatore ha effettuato l'accesso, il [selettore dei modelli](https://code.claude.com/docs/it/model-config.md) mostra i modelli presenti nella sua allowlist `availableModels`. Le impostazioni gestite si applicano all'avvio e si aggiornano ogni ora, e la telemetria viene instradata al tuo collector.272Una volta che lo sviluppatore ha effettuato l'accesso, il [selettore dei modelli](https://code.claude.com/docs/it/model-config.md) mostra i modelli presenti nella sua allowlist `availableModels`. Le impostazioni gestite si applicano all'avvio e si aggiornano ogni ora, e la telemetria viene instradata al tuo collector.

273 273 


275 275 

276### Impostare l'URL del gateway276### Impostare l'URL del gateway

277 277 

278Tre chiavi vanno nel [file delle impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) specifico per ogni sistema operativo che distribuisci tramite MDM o direttamente su disco. Per una macchina senza impostazioni gestite, consulta invece [Impostare l'URL del gateway nelle impostazioni utente](#set-the-gateway-url-in-user-settings). `forceLoginMethod` e `forceLoginGatewayUrl` aprono `/login` direttamente sulla schermata **Cloud gateway** con l'URL già compilato, e `parentSettingsBehavior: "merge"` permette a Claude Desktop di fornire l'allowlist di uscita del gateway alle sessioni di Claude Code che avvia, come spiegato in [Fornire la policy alle sessioni di Claude Desktop](#deliver-policy-to-claude-desktop-sessions):278Tre chiavi vanno nel [file di impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md#delivery-mechanisms) specifico per sistema operativo che distribuisci tramite MDM o direttamente su disco. Per una macchina senza impostazioni gestite, consulta invece [Impostare l'URL del gateway nelle impostazioni utente](#set-the-gateway-url-in-user-settings). `forceLoginMethod` e `forceLoginGatewayUrl` aprono `/login` direttamente sulla schermata **Cloud gateway** con l'URL già compilato, e `parentSettingsBehavior: "merge"` consente a Claude Desktop di fornire l'allowlist di uscita del gateway alle sessioni di Claude Code che avvia, come spiegato in [Fornire la policy alle sessioni di Claude Desktop](#deliver-policy-to-claude-desktop-sessions):

279 279 

280```json theme={null}280```json theme={null}

281{281{


285}285}

286```286```

287 287 

288Lo sviluppatore preme Invio per connettersi. Il [prompt dell'impronta TLS alla prima connessione](#connect-developers) appare comunque. Una volta che il file è presente su una macchina, uno sviluppatore che non ha completato l'accesso al gateway vede uno dei messaggi descritti in [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in). Gli sviluppatori che selezionano un provider cloud tramite una variabile d'ambiente come `CLAUDE_CODE_USE_BEDROCK` non hanno bisogno dell'accesso al gateway.288Lo sviluppatore preme Enter per connettersi. La [richiesta dell'impronta TLS alla prima connessione](#connect-developers) compare comunque. Una volta che il file si trova su una macchina, uno sviluppatore che non ha completato l'accesso al gateway vede uno dei messaggi descritti in [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in). Gli sviluppatori che selezionano un provider cloud tramite una variabile d'ambiente come `CLAUDE_CODE_USE_BEDROCK` non hanno bisogno dell'accesso al gateway.

289 289 

290Il selettore di accesso non ha un'opzione gateway, e nelle impostazioni gestite `forceLoginMethod` da solo, senza un URL, lascia lo sviluppatore su un messaggio "Contact your IT administrator". Le chiavi di accesso vanno nel file che distribuisci alle macchine, non nel blocco `managed.policies[].cli` del gateway, che raggiunge solo i client già connessi.290Il selettore di accesso non ha un'opzione gateway e, nelle impostazioni gestite, `forceLoginMethod` da solo, senza un URL, lascia lo sviluppatore davanti a un messaggio "Contact your IT administrator". Le chiavi di accesso vanno nel file che distribuisci alle macchine, non nel blocco `managed.policies[].cli` del gateway, che raggiunge solo i client già connessi.

291 291 

292#### Impostare l'URL del gateway nelle impostazioni utente292#### Impostare l'URL del gateway nelle impostazioni utente

293 293 

294Sulle macchine senza impostazioni gestite, chiedi a ogni sviluppatore di aggiungere `forceLoginMethod` e `forceLoginGatewayUrl` al proprio file di impostazioni utente, `~/.claude/settings.json`. Ciò richiede Claude Code v2.1.295 o successivo sulla macchina dello sviluppatore. Questo esempio indica un gateway su `claude-gateway.internal.example.com`:294Sulle macchine senza impostazioni gestite, fai aggiungere a ogni sviluppatore `forceLoginMethod` e `forceLoginGatewayUrl` al proprio file di impostazioni utente, `~/.claude/settings.json`. Questo richiede Claude Code v2.1.295 o successivo sulla macchina dello sviluppatore. Questo esempio indica un gateway su `claude-gateway.internal.example.com`:

295 295 

296```json theme={null}296```json theme={null}

297{297{


300}300}

301```301```

302 302 

303Quando lo sviluppatore esegue `/login` nel prompt di Claude Code, la schermata **Cloud gateway** si apre su quell'indirizzo e lo sviluppatore preme Invio per connettersi. Il [prompt dell'impronta TLS alla prima connessione](#connect-developers) appare comunque. Alle chiavi impostate in questo modo si applicano questi limiti:303Quando lo sviluppatore esegue `/login` nel prompt di Claude Code, la schermata **Cloud gateway** si apre su quell'indirizzo e lo sviluppatore preme Enter per connettersi. La [richiesta dell'impronta TLS alla prima connessione](#connect-developers) compare comunque. Alle chiavi impostate in questo modo si applicano questi limiti:

304 304 

305* **Solo impostazioni utente**: Claude Code legge le due chiavi da `~/.claude/settings.json`, non dal `.claude/settings.json` o dal `.claude/settings.local.json` di un progetto.305* **Solo impostazioni utente**: Claude Code legge le due chiavi da `~/.claude/settings.json`, non dal `.claude/settings.json` o dal `.claude/settings.local.json` di un progetto.

306* **Le impostazioni gestite le disattivano**: una volta che le impostazioni di un amministratore raggiungono la macchina tramite un file di impostazioni gestite, un plist macOS o una policy HKLM di Windows, oppure un [policy helper](https://code.claude.com/docs/it/settings-reference.md#policyhelper), Claude Code ignora un gateway indicato nelle impostazioni utente.306* **Le impostazioni gestite le disattivano**: una volta che le impostazioni di un amministratore raggiungono la macchina tramite un file di impostazioni gestite, un plist macOS o una policy HKLM di Windows, oppure un [policy helper](https://code.claude.com/docs/it/settings-reference.md#policyhelper), Claude Code ignora un gateway indicato nelle impostazioni utente.

307 307 

308### Consentire un gateway su uno spazio di indirizzi pubblico di tua proprietà308### Consentire un gateway su uno spazio di indirizzi pubblico di tua proprietà

309 309 

310Alcune organizzazioni numerano la propria rete interna a partire da un blocco IPv4 pubblico di loro proprietà, come lo spazio di indirizzi di un operatore o un `/8` legacy, quindi il loro gateway non ha un indirizzo privato. Elenca questi blocchi nell'impostazione gestita `gatewayInternalNetworks`. `/login` accetterà quindi un gateway all'interno di un blocco elencato quando la macchina dello sviluppatore vi si connette da un indirizzo interno allo stesso blocco. Ciò richiede Claude Code v2.1.268 o successivo sulla macchina dello sviluppatore; le versioni precedenti ignorano la chiave e applicano la regola degli indirizzi privati.310Alcune organizzazioni numerano la propria rete interna a partire da un blocco IPv4 pubblico di loro proprietà, come lo spazio di indirizzi di un operatore o un `/8` storico, quindi il loro gateway non ha un indirizzo privato. Elenca questi blocchi nell'impostazione gestita `gatewayInternalNetworks`. `/login` accetta quindi un gateway all'interno di un blocco elencato quando la macchina dello sviluppatore si connette a esso da un indirizzo all'interno dello stesso blocco. Questo richiede Claude Code v2.1.268 o successivo sulla macchina dello sviluppatore; le versioni precedenti ignorano la chiave e applicano la regola degli indirizzi privati.

311 311 

312> [!WARNING]312> [!WARNING]

313>313>

314> `gatewayInternalNetworks` è pensato per reti interne che risultano numerate a partire da uno spazio di indirizzi pubblico. Non rende sicuro esporre un gateway a Internet: un gateway attendibile può distribuire impostazioni che eseguono comandi sulle macchine degli sviluppatori.314> `gatewayInternalNetworks` è pensato per le reti interne che risultano numerate a partire da uno spazio di indirizzi pubblico. Non rende sicuro esporre un gateway su internet: un gateway attendibile può distribuire impostazioni che eseguono comandi sulle macchine degli sviluppatori.

315>315>

316> Mantieni il gateway irraggiungibile dall'esterno della tua rete con le regole del firewall o del load balancer. Imposta [`access_control.allow_cidrs`](https://code.claude.com/docs/it/claude-apps-gateway-config#http-tuning) del gateway sugli stessi blocchi che dichiari qui, in modo che il gateway stesso rifiuti i client provenienti da qualsiasi altro luogo. Dietro un load balancer o un ingress, imposta anche `listen.trusted_proxies` su quel front end, perché altrimenti il gateway confronta `allow_cidrs` con l'indirizzo del front end invece che con quello dello sviluppatore.316> Mantieni il gateway irraggiungibile dall'esterno della tua rete con le regole del firewall o del load balancer. Imposta [`access_control.allow_cidrs`](https://code.claude.com/docs/it/claude-apps-gateway-config#http-tuning) del gateway sugli stessi blocchi che dichiari qui, in modo che il gateway stesso rifiuti i client provenienti da qualsiasi altro luogo. Dietro un load balancer o un ingress, imposta anche `listen.trusted_proxies` su quel front end, perché altrimenti il gateway confronta `allow_cidrs` con l'indirizzo del front end anziché con quello dello sviluppatore.

317 317 

318Aggiungi la chiave alla stessa sorgente di impostazioni gestite delle chiavi di accesso: il file delle impostazioni gestite, il profilo MDM o la policy del registro di sistema. Claude Code la ignora nelle impostazioni utente, di progetto e gestite dal server.318Aggiungi la chiave alla stessa origine di impostazioni gestite delle chiavi di accesso: il file di impostazioni gestite, il profilo MDM o la policy del registro. Claude Code la ignora nelle impostazioni utente, di progetto e gestite dal server.

319 319 

320Questo esempio dichiara un solo blocco. Sostituisci `203.0.113.0/24` con il tuo blocco. È un intervallo di documentazione, e Claude Code li rifiuta.320Questo esempio dichiara un blocco. Sostituisci `203.0.113.0/24` con il tuo blocco. Si tratta di un intervallo di documentazione, e Claude Code li rifiuta.

321 321 

322```json theme={null}322```json theme={null}

323{323{


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

331* L'elenco contiene al massimo quattro blocchi, e nessuno si sovrappone a un altro.331* L'elenco contiene al massimo quattro blocchi, e nessuno si sovrappone a un altro.

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

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

334 334 

335I blocchi di `managed-settings.json` e dei suoi file drop-in `managed-settings.d/` si combinano in un unico elenco, e questi limiti si applicano all'elenco combinato. Per restringere un blocco, sostituisci la sua voce invece di aggiungerne una seconda sovrapposta in un drop-in; `/login` rifiuta la sovrapposizione.335I blocchi di `managed-settings.json` e dei relativi file drop-in `managed-settings.d/` si combinano in un unico elenco, e questi limiti si applicano all'elenco combinato. Per restringere un blocco, sostituisci la sua voce anziché aggiungerne una seconda sovrapposta in un drop-in; `/login` rifiuta la sovrapposizione.

336 336 

337Se una voce viola una regola, o il valore non è un elenco di stringhe, Claude Code rifiuta ogni nuovo accesso al gateway su quella macchina e indica il problema nel messaggio. Anche l'accesso a un gateway su un indirizzo privato fallisce, mentre gli accessi esistenti continuano a funzionare. Prova il valore su una macchina prima di distribuirlo. Claude Code elenca anche un valore di tipo errato tra le [impostazioni gestite non valide che segnala](https://code.claude.com/docs/it/managed-settings.md#keys-that-fail-closed).337Se una voce viola una regola, o il valore non è un elenco di stringhe, Claude Code rifiuta ogni nuovo accesso al gateway su quella macchina e indica il problema nel messaggio. Anche l'accesso a un gateway su un indirizzo privato fallisce, mentre gli accessi esistenti continuano a funzionare. Prova il valore su una macchina prima di distribuirlo. Claude Code elenca inoltre un valore di tipo errato tra le [impostazioni gestite non valide che segnala](https://code.claude.com/docs/it/managed-settings.md#keys-that-fail-closed).

338 338 

339Con un elenco valido, `/login` applica tre verifiche a un gateway il cui indirizzo si trova all'interno di un blocco elencato:339Con un elenco valido, `/login` applica tre controlli a un gateway il cui indirizzo si trova all'interno di un blocco elencato:

340 340 

341* Ogni indirizzo in cui si risolve l'hostname del gateway si trova all'interno di quel singolo blocco. Claude Code rifiuta un nome che ha anche record al di fuori di esso, inclusi indirizzi privati e IPv6.341* Ogni indirizzo a cui si risolve il nome host del gateway si trova all'interno di quell'unico blocco. Claude Code rifiuta un nome che ha anche record al di fuori di esso, compresi gli indirizzi privati e IPv6.

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

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

344 344 

345Quando tutte e tre le verifiche hanno esito positivo, la [richiesta di attendibilità](#connect-developers) aggiunge una riga che indica l'indirizzo della macchina, l'indirizzo del gateway e il blocco dichiarato che li contiene entrambi.345Quando tutti e tre i controlli hanno esito positivo, la [richiesta di attendibilità](#connect-developers) aggiunge una riga che indica l'indirizzo della macchina, l'indirizzo del gateway e il blocco dichiarato che li contiene entrambi.

346 346 

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

348 348 

349Un blocco dichiarato restringe chi può accedere ma non dimostra dove si trova una macchina, quindi dichiara solo spazio di indirizzi controllato dalla tua organizzazione. Un blocco condiviso con altri tenant, come l'intervallo pubblico di un provider cloud, permette a chiunque al suo interno di superare la stessa verifica.349Un blocco dichiarato restringe chi può accedere ma non dimostra dove si trova una macchina, quindi dichiara solo lo spazio di indirizzi controllato dalla tua organizzazione. Un blocco condiviso con altri tenant, come l'intervallo pubblico di un provider cloud, consente a chiunque vi si trovi di superare lo stesso controllo.

350 350 

351### Fornire la policy alle sessioni di Claude Desktop351### Fornire la policy alle sessioni di Claude Desktop

352 352 

353Claude Desktop esegue le sue schede Cowork e Code, più la scheda Chat quando la abiliti, su sessioni di Claude Code incorporate e invia le loro richieste al modello attraverso il gateway. Passa una policy a ciascuna di queste sessioni, costruita a partire dalla configurazione che il gateway gli fornisce su `/user/bootstrap`: l'allowlist dei modelli, gli strumenti disabilitati e l'allowlist di uscita derivati dal blocco `cli` o `code` della policy corrispondente, più l'[overlay `desktop`](https://code.claude.com/docs/it/claude-apps-gateway-config#claude-desktop-overlay).353Claude Desktop esegue le schede Cowork e Code, oltre alla scheda Chat quando la abiliti, su sessioni di Claude Code incorporate e invia le loro richieste al modello attraverso il gateway. Passa una policy a ciascuna di queste sessioni, costruita dalla configurazione che il gateway gli fornisce su `/user/bootstrap`: l'allowlist dei modelli, gli strumenti disabilitati e l'allowlist di uscita derivati dal blocco `cli` o `code` della policy corrispondente, più l'[overlay `desktop`](https://code.claude.com/docs/it/claude-apps-gateway-config#claude-desktop-overlay).

354 354 

355Le altre chiavi del blocco, come gli hook, `env` e le regole di permesso con ambito come `Bash(npm *)`, raggiungono i client che accedono tramite `/login`. Sotto `code`, raggiungono anche la sessione della scheda Code quando valgono le [condizioni per la scheda Code](https://code.claude.com/docs/it/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab). Non raggiungono le sessioni Cowork o Chat. Claude Desktop legge l'URL del gateway dalla propria configurazione gestita ed effettua l'accesso con il proprio flusso, separato dalle chiavi `forceLoginMethod` e `forceLoginGatewayUrl` di [Impostare l'URL del gateway](#set-the-gateway-url).355Le altre chiavi del blocco, come gli hook, `env` e le regole di permesso con ambito come `Bash(npm *)`, raggiungono i client che accedono tramite `/login`. Sotto `code`, raggiungono anche la sessione della scheda Code quando sono soddisfatte le [condizioni per la scheda Code](https://code.claude.com/docs/it/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab). Non raggiungono le sessioni Cowork o Chat. Claude Desktop legge l'URL del gateway dalla propria configurazione gestita e accede con il proprio flusso, separato dalle chiavi `forceLoginMethod` e `forceLoginGatewayUrl` descritte in [Impostare l'URL del gateway](#set-the-gateway-url).

356 356 

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

358 358 

359#### Quali macchine richiedono l'opt-in359#### Quali macchine richiedono l'opt-in

360 360 

361Le macchine che eseguono solo Claude Desktop lo richiedono. Claude Desktop applica autonomamente l'elenco dei modelli e l'elenco degli strumenti disabilitati alle sessioni incorporate, ma l'allowlist di uscita le raggiunge solo come impostazioni parent, sotto forma di regole di dominio `WebFetch` e regole di rete della sandbox. Senza l'opt-in, queste sessioni vengono eseguite senza la restrizione di uscita, e nulla ti avvisa. Il gateway rifiuta comunque le richieste di inferenza per i modelli che la policy non concede.361Le macchine che eseguono solo Claude Desktop ne hanno bisogno. Claude Desktop applica direttamente l'elenco dei modelli e l'elenco degli strumenti disabilitati alle sessioni incorporate, ma l'allowlist di uscita le raggiunge solo come impostazioni padre, sotto forma di regole di dominio `WebFetch` e regole di rete della sandbox. Senza l'opt-in, queste sessioni vengono eseguite senza la restrizione in uscita, e nulla te lo segnala. Il gateway rifiuta comunque le richieste di inferenza per i modelli che la policy non concede.

362 362 

363Anche un'allowlist dei marketplace di plugin raggiunge le sessioni incorporate solo come impostazioni parent. Quando disattivi i marketplace di plugin aggiunti dall'utente nella configurazione gestita di Claude Desktop, Claude Desktop 2.16120.0 o successivo nasconde i marketplace che la tua organizzazione non ha predisposto e rifiuta le installazioni da essi. Per impedire alle sessioni incorporate di caricare plugin già installati da quei marketplace, invia loro un elenco `strictKnownMarketplaces` come impostazioni parent. Senza l'opt-in, Claude Code ignora quell'elenco, e quei plugin continuano a essere caricati.363Anche un'allowlist di marketplace di plugin raggiunge le sessioni incorporate solo come impostazioni padre. Quando disattivi i marketplace di plugin aggiunti dagli utenti nella configurazione gestita di Claude Desktop, Claude Desktop 2.16120.0 o successivo nasconde i marketplace che la tua organizzazione non ha predisposto e rifiuta le installazioni da essi. Per impedire alle sessioni incorporate di caricare i plugin già installati da quei marketplace, invia loro un elenco `strictKnownMarketplaces` come impostazioni padre. Senza l'opt-in, Claude Code ignora quell'elenco, e quei plugin continuano a essere caricati.

364 364 

365Le macchine in cui gli sviluppatori accedono tramite `/login` non lo richiedono; ogni sessione di Claude Code recupera la propria policy dal gateway.365Le macchine in cui gli sviluppatori accedono tramite `/login` non ne hanno bisogno; ogni sessione di Claude Code recupera la propria policy dal gateway.

366 366 

367I parchi macchine il cui [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper) fornisce le impostazioni gestite non possono usarlo: Claude Code non esegue mai il merge delle impostazioni parent su quei parchi macchine, perché legge le impostazioni gestite esclusivamente dall'output dell'helper.367Le flotte il cui [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper) fornisce le impostazioni gestite non possono usarlo: Claude Code non esegue mai il merge delle impostazioni padre su queste flotte, perché legge le impostazioni gestite esclusivamente dall'output dell'helper.

368 368 

369#### Impostare l'opt-in369#### Impostare l'opt-in

370 370 

371Distribuisci lo snippet delle impostazioni gestite di [Impostare l'URL del gateway](#set-the-gateway-url), replicalo in qualsiasi sorgente lato client che abbia priorità superiore al file, quindi verifica.371Distribuisci lo snippet di impostazioni gestite da [Impostare l'URL del gateway](#set-the-gateway-url), replicalo in qualsiasi origine lato client con priorità superiore al file, quindi verifica.

372 372 

373**1. Distribuisci l'opt-in nel file delle impostazioni gestite**373**1. Distribuisci l'opt-in nel file di impostazioni gestite**

374 374 

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

376 376 

377**2. Replica lo snippet in qualsiasi sorgente con priorità superiore al file**377**2. Replica lo snippet in qualsiasi origine con priorità superiore al file**

378 378 

379Claude Code legge `parentSettingsBehavior` solo dalla [sorgente selezionata](https://code.claude.com/docs/it/managed-settings.md#which-managed-source-claude-code-uses). Aggiungere qualsiasi chiave di policy a una sorgente può renderla quella selezionata, quindi in una sorgente lato client replica l'intero snippet invece della sola `parentSettingsBehavior`. [Impostazioni gestite lato client](https://code.claude.com/docs/it/claude-apps-gateway-config.md#client-side-managed-settings) tratta i parchi macchine che forniscono la policy tramite Criteri di gruppo o profili di configurazione. Un plist di preferenze gestite su macOS o una policy HKLM su Windows ha priorità superiore al file `managed-settings.json`, e le impostazioni gestite remote del gateway hanno priorità superiore a entrambi, quindi sulle macchine che accedono al gateway imposta `parentSettingsBehavior` anche nel [blocco `cli` o `code`](https://code.claude.com/docs/it/claude-apps-gateway-config#managed) della policy del gateway.379Claude Code legge `parentSettingsBehavior` solo dall'[origine selezionata](https://code.claude.com/docs/it/managed-settings.md#which-managed-source-claude-code-uses). Aggiungere una qualsiasi chiave di policy a un'origine può rendere quell'origine quella selezionata, quindi in un'origine lato client replica l'intero snippet anziché solo `parentSettingsBehavior`. [Impostazioni gestite lato client](https://code.claude.com/docs/it/claude-apps-gateway-config.md#client-side-managed-settings) tratta le flotte che forniscono la policy tramite Group Policy o profili di configurazione. Un plist di preferenze gestite su macOS o una policy HKLM su Windows ha priorità sul file `managed-settings.json`, e le impostazioni gestite remote del gateway hanno priorità su entrambi, quindi sulle macchine che accedono al gateway imposta `parentSettingsBehavior` anche nel [blocco `cli` o `code`](https://code.claude.com/docs/it/claude-apps-gateway-config#managed) della policy del gateway.

380 380 

381**3. Verifica quale sorgente è selezionata**381**3. Verifica quale origine è selezionata**

382 382 

383Su una macchina che esegue solo Claude Desktop, chiama [`resolveSettings()`](https://code.claude.com/docs/it/agent-sdk/typescript#resolvesettings) dell'Agent SDK e leggi `policyOrigin` nella voce `managed` del suo elenco `sources`. Il valore indica la sorgente lato client selezionata, `plist`, `hklm` o `file`, che è la sorgente che deve contenere lo snippet.383Su una macchina che esegue solo Claude Desktop, chiama [`resolveSettings()`](https://code.claude.com/docs/it/agent-sdk/typescript#resolvesettings) dell'Agent SDK e leggi `policyOrigin` nella voce `managed` del suo elenco `sources`. Il valore indica l'origine lato client selezionata, `plist`, `hklm` o `file`, che è l'origine che deve contenere lo snippet.

384 384 

385Le sessioni Cowork e Chat non recuperano la policy del gateway, quindi il blocco del gateway non è la sorgente selezionata per esse.385Le sessioni Cowork e Chat non recuperano la policy del gateway, quindi per esse il blocco del gateway non è l'origine selezionata.

386 386 

387Una sessione della scheda Code la recupera quando le impostazioni della policy si trovano sotto `code` e valgono le [condizioni per la scheda Code](https://code.claude.com/docs/it/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab). Le impostazioni `code` del gateway sono quindi la sorgente selezionata per quella sessione.387Una sessione della scheda Code la recupera quando le impostazioni della policy si trovano sotto `code` e sono soddisfatte le [condizioni per la scheda Code](https://code.claude.com/docs/it/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab). Le impostazioni `code` del gateway sono quindi l'origine selezionata per quella sessione.

388 388 

389### Limitare le impostazioni parent389### Limitare le impostazioni padre

390 390 

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

392 392 

393Claude Code filtra le impostazioni parent in base a un'allowlist di chiavi restrittive, ma alcune chiavi consentite possono concedere accesso invece di limitarlo. A meno che tu non imposti i blocchi `allowManaged*Only`, le regole di consenso dei permessi e le allowlist della sandbox fornite dall'host si applicano comunque. Le regole di negazione e di richiesta della tua policy restano in vigore in ogni caso; [vengono valutate prima di qualsiasi regola di consenso](https://code.claude.com/docs/it/permissions.md#manage-permissions).393Claude Code filtra le impostazioni padre rispetto a un'allowlist di chiavi restrittive, ma alcune chiavi consentite possono concedere accesso anziché limitarlo. A meno che tu non imposti i blocchi `allowManaged*Only`, le regole di permesso allow e le allowlist della sandbox fornite dall'host si applicano comunque. Le regole deny e ask della tua policy restano in vigore in ogni caso; [vengono valutate prima di qualsiasi regola allow](https://code.claude.com/docs/it/permissions.md#manage-permissions).

394 394 

395Claude Code inoltra le voci [`sandbox.credentials`](https://code.claude.com/docs/it/settings-reference#sandbox-credentials) fornite dal parent in forma ridotta:395Claude Code inoltra in forma ridotta le voci [`sandbox.credentials`](https://code.claude.com/docs/it/settings-reference#sandbox-credentials) fornite dal padre:

396 396 

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

398* **Voci di file con [`mode: mask`](https://code.claude.com/docs/it/sandboxing#mask-credential-files)**: inoltrate solo come sentinella, come maschera dell'intero file il cui `injectHosts` è l'elenco vuoto, quindi il proxy non sostituisce mai il valore reale per una voce fornita dal parent su nessuna piattaforma. Vengono eliminati anche tutti i campi di mascheramento strutturato, quindi un pattern di estrazione fornito dal parent non può soppiantare una maschera più rigorosa impostata da un'altra sorgente per lo stesso percorso.398* **Voci di file con [`mode: mask`](https://code.claude.com/docs/it/sandboxing#mask-credential-files)**: inoltrate solo come sentinella, come maschera dell'intero file il cui `injectHosts` è l'elenco vuoto, quindi il proxy non sostituisce mai il valore reale per una voce fornita dal padre su nessuna piattaforma. Vengono eliminati anche tutti i campi di mascheramento strutturato, quindi un pattern di estrazione fornito dal padre non può sostituire una maschera più rigorosa impostata da un'altra origine per lo stesso percorso.

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

400* **[`awsPairs` e `sigv4`](https://code.claude.com/docs/it/sandboxing#re-sign-aws-requests)**: inoltrati solo come restrizione. Di `sigv4` vengono mantenuti solo i valori `deny`, e un parent che definisce un blocco `sigv4` in qualsiasi forma imposta tutte e tre le forme di richiesta, `streaming`, `presigned` e `sigv4a`, su `deny`. Una coppia `awsPairs` non viene mai inoltrata in una forma che possa rifirmare; una coppia che indica una delle variabili AWS convenzionali viene sostituita da una voce inerte che mantiene soppresso l'abbinamento automatico di `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`.400* **[`awsPairs` e `sigv4`](https://code.claude.com/docs/it/sandboxing#re-sign-aws-requests)**: inoltrati solo come restrizioni. Di `sigv4` vengono mantenuti solo i valori `deny`, e un padre che definisce un qualsiasi blocco `sigv4` fissa tutte e tre le forme di richiesta, `streaming`, `presigned` e `sigv4a`, su `deny`. Una coppia `awsPairs` non viene mai inoltrata in una forma che possa rifirmare; una coppia che indica una delle variabili AWS convenzionali viene sostituita da una voce inerte che mantiene soppresso l'abbinamento automatico di `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`.

401 401 

402#### Distribuire i blocchi402#### Distribuire i blocchi

403 403 

404Per mantenere le impostazioni parent il più vicino possibile a una forma puramente restrittiva, per quanto il filtro lo consenta, aggiungi tutti e cinque i blocchi `allowManaged*Only`, e le allowlist che governano, alle stesse sorgenti dell'opt-in al merge:404Per mantenere le impostazioni padre il più possibile limitate alle sole restrizioni, per quanto consentito dal filtro, aggiungi tutti e cinque i blocchi `allowManaged*Only`, e le allowlist che governano, alle stesse origini dell'opt-in di merge:

405 405 

406```json theme={null}406```json theme={null}

407{407{


426}426}

427```427```

428 428 

429Una policy del sistema operativo, come una policy del registro HKLM o un plist di preferenze gestite, ha priorità superiore a questo file, quindi fornisci l'intero snippet tramite essa invece che tramite il file. Le impostazioni gestite remote del gateway hanno priorità superiore alle sorgenti della policy del sistema operativo e del file, ma raggiungono solo i client connessi. Replica i blocchi, le allowlist e l'opt-in al merge nel [blocco `cli` o `code`](https://code.claude.com/docs/it/claude-apps-gateway-config#managed) della policy e mantieni distribuito questo file, perché le macchine che non si connettono mai ricevono la propria policy esclusivamente dal file.429Una policy del sistema operativo, come una policy del registro HKLM o un plist di preferenze gestite, ha priorità su questo file, quindi fornisci l'intero snippet tramite essa anziché tramite il file. Le impostazioni gestite remote del gateway hanno priorità sulle origini della policy del sistema operativo e del file, ma raggiungono solo i client connessi. Replica i blocchi, le allowlist e l'opt-in di merge nel [blocco `cli` o `code`](https://code.claude.com/docs/it/claude-apps-gateway-config#managed) della policy e mantieni distribuito questo file, perché le macchine che non si connettono mai ricevono la policy esclusivamente dal file.

430 430 

431#### Comportamento dei blocchi tra le sorgenti431#### Comportamento dei blocchi tra le origini

432 432 

433Impostare un blocco non limita gli altri; ogni chiave è documentata nel [riferimento delle impostazioni](https://code.claude.com/docs/it/settings-reference.md#all-settings).433Impostare un blocco non limita gli altri; ogni chiave è documentata nel [riferimento delle impostazioni](https://code.claude.com/docs/it/settings-reference.md#all-settings).

434 434 

435Da una sorgente di amministrazione al di sotto di quella vincente, i due blocchi della sandbox si applicano comunque, e `allowManagedPermissionRulesOnly` blocca comunque le regole di consenso e le `additionalDirectories` fornite dal parent. Su Claude Code v2.1.273 o successivo, anche il blocco dei server MCP si applica da una sorgente al di sotto di quella vincente, e mentre è attivo, l'elenco gestito `allowedMcpServers` proviene dalla sorgente di amministrazione con priorità più alta che ne imposta uno.435Da un'origine di amministrazione inferiore a quella prevalente, i due blocchi della sandbox si applicano comunque, e `allowManagedPermissionRulesOnly` blocca comunque le regole allow e le `additionalDirectories` fornite dal padre. Su Claude Code v2.1.273 o successivo, anche il blocco dei server MCP si applica da un'origine inferiore a quella prevalente e, mentre è attivo, l'elenco gestito `allowedMcpServers` proviene dall'origine di amministrazione con priorità più alta che ne imposta uno.

436 436 

437Il blocco degli hook e l'effetto di `allowManagedPermissionRulesOnly` sulle regole dello sviluppatore richiedono per impostazione predefinita la sorgente vincente; con l'opt-in al merge `managedSourcesBehavior` descritto in [come Claude Code combina le sorgenti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), Claude Code applica per ogni blocco il valore più rigoroso impostato da qualsiasi sorgente. Sui parchi macchine con [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper), Claude Code legge i blocchi esclusivamente dall'output dell'helper.437Il blocco degli hook e l'effetto di `allowManagedPermissionRulesOnly` sulle regole dello sviluppatore richiedono per impostazione predefinita l'origine prevalente; con l'opt-in di merge `managedSourcesBehavior` descritto in [come Claude Code combina le origini gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), Claude Code applica per ogni blocco il valore più restrittivo impostato da qualsiasi origine. Sulle flotte con [`policyHelper`](https://code.claude.com/docs/it/settings-reference#policyhelper), Claude Code legge i blocchi esclusivamente dall'output dell'helper.

438 438 

439Ogni blocco fa sì che Claude Code ignori le voci dello sviluppatore per quell'impostazione, quindi includi le allowlist della tua organizzazione accanto ai blocchi:439Ogni blocco fa sì che Claude Code ignori le voci dello sviluppatore per quell'impostazione, quindi includi le allowlist della tua organizzazione accanto ai blocchi:

440 440 

441* **Domini di rete**: bloccare con un elenco di domini gestiti vuoto blocca tutto il traffico in uscita dalla sandbox.441* **Domini di rete**: un blocco con un elenco di domini gestiti vuoto blocca tutto il traffico in uscita dalla sandbox.

442* **Server MCP**: bloccare senza `allowedMcpServers` in nessuna sorgente di amministrazione né nelle impostazioni fornite dal parent carica ogni server che `deniedMcpServers` non blocca.442* **Server MCP**: un blocco senza `allowedMcpServers` in nessuna origine di amministrazione né nelle impostazioni fornite dal padre carica ogni server che `deniedMcpServers` non blocca.

443* **Percorsi di lettura**: le voci `allowRead` riconsentono solo percorsi all'interno delle aree `denyRead`, quindi abbinale a un `denyRead` gestito.443* **Percorsi di lettura**: le voci `allowRead` riconsentono solo percorsi all'interno delle aree `denyRead`, quindi abbinale a un `denyRead` gestito.

444 444 

445#### Impostazioni non coperte dai blocchi445#### Impostazioni non coperte dai blocchi

446 446 

447Queste impostazioni fornite dal parent superano il filtro anche con tutti e cinque i blocchi impostati:447Queste impostazioni fornite dal padre superano il filtro anche con tutti e cinque i blocchi impostati:

448 448 

449* **`forceLoginOrgUUID`**: Claude Code rispetta un valore fornito dal parent quando la sorgente di amministrazione con priorità più alta non imposta un UUID di organizzazione. L'accesso al gateway non verifica questa chiave. Un UUID di organizzazione nella sorgente di amministrazione con priorità più alta blocca il valore del parent ed è quello che Claude Code applica.449* **`forceLoginOrgUUID`**: Claude Code rispetta un valore fornito dal padre quando le impostazioni gestite che applica non impostano un UUID dell'organizzazione. L'accesso al gateway non controlla questa chiave. Un UUID dell'organizzazione nelle impostazioni gestite applicate da Claude Code blocca il valore del padre ed è l'UUID dell'organizzazione che Claude Code impone. Se la tua flotta fissa un'organizzazione Anthropic, consulta [Quale origine gestita fornisce le chiavi di accesso](https://code.claude.com/docs/it/managed-settings.md#which-managed-source-supplies-login-keys) per sapere dove impostare `forceLoginOrgUUID`.

450* **`allowedMcpServers`**: Claude Code rispetta un'allowlist fornita dal parent quando non è in vigore alcun elenco di amministrazione. `allowManagedMcpServersOnly` non la blocca, perché il blocco applica come valore gestito qualunque elenco prevalga, incluso uno fornito dal parent quando nessuna sorgente di amministrazione fornisce un elenco. Un elenco nella sorgente di amministrazione con priorità più alta blocca quello del parent ed è l'elenco che Claude Code applica, quindi imposta `allowedMcpServers` lì, accanto al blocco. Prima della v2.1.223, un valore per una delle due chiavi in qualsiasi sorgente di amministrazione bloccava quello del parent.450* **`allowedMcpServers`**: Claude Code rispetta un'allowlist fornita dal padre quando non è in vigore alcun elenco di amministrazione. `allowManagedMcpServersOnly` non la blocca, perché il blocco impone come valore gestito l'elenco che prevale, compreso uno fornito dal padre quando nessuna origine di amministrazione fornisce un elenco. Un elenco nell'origine di amministrazione con priorità più alta blocca quello del padre ed è l'elenco che Claude Code impone, quindi imposta `allowedMcpServers` lì, accanto al blocco. Prima della v2.1.223, un valore per una delle due chiavi in qualsiasi origine di amministrazione bloccava quello del padre.

451* **`availableModels`**: Claude Code rispetta un elenco di modelli fornito dal parent quando la sorgente gestita vincente non ne imposta uno. Se il tuo parco macchine limita i modelli, imposta `availableModels` nella sorgente vincente.451* **`availableModels`**: Claude Code rispetta un elenco di modelli fornito dal padre quando l'origine gestita prevalente non ne imposta uno. Se la tua flotta limita i modelli, imposta `availableModels` nell'origine prevalente.

452* **`allowedProviders`**: Claude Code rispetta un'allowlist dei provider API fornita dal parent quando la sorgente gestita vincente non ne imposta una. Se il tuo parco macchine limita i provider API che gli sviluppatori possono usare, imposta `allowedProviders` nella sorgente vincente. Richiede Claude Code v2.1.285 o successivo.452* **`allowedProviders`**: Claude Code rispetta un'allowlist dei provider API fornita dal padre quando l'origine gestita prevalente non ne imposta una. Se la tua flotta limita i provider API che gli sviluppatori possono usare, imposta `allowedProviders` nell'origine prevalente. Richiede Claude Code v2.1.285 o successivo.

453* **`strictKnownMarketplaces`**: Claude Code rispetta un'allowlist dei marketplace di plugin fornita dal parent quando la sorgente gestita vincente non ne imposta una. Claude Desktop 2.16120.0 o successivo ne invia una quando la sua configurazione gestita disattiva i marketplace di plugin aggiunti dall'utente. Se il tuo parco macchine limita i marketplace, imposta `strictKnownMarketplaces` nella sorgente vincente. Richiede Claude Code v2.1.282 o successivo.453* **`strictKnownMarketplaces`**: Claude Code rispetta un'allowlist di marketplace di plugin fornita dal padre quando l'origine gestita prevalente non ne imposta una. Claude Desktop 2.16120.0 o successivo ne invia una quando la sua configurazione gestita disattiva i marketplace di plugin aggiunti dagli utenti. Se la tua flotta limita i marketplace, imposta `strictKnownMarketplaces` nell'origine prevalente. Richiede Claude Code v2.1.282 o successivo.

454* **`blockedMarketplaces`**: una blocklist dei marketplace fornita dal parent supera il filtro e si aggiunge a qualsiasi blocklist impostata da una sorgente gestita, poiché una blocklist può solo restringere ulteriormente. Richiede Claude Code v2.1.282 o successivo.454* **`blockedMarketplaces`**: una blocklist di marketplace fornita dal padre supera il filtro e si aggiunge a qualsiasi blocklist impostata da un'origine gestita, poiché una blocklist può solo restringere ulteriormente. Richiede Claude Code v2.1.282 o successivo.

455* **`strictPluginOnlyCustomization`**: questa chiave supera il filtro indipendentemente da qualsiasi blocco, e fa sì che Claude Code ignori le personalizzazioni dello sviluppatore, inclusi gli hook di protezione. Nessun blocco la blocca.455* **`strictPluginOnlyCustomization`**: questa chiave supera il filtro indipendentemente da qualsiasi blocco, e fa sì che Claude Code ignori le personalizzazioni dello sviluppatore, compresi gli hook di protezione. Nessun blocco la blocca.

456 456 

457Con l'impostazione predefinita first-wins, un valore di amministrazione blocca quello del parent solo quando si trova nella sorgente di amministrazione con priorità più alta, tranne che per `allowedMcpServers` mentre il [blocco dei server MCP](#lock-behavior-across-sources) è attivo. Con l'opt-in al merge `managedSourcesBehavior`, [come Claude Code combina le sorgenti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) indica invece quale valore di sorgente si applica.457Se imposti `managedSourcesBehavior` su `"merge"`, verifica [quale valore di origine si applica per ciascun tipo di chiave](https://code.claude.com/docs/it/managed-settings.md#compose-every-managed-source).

458 458 

459#### Come hanno effetto le chiavi di hook e skill nelle impostazioni parent459#### Come hanno effetto le chiavi di hook e skill nelle impostazioni padre

460 460 

461Le chiavi che la tua applicazione passa nell'opzione [`managedSettings`](https://code.claude.com/docs/it/agent-sdk/typescript#options) dell'Agent SDK sono impostazioni parent. Su una macchina in cui un amministratore distribuisce impostazioni gestite, Claude Code ignora le impostazioni parent a meno che l'amministratore non [consenta a un host di incorporamento di aggiungere policy](https://code.claude.com/docs/it/managed-settings.md#let-an-embedding-host-add-policy).461Le chiavi che la tua applicazione passa nell'opzione [`managedSettings`](https://code.claude.com/docs/it/agent-sdk/typescript#options) dell'Agent SDK sono impostazioni padre. Su una macchina in cui un amministratore distribuisce impostazioni gestite, Claude Code ignora le impostazioni padre a meno che l'amministratore non [consenta a un host incorporante di aggiungere policy](https://code.claude.com/docs/it/managed-settings.md#let-an-embedding-host-add-policy).

462 462 

463Se passi [`disableAllHooks: true`](https://code.claude.com/docs/it/settings-reference#disableallhooks) in `managedSettings`:463Se passi [`disableAllHooks: true`](https://code.claude.com/docs/it/settings-reference#disableallhooks) in `managedSettings`:

464 464 

465* **Si fermano**: gli hook utente, di progetto e locali, più gli hook dichiarati nel frontmatter degli agenti o nell'[opzione `settings`](https://code.claude.com/docs/it/agent-sdk/typescript#options) dell'SDK.465* **Si fermano**: gli hook utente, di progetto e locali, più gli hook dichiarati nel frontmatter degli agenti o nell'[opzione `settings`](https://code.claude.com/docs/it/agent-sdk/typescript#options) dell'SDK.

466* **Continuano a essere eseguiti**: le [callback degli hook dell'SDK](https://code.claude.com/docs/it/agent-sdk/hooks.md) della tua applicazione e gli hook di un amministratore provenienti dalle impostazioni gestite. La tua applicazione non può disattivare gli hook dell'amministratore.466* **Continuano a essere eseguiti**: le [callback degli hook SDK](https://code.claude.com/docs/it/agent-sdk/hooks.md) della tua applicazione e gli hook di un amministratore provenienti dalle impostazioni gestite. La tua applicazione non può disattivare gli hook dell'amministratore.

467 467 

468| Cosa passi | Cosa succede |468| Cosa passi | Cosa succede |

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

470| `hooks`, oppure `allowedHttpHookUrls` o `httpHookAllowedEnvVars` con voci | Claude Code ignora la chiave. Usa invece l'opzione `settings` dell'SDK. |470| `hooks`, oppure `allowedHttpHookUrls` o `httpHookAllowedEnvVars` con voci | Claude Code ignora la chiave. Usa invece l'opzione `settings` dell'SDK. |

471| `allowedHttpHookUrls: []` | Ha effetto a meno che l'amministratore non definisca `hooks` o abiliti un plugin. Nessun hook HTTP viene eseguito, tranne che per gli URL elencati da un'altra sorgente di impostazioni. |471| `allowedHttpHookUrls: []` | Ha effetto a meno che l'amministratore non definisca `hooks` o abiliti un plugin. Nessun hook HTTP viene eseguito, tranne che per gli URL elencati da un'altra origine di impostazioni. |

472| `httpHookAllowedEnvVars: []` | Ha effetto a meno che l'amministratore non definisca `hooks` o abiliti un plugin. Le intestazioni degli hook HTTP possono includere solo variabili d'ambiente elencate da un'altra sorgente di impostazioni. |472| `httpHookAllowedEnvVars: []` | Ha effetto a meno che l'amministratore non definisca `hooks` o abiliti un plugin. Le intestazioni degli hook HTTP possono includere solo le variabili d'ambiente elencate da un'altra origine di impostazioni. |

473| [`disableSkillShellExecution: true`](https://code.claude.com/docs/it/settings-reference#disableskillshellexecution) | Ha effetto. |473| [`disableSkillShellExecution: true`](https://code.claude.com/docs/it/settings-reference#disableskillshellexecution) | Ha effetto. |

474 474 

475Passare queste chiavi in `managedSettings` richiede Claude Code v2.1.309 o successivo, oppure TypeScript Agent SDK v0.3.309 o successivo.475Passare queste chiavi in `managedSettings` richiede Claude Code v2.1.309 o successivo, oppure TypeScript Agent SDK v0.3.309 o successivo.


478 478 

479[Claude Desktop](https://code.claude.com/docs/it/desktop.md) si connette allo stesso gateway tramite una chiave MDM diversa: imposta `bootstrapUrl` nella [configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop su `<listen.public_url>/user/bootstrap`, e abilita la policy dell'utente con una chiave `desktop`. [Overlay di Claude Desktop](https://code.claude.com/docs/it/claude-apps-gateway-config.md#claude-desktop-overlay) tratta entrambe le parti. Richiede Claude Code v2.1.203 o successivo sul server gateway.479[Claude Desktop](https://code.claude.com/docs/it/desktop.md) si connette allo stesso gateway tramite una chiave MDM diversa: imposta `bootstrapUrl` nella [configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop su `<listen.public_url>/user/bootstrap`, e abilita la policy dell'utente con una chiave `desktop`. [Overlay di Claude Desktop](https://code.claude.com/docs/it/claude-apps-gateway-config.md#claude-desktop-overlay) tratta entrambe le parti. Richiede Claude Code v2.1.203 o successivo sul server gateway.

480 480 

481Claude Desktop fa accedere lo sviluppatore tramite l'identity provider del gateway con lo stesso passaggio SSO nel browser, poi recupera la propria configurazione dal gateway invece che da Anthropic. L'accesso ai modelli e la policy seguono le stesse regole per gruppo della CLI. Uno sviluppatore che usa sia la CLI sia Claude Desktop accede a ciascuno separatamente; la sessione del gateway non è condivisa tra i due.481Claude Desktop fa accedere lo sviluppatore tramite l'identity provider del gateway con lo stesso passaggio di SSO nel browser, quindi recupera la propria configurazione dal gateway anziché da Anthropic. L'accesso ai modelli e la policy seguono le stesse regole per gruppo della CLI. Uno sviluppatore che usa sia la CLI sia Claude Desktop accede a ciascuno separatamente; la sessione del gateway non è condivisa tra i due.

482 482 

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

484 484 

485### Pipeline CI e macchine remote485### Pipeline CI e macchine remote

486 486 

487Non esiste un flusso con token di servizio per le pipeline non presidiate. L'accesso al gateway esegue sempre il device flow nel browser, quindi un job CI senza uno sviluppatore che approvi l'accesso non può autenticarsi; configura questi job direttamente con il tuo provider. Distribuisci `forceLoginMethod` e `forceLoginGatewayUrl` sulle macchine degli sviluppatori e lasciali fuori dai runner CI. Su una macchina le cui impostazioni gestite li impostano, una sessione che si autentica con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` [termina all'avvio](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in).487Non esiste un flusso con token di servizio per le pipeline non presidiate. L'accesso al gateway esegue sempre il device flow nel browser, quindi un job CI senza uno sviluppatore che approvi l'accesso non può autenticarsi; configura questi job direttamente sul tuo provider. Distribuisci `forceLoginMethod` e `forceLoginGatewayUrl` sulle macchine degli sviluppatori e non impostarli sui runner CI. Su una macchina le cui impostazioni gestite li impostano, una sessione che si autentica con `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` [termina all'avvio](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in).

488 488 

489Una volta che uno sviluppatore ha effettuato l'accesso, ogni sessione di Claude Code su quella macchina usa la sessione del gateway, incluse le esecuzioni non interattive di `claude -p` e le sessioni avviate dall'Agent SDK. Claude Code applica la [policy del gateway](https://code.claude.com/docs/it/claude-apps-gateway-config.md#managed) a ciascuna di esse.489Una volta che uno sviluppatore ha effettuato l'accesso, ogni sessione di Claude Code su quella macchina usa la sessione del gateway, comprese le esecuzioni non interattive `claude -p` e le sessioni avviate dall'Agent SDK. Claude Code applica la [policy del gateway](https://code.claude.com/docs/it/claude-apps-gateway-config.md#managed) a ciascuna di esse.

490 490 

491Il device flow separa la CLI che esegue il polling dal browser che approva, quindi funziona anche una macchina di sviluppo remota senza display: lo sviluppatore esegue `/login` via SSH sulla macchina remota e apre il link di verifica nel browser del proprio laptop.491Il device flow separa la CLI che esegue il polling dal browser che approva, quindi funziona anche una macchina di sviluppo remota senza display: lo sviluppatore esegue `/login` via SSH sulla macchina remota e apre il link di verifica nel browser del proprio laptop.

492 492 

493### Cosa viene imposto agli sviluppatori493### Cosa viene imposto agli sviluppatori

494 494 

495Queste garanzie si applicano a ogni sessione con accesso effettuato tramite `/login`. Le sessioni incorporate avviate da Claude Desktop ricevono la propria policy come descritto in [Fornire la policy alle sessioni di Claude Desktop](#deliver-policy-to-claude-desktop-sessions), e il punto sulla telemetria indica dove vanno le loro esportazioni.495Queste garanzie si applicano a ogni sessione in cui si è effettuato l'accesso tramite `/login`. Le sessioni incorporate avviate da Claude Desktop ricevono la propria policy come descritto in [Fornire la policy alle sessioni di Claude Desktop](#deliver-policy-to-claude-desktop-sessions), e la voce sulla telemetria indica dove vanno le loro esportazioni.

496 496 

497* **Accesso ai modelli**: le richieste per modelli che la policy non concede restituiscono 400, e il selettore `/model` è filtrato in base all'allowlist `availableModels` della policy. Questo include il modello con cui una sessione si avvia prima che lo sviluppatore ne scelga uno; consulta [Avviare le sessioni su un modello consentito dalla policy](https://code.claude.com/docs/it/claude-apps-gateway-config.md#start-sessions-on-a-model-the-policy-allows).497* **Accesso ai modelli**: le richieste per modelli che la policy non concede restituiscono 400, e il selettore `/model` è filtrato in base all'allowlist `availableModels` della policy. Questo include il modello con cui una sessione si avvia prima che lo sviluppatore ne scelga uno; consulta [Avviare le sessioni su un modello consentito dalla policy](https://code.claude.com/docs/it/claude-apps-gateway-config.md#start-sessions-on-a-model-the-policy-allows).

498* **Destinazione della telemetria**: nelle sessioni con accesso effettuato tramite `/login`, la CLI invia le proprie esportazioni OTLP/HTTP al gateway invece che a un `OTEL_EXPORTER_OTLP_ENDPOINT` impostato localmente, a meno che una policy [non indichi il tuo collector come endpoint](https://code.claude.com/docs/it/claude-apps-gateway-config.md#export-directly-to-your-collector). Il gateway inoltra le esportazioni che riceve alle destinazioni in [`telemetry.forward_to`](https://code.claude.com/docs/it/claude-apps-gateway-config#telemetry).498* **Destinazione della telemetria**: nelle sessioni in cui si è effettuato l'accesso tramite `/login`, la CLI invia le sue esportazioni OTLP/HTTP al gateway anziché a un `OTEL_EXPORTER_OTLP_ENDPOINT` impostato localmente, a meno che una policy non [indichi il tuo collector come endpoint](https://code.claude.com/docs/it/claude-apps-gateway-config.md#export-directly-to-your-collector). Il gateway inoltra le esportazioni che riceve alle destinazioni in [`telemetry.forward_to`](https://code.claude.com/docs/it/claude-apps-gateway-config#telemetry).

499 * Nelle sessioni incorporate [avviate da Claude Desktop](#connect-claude-desktop), la CLI invia le proprie esportazioni all'`OTEL_EXPORTER_OTLP_ENDPOINT` configurato. La CLI allega il token di sessione del gateway a queste esportazioni solo quando quell'endpoint punta al gateway stesso.499 * Nelle sessioni incorporate [avviate da Claude Desktop](#connect-claude-desktop), la CLI invia le sue esportazioni all'`OTEL_EXPORTER_OTLP_ENDPOINT` configurato. La CLI allega il token di sessione del gateway a queste esportazioni solo quando quell'endpoint punta al gateway stesso.

500 * Se per un segnale non è configurata alcuna destinazione, il gateway lo accetta e lo scarta.500 * Senza una destinazione configurata per un segnale, il gateway lo accetta e lo scarta.

501 * Se raccogli già la telemetria di Claude Code direttamente, aggiungi il tuo collector come destinazione `forward_to`, oppure indicalo in una policy per saltare l'inoltro.501 * Se raccogli già la telemetria di Claude Code direttamente, aggiungi il tuo collector come destinazione `forward_to`, oppure indicalo in una policy per saltare l'inoltro.

502* **Credenziali**: il token del gateway è l'unica credenziale della sessione. I [profili Anthropic](https://code.claude.com/docs/it/authentication.md#anthropic-profiles-and-federation-credentials) e qualsiasi precedente accesso a claude.ai vengono ignorati mentre si è connessi, quindi gli sviluppatori non devono prima uscire da claude.ai. Per una credenziale `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` configurata, o una chiave API salvata da un precedente accesso a Claude Console, consulta [Il criterio dell'amministratore richiede un accesso tramite Cloud gateway](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in).502* **Credenziali**: il token del gateway è l'unica credenziale della sessione. I [profili Anthropic](https://code.claude.com/docs/it/authentication.md#anthropic-profiles-and-federation-credentials) e qualsiasi accesso precedente a claude.ai vengono ignorati mentre si è connessi, quindi gli sviluppatori non devono prima uscire da claude.ai. Per una credenziale `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` configurata, o per una chiave API salvata da un precedente accesso alla Claude Console, consulta [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in).

503* **Impostazioni gestite**: le chiavi bloccate non possono essere sovrascritte localmente. La CLI applica la policy all'avvio e applica le modifiche a ogni polling orario, a parte le [modifiche che si applicano solo al successivo avvio](https://code.claude.com/docs/it/server-managed-settings.md#fetch-and-caching-behavior).503* **Impostazioni gestite**: le chiavi bloccate non possono essere sovrascritte localmente. La CLI applica la policy all'avvio e applica le modifiche a ogni polling orario, a parte le [modifiche che si applicano solo al successivo avvio](https://code.claude.com/docs/it/server-managed-settings.md#fetch-and-caching-behavior).

504* **Avvio con il gateway irraggiungibile**: le sessioni con accesso effettuato terminano all'avvio con un errore dopo circa 10 secondi invece di avviarsi senza le proprie impostazioni.504* **Avvio con il gateway irraggiungibile**: le sessioni con accesso effettuato terminano all'avvio con un errore dopo circa 10 secondi anziché avviarsi senza le proprie impostazioni.

505* **Avvio dopo che il gateway ha terminato la sessione**: consulta [Imporre l'avvio fail-closed](https://code.claude.com/docs/it/server-managed-settings.md#enforce-fail-closed-startup) per gli avvii che si aprono senza accesso al gateway e quelli che terminano quando il gateway risponde con un `401`.505* **Avvio dopo che il gateway ha terminato la sessione**: consulta [Imporre l'avvio fail-closed](https://code.claude.com/docs/it/server-managed-settings.md#enforce-fail-closed-startup) per gli avvii che si aprono senza accesso al gateway e per quelli che terminano quando il gateway risponde con un `401`.

506* **Deprovisioning**: una sessione il cui utente è disabilitato nell'IdP scade entro `ttl_hours` quando il rinnovo successivo fallisce.506* **Deprovisioning**: una sessione il cui utente è disabilitato nell'IdP scade entro `ttl_hours` quando il rinnovo successivo fallisce.

507* **Disconnessione**: `/logout` elimina la credenziale del gateway dalla macchina dello sviluppatore.507* **Uscita**: `/logout` elimina la credenziale del gateway dalla macchina dello sviluppatore.

508 * Quando il documento di discovery del gateway dichiara un `revocation_endpoint` con lo stesso schema, host e porta dell'URL del gateway, `/logout` invia anche i token memorizzati a quell'endpoint, in modo che il gateway possa terminare la sessione dal proprio lato. La richiesta è best effort, quindi la disconnessione si completa sulla macchina dello sviluppatore indipendentemente dal fatto che l'endpoint risponda. La revoca richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore.508 * Quando il documento di discovery del gateway pubblicizza un `revocation_endpoint` con lo stesso schema, host e porta dell'URL del gateway, `/logout` invia anche i token memorizzati a quell'endpoint, in modo che il gateway possa terminare la sessione dal proprio lato. La richiesta è best effort, quindi l'uscita si completa sulla macchina dello sviluppatore indipendentemente dal fatto che l'endpoint risponda. La revoca richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore.

509 * Il server gateway incluso nel binario `claude` non ne dichiara alcuno, quindi una disconnessione da esso termina la sessione solo sulla macchina dello sviluppatore. Per forzare la chiusura delle sessioni lato server, consulta [Rotazione del segreto JWT](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#jwt-secret-rotation).509 * Il server gateway incluso nel binario `claude` non ne pubblicizza alcuno, quindi un'uscita da esso termina la sessione solo sulla macchina dello sviluppatore. Per forzare la chiusura delle sessioni lato server, consulta [Rotazione del segreto JWT](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#jwt-secret-rotation).

510 510 

511### Cosa può vedere l'organizzazione511### Cosa può vedere l'organizzazione

512 512 

513La telemetria di utilizzo trasmette al collector dell'organizzazione l'identità dello sviluppatore, il numero di token, il modello e la latenza. Il gateway non registra né memorizza il contenuto dei prompt o delle risposte generate. Se venga raccolta una telemetria più ricca come log e trace, che può includere comandi e percorsi di file, è una [scelta per destinazione](https://code.claude.com/docs/it/claude-apps-gateway-config.md#telemetry) dell'organizzazione.513La telemetria di utilizzo trasmette al collector dell'organizzazione l'identità dello sviluppatore, i conteggi dei token, il modello e la latenza. Il gateway non registra né memorizza il contenuto dei prompt o delle risposte. La raccolta di telemetria più dettagliata, come log e trace, che può includere comandi e percorsi di file, è una [scelta per destinazione](https://code.claude.com/docs/it/claude-apps-gateway-config.md#telemetry) dell'organizzazione.

514 514 

515## Disponibilità e limitazioni515## Disponibilità e limitazioni

516 516 

Details

421 421 

422```yaml theme={null}422```yaml theme={null}

423models:423models:

424 - id: claude-opus-restricted # a custom id, not a built-in model name424 - id: restricted-claude-opus-4-8 # a custom id, not a built-in model name

425 upstream_model:425 upstream_model:

426 bedrock-isolated: us.anthropic.claude-opus-4-8 # the only upstream that serves it426 bedrock-isolated: us.anthropic.claude-opus-4-8 # the only upstream that serves it

427```427```


631 631 

632Il gateway non tiene traccia degli upstream falliti, quindi mentre un upstream non è disponibile, ogni richiesta che lo raggiunge lo prova comunque e attende che fallisca prima di passare al successivo.632Il gateway non tiene traccia degli upstream falliti, quindi mentre un upstream non è disponibile, ogni richiesta che lo raggiunge lo prova comunque e attende che fallisca prima di passare al successivo.

633 633 

634Per un upstream API Anthropic, [`timeouts.upstream_ttfb_ms`](#http-tuning) limita l'attesa su un upstream non disponibile. Questa impostazione non si applica agli altri provider, dove il gateway attende fino a un'ora che un upstream inizi a rispondere.634Il gateway attende questo tempo che una risposta inizi:

635 

636* **Upstream `provider: anthropic`**: [`timeouts.upstream_ttfb_ms`](#http-tuning), 120 secondi per impostazione predefinita

637* **Altri provider**: fino a un'ora. Per abbreviare questa attesa per le richieste in streaming, imposta `timeouts.upstream_ttfb_ms` sul gateway v2.1.295 o successivo. Le richieste al modello non in streaming attendono comunque fino a un'ora

635 638 

636`404` indica la disponibilità del modello sul singolo upstream, quindi un upstream che non ha abilitato un modello non blocca un upstream successivo che lo serve. Un upstream che non può risolvere il modello richiesto viene saltato senza un round-trip di rete.639`404` indica la disponibilità del modello sul singolo upstream, quindi un upstream che non ha abilitato un modello non blocca un upstream successivo che lo serve. Un upstream che non può risolvere il modello richiesto viene saltato senza un round-trip di rete.

637 640 


875 policies:878 policies:

876 - match: { groups: [restricted-projects] }879 - match: { groups: [restricted-projects] }

877 cli:880 cli:

878 availableModels: [claude-opus-restricted]881 availableModels: [restricted-claude-opus-4-8]

879 enforceAvailableModels: true882 enforceAvailableModels: true

880 model: claude-opus-restricted883 model: restricted-claude-opus-4-8

884 env:

885 ANTHROPIC_DEFAULT_OPUS_MODEL: restricted-claude-opus-4-8 # opus and Default resolve to the ID too

881```886```

882 887 

883#### Valori dei matcher che arrestano il gateway all'avvio888#### Valori dei matcher che arrestano il gateway all'avvio


1006 1011 

1007La chiave `cli` si chiamava `settings` nelle release precedenti, e il gateway accetta ancora quella grafia come alias. Per i nuovi deploy, usa [`code`](#choose-cli-or-code).1012La chiave `cli` si chiamava `settings` nelle release precedenti, e il gateway accetta ancora quella grafia come alias. Per i nuovi deploy, usa [`code`](#choose-cli-or-code).

1008 1013 

1009#### Test a policy before deployment1014#### Testa una policy prima del deploy

1010 1015 

1011Per testare una modifica a una policy, avvia il gateway su un database Postgres usa e getta. Il gateway si connette a Postgres e applica le migrazioni del suo schema prima di controllare il contenuto dei blocchi `cli`, `code` e `desktop`. Quando non riesce a raggiungere il database, l'avvio si ferma su `could not connect to Postgres` e non segnala nulla sul loro contenuto.1016Per testare una modifica a una policy, avvia il gateway su un database Postgres usa e getta. Il gateway si connette a Postgres e applica le migrazioni del suo schema prima di controllare il contenuto dei blocchi `cli`, `code` e `desktop`. Quando non riesce a raggiungere il database, l'avvio si ferma su `could not connect to Postgres` e non segnala nulla sul loro contenuto.

1012 1017 


1148 1153 

1149`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` e `sshClientPath` hanno bisogno di Claude Code v2.1.281 o successivo sul server del gateway. Lo stesso vale per il valore `required` di `microsoftAuthBroker` e per il campo `continuousAccessEvaluation` di una voce `managedMcpServers` di Microsoft 365. Le versioni di Claude Desktop precedenti al valore `required` lo leggono come `disabled`, quindi imposta `required` solo dopo che il Claude Desktop di ogni membro lo supporta. Il [riferimento della configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop elenca la versione che per prima legge ciascuna chiave.1154`blockReadsOutsideWorkingDirectories`, `disableBypassPermissionsMode`, `configRecheckIntervalMinutes` e `sshClientPath` hanno bisogno di Claude Code v2.1.281 o successivo sul server del gateway. Lo stesso vale per il valore `required` di `microsoftAuthBroker` e per il campo `continuousAccessEvaluation` di una voce `managedMcpServers` di Microsoft 365. Le versioni di Claude Desktop precedenti al valore `required` lo leggono come `disabled`, quindi imposta `required` solo dopo che il Claude Desktop di ogni membro lo supporta. Il [riferimento della configurazione gestita](https://claude.com/docs/third-party/claude-desktop/configuration) di Claude Desktop elenca la versione che per prima legge ciascuna chiave.

1150 1155 

1156> [!NOTE]

1157>

1158> [`sshTransport`](https://claude.com/docs/third-party/claude-desktop/configuration#sshtransport) richiede Claude Code v2.1.293 o successiva sul server del gateway.

1159 

1151Se imposti `orgPluginSettings` nel blocco `desktop` di una policy, il gateway lo serve nella forma di array che Claude Desktop 1.15200.0 e successivi leggono. I desktop più vecchi ignorano l'array e non applicano alcuna policy sugli strumenti dei plugin, quindi aggiorna i membri a 1.15200.0 o successivo prima di farvi affidamento.1160Se imposti `orgPluginSettings` nel blocco `desktop` di una policy, il gateway lo serve nella forma di array che Claude Desktop 1.15200.0 e successivi leggono. I desktop più vecchi ignorano l'array e non applicano alcuna policy sugli strumenti dei plugin, quindi aggiorna i membri a 1.15200.0 o successivo prima di farvi affidamento.

1152 1161 

1153##### Come una policy per ruolo eredita il blocco `desktop` della base1162##### Come una policy per ruolo eredita il blocco `desktop` della base


1398| `limits` | `max_request_bytes` | 32 MiB | Dimensione massima del corpo della richiesta in entrata; le richieste troppo grandi ottengono `413` prima che il corpo venga bufferizzato. Aumentalo per richieste con file o immagini di grandi dimensioni. |1407| `limits` | `max_request_bytes` | 32 MiB | Dimensione massima del corpo della richiesta in entrata; le richieste troppo grandi ottengono `413` prima che il corpo venga bufferizzato. Aumentalo per richieste con file o immagini di grandi dimensioni. |

1399| `limits` | `max_request_header_bytes` | non impostato | Riduce il limite di 256 KiB del gateway sulle intestazioni totali di una richiesta. Una richiesta che supera il limite restituisce `431`, e un valore superiore a 256 KiB non ha effetto. Se gli sviluppatori ottengono `431` dopo aver effettuato l'accesso, vedi [Intestazioni della richiesta troppo grandi dopo l'accesso](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#request-headers-too-large-after-sign-in). |1408| `limits` | `max_request_header_bytes` | non impostato | Riduce il limite di 256 KiB del gateway sulle intestazioni totali di una richiesta. Una richiesta che supera il limite restituisce `431`, e un valore superiore a 256 KiB non ha effetto. Se gli sviluppatori ottengono `431` dopo aver effettuato l'accesso, vedi [Intestazioni della richiesta troppo grandi dopo l'accesso](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#request-headers-too-large-after-sign-in). |

1400| `limits` | `max_url_length` | non impostato | Quando impostato, un URL troppo lungo restituisce `414` |1409| `limits` | `max_url_length` | non impostato | Quando impostato, un URL troppo lungo restituisce `414` |

1401| `timeouts` | `upstream_ttfb_ms` | 120000 | Attesa massima per le intestazioni di risposta dell'upstream (tempo al primo byte). Il corpo della risposta viene poi trasmesso in streaming senza limite di tempo complessivo. Si applica al percorso upstream diretto di Anthropic; con ogni altro provider il gateway attende fino a un'ora che la risposta inizi. |1410| `timeouts` | `upstream_ttfb_ms` | 120000 | Attesa massima per gli header della risposta dell'upstream (time to first byte). Il corpo della risposta viene poi trasmesso in streaming senza limite di tempo. Se la chiave non è impostata, il valore predefinito si applica agli upstream `provider: anthropic`, e su ogni altro provider il gateway attende fino a un'ora l'inizio della risposta. Per ridurre questa attesa, consulta [Upstream multipli](#multiple-upstreams). |

1402| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Rate limit per IP sull'endpoint non autenticato di autorizzazione del dispositivo. Aumentalo per una grande organizzazione dietro un IP di uscita condiviso o NAT. [Distribuzioni su larga scala](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#large-rollouts) mostra come dimensionarlo. Questi limiti si applicano solo al flusso di accesso con concessione del dispositivo, non all'inferenza su `/v1/messages`. Vedi [Resistenza al brute force dei codici utente](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#user-code-brute-force-resistance). |1411| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Rate limit per IP sull'endpoint non autenticato di autorizzazione del dispositivo. Aumentalo per una grande organizzazione dietro un IP di uscita condiviso o NAT. [Distribuzioni su larga scala](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#large-rollouts) mostra come dimensionarlo. Questi limiti si applicano solo al flusso di accesso con concessione del dispositivo, non all'inferenza su `/v1/messages`. Vedi [Resistenza al brute force dei codici utente](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#user-code-brute-force-resistance). |

1403| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Rate limit per IP sugli invii di `user_code` su `/device`. È ciò che impedisce a qualcuno di indovinare il codice di un altro sviluppatore. [Distribuzioni su larga scala](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#large-rollouts) mostra di quanto aumentarlo. |1412| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Rate limit per IP sugli invii di `user_code` su `/device`. È ciò che impedisce a qualcuno di indovinare il codice di un altro sviluppatore. [Distribuzioni su larga scala](https://code.claude.com/docs/it/claude-apps-gateway-deploy.md#large-rollouts) mostra di quanto aumentarlo. |

1404 1413 

Details

228 228 

229Teleport richiede l'autenticazione dell'abbonamento claude.ai. Trova il caso che corrisponde al tuo:229Teleport richiede l'autenticazione dell'abbonamento claude.ai. Trova il caso che corrisponde al tuo:

230 230 

231* **Sei autenticato tramite chiave API**: esegui `/login` per accedere invece con il tuo account claude.ai231* **Sei autenticato con una chiave API o un account Console**: esegui `claude auth login` nella tua shell, quindi accedi con claude.ai

232* **L'errore nomina il tuo provider**: le sessioni cloud non sono disponibili tramite provider di terze parti. Consulta la [tabella degli errori](#errors-when-sending-to-a-cloud-session)232* **L'errore nomina il tuo provider**: le sessioni cloud non sono disponibili tramite provider di terze parti. Consulta la [tabella degli errori](#errors-when-sending-to-a-cloud-session)

233* **Sei già connesso tramite claude.ai**: la tua organizzazione potrebbe aver disabilitato le sessioni cloud233* **Sei già connesso tramite claude.ai**: la tua organizzazione potrebbe aver disabilitato le sessioni cloud

234 234 


437 437 

438### Impossibile ottenere l'UUID dell'organizzazione438### Impossibile ottenere l'UUID dell'organizzazione

439 439 

440`claude --cloud` e `claude --teleport` richiedono l'accesso con un account claude.ai. Se ti autentichi con una chiave API, o i dettagli dell'account archiviati sono obsoleti, vedrai uno di questi:440`claude --cloud` e `claude --teleport` richiedono l'accesso con un account claude.ai. Se invece ti autentichi con una chiave API o con un accesso Console, o i dettagli dell'account archiviati sono obsoleti, vedrai un messaggio come:

441 441 

442* `Unable to get organization UUID`442* `Unable to get organization UUID`

443* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``443* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

444* ``Cloud sessions aren't available with this Console sign-in. They need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

444* `Error loading Claude Code sessions` nel selettore di sessione, quando esegui `claude --teleport` senza un ID di sessione445* `Error loading Claude Code sessions` nel selettore di sessione, quando esegui `claude --teleport` senza un ID di sessione

445 446 

446Esegui [`claude auth login`](https://code.claude.com/docs/it/cli-reference#cli-commands) nella tua shell per accedere con il tuo account claude.ai, quindi riprova il comando. All'interno di una sessione in esecuzione, `/login` fa la stessa cosa. Se invece l'errore nomina il tuo provider, vedi la [tabella degli errori](#errors-when-sending-to-a-cloud-session): le sessioni cloud non sono disponibili tramite provider di terze parti.447Esegui [`claude auth login`](https://code.claude.com/docs/it/cli-reference#cli-commands) nella tua shell per accedere con il tuo account claude.ai, quindi riprova il comando. All'interno di una sessione in esecuzione, `/login` fa la stessa cosa. Se invece l'errore nomina il tuo provider, vedi la [tabella degli errori](#errors-when-sending-to-a-cloud-session): le sessioni cloud non sono disponibili tramite provider di terze parti.

Details

99 99 

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

101 101 

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

103 * **Il tuo ambiente su Enterprise**: con un ruolo di amministratore dell'organizzazione, aggiungi ed elimini i segreti. Senza di esso, la riga **Network secrets** apre l'elenco dei segreti con 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 sessioni103 * **Il tuo ambiente**: senza un ruolo di amministratore dell'organizzazione, **Add secret** apre un [modulo più breve](#add-a-secret-without-the-role)

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

105 * **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

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

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

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


111 110 

112Aggiungi i segreti uno alla volta. Per cambiare gli host o il valore di un segreto, eliminalo e aggiungilo di nuovo.111Aggiungi i segreti uno alla volta. Per cambiare gli host o il valore di un segreto, eliminalo e aggiungilo di nuovo.

113 112 

114Per 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 dal passaggio 2 nella sua 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).113Per 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 dal passaggio 2 nella sua sezione **Network secrets**. Se sei su un piano Team o Enterprise 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).

115 114 

116**1. Aprire i segreti di rete dell'ambiente**115**1. Aprire i segreti di rete dell'ambiente**

117 116 


133 132 

134Per 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.133Per 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.

135 134 

136#### Aggiungere un segreto su un piano Team senza un ruolo di amministratore dell'organizzazione135#### Aggiungere un segreto senza un ruolo di amministratore dell'organizzazione

137 136 

138Se 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 la [riga **Network secrets**](#add-a-credential) del tuo ambiente e poi **Add secret**. Compila questi campi e seleziona il pulsante **Add secret** del modulo:137Se sei su un piano Team o Enterprise e non detieni un [ruolo di amministratore dell'organizzazione](#requirements), il modulo **Add secret** accetta un segreto per un solo host. Seleziona la [riga **Network secrets**](#add-a-credential) del tuo ambiente e poi **Add secret**. Compila questi campi e seleziona il pulsante **Add secret** del modulo:

139 138 

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

141* **Name**: un'etichetta facoltativa per il segreto140* **Name**: un'etichetta facoltativa per il segreto

Details

19 19 

20## Ricette di prompt20## Ricette di prompt

21 21 

22Questi sono modelli di prompt per compiti quotidiani come esplorare codice non familiare, eseguire il debug, effettuare refactoring, scrivere test e creare PR. Ognuno funziona su qualsiasi superficie di Claude Code; adatta la formulazione al tuo progetto.22Questi sono schemi di prompt per attività quotidiane come esplorare codice sconosciuto, eseguire il debug, effettuare refactoring, scrivere test e creare PR. Ognuno funziona in qualsiasi superficie di Claude Code; adatta la formulazione al tuo progetto.

23 23 

24### Comprendere nuove basi di codice24### Comprendere nuovi codebase

25 25 

26Per configurare Claude Code in un monorepo o in una base di codice di grandi dimensioni, vedi [Monorepos e repository di grandi dimensioni](https://code.claude.com/docs/it/large-codebases.md).26Per configurare Claude Code in un monorepo o in un codebase di grandi dimensioni, consulta [Monorepo e repository di grandi dimensioni](https://code.claude.com/docs/it/large-codebases.md).

27 27 

28#### Ottenere una rapida panoramica della base di codice28#### Ottenere una rapida panoramica del codebase

29 29 

30Supponiamo che tu abbia appena aderito a un nuovo progetto e debba comprendere rapidamente la sua struttura.30Supponi di esserti appena unito a un nuovo progetto e di dover comprenderne rapidamente la struttura.

31 31 

32**1. Navigare alla directory radice del progetto**32**1. Spostati nella directory radice del progetto**

33 33 

34```bash theme={null}34```bash theme={null}

35cd /path/to/project 35cd /path/to/project


37 37 

38Sostituisci `/path/to/project` con il percorso del tuo progetto.38Sostituisci `/path/to/project` con il percorso del tuo progetto.

39 39 

40**2. Avviare Claude Code**40**2. Avvia Claude Code**

41 41 

42```bash theme={null}42```bash theme={null}

43claude 43claude

44```44```

45 45 

46**3. Chiedere una panoramica di alto livello**46**3. Chiedi una panoramica di alto livello**

47 47 

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

49give me an overview of this codebase49give me an overview of this codebase

50```50```

51 51 

52**4. Approfondire componenti specifici**52**4. Approfondisci componenti specifici**

53 53 

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

55explain the main architecture patterns used here55explain the main architecture patterns used here


67>67>

68> Suggerimenti:68> Suggerimenti:

69>69>

70> * Inizia con domande ampie, quindi restringi a aree specifiche70> * Inizia con domande generali, poi restringi il campo ad aree specifiche

71> * Chiedi informazioni sulle convenzioni di codifica e sui modelli utilizzati nel progetto71> * Chiedi informazioni sulle convenzioni di codifica e sugli schemi usati nel progetto

72> * Richiedi un glossario di termini specifici del progetto72> * Richiedi un glossario dei termini specifici del progetto

73 73 

74#### Trovare codice rilevante74#### Trovare il codice pertinente

75 75 

76Supponiamo che tu debba individuare il codice relativo a una funzionalità o funzione specifica.76Supponi di dover individuare il codice relativo a una specifica funzionalità.

77 77 

78**1. Chiedere a Claude di trovare file rilevanti**78**1. Chiedi a Claude di trovare i file pertinenti**

79 79 

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

81find the files that handle user authentication81find the files that handle user authentication

82```82```

83 83 

84**2. Ottenere contesto su come i componenti interagiscono**84**2. Ottieni contesto su come interagiscono i componenti**

85 85 

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

87how do these authentication files work together?87how do these authentication files work together?

88```88```

89 89 

90**3. Comprendere il flusso di esecuzione**90**3. Comprendi il flusso di esecuzione**

91 91 

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

93trace the login process from front-end to database93trace the login process from front-end to database


98> Suggerimenti:98> Suggerimenti:

99>99>

100> * Sii specifico su ciò che stai cercando100> * Sii specifico su ciò che stai cercando

101> * Usa il linguaggio del dominio dal progetto101> * Usa il linguaggio di dominio del progetto

102> * Installa un [plugin di code intelligence](https://code.claude.com/docs/it/plugins/code-intelligence.md) per il tuo linguaggio per dare a Claude una navigazione precisa "go to definition" e "find references"102> * Installa un [plugin di code intelligence](https://code.claude.com/docs/it/plugins/code-intelligence.md) per il tuo linguaggio per offrire a Claude una navigazione precisa di tipo "vai alla definizione" e "trova riferimenti"

103 103 

104***104***

105 105 

106### Correggere bug in modo efficiente106### Correggere i bug in modo efficiente

107 107 

108Supponiamo che tu abbia riscontrato un messaggio di errore e debba trovare e correggere la sua fonte.108Supponi di aver riscontrato un messaggio di errore e di doverne trovare e correggere l'origine.

109 109 

110**1. Condividere l'errore con Claude**110**1. Condividi l'errore con Claude**

111 111 

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

113I'm seeing an error when I run npm test113I'm seeing an error when I run npm test

114```114```

115 115 

116**2. Chiedere raccomandazioni per la correzione**116**2. Chiedi suggerimenti per la correzione**

117 117 

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

119suggest a few ways to fix the @ts-ignore in user.ts119suggest a few ways to fix the @ts-ignore in user.ts

120```120```

121 121 

122**3. Applicare la correzione**122**3. Applica la correzione**

123 123 

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

125update user.ts to add the null check you suggested125update user.ts to add the null check you suggested


129>129>

130> Suggerimenti:130> Suggerimenti:

131>131>

132> * Comunica a Claude il comando per riprodurre il problema e ottenere una stack trace132> * Indica a Claude il comando per riprodurre il problema e ottenere uno stack trace

133> * Menziona eventuali passaggi per riprodurre l'errore133> * Menziona eventuali passaggi per riprodurre l'errore

134> * Fai sapere a Claude se l'errore è intermittente o coerente134> * Fai sapere a Claude se l'errore è intermittente o costante

135 135 

136***136***

137 137 

138### Effettuare refactoring del codice138### Effettuare il refactoring del codice

139 139 

140Supponiamo che tu debba aggiornare il codice precedente per utilizzare modelli e pratiche moderne.140Supponi di dover aggiornare codice datato per usare schemi e pratiche moderne.

141 141 

142Per il porting di un'intera base di codice a un nuovo linguaggio, vedi [come Anthropic esegue migrazioni di codice su larga scala con Claude Code](https://claude.com/blog/ai-code-migration) sul blog.142Per il porting di un intero codebase in un nuovo linguaggio, consulta [come Anthropic esegue migrazioni di codice su larga scala con Claude Code](https://claude.com/blog/ai-code-migration) sul blog.

143 143 

144**1. Identificare il codice legacy per il refactoring**144**1. Individua il codice legacy da sottoporre a refactoring**

145 145 

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

147find deprecated API usage in our codebase147find deprecated API usage in our codebase

148```148```

149 149 

150**2. Ottenere raccomandazioni per il refactoring**150**2. Ottieni suggerimenti per il refactoring**

151 151 

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

153suggest how to refactor utils.js to use modern JavaScript features153suggest how to refactor utils.js to use modern JavaScript features

154```154```

155 155 

156**3. Applicare le modifiche in modo sicuro**156**3. Applica le modifiche in sicurezza**

157 157 

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

159refactor utils.js to use ES2024 features while maintaining the same behavior159refactor utils.js to use ES2024 features while maintaining the same behavior

160```160```

161 161 

162**4. Verificare il refactoring**162**4. Verifica il refactoring**

163 163 

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

165run tests for the refactored code165run tests for the refactored code


170> Suggerimenti:170> Suggerimenti:

171>171>

172> * Chiedi a Claude di spiegare i vantaggi dell'approccio moderno172> * Chiedi a Claude di spiegare i vantaggi dell'approccio moderno

173> * Richiedi che le modifiche mantengano la compatibilità all'indietro quando necessario173> * Richiedi che le modifiche mantengano la retrocompatibilità quando necessario

174> * Effettua il refactoring in piccoli incrementi testabili174> * Esegui il refactoring in piccoli incrementi testabili

175 175 

176***176***

177 177 

178### Lavorare con i test178### Lavorare con i test

179 179 

180Supponiamo che tu debba aggiungere test per il codice non coperto.180Supponi di dover aggiungere test per codice non coperto.

181 181 

182**1. Identificare il codice non testato**182**1. Individua il codice non testato**

183 183 

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

185find functions in NotificationsService.swift that are not covered by tests185find functions in NotificationsService.swift that are not covered by tests

186```186```

187 187 

188**2. Generare lo scaffolding dei test**188**2. Genera la struttura di base dei test**

189 189 

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

191add tests for the notification service191add tests for the notification service

192```192```

193 193 

194**3. Aggiungere casi di test significativi**194**3. Aggiungi casi di test significativi**

195 195 

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

197add test cases for edge conditions in the notification service197add test cases for edge conditions in the notification service

198```198```

199 199 

200**4. Eseguire e verificare i test**200**4. Esegui e verifica i test**

201 201 

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

203run the new tests and fix any failures203run the new tests and fix any failures

204```204```

205 205 

206Claude può generare test che seguono i modelli e le convenzioni esistenti del tuo progetto. Quando chiedi test, sii specifico sul comportamento che desideri verificare. Claude esamina i tuoi file di test esistenti per abbinare lo stile, i framework e i modelli di asserzione già in uso.206Claude può generare test che seguono gli schemi e le convenzioni esistenti del tuo progetto. Quando chiedi dei test, sii specifico sul comportamento che vuoi verificare. Claude esamina i tuoi file di test esistenti per adeguarsi allo stile, ai framework e agli schemi di asserzione già in uso.

207 207 

208Per migliorare la copertura, chiedi a Claude di identificare i casi limite che potresti aver perso. Claude può analizzare i tuoi percorsi di codice e suggerire test per condizioni di errore, valori limite e input inaspettati che vengono spesso trascurati.208Per migliorare la copertura, chiedi a Claude di individuare i casi limite che potresti aver trascurato. Claude può analizzare i percorsi del tuo codice e suggerire test per condizioni di errore, valori al limite e input imprevisti che spesso vengono trascurati.

209 209 

210***210***

211 211 

212### Creare pull request212### Creare pull request

213 213 

214Puoi creare pull request chiedendo direttamente a Claude ("create a pr for my changes"), oppure guidare Claude attraverso i passaggi:214Puoi creare pull request chiedendolo direttamente a Claude ("create a pr for my changes"), oppure guidare Claude passo dopo passo:

215 215 

216**1. Riassumere le tue modifiche**216**1. Riepiloga le tue modifiche**

217 217 

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

219summarize the changes I've made to the authentication module219summarize the changes I've made to the authentication module

220```220```

221 221 

222**2. Generare una pull request**222**2. Genera una pull request**

223 223 

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

225create a pr225create a pr

226```226```

227 227 

228**3. Rivedere e affinare**228**3. Rivedi e perfeziona**

229 229 

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

231enhance the PR description with more context about the security improvements231enhance the PR description with more context about the security improvements

232```232```

233 233 

234Per trovare la sessione in seguito, esegui `claude --from-pr 1234` con il numero della tua PR, che apre il selettore di sessione filtrato alle sessioni collegate a quella PR, oppure incolla l'URL della PR nel selettore [`/resume`](https://code.claude.com/docs/it/sessions#use-the-session-picker). Claude Code collega la sessione alla PR quando Claude la crea con `gh pr create` o `glab mr create`, e quando Claude [lavora su una PR esistente](https://code.claude.com/docs/it/agent-view.md#pull-request-status).234Per ritrovare la sessione in seguito, esegui `claude --from-pr 1234` con il numero della tua PR, che apre il selettore di sessioni filtrato sulle sessioni collegate a quella PR, oppure incolla l'URL della PR nella ricerca del [selettore di `/resume`](https://code.claude.com/docs/it/sessions#use-the-session-picker). Claude Code collega la sessione alla PR quando Claude la crea con `gh pr create` o `glab mr create`, e quando Claude [lavora su una PR esistente](https://code.claude.com/docs/it/agent-view.md#pull-request-status).

235 235 

236> [!TIP]236> [!TIP]

237>237>

238> Rivedi la PR generata da Claude prima di inviarla e chiedi a Claude di evidenziare i rischi potenziali o le considerazioni.238> Rivedi la PR generata da Claude prima di inviarla e chiedi a Claude di evidenziare potenziali rischi o aspetti da considerare.

239 239 

240### Gestire la documentazione240### Gestire la documentazione

241 241 

242Supponiamo che tu debba aggiungere o aggiornare la documentazione per il tuo codice.242Supponi di dover aggiungere o aggiornare la documentazione del tuo codice.

243 243 

244**1. Identificare il codice non documentato**244**1. Individua il codice non documentato**

245 245 

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

247find functions without proper JSDoc comments in the auth module247find functions without proper JSDoc comments in the auth module

248```248```

249 249 

250**2. Generare la documentazione**250**2. Genera la documentazione**

251 251 

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

253add JSDoc comments to the undocumented functions in auth.js253add JSDoc comments to the undocumented functions in auth.js

254```254```

255 255 

256**3. Rivedere e migliorare**256**3. Rivedi e migliora**

257 257 

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

259improve the generated documentation with more context and examples259improve the generated documentation with more context and examples

260```260```

261 261 

262**4. Verificare la documentazione**262**4. Verifica la documentazione**

263 263 

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

265check if the documentation follows our project standards265check if the documentation follows our project standards


269>269>

270> Suggerimenti:270> Suggerimenti:

271>271>

272> * Specifica lo stile di documentazione che desideri (JSDoc, docstrings, ecc.)272> * Specifica lo stile di documentazione che desideri (JSDoc, docstring, ecc.)

273> * Chiedi esempi nella documentazione273> * Chiedi esempi nella documentazione

274> * Richiedi documentazione per API pubbliche, interfacce e logica complessa274> * Richiedi documentazione per API pubbliche, interfacce e logica complessa

275 275 


277 277 

278### Lavorare in note e cartelle non di codice278### Lavorare in note e cartelle non di codice

279 279 

280Claude Code funziona in qualsiasi directory. Eseguilo all'interno di un vault di note, una cartella di documentazione o qualsiasi raccolta di file markdown per cercare, modificare e riorganizzare il contenuto nello stesso modo in cui faresti con il codice.280Claude Code funziona in qualsiasi directory. Eseguilo all'interno di un vault di note, di una cartella di documentazione o di qualsiasi raccolta di file markdown per cercare, modificare e riorganizzare i contenuti nello stesso modo in cui faresti con il codice.

281 281 

282La directory `.claude/` e `CLAUDE.md` si trovano insieme alle directory di configurazione di altri strumenti senza conflitti. Claude legge i file freschi ad ogni chiamata dello strumento, quindi vede le modifiche che fai in un'altra applicazione la prossima volta che legge quel file.282La directory `.claude/` e `CLAUDE.md` coesistono con le directory di configurazione di altri strumenti senza conflitti. Claude legge i file da zero a ogni chiamata a uno strumento, quindi vede le modifiche che apporti in un'altra applicazione la volta successiva che legge quel file.

283 283 

284***284***

285 285 

286### Lavorare con le immagini286### Lavorare con le immagini

287 287 

288Supponiamo che tu debba lavorare con immagini nella tua base di codice e desideri l'aiuto di Claude nell'analizzare il contenuto dell'immagine.288Supponi di dover lavorare con immagini nel tuo codebase e di volere l'aiuto di Claude per analizzarne il contenuto.

289 289 

290**1. Aggiungere un'immagine alla conversazione**290**1. Aggiungi un'immagine alla conversazione**

291 291 

292Puoi utilizzare uno di questi metodi:292Puoi usare uno qualsiasi di questi metodi:

293 293 

2941. Trascina e rilascia un'immagine nella finestra di Claude Code2941. Trascina e rilascia un'immagine nella finestra di Claude Code

2952. Copia un'immagine e incollala nella CLI con `Ctrl+V`, oppure con [`Alt+V` su Windows e WSL](https://code.claude.com/docs/it/interactive-mode#general-controls)2952. Copia un'immagine e incollala nella CLI con `Ctrl+V`, oppure con [`Alt+V` su Windows e WSL](https://code.claude.com/docs/it/interactive-mode#general-controls)

2963. Fornisci un percorso di immagine a Claude, ad esempio "Analyze this image: /path/to/your/image.png"2963. Fornisci a Claude il percorso di un'immagine, ad esempio "Analizza questa immagine: /path/to/your/image.png"

297 297 

298**2. Chiedere a Claude di analizzare l'immagine**298**2. Chiedi a Claude di analizzare l'immagine**

299 299 

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

301What does this image show?301What does this image show?


309Are there any problematic elements in this diagram?309Are there any problematic elements in this diagram?

310```310```

311 311 

312**3. Utilizzare le immagini per il contesto**312**3. Usa le immagini come contesto**

313 313 

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

315Here's a screenshot of the error. What's causing it?315Here's a screenshot of the error. What's causing it?


319This is our current database schema. How should we modify it for the new feature?319This is our current database schema. How should we modify it for the new feature?

320```320```

321 321 

322**4. Ottenere suggerimenti di codice dal contenuto visivo**322**4. Ottieni suggerimenti di codice da contenuti visivi**

323 323 

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

325Generate CSS to match this design mockup325Generate CSS to match this design mockup


333>333>

334> Suggerimenti:334> Suggerimenti:

335>335>

336> * Usa le immagini quando le descrizioni di testo sarebbero poco chiare o ingombranti336> * Usa le immagini quando le descrizioni testuali sarebbero poco chiare o macchinose

337> * Includi screenshot di errori, design dell'interfaccia utente o diagrammi per un contesto migliore337> * Includi screenshot di errori, design dell'interfaccia o diagrammi per un contesto migliore

338> * Puoi lavorare con più immagini in una conversazione338> * Puoi lavorare con più immagini in una conversazione

339> * L'analisi delle immagini funziona con diagrammi, screenshot, mockup e altro339> * L'analisi delle immagini funziona con diagrammi, screenshot, mockup e altro ancora

340> * Quando Claude fa riferimento a immagini (ad esempio, `[Image #1]`), `Cmd+Click` (Mac) o `Ctrl+Click` (Windows/Linux) il collegamento per aprire l'immagine nel tuo visualizzatore predefinito340> * Quando Claude fa riferimento a immagini (ad esempio, `[Image #1]`), usa `Cmd+Click` (Mac) o `Ctrl+Click` (Windows/Linux) sul link per aprire l'immagine nel visualizzatore predefinito

341 341 

342***342***

343 343 

344### Fare riferimento a file e directory344### Fare riferimento a file e directory

345 345 

346Usa @ per includere rapidamente file o directory senza aspettare che Claude li legga.346Usa @ per includere rapidamente file o directory senza attendere che Claude li legga.

347 347 

348**1. Fare riferimento a un singolo file**348**1. Fai riferimento a un singolo file**

349 349 

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

351Explain the logic in @src/utils/auth.js351Explain the logic in @src/utils/auth.js

352```352```

353 353 

354Questo include il contenuto del file nella conversazione quando rientra nel limite di token dello [strumento Read](https://code.claude.com/docs/it/tools-reference.md#read-tool-behavior), 25.000 token per impostazione predefinita. Un file di testo più grande di 256KB non viene incluso.354Questo include il contenuto del file nella conversazione quando rientra nel limite di token dello [strumento Read](https://code.claude.com/docs/it/tools-reference.md#read-tool-behavior), pari a 25.000 token per impostazione predefinita. Un file di testo più grande di 256KB non viene incluso.

355 355 

356**2. Fare riferimento a una directory**356**2. Fai riferimento a una directory**

357 357 

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

359What's the structure of @src/components?359What's the structure of @src/components?

360```360```

361 361 

362**3. Fare riferimento alle risorse MCP**362**3. Fai riferimento a risorse MCP**

363 363 

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

365Show me the data from @github:repos/owner/repo/issues365Show me the data from @github:repos/owner/repo/issues

366```366```

367 367 

368Questo recupera i dati dai server MCP connessi utilizzando il formato @server:resource. Vedi [risorse MCP](https://code.claude.com/docs/it/mcp.md#use-mcp-resources) per i dettagli.368Questo recupera i dati dai server MCP connessi usando il formato @server:resource. Consulta [Risorse MCP](https://code.claude.com/docs/it/mcp.md#use-mcp-resources) per i dettagli.

369 369 

370> [!TIP]370> [!TIP]

371>371>

372> Suggerimenti:372> Suggerimenti:

373>373>

374> * I percorsi dei file possono essere relativi o assoluti374> * I percorsi dei file possono essere relativi o assoluti

375> * Digita `@` per aprire un menu di suggerimento del percorso, quindi premi Invio o Tab per accettare il percorso evidenziato e Invio di nuovo per inviare il messaggio375> * Digita `@` per aprire un menu di suggerimenti dei percorsi, poi premi Enter o Tab per accettare il percorso evidenziato e di nuovo Enter per inviare il messaggio

376> * I riferimenti ai file @ aggiungono `CLAUDE.md` nella directory del file e nelle directory padre al contesto376> * I riferimenti ai file con @ aggiungono al contesto il `CLAUDE.md` presente nella directory del file e nelle directory superiori

377> * I riferimenti alle directory mostrano elenchi di file, non contenuti377> * I riferimenti alle directory mostrano l'elenco dei file, non i contenuti

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

379 379 

380Per impedire ai riferimenti `@` di includere il contenuto dei file e gli elenchi delle directory, imposta [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](https://code.claude.com/docs/it/env-vars#variables) su `1` nella tua shell o nel [blocco `env`](https://code.claude.com/docs/it/env-vars#set-variables-in-settings-files) delle impostazioni utente o delle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). 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.380Per impedire che i riferimenti `@` includano il contenuto dei file e l'elenco delle directory, imposta [`CLAUDE_CODE_DISABLE_FILE_MENTIONS`](https://code.claude.com/docs/it/env-vars#variables) su `1` nella tua shell o nel [blocco `env`](https://code.claude.com/docs/it/env-vars#set-variables-in-settings-files) delle impostazioni utente o delle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). 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.

381 381 

382I tuoi [hook `PreToolUse`](https://code.claude.com/docs/it/hooks#pretooluse) non vengono eseguiti quando Claude Code include un file a cui fai riferimento con `@`, perché non effettua alcuna chiamata a uno strumento. Se ti affidi a questi hook per controllare ciò che Claude legge, blocca percorsi specifici o impedisci ai riferimenti `@` di includere file:382I tuoi [hook `PreToolUse`](https://code.claude.com/docs/it/hooks#pretooluse) non vengono eseguiti quando Claude Code include un file a cui fai riferimento con `@`, perché non effettua alcuna chiamata a uno strumento. Se ti affidi a questi hook per controllare ciò che Claude legge, blocca percorsi specifici oppure impedisci che i riferimenti `@` includano file:

383 383 

384* **Bloccare percorsi specifici**: aggiungi una [regola di negazione `Read`](https://code.claude.com/docs/it/permissions#read-and-edit) per questi percorsi. Claude Code non include un file a cui corrisponde la regola.384* **Bloccare percorsi specifici**: aggiungi una [regola di negazione `Read`](https://code.claude.com/docs/it/permissions#read-and-edit) per tali percorsi. Claude Code non include un file che corrisponde alla regola.

385* **Impedire ai riferimenti `@` di includere file**: imposta `CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`, che impedisce ai riferimenti `@` a file e directory nei tuoi messaggi di includere contenuto, anche per percorsi che i tuoi hook non controllano. I tuoi hook corrispondenti vengono quindi eseguiti prima che Claude apra un percorso a cui hai fatto riferimento con uno strumento come `Read`.385* **Impedire che i riferimenti `@` includano file**: imposta `CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`, che impedisce ai riferimenti `@` a file e directory nei tuoi messaggi di includere contenuti, anche per i percorsi che i tuoi hook non controllano. I tuoi hook corrispondenti vengono quindi eseguiti prima che Claude apra un percorso referenziato con uno strumento come `Read`.

386 386 

387***387***

388 388 

389### Eseguire Claude su una pianificazione389### Eseguire Claude secondo una pianificazione

390 390 

391Supponiamo che tu voglia che Claude gestisca un'attività automaticamente su base ricorrente, come rivedere le PR aperte ogni mattina, controllare le dipendenze settimanalmente o verificare i fallimenti di CI durante la notte.391Supponi di volere che Claude gestisca un'attività automaticamente su base ricorrente, ad esempio rivedere le PR aperte ogni mattina, verificare le dipendenze ogni settimana o controllare gli errori della CI durante la notte.

392 392 

393Scegli un'opzione di pianificazione in base a dove desideri che l'attività venga eseguita:393Scegli un'opzione di pianificazione in base a dove vuoi che l'attività venga eseguita:

394 394 

395| Opzione | Dove viene eseguita | Migliore per |395| Opzione | Dove viene eseguita | Ideale per |

396| :- | :- | :- |396| :- | :- | :- |

397| [Attività pianificate cloud](https://code.claude.com/docs/it/routines.md) | Cloud, gestito da Anthropic per impostazione predefinita | Attività che dovrebbero essere eseguite anche quando il tuo computer è spento. Possono anche attivarsi su chiamate API o eventi GitHub oltre a una pianificazione. Configura su [claude.ai/code/routines](https://claude.ai/code/routines). |397| [Attività pianificate nel cloud](https://code.claude.com/docs/it/routines.md) | Cloud, gestito da Anthropic per impostazione predefinita | Attività che devono essere eseguite anche quando il computer è spento. Possono anche attivarsi su chiamate API o eventi GitHub oltre che secondo una pianificazione. Configurale su [claude.ai/code/routines](https://claude.ai/code/routines). |

398| [Attività pianificate desktop](https://code.claude.com/docs/it/desktop-scheduled-tasks.md) | La tua macchina, tramite l'app desktop | Attività che hanno bisogno di accesso diretto a file locali, strumenti o modifiche non sottoposte a commit. |398| [Attività pianificate desktop](https://code.claude.com/docs/it/desktop-scheduled-tasks.md) | La tua macchina, tramite l'app desktop | Attività che richiedono accesso diretto a file locali, strumenti o modifiche non committate. |

399| [GitHub Actions](https://code.claude.com/docs/it/github-actions.md) | La tua pipeline CI | Attività legate a eventi del repository come PR aperte, o pianificazioni cron che dovrebbero vivere insieme alla tua configurazione del flusso di lavoro. |399| [GitHub Actions](https://code.claude.com/docs/it/github-actions.md) | La tua pipeline CI | Attività legate a eventi del repository come l'apertura di PR, oppure pianificazioni cron che devono risiedere accanto alla configurazione del tuo workflow. |

400| [`/loop`](https://code.claude.com/docs/it/scheduled-tasks) | La sessione CLI corrente | Polling rapido mentre una sessione è aperta. `--resume` e `--continue` ripristinano i loop a intervalli fissi non scaduti. |400| [`/loop`](https://code.claude.com/docs/it/scheduled-tasks) | La sessione CLI corrente | Polling rapido mentre una sessione è aperta. `--resume` e `--continue` ripristinano i loop a intervallo fisso non scaduti. |

401 401 

402> [!TIP]402> [!TIP]

403>403>

404> Quando scrivi prompt per attività pianificate, sii esplicito su cosa significhi il successo e cosa fare con i risultati. L'attività viene eseguita autonomamente, quindi non può fare domande di chiarimento. Ad esempio: "Review open PRs labeled `needs-review`, leave inline comments on any issues, and post a summary in the `#eng-reviews` Slack channel."404> Quando scrivi prompt per le attività pianificate, sii esplicito su cosa significa successo e su cosa fare con i risultati. L'attività viene eseguita in modo autonomo, quindi non può porre domande di chiarimento. Ad esempio: "Rivedi le PR aperte con l'etichetta `needs-review`, lascia commenti in linea su eventuali problemi e pubblica un riepilogo nel canale Slack `#eng-reviews`."

405 405 

406***406***

407 407 

408### Chiedere a Claude delle sue capacità408### Chiedere a Claude delle sue capacità

409 409 

410Claude può rispondere a domande sulle sue stesse funzionalità e limitazioni. Cerca le risposte nella documentazione attuale di Claude Code, quindi non sono limitate alla versione che stai eseguendo.410Claude può rispondere a domande sulle proprie funzionalità e limitazioni. Cerca le risposte nella documentazione attuale di Claude Code, quindi non sono limitate alla versione che stai eseguendo.

411 411 

412#### Domande di esempio412#### Domande di esempio

413 413 


437 437 

438> [!NOTE]438> [!NOTE]

439>439>

440> Claude fornisce risposte basate sulla documentazione a queste domande. Per dimostrazioni pratiche, esegui `/powerup` per lezioni interattive con demo animate, o fai riferimento alle sezioni di flusso di lavoro specifiche sopra.440> Claude fornisce risposte basate sulla documentazione a queste domande. Per dimostrazioni pratiche, esegui `/powerup` per lezioni interattive con demo animate, oppure fai riferimento alle sezioni sui workflow specifici riportate sopra.

441 441 

442> [!TIP]442> [!TIP]

443>443>

444> Suggerimenti:444> Suggerimenti:

445>445>

446> * Fai domande specifiche per ottenere risposte dettagliate446> * Poni domande specifiche per ottenere risposte dettagliate

447> * Claude può spiegare funzionalità complesse come integrazione MCP, configurazioni aziendali e flussi di lavoro avanzati447> * Claude può spiegare funzionalità complesse come l'integrazione MCP, le configurazioni enterprise e i workflow avanzati

448 448 

449***449***

450 450 

Details

36I seguenti processi non si avviano attraverso il launcher:36I seguenti processi non si avviano attraverso il launcher:

37 37 

38* Una sessione che avviate voi stessi in un terminale, che viene eseguita come l'avete invocata. Per coprire queste sessioni, mettete uno script denominato `claude` in una directory precedente su `PATH` che esegue il vostro launcher con il binario reale; non sostituite il symlink gestito. Il servizio in background e le sue sessioni si avviano senza una ricerca `PATH`, quindi i due launcher non si impilano lì.38* Una sessione che avviate voi stessi in un terminale, che viene eseguita come l'avete invocata. Per coprire queste sessioni, mettete uno script denominato `claude` in una directory precedente su `PATH` che esegue il vostro launcher con il binario reale; non sostituite il symlink gestito. Il servizio in background e le sue sessioni si avviano senza una ricerca `PATH`, quindi i due launcher non si impilano lì.

39* Il primo processo di un deep link `claude-cli://`, che il gestore del protocollo del sistema operativo avvia direttamente. Tutto ciò che quella sessione avvia in background in seguito viene eseguito attraverso il launcher. Per chiudere completamente questo percorso, [impedite la registrazione del gestore](https://code.claude.com/docs/it/deep-links.md#registration-and-supported-platforms) con l'impostazione `disableDeepLinkRegistration`.39* Una sessione aperta da un deep link `claude-cli://`, che si avvia in un nuovo terminale senza il tuo launcher. Per impedire che i deep link aprano sessioni per un nuovo utente, imposta [`disableDeepLinkRegistration`](https://code.claude.com/docs/it/settings-reference#disabledeeplinkregistration) su `"disable"` prima che quell'utente esegua Claude Code per la prima volta. Per un utente che ha già un [gestore registrato](https://code.claude.com/docs/it/deep-links.md#registration-and-supported-platforms), i deep link continuano ad aprire sessioni, perché l'impostazione non rimuove il gestore.

40* Il riavvio che `--worktree` combinato con `--tmux` esegue: il multiplexer del terminale avvia quel pane, non il binario di Claude Code.40* Il riavvio che `--worktree` combinato con `--tmux` esegue: il multiplexer del terminale avvia quel pane, non il binario di Claude Code.

41* L'host di native-messaging che [Claude in Chrome](https://code.claude.com/docs/it/chrome.md) registra: il browser lo avvia, non il binario di Claude Code.41* L'host di native-messaging che [Claude in Chrome](https://code.claude.com/docs/it/chrome.md) registra: il browser lo avvia, non il binario di Claude Code.

42 42 

data-usage.md +21 −21

Details

8 8 

9## Politiche sui dati9## Politiche sui dati

10 10 

11### Politica di addestramento dei dati11### Politica di addestramento sui dati

12 12 

13**Utenti consumer (piani Free, Pro e Max)**:13**Utenti consumer (piani Free, Pro e Max)**:

14Vi diamo la possibilità di consentire l'utilizzo dei vostri dati per migliorare i futuri modelli Claude. Addestreremo nuovi modelli utilizzando i dati degli account Free, Pro e Max quando questa impostazione è attiva (incluso quando utilizzate Claude Code da questi account).14Ti diamo la possibilità di scegliere se consentire l'uso dei tuoi dati per migliorare i futuri modelli Claude. Addestreremo nuovi modelli utilizzando i dati degli account Free, Pro e Max quando questa impostazione è attiva (anche quando usi Claude Code da questi account).

15 15 

16**Utenti commerciali**: (piani Team ed Enterprise, API, piattaforme di terze parti e Claude Gov) mantengono le politiche esistenti: Anthropic non addestra modelli generativi utilizzando codice o prompt inviati a Claude Code secondo i termini commerciali, a meno che il cliente non abbia scelto di fornirci i propri dati per il miglioramento del modello (ad esempio, il [Development Partner Program](https://support.claude.com/it/articles/11174108-about-the-development-partner-program)).16**Utenti commerciali**: (piani Team ed Enterprise, API, piattaforme di terze parti e Claude Gov) mantengono le politiche esistenti: Anthropic non addestra modelli generativi utilizzando codice o prompt inviati a Claude Code secondo i termini commerciali, a meno che il cliente non abbia scelto di fornirci i propri dati per il miglioramento dei modelli (ad esempio, il [Developer Partner Program](https://support.claude.com/en/articles/11174108-about-the-development-partner-program)).

17 17 

18### Development Partner Program18### Development Partner Program

19 19 

20Se vi iscrivete esplicitamente a metodi per fornirci materiali su cui addestrare, come tramite il [Development Partner Program](https://support.claude.com/it/articles/11174108-about-the-development-partner-program), potremmo utilizzare tali materiali forniti per addestrare i nostri modelli. Un amministratore dell'organizzazione può iscriversi esplicitamente al Development Partner Program per la propria organizzazione. Si noti che questo programma è disponibile solo per l'API di Anthropic di prima parte e non per gli utenti di Amazon Bedrock o della piattaforma agenti di Google Cloud.20Se aderisci esplicitamente a metodi per fornirci materiali su cui addestrare, ad esempio tramite il [Development Partner Program](https://support.claude.com/en/articles/11174108-about-the-development-partner-program), potremmo utilizzare i materiali forniti per addestrare i nostri modelli. Un amministratore dell'organizzazione può aderire espressamente al Development Partner Program per la propria organizzazione. Tieni presente che questo programma è disponibile solo per l'API first-party di Anthropic e non per gli utenti di Amazon Bedrock o Google Cloud's Agent Platform.

21 21 

22### Feedback utilizzando il comando `/feedback`22### Feedback tramite il comando `/feedback`

23 23 

24Se scegliete di inviarci feedback su Claude Code utilizzando il comando `/feedback`, potremmo utilizzare il vostro feedback per migliorare i nostri prodotti e servizi. I transcript condivisi tramite `/feedback`, o tramite `/bug` e `/share`, che segnalano attraverso lo stesso percorso, vengono conservati per 5 anni.24Se scegli di inviarci feedback su Claude Code utilizzando il comando `/feedback`, potremmo utilizzare il tuo feedback per migliorare i nostri prodotti e servizi. Le trascrizioni condivise tramite `/feedback`, oppure tramite `/bug` e `/share`, che effettuano la segnalazione attraverso lo stesso percorso, vengono conservate per 5 anni.

25 25 

26Con il [feedback redatto da Claude](https://code.claude.com/docs/it/tools-reference.md#sendfeedback-tool-behavior), Claude può anche redigere un rapporto di feedback e metterlo in coda sulla vostra macchina per voi da rivedere. Claude Code non invia nulla finché non scegliete di inviare la bozza, e una bozza inviata passa attraverso lo stesso percorso di invio e conservazione di altri report `/feedback`.26Con il [feedback redatto da Claude](https://code.claude.com/docs/it/tools-reference.md#sendfeedback-tool-behavior), Claude può anche redigere una segnalazione di feedback e metterla in coda sulla tua macchina affinché tu la esamini. Claude Code non invia nulla finché non scegli di inviare la bozza, e una bozza inviata segue lo stesso percorso di invio e la stessa conservazione degli altri report `/feedback`.

27 27 

28### Sondaggi sulla qualità della sessione28### Sondaggi sulla qualità della sessione

29 29 

30Quando vedete il prompt "Come sta andando Claude in questa sessione?" in Claude Code, rispondendo a questo sondaggio, inclusa la selezione di "Ignora", viene registrato solo il vostro voto. Non raccogliamo né archiviamo alcun transcript di conversazione, input, output o altri dati di sessione come parte del prompt di valutazione stesso. A differenza del feedback con pollice su/giù o dei report `/feedback`, questo sondaggio sulla qualità della sessione è una semplice metrica di soddisfazione del prodotto.30Quando vedi il prompt "How is Claude doing this session?" in Claude Code, rispondere a questo sondaggio, inclusa la selezione di "Dismiss", registra solo la tua valutazione. Non raccogliamo né memorizziamo trascrizioni di conversazioni, input, output o altri dati della sessione come parte del prompt di valutazione stesso. A differenza del feedback con pollice in su/giù o dei report `/feedback`, questo sondaggio sulla qualità della sessione è una semplice metrica di soddisfazione del prodotto.

31 31 

32Dopo il prompt di valutazione, potete vedere una domanda di follow-up separata che chiede "Anthropic può guardare il transcript della vostra sessione per aiutarci a migliorare Claude Code?". Questo è un secondo passaggio facoltativo distinto dalla valutazione:32Dopo il prompt di valutazione, potresti vedere una domanda di follow-up separata: "Can Anthropic look at your session transcript to help us improve Claude Code?". Si tratta di un secondo passaggio facoltativo, distinto dalla valutazione:

33 33 

34* **Sì**: carica il transcript della vostra conversazione, i transcript di qualsiasi subagent e il file di log della sessione non elaborato dal disco su Anthropic. I modelli di chiave API e token noti vengono oscurati prima del caricamento. Il codice sorgente, i contenuti dei file e altri contenuti della conversazione vengono caricati così come sono. I transcript condivisi vengono conservati fino a 6 mesi. Su Amazon Bedrock, la piattaforma agenti di Google Cloud, Microsoft Foundry e sessioni del [gateway app Claude](https://code.claude.com/docs/it/claude-apps-gateway) con accesso effettuato, Sì scrive lo stesso payload in un archivio locale sotto `~/.claude/feedback-bundles/` invece di caricare; nulla lascia la vostra macchina finché non inoltrate quel file.34* **Yes**: carica su Anthropic la trascrizione della tua conversazione, eventuali trascrizioni dei subagent e il file di log grezzo della sessione presente su disco. I pattern noti di chiavi API e token vengono oscurati prima del caricamento. Il codice sorgente, il contenuto dei file e gli altri contenuti della conversazione vengono caricati così come sono. Le trascrizioni condivise vengono conservate per un massimo di 6 mesi. Su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e nelle sessioni con accesso effettuato al [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway), Yes scrive lo stesso payload in un archivio locale in `~/.claude/feedback-bundles/` invece di caricarlo; nulla lascia la tua macchina finché non inoltri quel file.

35* **No**: rifiuta senza inviare nulla35* **No**: rifiuta senza inviare nulla

36* **Non chiedere più**: rifiuta e impedisce che questo follow-up appaia nelle sessioni future36* **Don't ask again**: rifiuta e impedisce che questo follow-up compaia nelle sessioni future

37 37 

38Nulla viene caricato a meno che non selezioniate esplicitamente **Sì**. Le organizzazioni con [zero data retention](https://code.claude.com/docs/it/zero-data-retention.md), o dove il feedback sui prodotti è disabilitato dalla politica dell'organizzazione, o dove `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` è impostato, non vedono mai questo follow-up. Le vostre risposte a questo sondaggio, inclusi i transcript delle sessioni inviati dopo il prompt di valutazione, non influiscono sulle vostre preferenze di addestramento dei dati e non possono essere utilizzate per addestrare i nostri modelli di IA.38Nulla viene caricato a meno che tu non selezioni esplicitamente **Yes**. Le organizzazioni con [zero data retention](https://code.claude.com/docs/it/zero-data-retention.md), quelle in cui il feedback sul prodotto è disabilitato dalla politica dell'organizzazione o quelle in cui è impostato `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` non vedono mai questo follow-up. Le tue risposte a questo sondaggio, incluse le trascrizioni di sessione inviate dopo il prompt di valutazione, non influiscono sulle tue preferenze di addestramento sui dati e non possono essere utilizzate per addestrare i nostri modelli di IA.

39 39 

40Per disabilitare questi sondaggi, impostate `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`. Il sondaggio viene anche disabilitato quando `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` è impostato. Le organizzazioni che bloccano il traffico non essenziale ma acquisiscono le risposte ai sondaggi tramite il loro [OpenTelemetry collector](https://code.claude.com/docs/it/monitoring-usage.md) possono ripristinare il sondaggio impostando `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1`. Il sondaggio registra quindi le valutazioni solo al collector configurato. Il follow-up di condivisione dei transcript e tutto il resto del traffico di feedback legato ad Anthropic rimangono disabilitati. Per controllare la frequenza invece di disabilitare, impostate [`feedbackSurveyRate`](https://code.claude.com/docs/it/settings-reference#feedbacksurveyrate) nel vostro file di impostazioni su una probabilità tra `0` e `1`.40Per disabilitare questi sondaggi, imposta `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1`. Il sondaggio è disabilitato anche quando è impostato `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Le organizzazioni che bloccano il traffico non essenziale ma raccolgono le risposte ai sondaggi tramite il proprio [collector OpenTelemetry](https://code.claude.com/docs/it/monitoring-usage.md) possono riattivare il sondaggio impostando `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL=1`. Il sondaggio registra quindi le valutazioni solo nel collector configurato. Il follow-up per la condivisione delle trascrizioni e tutto il resto del traffico di feedback diretto ad Anthropic restano disabilitati. Per controllare la frequenza invece di disabilitarli, imposta [`feedbackSurveyRate`](https://code.claude.com/docs/it/settings-reference#feedbacksurveyrate) nel tuo file di impostazioni su una probabilità compresa tra `0` e `1`.

41 41 

42### Conservazione dei dati42### Conservazione dei dati

43 43 

44Anthropic conserva i dati di Claude Code in base al tipo di account e alle preferenze dell'utente.44Anthropic conserva i dati di Claude Code in base al tipo di account e alle tue preferenze.

45 45 

46**Utenti consumer (piani Free, Pro e Max)**:46**Utenti consumer (piani Free, Pro e Max)**:

47 47 

48* Utenti che consentono l'utilizzo dei dati per il miglioramento del modello: periodo di conservazione di 5 anni per supportare lo sviluppo del modello e i miglioramenti della sicurezza48* Utenti che consentono l'uso dei dati per il miglioramento dei modelli: periodo di conservazione di 5 anni per supportare lo sviluppo dei modelli e i miglioramenti della sicurezza

49* Utenti che non consentono l'utilizzo dei dati per il miglioramento del modello: periodo di conservazione di 30 giorni49* Utenti che non consentono l'uso dei dati per il miglioramento dei modelli: periodo di conservazione di 30 giorni

50* Le impostazioni sulla privacy possono essere modificate in qualsiasi momento su [claude.ai/settings/data-privacy-controls](https://claude.ai/settings/data-privacy-controls).50* Le impostazioni sulla privacy possono essere modificate in qualsiasi momento su [claude.ai/settings/data-privacy-controls](https://claude.ai/settings/data-privacy-controls).

51 51 

52**Utenti commerciali (Team, Enterprise e API)**:52**Utenti commerciali (Team, Enterprise e API)**:

53 53 

54* Standard: periodo di conservazione di 30 giorni54* Standard: periodo di conservazione di 30 giorni

55* [Zero data retention](https://code.claude.com/docs/it/zero-data-retention.md): disponibile per Claude Code su Claude for Enterprise. ZDR non è incluso nel piano Enterprise standard; viene abilitato su base per organizzazione dal vostro team di account dopo aver confermato l'idoneità55* [Zero data retention](https://code.claude.com/docs/it/zero-data-retention.md): disponibile per gli account idonei per Claude Code su Claude for Enterprise. La ZDR non è inclusa nel piano Enterprise standard; viene abilitata per singola organizzazione dal tuo team dell'account dopo aver confermato l'idoneità

56* Caching locale: i client di Claude Code archiviano i transcript delle sessioni localmente in testo semplice sotto `~/.claude/projects/` per 30 giorni per impostazione predefinita per abilitare la ripresa della sessione. Regolate il periodo con `cleanupPeriodDays`. Consultate [application data](https://code.claude.com/docs/it/claude-directory.md#application-data) per sapere cosa viene archiviato e come cancellarlo.56* Caching locale: i client di Claude Code memorizzano le trascrizioni delle sessioni localmente in testo non crittografato in `~/.claude/projects/` per 30 giorni per impostazione predefinita, per consentire la ripresa delle sessioni. Modifica il periodo con `cleanupPeriodDays`. Consulta [dati dell'applicazione](https://code.claude.com/docs/it/claude-directory.md#application-data) per sapere cosa viene memorizzato e come cancellarlo.

57 57 

58 I transcript delle sessioni avviate o riprese più di recente in Claude Desktop o Cowork sono [esenti da quel limite per impostazione predefinita](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically).58 Le trascrizioni delle sessioni avviate o proseguite più di recente in Claude Desktop o Cowork sono [esenti da tale limite per impostazione predefinita](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically).

59 59 

60Potete eliminare le singole sessioni di Claude Code sul web in qualsiasi momento. L'eliminazione di una sessione rimuove permanentemente i dati dell'evento della sessione. Per istruzioni su come eliminare le sessioni, consultate [Eliminare le sessioni](https://code.claude.com/docs/it/claude-code-on-the-web.md#delete-sessions).60Puoi eliminare singole sessioni cloud in qualsiasi momento. L'eliminazione di una sessione rimuove in modo permanente i dati degli eventi della sessione. Per istruzioni su come eliminare le sessioni, consulta [Eliminare le sessioni](https://code.claude.com/docs/it/claude-code-on-the-web.md#delete-sessions).

61 61 

62Scopri di più sulle pratiche di conservazione dei dati nel nostro [Privacy Center](https://privacy.anthropic.com/).62Scopri di più sulle pratiche di conservazione dei dati nel nostro [Privacy Center](https://privacy.anthropic.com/).

63 63 

64Per i dettagli completi, consultate i nostri [Termini di servizio commerciali](https://www.anthropic.com/legal/commercial-terms) (per gli utenti Team, Enterprise e API) o [Termini consumer](https://www.anthropic.com/legal/consumer-terms) (per gli utenti Free, Pro e Max) e [Informativa sulla privacy](https://www.anthropic.com/legal/privacy).64Per tutti i dettagli, consulta i nostri [Termini di servizio commerciali](https://www.anthropic.com/legal/commercial-terms) (per gli utenti Team, Enterprise e API) o i [Termini per i consumatori](https://www.anthropic.com/legal/consumer-terms) (per gli utenti Free, Pro e Max) e l'[Informativa sulla privacy](https://www.anthropic.com/legal/privacy).

65 65 

66## Accesso ai dati66## Accesso ai dati

67 67 

desktop.md +373 −373

Details

38 38 

39Per [lavoro ricorrente pianificato](https://code.claude.com/docs/it/desktop-scheduled-tasks.md), [scorciatoie da tastiera](#keyboard-shortcuts), o [invio di attività dal tuo telefono](#sessions-from-dispatch), consulta le pagine e le sezioni collegate. Se utilizzi già il CLI basato su terminale, consulta il [confronto CLI](#coming-from-the-cli) per vedere cosa si trasferisce.39Per [lavoro ricorrente pianificato](https://code.claude.com/docs/it/desktop-scheduled-tasks.md), [scorciatoie da tastiera](#keyboard-shortcuts), o [invio di attività dal tuo telefono](#sessions-from-dispatch), consulta le pagine e le sezioni collegate. Se utilizzi già il CLI basato su terminale, consulta il [confronto CLI](#coming-from-the-cli) per vedere cosa si trasferisce.

40 40 

41## Avvia una sessione41## Avviare una sessione

42 42 

43Prima di inviare il tuo primo messaggio, scegli l'ambiente, la cartella del progetto, la modalità di permesso e il modello nella riga sotto la casella del prompt:43Prima di inviare il tuo primo messaggio, scegli l'ambiente, la cartella del progetto, la modalità di permesso e il modello nella riga sotto la casella del prompt:

44 44 

45* **Ambiente**: usa il selettore dell'ambiente, il primo controllo della riga, per scegliere dove Claude viene eseguito. Vedi [configurazione dell'ambiente](#environment-configuration).45* **Ambiente**: usa il selettore dell'ambiente, il primo controllo della riga, per scegliere dove viene eseguito Claude. Consulta la [configurazione dell'ambiente](#environment-configuration).

46 * Se una nuova sessione non ha il selettore dell'ambiente sotto la casella del prompt, segui i [passaggi del layout precedente](#check-which-layout-you-have).46 * Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, segui i [passaggi del layout precedente](#check-which-layout-you-have).

47* **Cartella del progetto**: fai clic sul controllo della cartella del progetto, accanto al selettore dell'ambiente, per scegliere la cartella su cui Claude lavora.47* **Cartella del progetto**: fai clic sul controllo della cartella del progetto, accanto al selettore dell'ambiente, per scegliere la cartella in cui lavora Claude.

48 * **Sessione cloud**: seleziona dei [repository](#run-long-running-tasks-in-the-cloud) invece di una cartella48 * **Sessione cloud**: seleziona i [repository](#run-long-running-tasks-in-the-cloud) invece di una cartella

49 * **[Ambiente locale o SSH salvato](#create-a-saved-environment)**: l'ambiente contiene già le sue cartelle, quindi la riga non mostra alcun controllo della cartella del progetto. Per cambiare le cartelle, [modifica l'ambiente](#use-edit-or-remove-a-saved-environment).49 * **[Ambiente locale o SSH salvato](#create-a-saved-environment)**: l'ambiente contiene già le sue cartelle, quindi la riga non mostra alcun controllo della cartella del progetto. Per cambiare le cartelle, [modifica l'ambiente](#use-edit-or-remove-a-saved-environment).

50* **Modalità di permesso**: usa il [selettore di modalità](#choose-a-permission-mode) per scegliere quanta autonomia ha Claude. Puoi cambiare la modalità di permesso durante la sessione.50* **Modalità di permesso**: usa il [selettore della modalità](#choose-a-permission-mode) per scegliere quanta autonomia ha Claude. Puoi cambiare la modalità di permesso durante la sessione.

51* **Modello**: scegli un [modello](https://code.claude.com/docs/it/model-config.md#available-models) dal selettore del modello verso l'estremità destra della riga. Puoi cambiare il modello durante la sessione.51* **Modello**: scegli un [modello](https://code.claude.com/docs/it/model-config.md#available-models) dal selettore del modello verso l'estremità destra della riga. Puoi cambiare il modello durante la sessione.

52 52 

53Digita il tuo compito e premi **Invio** per iniziare. Ogni sessione traccia il suo proprio contesto e le modifiche in modo indipendente.53Scrivi il tuo compito e premi **Enter** per iniziare. Ogni sessione tiene traccia in modo indipendente del proprio contesto e delle proprie modifiche.

54 54 

55## Lavora con il codice55## Lavorare con il codice

56 56 

57Dai a Claude il contesto giusto, controlla quanto fa da solo e rivedi cosa ha cambiato.57Fornisci a Claude il contesto giusto, controlla quanto fa in autonomia e rivedi ciò che ha modificato.

58 58 

59### Usa la casella del prompt59### Usare la casella del prompt

60 60 

61Digita quello che vuoi che Claude faccia e premi **Invio** per inviare. Claude legge i file del tuo progetto, apporta modifiche ed esegue comandi in base alla tua [modalità di permesso](#choose-a-permission-mode). Puoi interrompere Claude in qualsiasi momento: fai clic sul pulsante di arresto per interrompere immediatamente, oppure digita una correzione e premi **Invio** per inviarla senza interrompere l'azione in corso. Claude legge la correzione non appena l'azione corrente si completa e si adatta prima del suo passo successivo.61Scrivi cosa vuoi che Claude faccia e premi **Enter** per inviare. Claude legge i file del tuo progetto, apporta modifiche ed esegue comandi in base alla tua [modalità di permesso](#choose-a-permission-mode). Puoi reindirizzare Claude in qualsiasi momento: fai clic sul pulsante di stop per interromperlo immediatamente, oppure scrivi una correzione e premi **Enter** per inviarla senza fermare l'azione in corso. Claude legge la correzione non appena l'azione corrente termina e si adegua prima del passaggio successivo.

62 62 

63Fai clic sul pulsante **+** accanto alla casella del prompt per allegati di file, [skill](#use-skills), [connettori](#connect-external-tools) e [plugin](#install-plugins).63Fai clic sul pulsante **+** accanto alla casella del prompt per allegati, [skill](#use-skills), [connettori](#connect-external-tools) e [plugin](#install-plugins).

64 64 

65### Accetta un prompt suggerito65### Accettare un prompt suggerito

66 66 

67Dopo che Claude risponde, la scheda Code può mostrare un prompt successivo suggerito come testo grigio nella casella del prompt vuota. Claude Code [genera ogni suggerimento](https://code.claude.com/docs/it/interactive-mode.md#prompt-suggestions) dalla tua conversazione con una breve richiesta in background che viene conteggiata nei limiti di utilizzo del tuo piano o nei costi dell'API.67Dopo la risposta di Claude, la scheda Code può mostrare un prompt successivo suggerito come testo grigio nella casella del prompt vuota. Claude Code [genera ogni suggerimento](https://code.claude.com/docs/it/interactive-mode.md#prompt-suggestions) dalla tua conversazione con una breve richiesta in background che viene conteggiata nei limiti di utilizzo del tuo piano o nei tuoi costi API.

68 68 

69* **Usa il suggerimento**: premi **Tab** o **Freccia destra** per inserirlo nella casella del prompt, modificalo se vuoi, poi premi **Invio** per inviarlo. Premere **Invio** prima di accettare il suggerimento non lo invia.69* **Usa il suggerimento**: premi **Tab** o **Freccia destra** per inserirlo nella casella del prompt, modificalo se vuoi, quindi premi **Enter** per inviarlo. Premere **Enter** prima di accettare il suggerimento non lo invia.

70* **Scrivi il tuo prompt**: inizia a digitare. Il suggerimento viene mostrato solo mentre la casella del prompt è vuota e non ha file allegati.70* **Scrivi il tuo prompt**: inizia a digitare. Il suggerimento viene mostrato solo mentre la casella del prompt è vuota e non ha file allegati.

71 71 

72Disattiva **Prompt suggestions** in **Impostazioni > Code** o **Impostazioni > Claude Code** per interrompere i suggerimenti. Ogni sessione smette di mostrarli la prossima volta che viene avviata o ripresa.72Disattiva **Prompt suggestions** in **Settings > Code** o **Settings > Claude Code** per interrompere i suggerimenti. Ogni sessione smette di mostrarli la volta successiva che viene avviata o ripresa.

73 73 

74### Aggiungi file e contesto ai prompt74### Aggiungere file e contesto ai prompt

75 75 

76Per dare un file a Claude, menzionalo con @ o allegalo nella casella del prompt:76Per fornire un file a Claude, menzionalo con @ o allegalo nella casella del prompt:

77 77 

78* **@mention file**: digita `@` seguito da un nome di file per aggiungere un file al contesto della conversazione.78* **Menziona file con @**: digita `@` seguito da un nome file per aggiungere un file al contesto della conversazione.

79 * **In una sessione cloud**: `@` può elencare i file solo dopo che hai inviato il tuo primo messaggio. Se `@` non ne elenca nessuno, invia il tuo primo messaggio senza il file, poi menziona il file con @ nel messaggio successivo.79 * **In una sessione cloud**: `@` può elencare i file solo dopo che hai inviato il tuo primo messaggio. Se `@` non ne elenca nessuno, invia il primo messaggio senza il file, quindi menziona il file con @ nel messaggio successivo.

80* **Allega file**: allega immagini, PDF e altri file al tuo prompt dal pulsante **+** accanto alla casella del prompt, o trascina e rilascia i file direttamente nel prompt. Questo è utile per condividere screenshot di bug, mockup di design o documenti di riferimento.80* **Allega file**: allega immagini, PDF e altri file al tuo prompt dal pulsante **+** accanto alla casella del prompt, oppure trascina i file direttamente nel prompt. È utile per condividere screenshot di bug, mockup di design o documenti di riferimento.

81 * **In una [sessione WSL](https://code.claude.com/docs/it/desktop-wsl.md)**: se il menu **+** mostra **Add image** invece di **Add files or photos**, puoi allegare solo immagini. Per dare a Claude qualsiasi altro file dalla cartella della sessione, menzionalo con @.81 * **In una [sessione WSL](https://code.claude.com/docs/it/desktop-wsl.md)**: se il menu **+** mostra **Add image** invece di **Add files or photos**, puoi allegare solo immagini. Per fornire a Claude qualsiasi altro file dalla cartella della sessione, menzionalo con @.

82 82 

83### Scegli una modalità di permesso83### Scegliere una modalità di permesso

84 84 

85Le modalità di permesso controllano quanta autonomia ha Claude durante una sessione: se chiede prima di modificare file, eseguire comandi o entrambi. Puoi cambiare modalità di permesso in qualsiasi momento usando il selettore di modalità nella riga sotto la casella del prompt. Per approvare ogni modifica tu stesso, passa a Manual.85Le modalità di permesso controllano quanta autonomia ha Claude durante una sessione: se chiede prima di modificare file, eseguire comandi o entrambi. Puoi cambiare modalità di permesso in qualsiasi momento usando il selettore di modalità nella riga sotto la casella del prompt. Per approvare personalmente ogni modifica, passa a Manual.

86 86 

87Per impostare una modalità predefinita per le nuove sessioni locali, aggiungi `permissions.defaultMode` al tuo [file di impostazioni](https://code.claude.com/docs/it/settings.md#where-settings-live). L'app desktop legge gli stessi file di impostazioni della CLI. Una modalità che scegli nel selettore viene ricordata per cartella e ha la precedenza su `defaultMode` per quella cartella, tranne Plan, che si applica solo alla sessione corrente.87Per impostare una modalità predefinita per le nuove sessioni locali, aggiungi `permissions.defaultMode` al tuo [file di impostazioni](https://code.claude.com/docs/it/settings.md#where-settings-live). L'app desktop legge gli stessi file di impostazioni della CLI. Una modalità scelta nel selettore viene ricordata per cartella e ha la precedenza su `defaultMode` per quella cartella, tranne Plan, che si applica solo alla sessione corrente.

88 88 

89| Modalità | Chiave di impostazione | Comportamento |89| Modalità | Chiave di impostazione | Comportamento |

90| - | - | - |90| - | - | - |

91| **Manual** | `default` | Claude chiede prima di modificare file o eseguire comandi. Vedi un diff e puoi accettare o rifiutare ogni modifica. |91| **Manual** | `default` | Claude chiede prima di modificare file o eseguire comandi. Vedi un diff e puoi accettare o rifiutare ogni modifica. |

92| **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. |92| **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 del terminale. Usala quando ti fidi delle modifiche ai file e vuoi iterare più velocemente. |

93| **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. |93| **Plan** | `plan` | Claude legge i file ed esegue comandi per esplorare, quindi propone un piano senza modificare il tuo codice sorgente. Ideale per attività complesse in cui vuoi prima rivedere l'approccio. |

94| **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. |94| **Auto** | `auto` | Claude lavora senza richieste di permesso abituali; prima che vengano eseguite azioni come comandi shell e richieste di rete, un classificatore in background verifica che siano in linea con la tua richiesta. Compare quando [la modalità auto è disponibile](#auto-mode-availability); non esiste un interruttore separato in Settings. |

95| **Bypass permissions** | `bypassPermissions` | Claude viene eseguito senza richieste di permesso, tranne per le [azioni che nessuna modalità auto-approva](https://code.claude.com/docs/it/permission-modes.md#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, abilita "Allow bypass permissions mode" in **Impostazioni > Code** o **Impostazioni > Claude Code**. Su piani Team e Enterprise non c'è un interruttore Impostazioni, e la politica organizzativa lo controlla invece. Usala solo in container sandbox o VM. |95| **Bypass permissions** | `bypassPermissions` | Claude lavora senza richieste di permesso, tranne per le [azioni che nessuna modalità approva automaticamente](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves), i classificatori di sicurezza quando Claude [agisce su siti esterni](#browse-external-sites), o azioni del desktop come eliminare una sessione, ma non [archiviarla](#work-across-sessions). Equivale a `--dangerously-skip-permissions` nella CLI. Nei piani Pro e Max, abilita "Allow bypass permissions mode" in **Settings > Code** o **Settings > Claude Code**. Nei piani Team ed Enterprise non esiste un interruttore in Settings e la controlla invece la policy dell'organizzazione. Usala solo in container o VM isolati. |

96 96 

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

98 98 

99La modalità di permesso `dontAsk` è disponibile solo nella [CLI](https://code.claude.com/docs/it/permission-modes.md#allow-only-pre-approved-tools-with-dontask-mode).99La modalità di permesso `dontAsk` è disponibile solo nella [CLI](https://code.claude.com/docs/it/permission-modes.md#allow-only-pre-approved-tools-with-dontask-mode).

100 100 

101> [!TIP]101> [!TIP]

102>102>

103> Inizia compiti complessi in Plan in modo che Claude mappi un approccio prima di apportare modifiche. Una volta approvato il piano, passa a Accept edits o Manual per eseguirlo. Vedi [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode) per ulteriori informazioni su questo workflow.103> Avvia le attività complesse in Plan così Claude definisce un approccio prima di apportare modifiche. Una volta approvato il piano, passa ad Accept edits o Manual per eseguirlo. Consulta [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode) per saperne di più su questo workflow.

104 104 

105Le sessioni cloud supportano Accept edits, Plan e Auto. Accept edits corrisponde alla modalità `default`: le sessioni cloud pre-approvano le modifiche ai file, quindi il selettore mostra Accept edits invece di Manual. Bypass permissions non è disponibile nelle sessioni cloud, incluse le sessioni in un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments).105Le sessioni cloud supportano Accept edits, Plan e Auto. Accept edits corrisponde alla modalità `default`: le sessioni cloud pre-approvano le modifiche ai file, quindi il selettore mostra Accept edits invece di Manual. Bypass permissions non è disponibile nelle sessioni cloud, incluse le sessioni in un [ambiente self-hosted](https://code.claude.com/docs/it/self-hosted-environments).

106 106 

107Gli amministratori aziendali possono limitare quali modalità di permesso sono disponibili. Vedi [configurazione aziendale](#enterprise-configuration) per i dettagli.107Gli amministratori Enterprise possono limitare le modalità di permesso disponibili. Consulta [configurazione enterprise](#enterprise-configuration) per i dettagli.

108 108 

109#### Disponibilità della modalità auto109#### Disponibilità della modalità auto

110 110 

111La modalità auto è disponibile a tutti gli utenti sull'API Anthropic e richiede Claude Opus 4.6 o successivo, Sonnet 4.6 o successivo, Haiku 5.5 o un [modello Fable](https://code.claude.com/docs/it/model-config.md#work-with-fable). Gli amministratori dell'organizzazione possono disattivare la modalità auto con la chiave `disableAutoMode` nelle [impostazioni gestite](#managed-settings).111La modalità auto è disponibile per tutti gli utenti sull'API Anthropic e richiede Claude Opus 4.6 o successivo, Sonnet 4.6 o successivo, Haiku 5.5 o un [modello Fable](https://code.claude.com/docs/it/model-config.md#work-with-fable). Gli amministratori dell'organizzazione possono disattivare la modalità auto con la chiave `disableAutoMode` nelle [impostazioni gestite](#managed-settings).

112 112 

113Nelle distribuzioni Enterprise che instradano Desktop verso Agent Platform di Google Cloud, la modalità auto è anche disponibile per impostazione predefinita; vedi [Modalità auto su Bedrock, Agent Platform o Foundry](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry) per i modelli supportati.113Nelle distribuzioni Enterprise che instradano Desktop verso Agent Platform di Google Cloud, la modalità auto è disponibile anche per impostazione predefinita; consulta [Modalità auto su Bedrock, Agent Platform o Foundry](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry) per i modelli supportati.

114 114 

115### Anteprima della tua app115### Visualizzare l'anteprima della tua app

116 116 

117Claude può avviare un server di sviluppo e aprirlo nel riquadro Browser per verificare le sue modifiche. Questo funziona per app web frontend così come per server backend: Claude può testare endpoint API, visualizzare log del server e iterare su problemi che trova. Nella maggior parte dei casi, Claude avvia il server automaticamente dopo aver modificato i file del progetto. Puoi anche chiedere a Claude di visualizzare un'anteprima in qualsiasi momento. Per impostazione predefinita, Claude [verifica automaticamente](#auto-verify-changes) le modifiche dopo ogni modifica.117Claude può avviare un server di sviluppo e aprirlo nel riquadro Browser per verificare le sue modifiche. Funziona sia per le app web frontend sia per i server backend: Claude può testare endpoint API, visualizzare i log del server e iterare sui problemi che trova. Nella maggior parte dei casi, Claude avvia il server automaticamente dopo aver modificato i file del progetto. Puoi anche chiedere a Claude di mostrare l'anteprima in qualsiasi momento. Per impostazione predefinita, Claude [verifica automaticamente](#auto-verify-changes) le modifiche dopo ogni modifica.

118 118 

119In una sessione locale, fai clic su un percorso HTML, PDF o video nella chat per aprirlo nel riquadro Browser.119In una sessione locale, fai clic su un percorso HTML, PDF o video nella chat per aprirlo nel riquadro Browser.

120 120 

121> [!NOTE]121> [!NOTE]

122>122>

123> 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).123> In una [sessione SSH](#ssh-sessions), Claude non può aprire la tua app nel riquadro Browser, perché lì non dispone degli strumenti del riquadro. Per vedere tu stesso l'app, [inoltra la sua porta al tuo computer](#reach-a-port-on-the-remote-machine).

124 124 

125Se il riquadro Browser non è aperto dopo che Claude avvia un server in una sessione locale, fai clic su **Open** nella scheda del server nella chat.125Se il riquadro Browser non è aperto dopo che Claude ha avviato un server in una sessione locale, fai clic su **Open** nella scheda del server nella chat.

126 126 

127Dal riquadro Browser, puoi:127Dal riquadro Browser puoi:

128 128 

129* Interagire con la tua app in esecuzione direttamente nel riquadro Browser129* Interagire con la tua app in esecuzione direttamente nel riquadro Browser

130* Guardare Claude verificare automaticamente le sue stesse modifiche: scatta screenshot, ispeziona il DOM, fa clic su elementi, compila moduli e corregge i problemi che trova130* Osservare Claude verificare automaticamente le proprie modifiche: acquisisce screenshot, ispeziona il DOM, fa clic sugli elementi, compila moduli e corregge i problemi che trova

131* Avviare o arrestare server, o arrestarli tutti contemporaneamente, dal menu **Dev servers** nell'intestazione del riquadro Browser131* Avviare o arrestare i server, oppure arrestarli tutti insieme, dal menu **Dev servers** nell'intestazione del riquadro Browser

132* Scegliere se il Browser mantiene i cookie dopo che esci dall'app con **Keep cookies** nel menu **⋮** del riquadro Browser, in modo da non dover effettuare di nuovo l'accesso durante lo sviluppo132* Scegliere se il Browser conserva i cookie dopo la chiusura dell'app con **Keep cookies** nel menu **⋮** del riquadro Browser, così non devi accedere di nuovo durante lo sviluppo

133 133 

134Claude crea la configurazione iniziale del server in base al tuo progetto. Se la tua app utilizza un comando dev personalizzato, modifica `.claude/launch.json` per adattarlo alla tua configurazione. Vedi [Configura server di anteprima](#configure-preview-servers) per il riferimento completo.134Claude crea la configurazione iniziale del server in base al tuo progetto. Se la tua app usa un comando di sviluppo personalizzato, modifica `.claude/launch.json` in base alla tua configurazione. Consulta [Configurare i server di anteprima](#configure-preview-servers) per il riferimento completo.

135 135 

136Per cancellare i dati salvati del Browser, seleziona **Clear browsing data** nel menu **⋮** del riquadro Browser. Per disattivare completamente il Browser, disattiva **Browser tools** in **Impostazioni > Code** o **Impostazioni > Claude Code**.136Per cancellare i dati salvati del Browser, seleziona **Clear browsing data** nel menu **⋮** del riquadro Browser. Per disattivare completamente il Browser, disattiva **Browser tools** in **Settings > Code** o **Settings > Claude Code**.

137 137 

138### Sfoglia siti esterni138### Navigare su siti esterni

139 139 

140Il riquadro Browser è un browser a schede, quindi puoi aprire documentazione, tracker di problemi o qualsiasi altro sito accanto alla tua app in esecuzione. Per aprire il Browser, premi **Cmd+Maiusc+B** su macOS o **Ctrl+Maiusc+B** su Windows, oppure fai clic su **Browser** nella barra del titolo della sessione. Puoi accedere ai siti nel riquadro, inclusi flussi di accesso popup come Google OAuth.140Il riquadro Browser è un browser a schede, quindi puoi aprire documentazione, issue tracker o qualsiasi altro sito accanto alla tua app in esecuzione. Per aprire il Browser, premi **Cmd+Shift+B** su macOS o **Ctrl+Shift+B** su Windows, oppure fai clic su **Browser** nella barra del titolo della sessione. Puoi accedere ai siti nel riquadro, inclusi i flussi di accesso in popup come Google OAuth.

141 141 

142La prima volta che fai clic su un collegamento esterno nella chat, una finestra di dialogo chiede se i collegamenti devono aprirsi nel riquadro Browser o nel tuo browser predefinito. Per cambiare la tua scelta in seguito, usa **Open links in built-in browser** nel menu **⋮** del riquadro Browser. **Cmd**-clic su macOS o **Ctrl**-clic su Windows apre un collegamento direttamente nel tuo browser predefinito.142La prima volta che fai clic su un link esterno nella chat, una finestra di dialogo chiede se i link devono aprirsi nel riquadro Browser o nel tuo browser predefinito. Per cambiare la scelta in seguito, usa **Open links in built-in browser** nel menu **⋮** del riquadro Browser. **Cmd**-clic su macOS o **Ctrl**-clic su Windows apre direttamente un link nel tuo browser predefinito.

143 143 

144Claude può leggere e interagire con pagine esterne usando gli stessi strumenti che usa per [verificare la tua app](#preview-your-app), con due controlli di sicurezza aggiuntivi:144Claude può leggere e interagire con le pagine esterne usando gli stessi strumenti che usa per [verificare la tua app](#preview-your-app), con due controlli di sicurezza aggiuntivi:

145 145 

146* I classificatori di sicurezza esaminano le azioni di scrittura di Claude su pagine esterne, come fare clic e digitare, in ogni modalità di permesso. Questi sono gli stessi classificatori che usa la [modalità auto](#choose-a-permission-mode), e quando segnalano un'azione, ricevi una richiesta di permesso indipendentemente dalla modalità.146* I classificatori di sicurezza esaminano le azioni di scrittura di Claude sulle pagine esterne, come fare clic e digitare, in ogni modalità di permesso. Sono gli stessi classificatori usati dalla [modalità auto](#choose-a-permission-mode) e, quando segnalano un'azione, ricevi una richiesta di permesso indipendentemente dalla modalità.

147* Nelle modalità di permesso diverse da Auto e Bypass permissions, un controllo dell'allowlist dei domini si applica anche prima che Claude navighi verso un nuovo sito.147* Nelle modalità di permesso diverse da Auto e Bypass permissions, si applica anche un controllo dell'allowlist dei domini prima che Claude navighi verso un nuovo sito.

148 148 

149#### Approva le azioni di Claude su un sito149#### Approvare le azioni di Claude su un sito

150 150 

151La prima volta che Claude agisce su un sito esterno, appare una scheda di permesso e Claude attende la tua scelta: **Allow once**, **Always allow** o **Deny**. **Allow once** approva l'azione senza salvare nulla. **Always allow** salva l'approvazione per quel sito sul tuo dispositivo, e puoi revocarla in Impostazioni. Ogni sito ha bisogno della sua propria approvazione, inclusi i sottodomini. I tuoi server di sviluppo locali e i file del progetto non hanno bisogno di approvazione, quindi [auto-verify](#auto-verify-changes) continua a funzionare senza richieste di permesso.151La prima volta che Claude agisce su un sito esterno, compare una scheda di permesso e Claude attende la tua scelta: **Allow once**, **Always allow** o **Deny**. **Allow once** approva l'azione senza salvare nulla. **Always allow** salva l'approvazione per quel sito sul tuo dispositivo e puoi revocarla in Settings. Ogni sito richiede la propria approvazione, inclusi i sottodomini. I tuoi server di sviluppo locali e i file del progetto non richiedono approvazione, quindi la [verifica automatica](#auto-verify-changes) continua a funzionare senza richieste.

152 152 

153Anche su un sito approvato, Claude non acquisterà articoli, creerà account o aggirerà CAPTCHA senza il tuo input. La navigazione nel riquadro Browser utilizza lo stesso modello di sicurezza dell'[estensione Claude in Chrome](https://code.claude.com/docs/it/chrome.md). Vedi [Utilizzo di Claude in Chrome in sicurezza](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely) per come Claude gestisce siti sensibili e azioni rischiose.153Anche su un sito approvato, Claude non acquista articoli, non crea account né aggira CAPTCHA senza il tuo intervento. La navigazione nel riquadro Browser usa lo stesso modello di sicurezza dell'[estensione Claude in Chrome](https://code.claude.com/docs/it/chrome.md). Consulta [Using Claude in Chrome safely](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely) per sapere come Claude gestisce i siti sensibili e le azioni rischiose.

154 154 

155#### Scegli tra il Browser e l'estensione Chrome155#### Scegliere tra il Browser e l'estensione Chrome

156 156 

157Il riquadro Browser utilizza un profilo browser pulito, separato dal tuo browser personale, senza nessuno dei tuoi accessi salvati o cronologia. Usalo per costruire e testare la tua app e per siti che non hanno bisogno della tua identità. Quando vuoi che Claude agisca come te nelle tue sessioni di accesso, usa invece l'[estensione Claude in Chrome](https://code.claude.com/docs/it/chrome.md), che condivide lo stato di accesso del tuo browser.157Il riquadro Browser usa un profilo browser pulito, separato dal tuo browser personale, senza nessuno dei tuoi accessi salvati né della tua cronologia. Usalo per creare e testare la tua app e per i siti che non richiedono la tua identità. Quando vuoi che Claude agisca a tuo nome nelle sessioni in cui hai effettuato l'accesso, usa invece l'[estensione Claude in Chrome](https://code.claude.com/docs/it/chrome.md), che condivide lo stato di accesso del tuo browser.

158 158 

159#### Limita la navigazione esterna per la tua organizzazione159#### Limitare la navigazione esterna per la tua organizzazione

160 160 

161Il Browser segue gli stessi [controlli di allowlist e blocklist dei siti](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls) dell'estensione Claude in Chrome. Se la tua organizzazione ha già configurato quelle liste per l'estensione, il Browser le rispetta automaticamente. Gli amministratori possono anche disattivare gli strumenti di Claude su pagine esterne con l'impostazione gestita [`browserExternalPageTools`](#managed-settings). Con gli strumenti disabilitati, gli utenti possono ancora navigare verso siti esterni; gli strumenti di Claude non possono leggerli o agire su di essi.161Il Browser segue gli stessi [controlli di allowlist e blocklist dei siti](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls) dell'estensione Claude in Chrome. Se la tua organizzazione ha già configurato questi elenchi per l'estensione, il Browser li rispetta automaticamente. Gli amministratori possono anche disattivare gli strumenti di Claude sulle pagine esterne con l'[impostazione gestita `browserExternalPageTools`](#managed-settings). Con gli strumenti disattivati, gli utenti possono comunque visitare siti esterni; gli strumenti di Claude non possono leggerli né agire su di essi.

162 162 

163Per disattivare completamente la navigazione esterna, imposta l'impostazione gestita [`disableBrowserExternalNavigation`](#managed-settings) su `true`. Questo blocca tutta la navigazione esterna nel Browser, inclusi i siti nell'allowlist della tua organizzazione; i server dev localhost e le anteprime di file continuano a funzionare. Usa `browserExternalPageTools` per consentire agli utenti di continuare a sfogliare siti esterni senza gli strumenti di Claude, e `disableBrowserExternalNavigation` per bloccare i siti esterni sia per gli utenti che per Claude.163Per disattivare completamente la navigazione esterna, imposta l'[impostazione gestita `disableBrowserExternalNavigation`](#managed-settings) su `true`. Questo blocca tutta la navigazione esterna nel Browser, inclusi i siti nell'allowlist della tua organizzazione; i server di sviluppo su localhost e le anteprime dei file continuano a funzionare. Usa `browserExternalPageTools` per consentire agli utenti di continuare a navigare su siti esterni senza gli strumenti di Claude, e `disableBrowserExternalNavigation` per bloccare i siti esterni sia per gli utenti sia per Claude.

164 164 

165### Rivedi le modifiche con la visualizzazione diff165### Rivedere le modifiche con la vista diff

166 166 

167Dopo che Claude apporta modifiche al tuo codice, la visualizzazione diff ti consente di rivedere le modifiche file per file prima di creare una pull request. Per aprire la visualizzazione diff, fai clic sui conteggi delle righe, come `+12 -1`, nella scheda **Changes** del [pannello dei dettagli della sessione](#see-session-details). Puoi anche fare clic su **Changes** nella barra del titolo della sessione. Il diff di una sessione cloud rispetto al branch di base può [escludere le modifiche non ancora sottoposte a push](https://code.claude.com/docs/it/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view).167Dopo che Claude ha apportato modifiche al tuo codice, la vista diff ti permette di rivedere le modifiche file per file prima di creare una pull request. Per aprire la vista diff, fai clic sui conteggi delle righe, come `+12 -1`, nella scheda **Changes** del [pannello dei dettagli della sessione](#see-session-details). Puoi anche fare clic su **Changes** nella barra del titolo della sessione. Il diff di una sessione cloud rispetto al branch di base può [omettere le modifiche non ancora inviate](https://code.claude.com/docs/it/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view).

168 168 

169Per commentare righe specifiche, passa il mouse su una riga e fai clic sul **+** che appare accanto al suo numero di riga per aprire una casella di commento. Digita il tuo feedback e premi **Invio** per aggiungere il commento. Dopo aver aggiunto commenti a più righe, invia tutti i commenti contemporaneamente:169Per commentare righe specifiche, passa il mouse su una riga e fai clic sul **+** che compare accanto al numero di riga per aprire una casella di commento. Scrivi il tuo feedback e premi **Enter** per aggiungere il commento. Dopo aver aggiunto commenti a più righe, invia tutti i commenti insieme:

170 170 

171* **macOS**: premi **Cmd+Invio**171* **macOS**: premi **Cmd+Enter**

172* **Windows**: premi **Ctrl+Invio**172* **Windows**: premi **Ctrl+Enter**

173 173 

174Claude legge i tuoi commenti e apporta le modifiche richieste, che appaiono come un nuovo diff che puoi rivedere.174Claude legge i tuoi commenti e apporta le modifiche richieste, che compaiono come un nuovo diff che puoi rivedere.

175 175 

176### Rivedi il tuo codice176### Fare la revisione del tuo codice

177 177 

178Per far rivedere a Claude le tue modifiche prima di eseguire il commit, inserisci `/code-review` nella [casella del prompt](#use-the-prompt-box). I risultati arrivano nella conversazione quando la revisione è completata.178Per far rivedere a Claude le tue modifiche prima di fare il commit, inserisci `/code-review` nella [casella del prompt](#use-the-prompt-box). I risultati arrivano nella conversazione al termine della revisione.

179 179 

180Nelle sessioni locali, [SSH](#ssh-sessions) e [WSL](https://code.claude.com/docs/it/desktop-wsl.md), i risultati appaiono come una scheda **Code review**, raggruppati per file. Usa la scheda per agire su di essi:180Nelle sessioni locali, [SSH](#ssh-sessions) e [WSL](https://code.claude.com/docs/it/desktop-wsl.md), i risultati compaiono come una scheda **Code review**, raggruppati per file. Usa la scheda per intervenire:

181 181 

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

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

184 184 

185In qualsiasi sessione, puoi anche chiedere a Claude nella casella del prompt di correggere ciò che la revisione ha trovato. Per sapere cosa cerca `/code-review` e quali argomenti accetta, vedi [Rivedi localmente con `/code-review`](https://code.claude.com/docs/it/code-review-local).185In qualsiasi sessione, puoi anche chiedere a Claude nella casella del prompt di correggere quanto trovato dalla revisione. Per sapere cosa cerca `/code-review` e quali argomenti accetta, consulta [Revisione locale con `/code-review`](https://code.claude.com/docs/it/code-review-local).

186 186 

187### Monitora lo stato della pull request187### Monitorare lo stato della pull request

188 188 

189Per far correggere a Claude i controlli non riusciti, o per far eseguire a GitHub il merge della pull request, attiva **Auto-fix** o **Merge when ready**. Dopo aver aperto una pull request, questa appare nella scheda **Changes** del [pannello dei dettagli della sessione](#see-session-details) con lo stato dei suoi controlli CI. Apri il menu **⋮** accanto al suo titolo:189Per far correggere a Claude i controlli non superati, o per far eseguire a GitHub il merge della pull request, attiva **Auto-fix** o **Merge when ready**. Dopo che apri una pull request, questa compare nella scheda **Changes** del [pannello dei dettagli della sessione](#see-session-details) con lo stato dei suoi controlli CI. Apri il menu **⋮** accanto al suo titolo:

190 190 

191* **Auto-fix**: in una sessione locale, Claude gestisce anche i nuovi commenti di revisione lasciati da qualcuno diverso da te. L'autore del commento deve essere il proprietario del repository, un membro dell'organizzazione, un collaboratore o una GitHub App.191* **Auto-fix**: in una sessione locale, Claude gestisce anche i nuovi commenti di revisione lasciati da persone diverse da te. L'autore del commento deve essere il proprietario del repository, un membro dell'organizzazione, un collaboratore o una GitHub App.

192* **Merge when ready**: attiva l'auto-merge di GitHub per la PR. In una sessione locale, Desktop richiede uno squash merge a meno che il branch di base non utilizzi una merge queue.192* **Merge when ready**: attiva l'auto-merge di GitHub per la PR. In una sessione locale, Desktop richiede uno squash merge a meno che il branch di base non usi una merge queue.

193 * **Nelle sessioni SSH e WSL**: **Merge when ready** è disabilitato, quindi attiva l'auto-merge per la pull request su GitHub193 * **Nelle sessioni SSH e WSL**: **Merge when ready** è disabilitato, quindi attiva l'auto-merge per la pull request su GitHub

194 * **Se il repository non consente l'auto-merge**: **Merge when ready** non si attiva, quindi abilita prima l'auto-merge nelle [impostazioni del tuo repository GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)194 * **Se il repository non consente l'auto-merge**: **Merge when ready** non si attiva, quindi abilita prima l'auto-merge nelle [impostazioni del repository GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)

195* **[Layout precedente](#check-which-layout-you-have)**: una volta che la sessione ha una pull request, fai clic su **CI** nella sua barra di stato.195* **[Layout precedente](#check-which-layout-you-have)**: una volta che la sessione ha una pull request, fai clic su **CI** nella sua barra di stato.

196 196 

197Per archiviare la sessione automaticamente una volta che la PR viene sottoposta a merge o chiusa, attiva [auto-archive](#archive-a-session) in **Impostazioni > Code** o **Impostazioni > Claude Code**.197Per archiviare automaticamente la sessione quando la PR viene unita con merge o chiusa, attiva l'[archiviazione automatica](#archive-a-session) in **Settings > Code** o **Settings > Claude Code**.

198 198 

199> [!NOTE]199> [!NOTE]

200>200>

201> 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.201> Il monitoraggio delle PR richiede che la [GitHub CLI (`gh`)](https://cli.github.com/) sia installata e autenticata sulla tua macchina. Se `gh` non è installata, Desktop ti chiede di installarla la prima volta che provi a creare una PR.

202>202>

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

204 204 

205## Organizza il workspace205## Organizza il workspace

206 206 


805 805 

806## Configurazione dell'ambiente806## Configurazione dell'ambiente

807 807 

808L'ambiente che scegli quando [avvii una sessione](#start-a-session) determina dove Claude viene eseguito e come ti connetti:808L'ambiente che scegli quando [avvii una sessione](#start-a-session) determina dove viene eseguito Claude e come ti connetti:

809 809 

810* **Local**: viene eseguito sulla tua macchina con accesso diretto ai tuoi file810* **Local**: viene eseguito sulla tua macchina con accesso diretto ai tuoi file

811* **Cloud**: viene eseguito sull'infrastruttura gestita da Anthropic per impostazione predefinita. Le sessioni continuano anche se chiudi l'app.811* **Cloud**: viene eseguito per impostazione predefinita su un'infrastruttura gestita da Anthropic. Le sessioni continuano anche se chiudi l'app.

812* **SSH**: viene eseguito su una macchina remota a cui ti connetti tramite SSH, come i tuoi stessi server, VM cloud o dev container. Un'attività in esecuzione può [proseguire mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected), ma con un account Claude può interrompersi quando il suo accesso scade.812* **SSH**: viene eseguito su una macchina remota a cui ti connetti tramite SSH, come i tuoi server, VM cloud o dev container. Un'attività in esecuzione può [proseguire mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected), ma con un account Claude può interrompersi quando il suo accesso scade.

813* **WSL** (Windows): viene eseguito all'interno di una [distribuzione WSL 2](https://code.claude.com/docs/it/desktop-wsl.md) sulla tua macchina, utilizzando la sua toolchain Linux e i percorsi nativi813* **WSL** (Windows): viene eseguito all'interno di una [distribuzione WSL 2](https://code.claude.com/docs/it/desktop-wsl.md) sulla tua macchina, usando la sua toolchain Linux e i percorsi nativi

814 814 

815### Creare un ambiente salvato815### Creare un ambiente salvato

816 816 

817Un ambiente salvato è una voce nel [selettore dell'ambiente](#start-a-session) che registra dove viene eseguito Claude, così puoi avviare lì le sessioni successive. Un ambiente locale o SSH contiene anche le cartelle in cui lavora Claude. Gli ambienti locali e SSH salvati fanno parte del [layout attuale](#check-which-layout-you-have), quindi se non li vedi, controlla quale layout hai e come ottenere quello attuale.817Un ambiente salvato è una voce nel [selettore dell'ambiente](#start-a-session) che registra dove viene eseguito Claude, così puoi avviare lì le sessioni successive. Un ambiente locale o SSH contiene anche le cartelle in cui lavora Claude. Gli ambienti locali e SSH salvati fanno parte del [layout attuale](#check-which-layout-you-have), quindi se non li vedi, verifica quale layout hai e come ottenere quello attuale.

818 818 

819**1. Apri la finestra di dialogo New environment**819**1. Apri la finestra di dialogo New environment**

820 820 

821Apri il selettore di ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.821Apri il selettore dell'ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.

822 822 

823**2. Scegli dove viene eseguito Claude**823**2. Scegli dove viene eseguito Claude**

824 824 


830 830 

831#### Ambienti che Desktop crea per te831#### Ambienti che Desktop crea per te

832 832 

833Se il selettore di ambiente elenca ambienti locali o SSH che non hai creato, li ha creati Desktop per te. La prima volta che apri la scheda Code nel [layout attuale](#check-which-layout-you-have), Desktop crea fino a otto ambienti. Gli ambienti derivano dalle cartelle locali e SSH che hai usato di più nell'ultimo mese. Puoi [modificarli o eliminarli](#use-edit-or-remove-a-saved-environment).833Se il selettore dell'ambiente elenca ambienti locali o SSH che non hai creato, li ha creati Desktop per te. La prima volta che apri la scheda Code nel [layout attuale](#check-which-layout-you-have), Desktop crea fino a otto ambienti. Gli ambienti derivano dalle cartelle locali e SSH che hai usato di più nell'ultimo mese. Puoi [modificarli o eliminarli](#use-edit-or-remove-a-saved-environment).

834 834 

835#### Usare, modificare o rimuovere un ambiente salvato835#### Usare, modificare o rimuovere un ambiente salvato

836 836 

837Trova la voce dell'ambiente nel [selettore di ambiente](#start-a-session):837Trova la voce dell'ambiente nel [selettore dell'ambiente](#start-a-session):

838 838 

839* **Avviare una sessione**: seleziona la voce.839* **Avviare una sessione**: seleziona la voce.

840* **Modificare o eliminare**: passa il mouse sulla voce e fai clic sull'icona a forma di ingranaggio. Per eliminare un ambiente locale o SSH, fai clic su **Delete environment** in **Edit environment**.840* **Modificare o eliminare**: passa il mouse sulla voce e fai clic sull'icona a forma di ingranaggio. Per eliminare un ambiente locale o SSH, fai clic su **Delete environment** in **Edit environment**.


844 844 

845Per impostare una variabile d'ambiente per una sessione locale, [aggiungila a un ambiente locale salvato](#set-environment-variables-for-local-sessions), quindi avvia una nuova sessione da quell'ambiente.845Per impostare una variabile d'ambiente per una sessione locale, [aggiungila a un ambiente locale salvato](#set-environment-variables-for-local-sessions), quindi avvia una nuova sessione da quell'ambiente.

846 846 

847Variabili come `PATH` e `CLAUDE_CONFIG_DIR` hanno istruzioni proprie:847Variabili come `PATH` e `CLAUDE_CONFIG_DIR` hanno istruzioni specifiche:

848 848 

849| Variabile | Cosa fare invece |849| Variabile | Cosa fare invece |

850| :- | :- |850| :- | :- |


855 855 

856Su macOS o Linux, se una variabile che hai impostato con `export` manca o ha un valore errato in un comando eseguito da Claude, consulta [Variabile esportata mancante o errata nei comandi eseguiti da Claude](#exported-variable-missing-or-wrong-in-commands-claude-runs).856Su macOS o Linux, se una variabile che hai impostato con `export` manca o ha un valore errato in un comando eseguito da Claude, consulta [Variabile esportata mancante o errata nei comandi eseguiti da Claude](#exported-variable-missing-or-wrong-in-commands-claude-runs).

857 857 

858#### Impostare le variabili d'ambiente per le sessioni locali858#### Impostare variabili d'ambiente per le sessioni locali

859 859 

860Aggiungi le variabili a un ambiente locale salvato e avvia le tue sessioni da esso. Desktop [imposta alcune variabili da sé](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`, e le tue sessioni ricevono il suo valore per quelle al posto del tuo.860Aggiungi le variabili a un ambiente locale salvato e avvia le tue sessioni da lì. Desktop [imposta da sé alcune variabili](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`, e per queste le tue sessioni ricevono il suo valore anziché il tuo.

861 861 

862> [!NOTE]862> [!NOTE]

863>863>

864> Se il tuo selettore di ambiente si trova sopra la casella del prompt, hai il [layout precedente](#check-which-layout-you-have), che non prevede ambienti locali salvati. Usa invece l'[editor dell'ambiente locale](#use-the-local-environment-editor).864> Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il [layout precedente](#check-which-layout-you-have), che non prevede ambienti locali salvati. Usa invece l'[editor dell'ambiente locale](#use-the-local-environment-editor).

865 865 

866**1. Apri il modulo di un ambiente locale**866**1. Apri il modulo di un ambiente locale**

867 867 

868* **Per creare un ambiente locale salvato**: seleziona [**New environment**](#create-a-saved-environment) in fondo al menu del selettore dell'ambiente, quindi la scheda **Local**868* **Per creare un ambiente locale salvato**: seleziona [**New environment**](#create-a-saved-environment) in fondo al menu del selettore dell'ambiente, poi la scheda **Local**

869* **Per modificarne uno che hai già**: nel selettore dell'ambiente, passa il puntatore su un ambiente salvato sotto **Local** e fai clic sull'icona a forma di ingranaggio per aprire [**Edit environment**](#use-edit-or-remove-a-saved-environment)869* **Per modificarne uno esistente**: nel selettore dell'ambiente, passa il mouse su un ambiente salvato sotto **Local** e fai clic sull'icona a forma di ingranaggio per aprire [**Edit environment**](#use-edit-or-remove-a-saved-environment)

870 870 

871**2. Inserisci le variabili**871**2. Inserisci le variabili**

872 872 

873Seleziona **Environment variables**, inserisci un `KEY=value` per riga e seleziona **Done**.873Seleziona **Environment variables**, inserisci una riga `KEY=value` per ciascuna variabile e seleziona **Done**.

874 874 

875**3. Salva l'ambiente**875**3. Salva l'ambiente**

876 876 


880 880 

881Per impostare una variabile per ogni sessione locale, aggiungila alla [chiave `env`](https://code.claude.com/docs/it/env-vars#set-variables-in-settings-files) nel tuo file `~/.claude/settings.json`. Claude Code [ignora il valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) se quella variabile è già presente nell'ambiente con cui Desktop avvia la sessione. Consulta [variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md) per l'elenco completo delle variabili supportate.881Per impostare una variabile per ogni sessione locale, aggiungila alla [chiave `env`](https://code.claude.com/docs/it/env-vars#set-variables-in-settings-files) nel tuo file `~/.claude/settings.json`. Claude Code [ignora il valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) se quella variabile è già presente nell'ambiente con cui Desktop avvia la sessione. Consulta [variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md) per l'elenco completo delle variabili supportate.

882 882 

883#### Impostare le variabili d'ambiente per i dev server883#### Impostare variabili d'ambiente per i dev server

884 884 

885Per fornire un segreto a un dev server senza eseguirne il commit in [`launch.json`](#configure-preview-servers), impostalo in uno di questi punti, poi riavvia Desktop:885Per fornire un segreto a un dev server senza inserirlo in un commit in [`launch.json`](#configure-preview-servers), impostalo in uno di questi punti, poi riavvia Desktop:

886 886 

887* **macOS e Linux**: esportalo nel profilo della tua shell887* **macOS e Linux**: esportalo nel profilo della tua shell

888* **Windows**: aggiungilo alle tue variabili d'ambiente utente o di sistema888* **Windows**: aggiungilo alle variabili d'ambiente utente o di sistema

889* **Qualsiasi piattaforma**: salvalo nell'[editor dell'ambiente locale](#use-the-local-environment-editor), se riesci ad aprirlo889* **Qualsiasi piattaforma**: salvalo nell'[editor dell'ambiente locale](#use-the-local-environment-editor), se puoi aprirlo

890 890 

891I dev server non ricevono le variabili che aggiungi a un [ambiente salvato](#create-a-saved-environment) o a `~/.claude/settings.json`.891I dev server non ricevono le variabili che aggiungi a un [ambiente salvato](#create-a-saved-environment) o a `~/.claude/settings.json`.

892 892 


897* **Selettore sotto la casella del prompt**: passa il mouse sulla voce del tuo computer, la prima sotto **Local**. Se compare un'icona a forma di ingranaggio, fai clic su di essa. In caso contrario, l'editor non è disponibile, quindi imposta la variabile per le [sessioni locali](#set-environment-variables-for-local-sessions) o per i [dev server](#set-environment-variables-for-dev-servers) in un altro modo.897* **Selettore sotto la casella del prompt**: passa il mouse sulla voce del tuo computer, la prima sotto **Local**. Se compare un'icona a forma di ingranaggio, fai clic su di essa. In caso contrario, l'editor non è disponibile, quindi imposta la variabile per le [sessioni locali](#set-environment-variables-for-local-sessions) o per i [dev server](#set-environment-variables-for-dev-servers) in un altro modo.

898* **Selettore sopra la casella del prompt**: passa il mouse su **Local** e fai clic sull'icona a forma di ingranaggio898* **Selettore sopra la casella del prompt**: passa il mouse su **Local** e fai clic sull'icona a forma di ingranaggio

899 899 

900Inserisci un `KEY=value` per riga e seleziona **Save changes**. Le variabili che salvi qui vengono memorizzate crittografate sulla tua macchina. Le sessioni locali le ricevono, tranne qualsiasi variabile che [Desktop imposta da sé](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`. Riavvia Desktop per fornire le tue variabili ai dev server.900Inserisci una riga `KEY=value` per ciascuna variabile e seleziona **Save changes**. Le variabili che salvi qui vengono archiviate crittografate sulla tua macchina. Le sessioni locali le ricevono, tranne qualsiasi variabile che [Desktop imposta da sé](#environment-variables-desktop-sets-itself), come `API_TIMEOUT_MS`. Riavvia Desktop per fornire le tue variabili ai dev server.

901 901 

902#### Variabile esportata mancante o errata nei comandi eseguiti da Claude902#### Variabile esportata mancante o errata nei comandi eseguiti da Claude

903 903 

904Se un comando che Claude esegue su macOS o Linux non riceve una variabile che hai impostato con `export` in `~/.zshrc` o `~/.bashrc`, oppure riceve il valore sbagliato, prova questi passaggi nell'ordine:904Se un comando che Claude esegue su macOS o Linux non riceve una variabile che hai impostato con `export` in `~/.zshrc` o `~/.bashrc`, o ne riceve un valore errato, prova questi passaggi nell'ordine:

905 905 

906**1. Avvia una nuova sessione**906**1. Avvia una nuova sessione**

907 907 


913 913 

914**3. Controlla le variabili salvate**914**3. Controlla le variabili salvate**

915 915 

916Se un comando riceve il valore errato, controlla se hai impostato la variabile anche in un [ambiente salvato](#use-edit-or-remove-a-saved-environment) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). In tal caso, modifica lì il valore e avvia una nuova sessione.916Se un comando riceve il valore errato, verifica se hai impostato la variabile anche in un [ambiente salvato](#use-edit-or-remove-a-saved-environment) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). In tal caso, modifica lì il valore e avvia una nuova sessione.

917 917 

918**4. Usa un ambiente salvato**918**4. Usa un ambiente salvato**

919 919 


923 923 

924#### Variabili d'ambiente che Desktop imposta da sé924#### Variabili d'ambiente che Desktop imposta da sé

925 925 

926Se hai impostato `API_TIMEOUT_MS` o `ANTHROPIC_BASE_URL` e non è cambiato nulla nelle tue sessioni locali, è perché Desktop imposta da sé queste [variabili](https://code.claude.com/docs/it/env-vars.md#variables), tra le altre. Una sessione locale riceve il valore di Desktop sia che tu abbia impostato il tuo nel profilo della shell, nelle variabili utente o di sistema di Windows, nell'editor dell'ambiente locale o in un ambiente salvato. Spostare il tuo valore in un file di impostazioni non aiuta, perché Claude Code [ignora quel valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) in una sessione locale.926Se hai impostato `API_TIMEOUT_MS` o `ANTHROPIC_BASE_URL` e nelle tue sessioni locali non è cambiato nulla, è perché Desktop imposta da sé quelle [variabili](https://code.claude.com/docs/it/env-vars.md#variables), tra le altre. Una sessione locale riceve il valore di Desktop sia che tu abbia impostato il tuo nel profilo della shell, nelle variabili utente o di sistema di Windows, nell'editor dell'ambiente locale o in un ambiente salvato. Spostare il tuo valore in un file di impostazioni non serve, perché Claude Code [ignora quel valore](https://code.claude.com/docs/it/settings-reference.md#how-env-values-interact-with-your-shell) in una sessione locale.

927 927 

928* `API_TIMEOUT_MS`: una sessione locale riceve `900000`, ovvero 15 minuti. Per un timeout più lungo, [installa la CLI di Claude Code](https://code.claude.com/docs/it/quickstart.md) e usala al posto di Desktop. [Imposta la variabile nella tua shell](https://code.claude.com/docs/it/env-vars.md#set-variables-in-your-shell) ed esegui `claude` nel tuo terminale.928* `API_TIMEOUT_MS`: una sessione locale riceve `900000`, cioè 15 minuti. Per un timeout più lungo, [installa la CLI di Claude Code](https://code.claude.com/docs/it/quickstart.md) e usala al posto di Desktop. [Imposta la variabile nella tua shell](https://code.claude.com/docs/it/env-vars.md#set-variables-in-your-shell) ed esegui `claude` nel terminale.

929* `ANTHROPIC_BASE_URL`: una sessione locale riceve l'host API di Anthropic quando hai effettuato l'accesso con un account Claude. Per usare un gateway, configura invece la [configurazione di inferenza di terze parti](https://code.claude.com/docs/it/llm-gateway-connect.md#desktop-app) di Desktop.929* `ANTHROPIC_BASE_URL`: una sessione locale riceve l'host API di Anthropic quando hai effettuato l'accesso con un account Claude. Per usare un gateway, configura invece la [configurazione di inferenza di terze parti](https://code.claude.com/docs/it/llm-gateway-connect.md#desktop-app) di Desktop.

930 930 

931#### Disattivare il ragionamento esteso931#### Disattivare il ragionamento esteso

932 932 

933Il [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) è abilitato per impostazione predefinita, il che migliora le prestazioni nelle attività di ragionamento complesse ma usa token aggiuntivi. Per disattivarlo, imposta `MAX_THINKING_TOKENS` su `0` in un [ambiente locale salvato](#set-environment-variables-for-local-sessions) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). Il ragionamento si disattiva quindi sull'API di Anthropic, tranne su Opus 5.5, Sonnet 5.5, Haiku 5.5 e sui modelli Fable, che usano sempre il ragionamento esteso.933Il [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) è abilitato per impostazione predefinita, il che migliora le prestazioni nelle attività di ragionamento complesse ma usa token aggiuntivi. Per disattivarlo, imposta `MAX_THINKING_TOKENS` su `0` in un [ambiente locale salvato](#set-environment-variables-for-local-sessions) o nell'[editor dell'ambiente locale](#use-the-local-environment-editor). Il ragionamento si disattiva così sull'API di Anthropic, tranne che su Opus 5.5, Sonnet 5.5, Haiku 5.5 e sui modelli Fable, che usano sempre il ragionamento esteso.

934 934 

935Su Opus 5, seleziona anche un effort `high` o inferiore prima di avviare la sessione. Nel [layout attuale](#check-which-layout-you-have), apri il selettore del modello e seleziona un livello sotto **Effort**. Se hai avviato la sessione a un livello più alto, avviane una nuova a `high` o inferiore.935Su Opus 5, seleziona anche un livello di effort `high` o inferiore prima di avviare la sessione. Nel [layout attuale](#check-which-layout-you-have), apri il selettore del modello e seleziona un livello sotto **Effort**. Se hai avviato la sessione con un livello più alto, avviane una nuova con `high` o inferiore.

936 936 

937#### Budget di ragionamento fissi937#### Budget di ragionamento fissi

938 938 

939Sui modelli con [ragionamento adattivo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), Claude Code ignora il numero in sé in un valore positivo di `MAX_THINKING_TOKENS`, perché è invece il ragionamento adattivo a controllare la profondità del ragionamento. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` a `1` per usare un budget di ragionamento fisso; i modelli Fable, Sonnet 5 e versioni successive, Haiku 5.5, e Opus 4.7 e versioni successive utilizzano sempre il ragionamento adattivo e non hanno una modalità di budget fisso.939Sui modelli con [ragionamento adattivo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), Claude Code ignora il numero in sé in un valore positivo di `MAX_THINKING_TOKENS`, perché è il ragionamento adattivo a controllare la profondità del ragionamento. Su Opus 4.6 e Sonnet 4.6, imposta `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` su `1` per usare un budget di ragionamento fisso; i modelli Fable, Sonnet 5 e successivi, Haiku 5.5 e Opus 4.7 e successivi usano sempre il ragionamento adattivo e non hanno una modalità a budget fisso.

940 940 

941### Sessioni locali su dispositivi gestiti941### Sessioni locali su dispositivi gestiti

942 942 

943Se la voce del tuo computer è disattivata nel selettore di ambiente, con il tooltip **Disabled by your organization**, il tuo amministratore ha [disattivato le sessioni locali](#managed-settings). Su Windows la voce [WSL](https://code.claude.com/docs/it/desktop-wsl.md), la cui disponibilità sui dispositivi gestiti è [regolata separatamente](https://code.claude.com/docs/it/admin-setup.md#wsl-sessions-in-claude-code-desktop), viene disattivata allo stesso modo.943Se la voce del tuo computer è disattivata in grigio nel selettore dell'ambiente, con il tooltip **Disabled by your organization**, il tuo amministratore ha [disattivato le sessioni locali](#managed-settings). Su Windows la voce [WSL](https://code.claude.com/docs/it/desktop-wsl.md), la cui disponibilità sui dispositivi gestiti è [regolata separatamente](https://code.claude.com/docs/it/admin-setup.md#wsl-sessions-in-claude-code-desktop), appare disattivata allo stesso modo.

944 944 

945Le nuove sessioni usano per impostazione predefinita la prima connessione SSH, se ne è configurata una. Se provi a continuare una sessione locale esistente, Desktop mostra un messaggio che indica che le sessioni locali non sono disponibili su questo dispositivo. Gli [ambienti locali salvati](#create-a-saved-environment) mostrano questo errore quando ne selezioni uno: `Couldn’t switch environments: the Local environment isn’t available anymore.` Scegli invece un ambiente [SSH](#ssh-sessions) o [cloud](#cloud-sessions), oppure contatta il tuo team IT.945Le nuove sessioni usano per impostazione predefinita la prima connessione SSH, se ne è configurata una. Se provi a continuare una sessione locale esistente, Desktop mostra un messaggio che indica che le sessioni locali non sono disponibili su questo dispositivo. Gli [ambienti locali salvati](#create-a-saved-environment) mostrano questo errore quando ne selezioni uno: `Couldn’t switch environments: the Local environment isn’t available anymore.` Scegli invece un ambiente [SSH](#ssh-sessions) o [cloud](#cloud-sessions), oppure contatta il tuo team IT.

946 946 

947### Cloud sessions947### Sessioni cloud

948 948 

949Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo conta verso i limiti del tuo [piano di abbonamento](https://code.claude.com/docs/it/costs.md) senza costi di calcolo separati.949Le sessioni cloud continuano in background anche se chiudi l'app. L'utilizzo viene conteggiato nei [limiti del tuo piano di abbonamento](https://code.claude.com/docs/it/costs.md) senza costi di calcolo separati.

950 950 

951Per aggiungere, modificare o [archiviare](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment) un ambiente cloud, apri il [selettore di ambiente](#start-a-session):951Per aggiungere, modificare o [archiviare](https://code.claude.com/docs/it/cloud-environments.md#archive-an-environment) un ambiente cloud, apri il [selettore dell'ambiente](#start-a-session):

952 952 

953* **Aggiungere un ambiente**: seleziona **New environment** in fondo al menu del selettore, poi la scheda **Cloud** della [finestra di dialogo **New environment**](#create-a-saved-environment)953* **Aggiungere un ambiente**: seleziona **New environment** in fondo al menu del selettore, poi la scheda **Cloud** della [finestra di dialogo **New environment**](#create-a-saved-environment)

954* **Edit or archive one of your own environments**: passa il mouse su di esso e fai clic sull'icona dell'ingranaggio954* **Modificare o archiviare uno dei tuoi ambienti**: passa il mouse su di esso e fai clic sull'icona a forma di ingranaggio

955 955 

956Vedi [Configure cloud environments](https://code.claude.com/docs/it/cloud-environments.md) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili di ambiente.956Consulta [Configurare gli ambienti cloud](https://code.claude.com/docs/it/cloud-environments.md) per i dettagli sulla configurazione dell'accesso alla rete e delle variabili d'ambiente.

957 957 

958### Sessioni SSH958### Sessioni SSH

959 959 

960Le 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.960Le sessioni SSH ti permettono di eseguire Claude Code su una macchina remota usando l'app desktop come interfaccia. Questo è utile per lavorare con codebase che si trovano su VM cloud, dev container o server con hardware o dipendenze specifici.

961 961 

962> [!NOTE]962> [!NOTE]

963>963>

964> Se usi Desktop con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH richiedono una configurazione a parte. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).964> Se usi Desktop con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH richiedono una configurazione specifica. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

965 965 

966Aggiungi una connessione SSH nella [finestra di dialogo **New environment**](#create-a-saved-environment), poi avvia una sessione su quella connessione. Se una nuova sessione non ha un selettore di ambiente sotto la casella del prompt, hai il layout precedente. Consulta [Verificare quale layout hai](#check-which-layout-you-have).966Aggiungi una connessione SSH nella [finestra di dialogo **New environment**](#create-a-saved-environment), poi avvia una sessione su quella connessione. Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il layout precedente. Consulta [Verificare quale layout hai](#check-which-layout-you-have).

967 967 

968**1. Apri la finestra di dialogo New environment**968**1. Apri la finestra di dialogo New environment**

969 969 

970Prima di avviare una sessione, apri il selettore di ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.970Prima di avviare una sessione, apri il selettore dell'ambiente sotto la casella del prompt e seleziona **New environment** in fondo al suo menu.

971 971 

972**2. Aggiungi la connessione**972**2. Aggiungi la connessione**

973 973 


975 975 

976* **Name**: un'etichetta descrittiva per questa connessione.976* **Name**: un'etichetta descrittiva per questa connessione.

977* **SSH host**: `user@hostname` o un host definito in `~/.ssh/config`.977* **SSH host**: `user@hostname` o un host definito in `~/.ssh/config`.

978* **SSH port**: se lasciato vuoto usa 22 come valore predefinito, oppure usa la porta della tua configurazione SSH.978* **SSH port**: se lasciato vuoto, il valore predefinito è 22, oppure viene usata la porta della tua configurazione SSH.

979* **SSH key (optional)**: percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Lascia vuoto per usare la tua configurazione SSH o il tuo agente SSH.979* **SSH key (optional)**: percorso della tua chiave privata, ad esempio `~/.ssh/id_ed25519`. Lascia vuoto per usare la tua configurazione SSH o l'agente SSH.

980* **Worktree folder**: una cartella sulla macchina remota, come `~/worktrees`, in cui le nuove sessioni creano i loro worktree. Lascia vuoto per usare il [valore predefinito della macchina remota](#choose-where-ssh-session-worktrees-go).980* **Worktree folder**: una cartella sulla macchina remota, ad esempio `~/worktrees`, in cui le nuove sessioni creano i propri worktree. Lascia vuoto per usare il [valore predefinito della macchina remota](#choose-where-ssh-session-worktrees-go).

981 981 

982Poi seleziona **Add SSH connection**.982Poi seleziona **Add SSH connection**.

983 983 

984**3. Avvia una sessione sulla connessione**984**3. Avvia una sessione sulla connessione**

985 985 

986Seleziona una cartella sulla macchina remota e fai clic su **Create environment**. Mantieni la macchina e la cartella insieme come [ambiente salvato](#create-a-saved-environment) per le sessioni successive. Desktop lo seleziona per la nuova sessione, quindi digita la tua attività e premi **Invio**.986Seleziona una cartella sulla macchina remota e fai clic su **Create environment**. La macchina e la cartella restano associate come [ambiente salvato](#create-a-saved-environment) per le sessioni successive. Desktop lo seleziona per la nuova sessione, quindi scrivi la tua attività e premi **Enter**.

987 987 

988La macchina remota può eseguire Linux, macOS o [Windows](#windows-remote-machines). Desktop installa Claude Code sulla macchina remota automaticamente la prima volta che ti connetti. Una volta connesso, le sessioni SSH supportano modalità di permesso, connettori, plugin e server MCP.988La macchina remota può eseguire Linux, macOS o [Windows](#windows-remote-machines). Desktop installa automaticamente Claude Code sulla macchina remota la prima volta che ti connetti. Una volta connesse, le sessioni SSH supportano le modalità di permesso, i connettori, i plugin e i server MCP.

989 989 

990#### Requisiti della macchina remota per le sessioni SSH990#### Requisiti della macchina remota per le sessioni SSH

991 991 

992Una 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:992Una 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:

993 993 

994* **Sistema**: un processore x86\_64 o arm64. La macchina deve anche soddisfare i [requisiti di sistema](https://code.claude.com/docs/it/setup.md#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](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).994* **Sistema**: un processore x86\_64 o arm64. La macchina deve inoltre soddisfare i [requisiti di sistema](https://code.claude.com/docs/it/setup.md#system-requirements) di Claude Code. Su Linux, Claude Code richiede glibc 2.17 o successiva, oppure musl. Per vedere quale ha la macchina, esegui lì `ldd --version`. Su una distribuzione basata su musl come Alpine Linux, installa anche i [pacchetti di cui Claude Code ha bisogno](https://code.claude.com/docs/it/setup.md#alpine-linux-and-musl-based-distributions).

995* **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>`.995* **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>`.

996* **`MaxSessions 1` sul server**: per connetterti a un server il cui `sshd_config` imposta `MaxSessions 1`, esegui una di queste operazioni:996* **`MaxSessions 1` sul server**: per connetterti a un server il cui `sshd_config` imposta `MaxSessions 1`, esegui una di queste operazioni:

997 * **Il tuo computer esegue macOS o Linux**: aggiorna a Claude Desktop v3.1623.0 o versioni successive997 * **Il tuo computer esegue macOS o Linux**: aggiorna a Claude Desktop v3.1623.0 o successiva

998 * **Il tuo computer esegue Windows**: assicurati che Desktop [si connetta tramite il client OpenSSH](#use-your-ssh-configuration), perché il client SSH integrato di Desktop non riesce a connettersi a quel server998 * **Il tuo computer esegue Windows**: assicurati che Desktop [si connetta tramite il client OpenSSH](#use-your-ssh-configuration), perché il client SSH integrato di Desktop non può connettersi a quel server

999 * **Puoi modificare il server**: aumenta `MaxSessions`, ad esempio al valore predefinito di OpenSSH, 10999 * **Puoi modificare il server**: aumenta `MaxSessions`, ad esempio al valore predefinito di OpenSSH, 10

1000* **Accessi con `MaxSessions 1`**: usa un metodo di accesso che funzioni senza prompt, come una chiave conservata dal tuo agente SSH. Desktop effettua l'accesso almeno due volte ogni volta che si connette o si riconnette. Prevedi almeno un accesso in più per ogni scheda del [terminale](#run-commands-in-the-terminal) e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`. Non ne servono per i comandi eseguiti da Claude.1000* **Accessi con `MaxSessions 1`**: usa un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH. Desktop accede almeno due volte ogni volta che si connette o si riconnette. Prevedi almeno un accesso in più per ogni scheda del [terminale](#run-commands-in-the-terminal) e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`. Non ne prevedere nessuno per i comandi eseguiti da Claude.

1001* **Codici monouso con `MaxSessions 1`**: se ogni accesso ti chiede qualcosa, come nel caso dei codici monouso, i comandi `!` non riescono. Esegui invece quei comandi in una scheda del terminale, che mostra la richiesta nel proprio riquadro.1001* **Codici monouso con `MaxSessions 1`**: se ogni accesso ti chiede qualcosa, come nel caso dei codici monouso, i comandi `!` non riescono. Esegui invece quei comandi in una scheda del terminale, che mostra la richiesta nel proprio riquadro.

1002* **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).1002* **Cartella di installazione**: Desktop installa un programma helper 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 ciascun utente che si connette. Per il contenuto di quella cartella, consulta [File e processi sulla macchina remota](#files-and-processes-on-the-remote-machine).

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

1004* **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](https://code.claude.com/docs/it/network-config.md#network-access-requirements). Se la macchina non riesce a scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica sulla macchina. Le altre richieste di Claude Code partono comunque dalla macchina remota. Su una macchina remota Linux, se quelle richieste richiedono un proxy, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).1004* **Rete**: Claude Code viene eseguito sulla macchina remota ed effettua le proprie richieste di rete da lì, quindi la macchina deve disporre dell'[accesso alla rete richiesto da Claude Code](https://code.claude.com/docs/it/network-config.md#network-access-requirements). Se la macchina non può scaricare Claude Code, Desktop lo scarica sul tuo computer e lo carica. Le altre richieste di Claude Code partono comunque dalla macchina remota. Su una macchina remota Linux, se quelle richieste necessitano di un proxy, [impostalo per le sessioni SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

1005 1005 

1006#### Verificare la chiave host di una macchina remota1006#### Verificare la chiave host di una macchina remota

1007 1007 


1011 1011 

1012* **Desktop chiede `Connect to <host> for the first time?`, oppure hai selezionato Review new key**: la macchina indicata da Desktop, `<host>`1012* **Desktop chiede `Connect to <host> for the first time?`, oppure hai selezionato Review new key**: la macchina indicata da Desktop, `<host>`

1013* **Desktop chiede `Connect through <jump host> for the first time?`**: il jump host, ovvero la macchina attraverso cui passa la tua connessione, non la macchina che vuoi raggiungere1013* **Desktop chiede `Connect through <jump host> for the first time?`**: il jump host, ovvero la macchina attraverso cui passa la tua connessione, non la macchina che vuoi raggiungere

1014* **`ssh` chiede o avvisa in un terminale**: la macchina indicata nel suo messaggio, che potrebbe non essere quella che hai digitato1014* **`ssh` chiede o avvisa in un terminale**: la macchina indicata dal suo messaggio, che potrebbe non essere quella che hai digitato

1015 1015 

1016Ottieni l'impronta digitale della macchina dalla macchina stessa, non tramite la connessione che stai verificando:1016Ottieni l'impronta digitale propria di quella macchina dalla macchina stessa, non tramite la connessione che stai verificando:

1017 1017 

1018* **La macchina è gestita da qualcun altro**: chiedi loro l'impronta digitale della chiave host1018* **La macchina è gestita da qualcun altro**: chiedi a quella persona l'impronta digitale della chiave host

1019* **La gestisci tu ed esegue Linux o macOS**: esegui `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub` su di essa, dalla sua console o tramite una connessione che già consideri attendibile. Per `<type>`, usa il tipo di chiave che Desktop o `ssh` mostra accanto all'impronta digitale, in minuscolo: `ed25519` per `ED25519` o `ssh-ed25519`.1019* **La gestisci tu ed esegue Linux o macOS**: esegui `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub` su di essa, dalla sua console o tramite una connessione che già consideri attendibile. Per `<type>`, usa il tipo di chiave che Desktop o `ssh` mostra accanto all'impronta digitale, in minuscolo: `ed25519` per `ED25519` o `ssh-ed25519`.

1020 1020 

1021Quindi confronta l'impronta digitale della macchina con quella che ti è stata mostrata:1021Poi confronta l'impronta digitale della macchina con quella che ti è stata mostrata:

1022 1022 

1023* **Corrispondono**: considera attendibile la chiave. Seleziona **Trust and connect** o **Trust new key** in Desktop, oppure rispondi `yes` nel terminale.1023* **Corrispondono**: considera attendibile la chiave. Seleziona **Trust and connect** o **Trust new key** in Desktop, oppure rispondi `yes` nel terminale.

1024* **Sono diverse, o non puoi verificare**: non connetterti. Seleziona **Cancel** in Desktop, oppure rispondi `no` nel terminale. Se la macchina è gestita da qualcun altro, comunica loro quale impronta digitale ti è stata mostrata.1024* **Sono diverse, oppure non puoi verificare**: non connetterti. Seleziona **Cancel** in Desktop, oppure rispondi `no` nel terminale. Se la macchina è gestita da qualcun altro, comunica a quella persona quale impronta digitale ti è stata mostrata.

1025 1025 

1026Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo uno dei due risultati.1026Se sei arrivato qui da un passaggio di risoluzione dei problemi, torna a quel passaggio dopo l'uno o l'altro risultato.

1027 1027 

1028#### Impostare un proxy o un certificato CA per le sessioni SSH1028#### Impostare un proxy o un certificato CA per le sessioni SSH

1029 1029 

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

1031 1031 

1032In una sessione SSH, Claude Code non riceve le variabili da quei file, anche quando `claude` in un terminale su quella macchina le riceve. La sessione può quindi bloccarsi, oppure mostrare **The connection from … to the API failed** o **Authentication failed**, e accedere di nuovo non aiuta.1032In una sessione SSH, Claude Code non riceve le variabili da quei file, anche quando `claude` in un terminale su quella macchina le riceve. La sessione può quindi bloccarsi, oppure mostrare **The connection from … to the API failed** o **Authentication failed**, e accedere di nuovo non serve.

1033 1033 

1034**1. Aggiungi le variabili**1034**1. Aggiungi le variabili**

1035 1035 

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

1037 1037 

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

1039{1039{


1044}1044}

1045```1045```

1046 1046 

1047**2. Invia di nuovo il tuo messaggio**1047**2. Invia di nuovo il messaggio**

1048 1048 

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

1050 1050 

1051##### Trovare una variabile di proxy o CA impostata altrove sulla macchina remota1051##### Trovare una variabile del proxy o della CA impostata altrove sulla macchina remota

1052 1052 

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

1054 1054 

1055**1. Elenca le variabili impostate dalla macchina remota**1055**1. Elenca le variabili impostate dalla macchina remota**

1056 1056 


1058 1058 

1059**2. Modifica la variabile dove è impostata**1059**2. Modifica la variabile dove è impostata**

1060 1060 

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

1062 1062 

1063**3. Fornisci il nuovo valore alle sessioni**1063**3. Fornisci il nuovo valore alle sessioni**

1064 1064 

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

1066 1066 

1067#### Usare la tua configurazione SSH1067#### Usare la tua configurazione SSH

1068 1068 

1069Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:1069Puoi usare la tua configurazione SSH su macOS, Linux e Windows quando Desktop si connette tramite il client OpenSSH sul tuo computer:

1070 1070 

1071* **macOS e Linux**: Desktop si connette eseguendo il client OpenSSH sul tuo computer, quindi usa il tuo `~/.ssh/config`. La connessione tramite il client OpenSSH richiede Claude Desktop v1.37937.0 o versioni successive.1071* **macOS e Linux**: Desktop si connette eseguendo il client OpenSSH sul tuo computer, quindi usa il tuo `~/.ssh/config`. La connessione tramite il client OpenSSH richiede Claude Desktop v1.37937.0 o successiva.

1072* **Windows**: quando Desktop si connette tramite il client OpenSSH, usa il tuo `%USERPROFILE%\.ssh\config`. Se usi un account Claude anziché un provider di terze parti, la connessione tramite il client OpenSSH richiede tutti questi requisiti:1072* **Windows**: quando Desktop si connette tramite il client OpenSSH, usa il tuo `%USERPROFILE%\.ssh\config`. Se usi un account Claude anziché un provider di terze parti, la connessione tramite il client OpenSSH richiede tutti questi requisiti:

1073 1073 

1074 * Claude Desktop v2.2553.0 o versioni successive. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).1074 * Claude Desktop v2.2553.0 o successiva. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).

1075 * OpenSSH di Microsoft 9.4 o versioni successive1075 * OpenSSH di Microsoft 9.4 o successiva

1076 * Desktop installato con i pulsanti di download nella parte superiore di questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH1076 * Desktop installato con i pulsanti di download in cima a questa pagina, perché Desktop dal Microsoft Store non si connette tramite il client OpenSSH

1077 1077 

1078 Se non puoi soddisfare questi requisiti, o usi un provider di terze parti, consulta [Connettersi su Windows senza il client OpenSSH](#connect-on-windows-without-the-openssh-client).1078 Se non puoi soddisfare questi requisiti, oppure usi un provider di terze parti, consulta [Connettersi su Windows senza il client OpenSSH](#connect-on-windows-without-the-openssh-client).

1079 1079 

1080Con il client OpenSSH, inserisci un nome `Host` dal tuo file di configurazione nel campo **SSH host**. Desktop usa quindi le impostazioni di quella voce `Host`, come `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.1080Con il client OpenSSH, inserisci un nome `Host` del tuo file di configurazione nel campo **SSH host**. Desktop usa quindi le impostazioni di quella voce `Host`, come `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.

1081 1081 

1082Prima di aggiungere la connessione, controlla il client e la voce in un terminale sul tuo computer:1082Prima di aggiungere la connessione, verifica il client e la voce in un terminale sul tuo computer:

1083 1083 

1084* **Versione del client su macOS e Linux**: esegui `ssh -V`. Il client deve essere OpenSSH 7.6 o versioni successive.1084* **Versione del client su macOS e Linux**: esegui `ssh -V`. Il client deve essere OpenSSH 7.6 o successivo.

1085* **Versione del client su Windows**: Desktop prova prima l'`ssh` presente nel tuo `PATH`, quindi esegui `ssh -V`. Il client supera la verifica se l'output mostra `OpenSSH_for_Windows_` e la versione 9.4 o successive. Se non la supera, controlla le due cartelle che Desktop prova successivamente: esegui `.\ssh.exe -V` in `C:\Windows\System32\OpenSSH`, poi in `C:\Program Files\OpenSSH`.1085* **Versione del client su Windows**: Desktop prova prima l'`ssh` presente nel tuo `PATH`, quindi esegui `ssh -V`. Il client è valido se l'output mostra `OpenSSH_for_Windows_` e una versione 9.4 o successiva. Se non è valido, controlla le due cartelle che Desktop prova subito dopo: esegui `.\ssh.exe -V` in `C:\Windows\System32\OpenSSH`, poi in `C:\Program Files\OpenSSH`.

1086* **Nessun client supera la verifica su Windows**: aggiungi la funzionalità facoltativa **OpenSSH Client** in Windows e installa gli aggiornamenti di Windows in sospeso, oppure installa la [build più recente di Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/upgrade-in-box-openssh-to-latest-openssh-release). Poi chiudi e riapri Desktop. Per vedere se Desktop ha trovato un client OpenSSH utilizzabile, cerca in [`ssh.log`](#get-desktops-logs-for-an-ssh-problem) `Windows OpenSSH client:` seguito da una versione, oppure `no usable Windows OpenSSH client`.1086* **Nessun client valido su Windows**: aggiungi la funzionalità facoltativa **OpenSSH Client** in Windows e installa gli aggiornamenti di Windows in sospeso, oppure installa la [build più recente di Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/upgrade-in-box-openssh-to-latest-openssh-release). Poi chiudi e riapri Desktop. Per vedere se Desktop ha trovato un client OpenSSH utilizzabile, cerca in [`ssh.log`](#get-desktops-logs-for-an-ssh-problem) `Windows OpenSSH client:` seguito da una versione, oppure `no usable Windows OpenSSH client`.

1087* **Voce**: su Windows, usa il client che ha superato la verifica della versione. Esegui `ssh` con il nome `Host`, ad esempio `ssh devbox`. Se non funziona, correggi prima la voce.1087* **Voce**: su Windows, usa il client che ha superato la verifica della versione. Esegui `ssh` con il nome `Host`, ad esempio `ssh devbox`. Se non riesce, correggi prima la voce.

1088 1088 

1089Puoi lasciare vuoti i campi **SSH port** e **SSH key (optional)**. Se ne compili uno, Desktop lo usa insieme alla voce:1089Puoi lasciare vuoti i campi **SSH port** e **SSH key (optional)**. Se ne compili uno, Desktop lo usa insieme alla voce:

1090 1090 


1093 1093 

1094##### Connettersi su Windows senza il client OpenSSH1094##### Connettersi su Windows senza il client OpenSSH

1095 1095 

1096Su Windows, ti connetti tramite il client SSH integrato di Desktop se il tuo computer non soddisfa [i requisiti per il client OpenSSH](#use-your-ssh-configuration). Con un provider di terze parti, ti connetti tramite il client integrato per impostazione predefinita, e l'amministratore può modificare questo comportamento. Per l'impostazione, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1096Su Windows, ti connetti tramite il client SSH integrato di Desktop se il tuo computer non soddisfa [i requisiti per il client OpenSSH](#use-your-ssh-configuration). Con un provider di terze parti, ti connetti tramite il client integrato per impostazione predefinita, e il tuo amministratore può modificare questo comportamento. Per l'impostazione, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1097 1097 

1098Con il client integrato, puoi comunque inserire un nome `Host` dalla tua configurazione SSH nel campo **SSH host** se il tuo `PATH` contiene un comando `ssh`, con questi limiti:1098Con il client integrato, puoi comunque inserire un nome `Host` della tua configurazione SSH nel campo **SSH host** se il tuo `PATH` contiene un comando `ssh`, con queste limitazioni:

1099 1099 

1100* **Impostazioni dalla voce**: Desktop prende `HostName`, `User`, `Port` e `IdentityFile`. Prende anche `ProxyCommand` se nel tuo `PATH` è presente una shell `sh`.1100* **Impostazioni dalla voce**: Desktop prende `HostName`, `User`, `Port` e `IdentityFile`. Prende anche `ProxyCommand` se una shell `sh` è presente nel tuo `PATH`.

1101* **SSH key (optional)**: lascia vuoto questo campo per mantenere l'`IdentityFile` della voce, perché un file di chiave che scegli qui sostituisce l'`IdentityFile`1101* **SSH key (optional)**: lascia vuoto questo campo per mantenere l'`IdentityFile` della voce, perché un file di chiave che scegli qui sostituisce l'`IdentityFile`

1102* **`CertificateFile` e `ProxyJump`**: Desktop ignora `CertificateFile` e la connessione non riesce se la voce imposta `ProxyJump`. Per usare una delle due impostazioni, [connettiti tramite il client OpenSSH](#use-your-ssh-configuration).1102* **`CertificateFile` e `ProxyJump`**: Desktop ignora `CertificateFile`, e la connessione non riesce se la voce imposta `ProxyJump`. Per usare una di queste impostazioni, [connettiti tramite il client OpenSSH](#use-your-ssh-configuration).

1103 1103 

1104##### Raggiungere una macchina dietro un jump host1104##### Raggiungere una macchina dietro un jump host

1105 1105 

1106Per raggiungere una macchina dietro un jump host, chiamato anche bastion, imposta `ProxyJump` o `ProxyCommand` nella voce. La voce seguente raggiunge `devbox.internal.example.com` tramite `bastion.example.com`:1106Per raggiungere una macchina dietro un jump host, detto anche bastion, imposta `ProxyJump` o `ProxyCommand` nella voce. La voce seguente raggiunge `devbox.internal.example.com` tramite `bastion.example.com`:

1107 1107 

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

1109Host devbox1109Host devbox


1114 1114 

1115Inserisci `devbox` nel campo **SSH host**.1115Inserisci `devbox` nel campo **SSH host**.

1116 1116 

1117Se il tuo amministratore [limita gli host SSH](#allow-jump-hosts), anche il jump host deve essere nell'elenco. Esegui `ssh -G bastion.example.com` in un terminale sul tuo computer e chiedigli di consentire l'`hostname` che stampa.1117Se il tuo amministratore [limita gli host SSH](#allow-jump-hosts), anche il jump host deve essere nell'elenco. Esegui `ssh -G bastion.example.com` in un terminale sul tuo computer e chiedi all'amministratore di consentire l'`hostname` che viene stampato.

1118 1118 

1119##### Raggiungere un container su una macchina remota1119##### Raggiungere un container su una macchina remota

1120 1120 

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

1122 1122 

1123**1. Aggiungi la voce**1123**1. Aggiungi la voce**

1124 1124 

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

1126 1126 

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

1128Host devbox-container1128Host devbox-container


1132 1132 

1133**2. Prepara il container**1133**2. Prepara il container**

1134 1134 

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

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

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

1138 1138 

1139**3. Controlla l'allowlist**1139**3. Controlla l'allowlist**

1140 1140 

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

1142 1142 

1143**4. Testa la voce, poi connettiti**1143**4. Testa la voce, poi connettiti**

1144 1144 

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

1146 1146 

1147* **Se `ssh` chiede una password, una passphrase o un codice**: passa a un accesso che funzioni senza richieste, come una chiave conservata dal tuo agente SSH1147* **Se `ssh` chiede una password, una passphrase o un codice**: passa a un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH

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

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

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

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

1152 1152 

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

1154 1154 

1155##### Usare variabili della tua shell in un `ProxyCommand`1155##### Usare variabili della tua shell in un `ProxyCommand`

1156 1156 

1157Su macOS e Linux, per usare una tua variabile d'ambiente in un `ProxyCommand` o in un comando `Match exec`, esportala in un file di avvio della shell, ad esempio `~/.zshrc`. Poi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che la tua shell di login esporta e mantiene quei valori finché non lo chiudi.1157Su macOS e Linux, per usare una tua variabile d'ambiente in un comando `ProxyCommand` o `Match exec`, esportala in un file di avvio della shell, ad esempio `~/.zshrc`. Poi chiudi e riapri Desktop. All'avvio, Desktop legge ciò che esporta la tua shell di login e mantiene quei valori finché non lo chiudi.

1158 1158 

1159Questo 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.1159Questo richiede Claude Desktop v2.37337.0 o successiva e un comando `env` che accetti `-0`, cosa che puoi verificare eseguendo `env -0` in un terminale sul tuo computer.

1160 1160 

1161> [!NOTE]1161> [!NOTE]

1162>1162>

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

1164 1164 

1165##### Usare credenziali AWS in un `ProxyCommand` su macOS e Linux1165##### Usare credenziali AWS in un `ProxyCommand` su macOS e Linux

1166 1166 

1167Se imposti credenziali AWS temporanee in un file di avvio della shell, un `ProxyCommand` che esegue l'AWS CLI può connettersi in un terminale e non riuscire in Desktop. Quando la tua shell esporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` o `AWS_CREDENTIAL_EXPIRATION`, `ssh` e il tuo `ProxyCommand` in Desktop non ricevono le credenziali AWS della shell, `AWS_REGION` né `AWS_PROFILE`.1167Se imposti credenziali AWS temporanee in un file di avvio della shell, un `ProxyCommand` che esegue la AWS CLI può connettersi in un terminale e non riuscire in Desktop. Quando la tua shell esporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` o `AWS_CREDENTIAL_EXPIRATION`, `ssh` e il tuo `ProxyCommand` in Desktop non ricevono le credenziali AWS della shell, `AWS_REGION` o `AWS_PROFILE`.

1168 1168 

1169Se l'AWS CLI non ha un'altra fonte per una regione o per le credenziali, non riesce con `You must specify a region` o `Unable to locate credentials`. Per connetterti da Desktop, fornisci all'AWS CLI un profilo che legge da `~/.aws/config`:1169Se la AWS CLI non ha un'altra fonte per la regione o le credenziali, non riesce con `You must specify a region` o `Unable to locate credentials`. Per connetterti da Desktop, fornisci alla AWS CLI un profilo che legga da `~/.aws/config`:

1170 1170 

1171**1. Aggiungi un profilo con una regione e una fonte di credenziali**1171**1. Aggiungi un profilo con una regione e una fonte di credenziali**

1172 1172 

1173Questo esempio aggiunge un profilo denominato `corp` che ottiene le sue credenziali da un programma di supporto:1173Questo esempio aggiunge un profilo chiamato `corp` che ottiene le credenziali da un programma helper:

1174 1174 

1175```ini ~/.aws/config theme={null}1175```ini ~/.aws/config theme={null}

1176[profile corp]1176[profile corp]


1178credential_process = /full/path/to/your-credential-helper1178credential_process = /full/path/to/your-credential-helper

1179```1179```

1180 1180 

1181* **`region`**: indica la AWS Region delle macchine a cui ti connetti1181* **`region`**: indica la regione AWS delle macchine a cui ti connetti

1182* **`credential_process`**: indica il percorso completo di un programma che stampa le credenziali nel [formato JSON documentato da AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Scegli un programma che non richieda alcun input da parte tua, perché l'AWS CLI lo esegue a ogni connessione, incluse le riconnessioni mentre sei assente.1182* **`credential_process`**: indica il percorso completo di un programma che stampa le credenziali nel [formato JSON documentato da AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Scegli un programma che non richieda alcun input da parte tua, perché la AWS CLI lo esegue a ogni connessione, incluse le riconnessioni mentre sei via.

1183* **IAM Identity Center**: aggiungi le [impostazioni IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) del profilo al posto di `credential_process`. Esegui `aws sso login --profile corp` in un terminale prima di connetterti, e di nuovo quando quell'accesso scade.1183* **IAM Identity Center**: aggiungi le [impostazioni IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) del profilo al posto di `credential_process`. Esegui `aws sso login --profile corp` in un terminale prima di connetterti, e di nuovo quando quell'accesso scade.

1184 1184 

1185**2. Indica il profilo nel ProxyCommand**1185**2. Indica il profilo nel ProxyCommand**


1193 1193 

1194**3. Connettiti di nuovo**1194**3. Connettiti di nuovo**

1195 1195 

1196Esegui `ssh` con l'host in un terminale per confermare che la voce si connetta ancora lì, poi connettiti da Desktop.1196Esegui `ssh` con l'host in un terminale per confermare che la voce si connette ancora lì, poi connettiti da Desktop.

1197 1197 

1198##### Aumentare il timeout della connessione SSH1198##### Aumentare il timeout della connessione SSH

1199 1199 


1207 ConnectTimeout 1201207 ConnectTimeout 120

1208```1208```

1209 1209 

1210`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.1210`ssh` usa il primo valore che trova per un host, quindi mantieni la voce sopra qualsiasi voce `Host *` che imposti `ConnectTimeout`. Per confermare, 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.

1211 1211 

1212Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque `ConnectTimeout` tu imposti. Non puoi aumentare questo limite, perché Desktop imposta autonomamente `ServerAliveInterval` e `ServerAliveCountMax`, e `ssh` chiude quindi un accesso in cui la macchina remota non invia nulla per quel lasso di tempo. Se invece è un jump host o un `ProxyCommand` ad attenderti, aumenta `ConnectTimeout` nella voce della macchina remota per coprire quel tempo.1212Se la macchina remota stessa attende un'approvazione sul tuo telefono, approva entro 45 secondi, qualunque sia il `ConnectTimeout` impostato. Non puoi aumentare questo limite, perché Desktop imposta da sé `ServerAliveInterval` e `ServerAliveCountMax`, e `ssh` chiude quindi un accesso in cui la macchina remota non invia nulla per quel tempo. Se invece è un jump host o un `ProxyCommand` ad attendere te, aumenta `ConnectTimeout` nella voce della macchina remota per coprire quel tempo.

1213 1213 

1214##### Correggere un blocco `Match host` che solo Desktop applica1214##### Correggere un blocco `Match host` che applica solo Desktop

1215 1215 

1216Se Desktop usa un'impostazione che `ssh devbox` in un terminale non usa, cerca un blocco `Match host` sopra la riga `HostName` della voce. In un terminale, `ssh` legge un blocco in quella posizione prima della riga `HostName`, quindi confronta il blocco con `devbox`. Desktop passa a `ssh` il valore `HostName` sulla riga di comando, quindi `ssh` confronta il blocco con quel valore.1216Se Desktop usa un'impostazione che `ssh devbox` in un terminale non usa, cerca un blocco `Match host` sopra la riga `HostName` della voce. In un terminale, `ssh` legge un blocco in quella posizione prima della riga `HostName`, quindi confronta il blocco con `devbox`. Desktop passa a `ssh` il valore di `HostName` sulla riga di comando, quindi `ssh` confronta il blocco con quel valore.

1217 1217 

1218Per verificarlo, esegui `ssh -G` in un terminale sul tuo computer con i valori `HostName` e `User` della voce sulla riga di comando, come fa Desktop:1218Per verificarlo, esegui `ssh -G` in un terminale sul tuo computer con i valori `HostName` e `User` della voce sulla riga di comando, come fa Desktop:

1219 1219 


1221ssh -G -o HostName=devbox.internal.example.com -l alice devbox1221ssh -G -o HostName=devbox.internal.example.com -l alice devbox

1222```1222```

1223 1223 

1224Confronta l'output con quello di `ssh -G devbox`. Se le impostazioni del blocco, come `proxycommand`, compaiono solo nel primo output, il blocco ha effetto solo in Desktop. Per far sì che anche Desktop lo salti, aggiungi `!originalhost devbox` alla sua riga `Match`:1224Confronta l'output con quello di `ssh -G devbox`. Se le impostazioni del blocco, come `proxycommand`, compaiono solo nel primo output, il blocco ha effetto solo in Desktop. Per fare in modo che anche Desktop lo salti, aggiungi `!originalhost devbox` alla sua riga `Match`:

1225 1225 

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

1227Match host *.internal.example.com !originalhost devbox1227Match host *.internal.example.com !originalhost devbox

1228```1228```

1229 1229 

1230Per verificarlo, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.1230Per confermare, esegui di nuovo il primo comando. Le impostazioni del blocco non compaiono più nel suo output.

1231 1231 

1232##### Impostazioni di inoltro che Desktop lascia disattivate1232##### Impostazioni di forwarding che Desktop lascia disattivate

1233 1233 

1234Nella 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.1234Nella 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 forwarding vengano applicate [solo in alcuni casi](#limits-while-desktop-is-disconnected), perché lì Desktop può avviare un `ssh` separato che le segue.

1235 1235 

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

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

1238 1238 

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

1240 1240 

1241Cerca 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`.1241Cerca in entrambi gli output una riga `forwardagent` con 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`.

1242 1242 

1243#### Raggiungere una porta sulla macchina remota1243#### Raggiungere una porta sulla macchina remota

1244 1244 

1245Per 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`:1245Per aprire un server in esecuzione sulla macchina remota, ad esempio un dev server sulla porta 3000, esegui tu il forwarding della porta. In un terminale sul tuo computer, esegui `ssh` con `-L` e l'host a cui ti connetti, ad esempio `devbox`:

1246 1246 

1247```bash theme={null}1247```bash theme={null}

1248ssh -N -L 3000:localhost:3000 devbox1248ssh -N -L 3000:localhost:3000 devbox

1249```1249```

1250 1250 

1251Se 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.1251Se 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 il forwarding TCP, controllato da `AllowTcpForwarding` nel `sshd_config` del server SSH.

1252 1252 

1253#### Macchine remote Windows1253#### Macchine remote Windows

1254 1254 

1255Una macchina remota Windows richiede Claude Desktop v2.31226.0 o versioni successive.1255Una macchina remota Windows richiede Claude Desktop v2.31226.0 o successiva.

1256 1256 

1257Usa OpenSSH Server di Microsoft. La macchina può essere x64 o ARM64. La shell avviata dal server SSH può essere `cmd.exe`, Windows PowerShell 5.1 o Git Bash.1257Usa OpenSSH Server di Microsoft. La macchina può essere x64 o ARM64. La shell avviata dal server SSH può essere `cmd.exe`, Windows PowerShell 5.1 o Git Bash.

1258 1258 

1259Le macchine remote Windows sono testate meno di quelle Linux. Prova il tuo lavoro su di esse prima di farci affidamento.1259Le macchine remote Windows vengono testate meno di quelle Linux. Prova il tuo lavoro lì prima di farvi affidamento.

1260 1260 

1261Aspettati questi limiti, tra gli altri, su una macchina remota Windows:1261Aspettati queste limitazioni, tra le altre, su una macchina remota Windows:

1262 1262 

1263* **Terminale**: il [terminale](#run-commands-in-the-terminal) non si apre in una sessione la cui cartella è un percorso Windows, come `C:/projects/app`1263* **Terminale**: il [terminale](#run-commands-in-the-terminal) non si apre in una sessione la cui cartella è un percorso Windows, come `C:/projects/app`

1264* **Sandbox**: lì Claude Code viene eseguito su Windows nativo, dove esegue i comandi senza sandbox. Consulta [dove viene eseguita la sandbox](https://code.claude.com/docs/it/sandboxing.md).1264* **Sandbox**: lì Claude Code viene eseguito su Windows nativo, dove esegue i comandi senza sandbox. Consulta [dove viene eseguita la sandbox](https://code.claude.com/docs/it/sandboxing.md).

1265* **Plugin**: Desktop non copia un plugin che contiene un nome di file o cartella che Windows non può memorizzare, come un nome con `:`. La sessione elenca i plugin che Desktop ha escluso.1265* **Plugin**: Desktop non copia un plugin che contiene un nome di file o cartella che Windows non può memorizzare, ad esempio un nome con `:`. La sessione elenca i plugin che Desktop ha escluso.

1266* **Server MCP**: su alcune macchine remote Windows, le chiamate di Claude ai server MCP di `claude_desktop_config.json` passano attraverso Desktop, quindi Claude non può chiamare i loro strumenti [mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected). Prima di Claude Desktop v2.37337.0, questo vale su ogni macchina remota Windows.1266* **Server MCP**: su alcune macchine remote Windows, le chiamate di Claude ai server MCP da `claude_desktop_config.json` passano attraverso Desktop, quindi Claude non può chiamare i loro strumenti [mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected). Prima di Claude Desktop v2.37337.0, questo vale su tutte le macchine remote Windows.

1267* **Worktree**: i worktree vengono creati in `<project-root>/.claude/worktrees/`. Se [scegli un'altra cartella](#choose-where-ssh-session-worktrees-go), Desktop la ignora.1267* **Worktree**: i worktree vengono creati in `<project-root>/.claude/worktrees/`. Se [scegli un'altra cartella](#choose-where-ssh-session-worktrees-go), Desktop la ignora.

1268* **Messaggi precedenti**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, potresti dover connetterti prima di vedere i messaggi precedenti di una sessione1268* **Messaggi precedenti**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, potresti doverti connettere prima di vedere i messaggi precedenti di una sessione

1269* **Fork**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, puoi fare il fork di una sessione solo dal suo primo messaggio1269* **Fork**: se la shell del server SSH è `cmd.exe` o Windows PowerShell, puoi creare un fork di una sessione solo dal suo primo messaggio

1270* **Esecuzione durante la disconnessione**: un'attività [continua a essere eseguita mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected) solo se il server SSH consente a un programma di sopravvivere alla connessione che lo ha avviato. Per scoprirlo, [testa la macchina remota](#prepare-a-long-task).1270* **Esecuzione durante la disconnessione**: un'attività [continua a essere eseguita mentre Desktop è disconnesso](#keep-a-task-running-while-desktop-is-disconnected) solo se il server SSH consente a un programma di sopravvivere alla connessione che lo ha avviato. Per scoprirlo, [testa la macchina remota](#prepare-a-long-task).

1271* **Processi residui**: al termine di una sessione, controlla la macchina alla ricerca di programmi avviati da Claude Code, perché possono continuare a essere eseguiti. Il [programma di supporto in background](#keep-a-task-running-while-desktop-is-disconnected) che Desktop installa non si arresta da solo lì.1271* **Processi residui**: al termine di una sessione, controlla sulla macchina i programmi avviati da Claude Code, perché possono continuare a essere eseguiti. L'[helper in background](#keep-a-task-running-while-desktop-is-disconnected) installato da Desktop non si arresta da solo lì.

1272 1272 

1273#### Mantenere un'attività in esecuzione mentre Desktop è disconnesso1273#### Mantenere un'attività in esecuzione mentre Desktop è disconnesso

1274 1274 

1275Se il tuo computer va in sospensione, perdi la connessione di rete o chiudi Desktop, l'attività prosegue finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected). Chiudere il coperchio conta come sospensione. Un riavvio di Desktop o del tuo computer, anche per un aggiornamento, conta come chiusura.1275Se il tuo computer va in sospensione, perdi la connessione di rete o chiudi Desktop, l'attività prosegue finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected). Chiudere il coperchio equivale alla sospensione. Un riavvio di Desktop o del computer, anche per un aggiornamento, equivale a una chiusura.

1276 1276 

1277Claude 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.1277Claude Code viene eseguito come processo sulla macchina remota, sotto un helper in background che Desktop installa lì, quindi non ha bisogno della tua connessione SSH per continuare. Il comportamento descritto in questa sezione richiede Claude Desktop v2.31226.0 o successiva.

1278 1278 

1279> [!WARNING]1279> [!WARNING]

1280>1280>

1281> 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.1281> Se accedi a Desktop con un account Claude, non contare sul fatto che un'attività venga eseguita durante la notte. Desktop rinnova l'accesso per l'attività solo mentre Desktop è in esecuzione e connesso, quindi l'accesso dell'attività può scadere dopo la disconnessione, e l'attività si interrompe. Il tempo rimanente al momento della disconnessione varia e può essere di pochi minuti.

1282>1282>

1283> Il lavoro svolto fino a quel momento rimane sulla macchina remota e puoi continuare con un messaggio al tuo ritorno.1283> Il lavoro svolto fino a quel momento resta sulla macchina remota e puoi continuare con un messaggio quando torni.

1284>1284>

1285> Se l'attività deve essere eseguita per tutta la notte:1285> Se l'attività deve essere eseguita per tutta la notte:

1286>1286>

1287> * [Mantieni il tuo computer attivo](https://code.claude.com/docs/it/desktop-scheduled-tasks.md#how-scheduled-tasks-run) e online, con il coperchio aperto e Desktop in esecuzione1287> * [Mantieni il computer attivo](https://code.claude.com/docs/it/desktop-scheduled-tasks.md#how-scheduled-tasks-run) e online, con il coperchio aperto e Desktop in esecuzione

1288> * Usa un accesso che funzioni senza richieste, come una chiave conservata dal tuo agente SSH, per la macchina remota e per qualsiasi jump host lungo il percorso. Desktop potrà quindi riconnettersi da solo dopo un'interruzione.1288> * Usa un accesso che funzioni senza prompt, ad esempio una chiave detenuta dal tuo agente SSH, per la macchina remota e per qualsiasi jump host lungo il percorso. Desktop potrà così riconnettersi da solo dopo un'interruzione.

1289>1289>

1290> Per un'attività che deve essere eseguita mentre il tuo computer è in sospensione o spento, avvia invece una [sessione cloud](#run-long-running-tasks-in-the-cloud).1290> Per un'attività che deve essere eseguita mentre il computer è in sospensione o spento, avvia invece una [sessione cloud](#run-long-running-tasks-in-the-cloud).

1291 1291 

1292* **Dopo una sospensione o una perdita di rete**: recuperi l'attività in esecuzione se il processo [è ancora in esecuzione](#limits-while-desktop-is-disconnected) e Desktop può accedere senza richieste. Se non può, [invia un messaggio](#reconnect-after-sleep-or-a-network-loss).1292* **Dopo la sospensione o una perdita di rete**: recuperi l'attività in esecuzione se il processo [è ancora in esecuzione](#limits-while-desktop-is-disconnected) e Desktop può accedere senza prompt. In caso contrario, [invia un messaggio](#reconnect-after-sleep-or-a-network-loss).

1293* **Dopo una chiusura**: l'attività continua a essere eseguita, ma la perdi quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di chiuderlo. Se hai perso l'attività, invia un messaggio per continuare.1293* **Dopo una chiusura**: l'attività continua a essere eseguita, ma la perdi quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di chiudere. Se hai perso l'attività, invia un messaggio per continuare.

1294 1294 

1295Quando torni e l'attività non è terminata, verifica se c'è un avviso che Desktop non riesce a riconnettersi, un errore di autenticazione o una richiesta in attesa:1295Quando torni e l'attività non è completata, controlla se c'è un avviso che Desktop non riesce a riconnettersi, un errore di autenticazione o una richiesta in attesa:

1296 1296 

1297* **Desktop non riesce a riconnettersi**: la sessione indica il motivo, e potrebbe farlo anche una notifica. Desktop potrebbe [aver bisogno che tu acceda](#reconnect-after-sleep-or-a-network-loss).1297* **Desktop non riesce a riconnettersi**: la sessione indica il motivo, e anche una notifica potrebbe indicarlo. Desktop potrebbe [aver bisogno che tu acceda](#reconnect-after-sleep-or-a-network-loss).

1298* **Errore di autenticazione**: il [token di accesso o la credenziale](#limits-while-desktop-is-disconnected) potrebbero essere scaduti. Con un account Claude, invia un messaggio per continuare. Con un provider di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1298* **Errore di autenticazione**: il [token di accesso o la credenziale](#limits-while-desktop-is-disconnected) potrebbe essere scaduto. Con un account Claude, invia un messaggio per continuare. Con un provider di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1299* **Richiesta in attesa**: [rispondi](#handle-requests-that-arrive-while-you-are-away)1299* **Richiesta in attesa**: [rispondi](#handle-requests-that-arrive-while-you-are-away)

1300* **Nessuno di questi**: invia un messaggio per continuare1300* **Nessuno di questi**: invia un messaggio per continuare

1301 1301 

1302##### Preparare un'attività lunga1302##### Preparare un'attività lunga

1303 1303 

1304* **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 lavora su un'attività SSH. Per impostazione predefinita, dopo che l'aggiornamento ha atteso 72 ore, il riavvio può avvenire durante l'attività se Desktop può [ricollegarsi all'attività in seguito](#reopen-a-session-after-you-quit-desktop).1304* **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. Per impostazione predefinita, dopo che l'aggiornamento ha atteso 72 ore, il riavvio può avvenire durante l'attività se Desktop può [ricollegarsi all'attività in seguito](#reopen-a-session-after-you-quit-desktop).

1305* **Verifica prima di chiudere**: non sempre recuperi l'attività in esecuzione dopo una chiusura o un riavvio, ad esempio dopo alcuni aggiornamenti di Desktop. Per i casi, consulta [Riaprire una sessione dopo aver chiuso Desktop](#reopen-a-session-after-you-quit-desktop).1305* **Verifica prima di chiudere**: non sempre recuperi l'attività in esecuzione dopo una chiusura o un riavvio, ad esempio dopo alcuni aggiornamenti di Desktop. Per i casi specifici, consulta [Riaprire una sessione dopo aver chiuso Desktop](#reopen-a-session-after-you-quit-desktop).

1306* **Su una versione precedente, lascia Desktop aperto**: su Windows con Claude Desktop precedente alla v3.1623.0, non recuperi l'attività in esecuzione dopo la chiusura o il riavvio di Desktop. Lo stesso vale con un provider di terze parti su macOS o Linux prima della v2.42304.0. In entrambi i casi, lascia Desktop aperto durante l'attività. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).1306* **Su una versione precedente, lascia Desktop aperto**: su Windows con Claude Desktop precedente alla v3.1623.0, non recuperi l'attività in esecuzione dopo che Desktop si chiude o si riavvia. Lo stesso vale con un provider di terze parti su macOS o Linux prima della v2.42304.0. In entrambi i casi, lascia Desktop aperto durante l'attività. Per trovare la tua versione, consulta [Verificare la versione](#check-your-version).

1307* **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)1307* **Riduci le richieste**: scegli una modalità di permesso, regole o hook che [facciano attendere meno spesso l'attività](#handle-requests-that-arrive-while-you-are-away)

1308* **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.1308* **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 prompt. Altrimenti Desktop può inviare un'altra notifica push ogni volta che tenta di riconnettersi.

1309* **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).1309* **Testa la macchina remota**: avvia un'attività breve, chiudi Desktop mentre l'attività è ancora in esecuzione e riapri la sessione molto dopo il momento in cui l'attività dovrebbe essere completata. Se l'attività non è finita e la sessione non mostra errori di autenticazione, controlla sulla macchina remota [cosa può terminare un'attività](#limits-while-desktop-is-disconnected).

1310* **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 Desktop1310* **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

1311 1311 

1312##### Limiti mentre Desktop è disconnesso1312##### Limiti mentre Desktop è disconnesso

1313 1313 

1314Un'attività che lasci in esecuzione può terminare quando il suo accesso scade, quando la macchina remota la termina, o quando il programma di supporto si arresta o viene sostituito:1314Un'attività che lasci in esecuzione può terminare quando il suo accesso scade, quando la macchina remota la termina, oppure quando l'helper si arresta o viene sostituito:

1315 1315 

1316* **Token di accesso o credenziale**: con un account Claude, l'attività si interrompe con un errore di autenticazione quando il token scade. Con un provider di terze parti, lo stesso vale per una credenziale che scade, come una proveniente da single sign-on o da un credential helper. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Con un account Claude, [mantieni Desktop in esecuzione e connesso](#keep-a-task-running-while-desktop-is-disconnected) in modo che possa rinnovare l'accesso.1316* **Token di accesso o credenziale**: con un account Claude, l'attività si interrompe con un errore di autenticazione quando il token scade. Con un provider di terze parti, lo stesso vale per una credenziale che scade, ad esempio una proveniente dal single sign-on o da un credential helper. Consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Con un account Claude, [mantieni Desktop in esecuzione e connesso](#keep-a-task-running-while-desktop-is-disconnected) così che possa rinnovare l'accesso.

1317* **La macchina remota**: se la macchina remota si riavvia, o termina i tuoi processi quando la connessione SSH si chiude, l'attività in esecuzione termina. Nulla la riavvia mentre Desktop è disconnesso. Le macchine Linux in cui `KillUserProcesses` di systemd-logind è `yes` e si applica al tuo utente terminano i tuoi processi in questo modo. Per mantenere un'attività in esecuzione lì, chiedi all'amministratore di escludere il tuo utente, ad esempio con `KillExcludeUsers`.1317* **La macchina remota**: se la macchina remota si riavvia, o termina i tuoi processi quando la connessione SSH si chiude, l'attività in esecuzione termina. Nulla la riavvia mentre Desktop è disconnesso. Le macchine Linux in cui `KillUserProcesses` di systemd-logind è `yes` e si applica al tuo utente terminano i tuoi processi in questo modo. Per mantenere un'attività in esecuzione lì, chiedi all'amministratore di escludere il tuo utente, ad esempio con `KillExcludeUsers`.

1318* **Terminali inattivi**: alcune macchine remote Linux disconnettono un terminale in cui nessuno digita per un tempo prestabilito (`StopIdleSessionSec` di systemd-logind). Con Desktop su macOS o Linux, il [terminale](#run-commands-in-the-terminal) di una sessione e i comandi `!` condividono per impostazione predefinita la connessione SSH di Desktop. Quella disconnessione chiude quindi la connessione mentre Desktop è connesso, e l'attività in esecuzione può terminare con essa. Chiudere il riquadro del terminale non lo impedisce, quindi [tieni i comandi fuori da quel terminale](#prepare-a-long-task).1318* **Terminali inattivi**: alcune macchine remote Linux disconnettono un terminale in cui nessuno digita per un tempo prestabilito (`StopIdleSessionSec` di systemd-logind). Con Desktop su macOS o Linux, il [terminale](#run-commands-in-the-terminal) di una sessione e i comandi `!` condividono per impostazione predefinita la connessione SSH di Desktop. Quella disconnessione termina quindi la connessione mentre Desktop è connesso, e l'attività in esecuzione può terminare con essa. Chiudere il riquadro del terminale non lo impedisce, quindi [tieni i comandi fuori da quel terminale](#prepare-a-long-task).

1319* **Aggiornamenti di Desktop**: se un aggiornamento introduce un nuovo programma di supporto, Desktop sostituisce il programma di supporto sulla macchina remota in una connessione successiva, il che può terminare un'attività ancora in esecuzione1319* **Aggiornamenti di Desktop**: se un aggiornamento porta un nuovo helper, Desktop sostituisce l'helper sulla macchina remota in una connessione successiva, il che può terminare un'attività ancora in esecuzione

1320* **Assenze lunghe**: su una macchina remota Linux o macOS, se Desktop non si connette per 30 giorni, il programma di supporto si arresta e termina ogni processo Claude Code in esecuzione sotto di esso. Connettiti prima di allora.1320* **Assenze prolungate**: su una macchina remota Linux o macOS, se Desktop non si connette per 30 giorni, l'helper si arresta e termina ogni processo Claude Code in esecuzione sotto di esso. Connettiti prima di allora.

1321 1321 

1322Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:1322Le modifiche ai file e alcuni strumenti possono non riuscire mentre Desktop è disconnesso. Se l'attività ne ha bisogno, mantieni Desktop connesso:

1323 1323 

1324* **Worktree**: in una sessione che usa un [worktree](#run-a-session-in-its-own-worktree), Desktop verifica ogni modifica ai file prima che Claude la apporti. Mentre Desktop è disconnesso, ogni modifica attende circa 30 secondi e poi fallisce. I comandi della shell vengono comunque eseguiti. Su una macchina remota Linux o macOS, [le modifiche possono continuare a funzionare](#worktree-edits-while-disconnected). Se non sei sicuro, avvia la sessione senza un worktree.1324* **Worktree**: in una sessione che usa un [worktree](#run-a-session-in-its-own-worktree), Desktop controlla ogni modifica ai file prima che Claude la esegua. Mentre Desktop è disconnesso, ogni modifica attende circa 30 secondi e poi non riesce. I comandi della shell vengono comunque eseguiti. Su una macchina remota Linux o macOS, [le modifiche possono continuare a funzionare](#worktree-edits-while-disconnected). Se non sei sicuro, avvia la sessione senza un worktree.

1325* **Restrizioni sulle cartelle**: se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop controlla ogni lettura, ricerca e modifica di file, con o senza un worktree. Mentre Desktop è disconnesso, ciascuna attende fino a 10 minuti e poi non riesce.1325* **Restrizioni sulle cartelle**: se la tua organizzazione limita le cartelle che le sessioni possono usare, Desktop controlla ogni lettura, ricerca e modifica di file, con o senza un worktree. Mentre Desktop è disconnesso, ciascuna attende fino a 10 minuti e poi non riesce.

1326* **Connettori**: i [connettori](#connect-external-tools) e gli altri strumenti forniti da Desktop passano attraverso Desktop, quindi mentre è disconnesso ogni chiamata non riesce dopo circa 30 secondi1326* **Connettori**: i [connettori](#connect-external-tools) e gli altri strumenti forniti da Desktop passano attraverso Desktop, quindi mentre è disconnesso ogni chiamata non riesce dopo circa 30 secondi

1327* **Workflow**: Desktop controlla ogni nuovo [workflow](https://code.claude.com/docs/it/workflows.md) prima che venga avviato, quindi mentre Desktop è disconnesso un nuovo workflow attende fino a 10 minuti e poi non riesce1327* **Workflow**: Desktop controlla ogni nuovo [workflow](https://code.claude.com/docs/it/workflows.md) prima che venga avviato, quindi mentre Desktop è disconnesso un nuovo workflow attende fino a 10 minuti e poi non riesce

1328* **Server MCP**: i server MCP che Claude Code avvia sulla macchina remota non passano attraverso Desktop, quindi Claude può comunque chiamare i loro strumenti. I server di `claude_desktop_config.json` rientrano tra questi solo se Desktop non usa il suo [client SSH integrato](#worktree-edits-while-disconnected). Altrimenti, e su [alcune macchine remote Windows](#windows-remote-machines), Claude non può chiamare i loro strumenti mentre Desktop è disconnesso.1328* **Server MCP**: i server MCP che Claude Code avvia sulla macchina remota non passano attraverso Desktop, quindi Claude può ancora chiamare i loro strumenti. I server da `claude_desktop_config.json` rientrano tra questi solo se Desktop non usa il suo [client SSH integrato](#worktree-edits-while-disconnected). Altrimenti, e su [alcune macchine remote Windows](#windows-remote-machines), Claude non può chiamare i loro strumenti mentre Desktop è disconnesso.

1329 1329 

1330> **Quando le modifiche in un worktree continuano a funzionare**1330> **Quando le modifiche in un worktree continuano a funzionare**

1331>1331>


1333>1333>

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

1335>1335>

1336> * **Client SSH integrato**: Desktop lo usa, ad esempio in un'installazione da Microsoft Store, su un computer Windows senza OpenSSH 9.4 o versioni successive di Microsoft, oppure per impostazione predefinita su Windows con un provider di terze parti1336> * **Client SSH integrato**: Desktop lo usa, ad esempio in un'installazione dal Microsoft Store, su un computer Windows senza OpenSSH di Microsoft 9.4 o successiva, oppure per impostazione predefinita su Windows con un provider di terze parti

1337> * **Posizione del repository**: il repository è la tua directory home, una cartella al di sopra di essa o `~/.claude`1337> * **Posizione del repository**: il repository è la tua directory home, una cartella al di sopra di essa, oppure `~/.claude`

1338> * **Percorsi macOS**: su una macchina remota macOS, il repository si trova sotto `/Volumes`, oppure un nome di cartella nel percorso del repository o del worktree contiene un `~` o un carattere non ASCII1338> * **Percorsi macOS**: su una macchina remota macOS, il repository si trova in `/Volumes`, oppure un nome di cartella nel percorso del repository o del worktree contiene un `~` o un carattere non ASCII

1339> * **Restrizioni sulle cartelle**: la tua organizzazione limita le cartelle che le sessioni possono usare1339> * **Restrizioni sulle cartelle**: la tua organizzazione limita le cartelle che le sessioni possono usare

1340> * **Launcher aziendale**: prima di Claude Desktop v2.37337.0, accedi con un account Claude e la tua organizzazione avvia Claude Code sulla macchina remota tramite un [launcher aziendale](https://code.claude.com/docs/it/corporate-launcher.md)1340> * **Launcher aziendale**: prima di Claude Desktop v2.37337.0, accedi con un account Claude e la tua organizzazione avvia Claude Code sulla macchina remota tramite un [launcher aziendale](https://code.claude.com/docs/it/corporate-launcher.md)

1341>1341>

1342> Una sessione senza worktree non ha questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.1342> Una sessione senza worktree non prevede questo controllo, a meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare.

1343 1343 

1344##### Gestire le richieste che arrivano mentre sei assente1344##### Gestire le richieste che arrivano mentre sei via

1345 1345 

1346Se Claude ha bisogno della tua approvazione o ti fa una domanda mentre Desktop è disconnesso, Claude attende sulla macchina remota. L'attesa non ha un limite di tempo proprio. Quando Desktop si ricollega al processo, ti mostra la richiesta. Se invece Desktop avvia un nuovo processo, perdi la richiesta.1346Se Claude ha bisogno della tua approvazione o ti fa una domanda mentre Desktop è disconnesso, Claude attende sulla macchina remota. L'attesa non ha un limite di tempo proprio. Quando Desktop si ricollega al processo, ti mostra la richiesta. Se invece Desktop avvia un nuovo processo, perdi la richiesta.

1347 1347 

1348Se una richiesta che ti attendeva non c'è più quando torni, una causa è che Desktop si è riavviato da solo, ad esempio per installare un aggiornamento. Conservi una richiesta attraverso un riavvio solo se Desktop può ricollegarsi al processo, quindi verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di lasciare un'attività in esecuzione.1348Se una richiesta che ti attendeva non c'è più quando torni, una causa è che Desktop si è riavviato da solo, ad esempio per installare un aggiornamento. Mantieni una richiesta attraverso un riavvio solo se Desktop può ricollegarsi al processo, quindi verifica [quando Desktop può ricollegarsi](#reopen-a-session-after-you-quit-desktop) prima di lasciare un'attività in esecuzione.

1349 1349 

1350Se perdi una richiesta, invia un messaggio per continuare.1350Se perdi una richiesta, invia un messaggio per continuare.

1351 1351 

1352Per ridurre la frequenza con cui un'attività si ferma per attenderti, e per ricevere sue notizie mentre sei assente, configura uno di questi elementi prima di allontanarti:1352Per ridurre la frequenza con cui un'attività si ferma ad attenderti, e per ricevere sue notizie mentre sei via, configura uno di questi elementi prima di andartene:

1353 1353 

1354* **Modalità auto**: scegli la [modalità auto](#choose-a-permission-mode) se [è disponibile per te](#auto-mode-availability). Dopo blocchi ripetuti, [ti viene chiesto di nuovo](https://code.claude.com/docs/it/permission-modes.md#when-auto-mode-falls-back).1354* **Modalità auto**: scegli la [modalità auto](#choose-a-permission-mode) se [è disponibile per te](#auto-mode-availability). Dopo blocchi ripetuti, [ti viene chiesto di nuovo](https://code.claude.com/docs/it/permission-modes.md#when-auto-mode-falls-back).

1355* **Regole di autorizzazione**: nel tuo file di impostazioni utente sulla macchina remota, `~/.claude/settings.json`, aggiungi [regole allow](https://code.claude.com/docs/it/permissions.md#manage-permissions) per i comandi di cui l'attività ha bisogno. Se la tua organizzazione [accetta regole di permesso solo dalle impostazioni gestite](https://code.claude.com/docs/it/settings-reference.md#allowmanagedpermissionrulesonly), chiedi al tuo amministratore di aggiungerle alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota. Per le regole allow nel file `.claude/settings.json` di un progetto, consulta [Project allow rules and workspace trust](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust).1355* **Regole di autorizzazione**: nel tuo file di impostazioni utente sulla macchina remota, `~/.claude/settings.json`, aggiungi [regole allow](https://code.claude.com/docs/it/permissions.md#manage-permissions) per i comandi di cui l'attività ha bisogno. Se la tua organizzazione [accetta regole di permesso solo dalle impostazioni gestite](https://code.claude.com/docs/it/settings-reference.md#allowmanagedpermissionrulesonly), chiedi al tuo amministratore di aggiungerle alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota. Per le regole allow nel `.claude/settings.json` di un progetto, consulta [Regole allow del progetto e attendibilità del workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust).

1356* **Un hook che risponde**: configura un [hook `PermissionRequest`](https://code.claude.com/docs/it/hooks#permissionrequest) in `~/.claude/settings.json` sulla macchina remota per consentire o negare le richieste al posto tuo1356* **Un hook che risponde**: configura un [hook `PermissionRequest`](https://code.claude.com/docs/it/hooks#permissionrequest) in `~/.claude/settings.json` sulla macchina remota per consentire o negare le richieste al posto tuo

1357* **Un hook che ti avvisa**: configura un [hook `Notification`](https://code.claude.com/docs/it/hooks#notification) con il matcher `permission_prompt` nello stesso file per inviarti un messaggio quando una richiesta è in attesa1357* **Un hook che ti avvisa**: configura un [hook `Notification`](https://code.claude.com/docs/it/hooks#notification) con il matcher `permission_prompt` nello stesso file per inviarti un messaggio quando una richiesta è in attesa

1358* **Un hook che ti dice quando Claude ha finito**: configura un [hook `Stop`](https://code.claude.com/docs/it/hooks#stop) nello stesso file per inviarti un messaggio quando Claude ha finito di rispondere. Non viene eseguito quando un errore API termina il turno. Per quel caso, configura un [hook `StopFailure`](https://code.claude.com/docs/it/hooks#stopfailure).1358* **Un hook che ti dice quando Claude ha finito**: configura un [hook `Stop`](https://code.claude.com/docs/it/hooks#stop) nello stesso file per inviarti un messaggio quando Claude ha finito di rispondere. Non viene eseguito quando un errore dell'API termina il turno. Per quel caso, configura un [hook `StopFailure`](https://code.claude.com/docs/it/hooks#stopfailure).

1359 1359 

1360Se la tua organizzazione [esegue solo hook gestiti](https://code.claude.com/docs/it/settings-reference.md#allowmanagedhooksonly), chiedi al tuo amministratore di aggiungere l'hook alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota.1360Se la tua organizzazione [esegue solo hook gestiti](https://code.claude.com/docs/it/settings-reference.md#allowmanagedhooksonly), chiedi al tuo amministratore di aggiungere l'hook alle [impostazioni gestite](#managed-settings) che raggiungono la macchina remota.

1361 1361 

1362Claude Code non approva automaticamente [alcune azioni](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) in nessuna modalità di permesso, incluso Bypass permissions. A seconda della modalità di permesso, Claude Code nega un'azione di questo tipo o te la chiede, e l'attività attende quindi la tua risposta.1362Claude Code non approva automaticamente [alcune azioni](https://code.claude.com/docs/it/permission-modes.md#actions-no-mode-auto-approves) in nessuna modalità di permesso, incluso Bypass permissions. A seconda della modalità di permesso, Claude Code nega tale azione o te la chiede, e l'attività attende quindi la tua risposta.

1363 1363 

1364##### Riconnettersi dopo una sospensione o una perdita di rete1364##### Riconnettersi dopo la sospensione o una perdita di rete

1365 1365 

1366Se Desktop non si è riconnesso quando torni, invia un messaggio nella sessione. Desktop si riconnette da solo solo dove può accedere senza richieste, ad esempio con una chiave conservata dal tuo agente SSH.1366Se Desktop non si è riconnesso quando torni, invia un messaggio nella sessione. Desktop si riconnette da solo solo dove può accedere senza prompt, ad esempio con una chiave detenuta dal tuo agente SSH.

1367 1367 

1368* **Password memorizzata**: anche una password che lasci memorizzare a Desktop funziona senza richieste, ma per un'assenza lunga preferisci una chiave conservata dal tuo agente SSH. Se gli accessi con quella password si interrompono o si bloccano, Desktop può smettere di riconnettersi e attenderti.1368* **Password memorizzata**: anche una password che lasci memorizzare a Desktop funziona senza prompt, ma per un'assenza prolungata è preferibile una chiave detenuta dal tuo agente SSH. Se gli accessi con quella password si interrompono o si bloccano, Desktop può smettere di riconnettersi e attenderti.

1369* **Qualsiasi altra richiesta**: se la macchina remota chiede qualcos'altro, come un codice monouso, puoi ricevere una notifica sul tuo computer. Fai clic sulla notifica, o invia un messaggio nella sessione, e Desktop mostra la richiesta.1369* **Qualsiasi altro prompt**: se la macchina remota chiede qualcos'altro, ad esempio un codice monouso, puoi ricevere una notifica sul tuo computer. Fai clic sulla notifica, oppure invia un messaggio nella sessione, e Desktop mostra il prompt.

1370 1370 

1371> **Se un jump host chiede un accesso, l'interruzione è lunga, manca dell'output o il processo non c'è più**1371> **Se un jump host chiede un accesso, l'interruzione è lunga, manca dell'output o il processo non c'è più**

1372>1372>

1373> * **Jump host, le notifiche push si fermano mentre sei assente**: questo può accadere con Desktop su macOS o Linux quando nessuno risponde alla richiesta di accesso di un jump host, ad esempio una notifica push su un telefono. Desktop smette quindi di riconnettersi mentre nessuno è al tuo computer. Quando sblocchi o usi il computer, puoi ricevere un'altra notifica push, perché Desktop può riprovare. Dopo tre tentativi senza risposta attende finché non riprovi o invii un messaggio.1373> * **Jump host, le notifiche push si interrompono mentre sei via**: questo può accadere con Desktop su macOS o Linux quando nessuno risponde alla richiesta di accesso di un jump host, ad esempio una notifica push su un telefono. Desktop smette quindi di riconnettersi mentre nessuno è al tuo computer. Quando sblocchi o usi il computer, puoi ricevere un'altra notifica push, perché Desktop può riprovare. Dopo tre tentativi senza risposta, attende finché non riprovi o invii un messaggio.

1374> * **Jump host, le notifiche push continuano ad arrivare**: dove Desktop non riesce a capire che nessuno risponde, come con Desktop su Windows, continua a tentare finché ha un processo a cui ricollegarsi, che quel processo sia ancora in esecuzione o meno. Puoi ricevere un'altra notifica push a ogni tentativo. Per fermare i tentativi, chiudi Desktop, il che [può farti perdere l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop).1374> * **Jump host, le notifiche push continuano ad arrivare**: dove Desktop non può capire che nessuno risponde, come con Desktop su Windows, continua a tentare finché ha un processo a cui ricollegarsi, che quel processo sia ancora in esecuzione o meno. Puoi ricevere un'altra notifica push a ogni tentativo. Per interrompere i tentativi, chiudi Desktop, il che [può farti perdere l'attività in esecuzione](#reopen-a-session-after-you-quit-desktop).

1375> * **Interruzione lunga**: Desktop rallenta a circa un tentativo ogni cinque minuti. Per riconnetterti prima, riprova nella sessione o invia un messaggio, che Desktop recapita una volta connesso.1375> * **Interruzione lunga**: Desktop rallenta fino a circa un tentativo ogni cinque minuti. Per riconnetterti prima, riprova nella sessione o invia un messaggio, che Desktop recapita non appena è connesso.

1376> * **Output mancante**: mentre Desktop è disconnesso, il programma di supporto conserva l'output più recente di Claude Code di ogni sessione in un buffer da 16 MiB e scarta l'output più vecchio. Dopo che Desktop si è riconnesso, la sessione può mostrare `Loading recent output from <host>…`. Se Desktop non riesce a caricare tutto l'output, vedi la riga `Some output produced while you were disconnected may be missing here.` La riga non significa che l'attività si sia interrotta.1376> * **Output mancante**: mentre Desktop è disconnesso, l'helper conserva l'output più recente di Claude Code di ogni sessione in un buffer da 16 MiB e scarta l'output più vecchio. Dopo che Desktop si è riconnesso, la sessione può mostrare `Loading recent output from <host>…`. Se Desktop non riesce a caricare tutto l'output, vedi la riga `Some output produced while you were disconnected may be missing here.` La riga non significa che l'attività si sia interrotta.

1377> * **Processo non più presente**: il processo è terminato mentre Desktop era disconnesso, come quando la macchina remota si riavvia. Desktop può quindi avviarne uno nuovo dalla cronologia salvata della conversazione e dire a Claude di continuare l'attività. Se l'attività resta ferma, invia un messaggio. Con un provider di terze parti, aggiorna a Claude Desktop v2.42304.0 o successiva, perché le versioni precedenti non continuano mai l'attività da sole.1377> * **Processo non più presente**: il processo è terminato mentre Desktop era disconnesso, come quando la macchina remota si riavvia. Desktop può quindi avviarne uno nuovo dalla cronologia salvata della conversazione e dire a Claude di continuare l'attività. Se l'attività resta ferma, invia un messaggio. Con un provider di terze parti, aggiorna a Claude Desktop v2.42304.0 o successiva, perché le versioni precedenti non continuano mai l'attività da sole.

1378 1378 

1379##### Riaprire una sessione dopo aver chiuso Desktop1379##### Riaprire una sessione dopo aver chiuso Desktop

1380 1380 

1381Dopo aver chiuso Desktop, l'attività continua a essere eseguita sulla macchina remota, ma si ferma quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Mentre Desktop è chiuso, l'attività viene eseguita finché non termina, ha bisogno di te o raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected).1381Dopo che chiudi Desktop, l'attività continua a essere eseguita sulla macchina remota, ma si interrompe quando la sessione si riapre, a meno che Desktop non possa ricollegarsi al suo processo. Mentre Desktop è chiuso, l'attività viene eseguita finché non termina, non ha bisogno di te o non raggiunge uno dei [limiti](#limits-while-desktop-is-disconnected).

1382 1382 

1383* **Desktop su Windows, attività avviata in una versione precedente alla v3.1623.0**: non recuperi l'attività, anche se nel frattempo Desktop è stato aggiornato. Riavvia Desktop solo quando prevedi che l'attività sia terminata, perché la sessione può aprirsi all'avvio di Desktop e l'attività si ferma quando la sessione si apre. Se non sai in quale versione hai avviato l'attività, attendi comunque finché non prevedi che sia terminata.1383* **Desktop su Windows, attività avviata in una versione precedente alla v3.1623.0**: non recuperi l'attività, anche se Desktop è stato aggiornato nel frattempo. Riavvia Desktop solo quando prevedi che l'attività sia completata, perché la sessione può aprirsi all'avvio di Desktop, e l'attività si interrompe quando la sessione si apre. Se non sai in quale versione hai avviato l'attività, attendi anche in questo caso finché non prevedi che sia completata.

1384* **Provider di terze parti su macOS o Linux, attività avviata in una versione precedente alla v2.42304.0**: non recuperi l'attività. Riavvia Desktop solo quando prevedi che l'attività sia terminata.1384* **Provider di terze parti su macOS o Linux, attività avviata in una versione precedente alla v2.42304.0**: non recuperi l'attività. Riavvia Desktop solo quando prevedi che l'attività sia completata.

1385* **Qualsiasi altra attività**: avvia Desktop e apri la sessione, e l'attività prosegue se Desktop si ricollega. Non sempre riesce a ricollegarsi, ad esempio dopo alcuni aggiornamenti di Desktop, quindi [aggiorna prima di un'attività lunga](#prepare-a-long-task).1385* **Qualsiasi altra attività**: avvia Desktop e apri la sessione, e l'attività prosegue se Desktop si ricollega. Non sempre può ricollegarsi, ad esempio dopo alcuni aggiornamenti di Desktop, quindi [aggiorna prima di un'attività lunga](#prepare-a-long-task).

1386 1386 

1387Quando l'attività si ferma, la sessione può mostrare `Restarting Claude Code on <host>…` mentre Desktop avvia un nuovo processo. Perdi anche qualsiasi approvazione o domanda che ti stava attendendo. Se Claude non continua da solo, invia un messaggio, e Claude continua dalla cronologia salvata della conversazione.1387Quando l'attività si interrompe, la sessione può mostrare `Restarting Claude Code on <host>…` mentre Desktop avvia un nuovo processo. Perdi anche qualsiasi approvazione o domanda che ti stava attendendo. Se Claude non continua da solo, invia un messaggio, e Claude continua dalla cronologia salvata della conversazione.

1388 1388 

1389Per i deploy di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1389Per i deploy di terze parti, consulta [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

1390 1390 

1391> [!WARNING]1391> [!WARNING]

1392>1392>

1393> Mentre il processo Claude Code di una conversazione è ancora in esecuzione, non eseguire [`claude --resume`](https://code.claude.com/docs/it/cli-reference#cli-flags) per essa sulla macchina remota. Claude Code non te lo impedisce, e a quel punto entrambi i processi scrivono nella stessa conversazione. Se non sei sicuro, aggiungi `--fork-session`, che continua in una copia della conversazione, ma entrambi i processi lavorano comunque sugli stessi file.1393> Mentre il processo Claude Code di una conversazione è ancora in esecuzione, non eseguire [`claude --resume`](https://code.claude.com/docs/it/cli-reference#cli-flags) per quella conversazione sulla macchina remota. Claude Code non te lo impedisce, e entrambi i processi scrivono quindi nella stessa conversazione. Se non sei sicuro, aggiungi `--fork-session`, che continua in una copia della conversazione, ma entrambi i processi lavorano comunque sugli stessi file.

1394 1394 

1395#### Scegliere dove vengono creati i worktree delle sessioni SSH1395#### Scegliere dove vanno i worktree delle sessioni SSH

1396 1396 

1397A meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare, le nuove sessioni SSH creano i loro [worktree](#run-a-session-in-its-own-worktree) nella prima di queste posizioni che risulta impostata:1397A meno che la tua organizzazione non limiti le cartelle che le sessioni possono usare, le nuove sessioni SSH creano i propri [worktree](#run-a-session-in-its-own-worktree) nella prima di queste posizioni che risulta impostata:

1398 1398 

13991. **Worktree folder** nella connessione SSH13991. **Worktree folder** nella connessione SSH

14002. [`worktree.location`](https://code.claude.com/docs/it/settings-reference#worktree-location) in `~/.claude/settings.json` sulla macchina remota14002. [`worktree.location`](https://code.claude.com/docs/it/settings-reference#worktree-location) in `~/.claude/settings.json` sulla macchina remota


1408 1408 

1409**1. Trova la connessione**1409**1. Trova la connessione**

1410 1410 

1411Apri il [selettore di ambiente](#start-a-session) e trova la connessione sotto **SSH**.1411Apri il [selettore dell'ambiente](#start-a-session) e trova la connessione sotto **SSH**.

1412 1412 

1413**2. Apri le impostazioni della connessione**1413**2. Apri le impostazioni della connessione**

1414 1414 


1416 1416 

1417**3. Imposta la cartella**1417**3. Imposta la cartella**

1418 1418 

1419In **Worktree folder**, inserisci una cartella sulla macchina remota, come `~/worktrees`, e seleziona **Save changes**.1419In **Worktree folder**, inserisci una cartella sulla macchina remota, ad esempio `~/worktrees`, e seleziona **Save changes**.

1420 1420 

1421#### File e processi sulla macchina remota1421#### File e processi sulla macchina remota

1422 1422 

1423Desktop 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.1423Desktop installa un programma helper e Claude Code in `~/.claude/remote/` nella directory home di ciascun utente che si connette a una macchina remota Linux o macOS. L'helper non resta 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 farlo.

1424 1424 

1425| Cartella | Contenuto |1425| Cartella | Contenuto |

1426| - | - |1426| - | - |

1427| `~/.claude/remote/srv/` | Il programma di supporto, in una cartella per versione |1427| `~/.claude/remote/srv/` | L'helper, in una cartella per versione |

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

1429| `~/.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 |1429| `~/.claude/remote/run/` | I file di runtime dell'helper, come il suo socket e il suo log, in una cartella per ciascun computer che si connette |

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

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

1432 1432 

1433Per 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`:1433Per 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`:

1434 1434 

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

1436* **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-…`1436* **Claude Code**: i processi che l'helper avvia per le sessioni dell'utente, ciascuno da un file che prende il nome dalla sua versione, come `2.1.295-…`

1437 1437 

1438Desktop 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.1438Desktop raggiunge l'helper attraverso la connessione SSH dell'utente, tramite il socket Unix `rpc.sock` nella cartella dell'helper sotto `~/.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.

1439 1439 

1440Per sapere quando il programma di supporto si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).1440Per i casi in cui l'helper si arresta da solo, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).

1441 1441 

1442Per rimuovere il programma di supporto e Claude Code per un utente:1442Per rimuovere l'helper e Claude Code per un utente:

1443 1443 

1444**1. Chiudi Desktop**1444**1. Chiudi Desktop**

1445 1445 

1446Chiudi 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.1446Chiudi 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.

1447 1447 

1448**2. Termina i processi**1448**2. Termina i processi**

1449 1449 

1450Dopo aver effettuato l'accesso come quell'utente sulla macchina remota, esegui `kill` con l'ID di ogni processo Claude Code elencato da [`pgrep`](#files-and-processes-on-the-remote-machine). Quando non compaiono più nell'elenco, esegui `kill` con l'ID di ogni processo `server`. Se termini prima un processo `server`, un comando che Claude Code sta eseguendo può continuare a essere eseguito.1450Dopo aver effettuato l'accesso come quell'utente sulla macchina remota, esegui `kill` con l'ID di ogni processo di Claude Code elencato da [`pgrep`](#files-and-processes-on-the-remote-machine). Quando sono scomparsi dall'elenco, esegui `kill` con l'ID di ogni processo `server`. Se termini prima un processo `server`, un comando che Claude Code sta eseguendo può continuare a essere eseguito.

1451 1451 

1452Poi elenca i processi rimanenti dell'utente, ad esempio con `ps -u "$(id -un)" -f`, e termina quelli che riconosci come avviati da Claude Code. I programmi che ha lasciato in background possono continuare a essere eseguiti dopo che è terminato, senza comparire nell'elenco di `pgrep`.1452Poi elenca i processi rimanenti dell'utente, ad esempio con `ps -u "$(id -un)" -f`, e termina quelli che riconosci come avviati da Claude Code. I programmi che ha lasciato in background possono continuare a essere eseguiti dopo la sua chiusura, senza comparire nell'elenco di `pgrep`.

1453 1453 

1454**3. Elimina la cartella**1454**3. Elimina la cartella**

1455 1455 

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

1457 1457 

1458##### Terminare il processo di una sessione1458##### Terminare il processo di una sessione

1459 1459 

1460Per terminare il processo di Claude Code di una sessione, [archivia la sessione](#archive-a-session) in Desktop mentre Desktop è connesso alla macchina remota. Il processo continua a essere eseguito dopo che la sua attività è terminata e dopo che esci da Desktop.1460Per terminare il processo di Claude Code di una sessione, [archivia la sessione](#archive-a-session) 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.

1461 1461 

1462Prima di archiviare una sessione il cui worktree ha modifiche non sottoposte a commit, consulta [Conservare le modifiche non sottoposte a commit quando una sessione viene archiviata](#keep-uncommitted-changes-when-a-session-is-archived).1462Prima di archiviare una sessione il cui worktree ha modifiche non sottoposte a commit, consulta [Conservare le modifiche non sottoposte a commit quando una sessione viene archiviata](#keep-uncommitted-changes-when-a-session-is-archived).

1463 1463 

1464##### Vedere con quale utente vengono eseguiti i processi1464##### Vedere con quale utente vengono eseguiti i processi

1465 1465 

1466Il programma di supporto e Claude Code vengono eseguiti come l'utente con cui Desktop accede tramite SSH. Installarli e avviarli non richiede `sudo`. Per verificare l'utente, esegui `ps -o user= -p` sulla macchina remota con un ID di processo elencato da [`pgrep`](#files-and-processes-on-the-remote-machine).1466L'helper e Claude Code vengono eseguiti come l'utente con cui Desktop accede tramite SSH. Installarli e avviarli non richiede `sudo`. Per verificare l'utente, esegui `ps -o user= -p` sulla macchina remota con un ID di processo elencato da [`pgrep`](#files-and-processes-on-the-remote-machine).

1467 1467 

1468Anche i programmi che Claude Code avvia, come i comandi shell e i server MCP, vengono avviati come quell'utente. Esamina i diritti di quell'utente sulla macchina remota, comprese le sue regole `sudo`, come faresti per una persona che esegue comandi lì.1468Anche i programmi avviati da Claude Code, come i comandi della shell e i server MCP, vengono avviati come quell'utente. Esamina i diritti di quell'utente sulla macchina remota, comprese le sue regole `sudo`, come faresti per una persona che esegue comandi lì.

1469 1469 

1470##### Vedere chi si è connesso alla macchina remota1470##### Vedere chi si è connesso alla macchina remota

1471 1471 

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

1473 1473 

1474Se il server imposta `MaxSessions 1`, aspettati almeno due voci ogni volta che Desktop si connette o si riconnette. Aspettati almeno un'altra voce per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`.1474Se il server imposta `MaxSessions 1`, aspettati almeno due voci ogni volta che Desktop si connette o si riconnette. Aspettatene almeno un'altra per ogni scheda del terminale e per ogni sessione di Desktop in cui esegui comandi che iniziano con `!`.

1475 1475 

1476Non troverai le connessioni SSH di Desktop nelle [metriche ed eventi](https://code.claude.com/docs/it/monitoring-usage.md#available-metrics-and-events) di Claude Code. Per scoprire da essi su quale macchina remota è stata eseguita una sessione SSH, consulta [Attribuire la telemetria alle sessioni SSH di Desktop](https://code.claude.com/docs/it/monitoring-usage.md#attribute-telemetry-to-desktop-ssh-sessions). Per il registro delle connessioni tenuto da Desktop stesso, consulta [Ottenere i log di Desktop per un problema SSH](#get-desktops-logs-for-an-ssh-problem).1476Non troverai le connessioni SSH di Desktop nelle [metriche ed eventi](https://code.claude.com/docs/it/monitoring-usage.md#available-metrics-and-events) di Claude Code. Per scoprire da essi su quale macchina remota è stata eseguita una sessione SSH, consulta [Attribuire la telemetria alle sessioni SSH di Desktop](https://code.claude.com/docs/it/monitoring-usage.md#attribute-telemetry-to-desktop-ssh-sessions). Per il registro delle connessioni tenuto da Desktop stesso, consulta [Ottenere i log di Desktop per un problema SSH](#get-desktops-logs-for-an-ssh-problem).

1477 1477 

1478#### Connessioni che si chiudono prima dell'accesso1478#### Connessioni che si chiudono prima dell'accesso

1479 1479 

1480Se il log del server SSH mostra connessioni che si chiudono prima di qualsiasi accesso, possono essere test della porta SSH effettuati da Desktop. Desktop verifica se una macchina risponde, ad esempio dopo che una connessione a essa non è riuscita. Apre una connessione alla porta e la chiude immediatamente, senza inviare nulla. Aspettati un test o diversi di fila, ad esempio otto in circa due minuti.1480Se il log del server SSH mostra connessioni che si chiudono prima di qualsiasi accesso, possono essere i test della porta SSH eseguiti da Desktop. Desktop verifica se una macchina risponde, ad esempio dopo che una connessione a essa non è riuscita. Apre una connessione alla porta e la chiude subito, senza inviare nulla. Aspettati un test o diversi di seguito, ad esempio otto in circa due minuti.

1481 1481 

1482Se nulla blocca o rifiuta gli indirizzi per connessioni di questo tipo, non devi fare nulla riguardo ai test di Desktop. Se un indirizzo da cui Desktop si connette viene rifiutato o bloccato, verifica [se è il server SSH stesso a rifiutare l'indirizzo](#check-whether-the-ssh-server-itself-refuses-the-address) e [se fail2ban conta i test di Desktop](#check-whether-fail2ban-counts-desktops-tests).1482Se nulla blocca o rifiuta gli indirizzi per tali connessioni, non devi fare nulla riguardo ai test di Desktop. Se un indirizzo da cui Desktop si connette viene rifiutato o bloccato, verifica [se il server SSH stesso rifiuta l'indirizzo](#check-whether-the-ssh-server-itself-refuses-the-address) e [se fail2ban conta i test di Desktop](#check-whether-fail2ban-counts-desktops-tests).

1483 1483 

1484##### Riconoscere un test nel log del server SSH1484##### Riconoscere un test nel log del server SSH

1485 1485 

1486Confronta le righe nel tuo log con quelle che un server OpenSSH su Linux scrive per un test con il `LogLevel` predefinito, nella riga corrispondente alla versione del tuo server. Puoi invece vedere le righe dell'ultima colonna se il messaggio di benvenuto del server arriva prima che Desktop chiuda la connessione:1486Confronta le righe del tuo log con quelle che un server OpenSSH su Linux scrive per un test con il `LogLevel` predefinito, nella riga corrispondente alla versione del tuo server. Puoi vedere invece le righe dell'ultima colonna se il saluto del server arriva prima che Desktop chiuda la connessione:

1487 1487 

1488| Versione di OpenSSH | Righe per un test | Righe se il messaggio di benvenuto arriva prima |1488| Versione di OpenSSH | Righe per un test | Righe se il saluto arriva prima |

1489| - | - | - |1489| - | - | - |

1490| Da 6.6 a 7.9 | Una riga con `Did not receive identification string from 203.0.113.7` | La stessa riga |1490| Da 6.6 a 7.9 | Una riga con `Did not receive identification string from 203.0.113.7` | La stessa riga |

1491| Da 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |1491| Da 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |


1497 1497 

1498Le righe delle versioni da 8.0 a 8.2 non contengono un indirizzo. Per ottenerne uno, imposta `LogLevel VERBOSE` in `sshd_config` ed esegui `sshd -T | grep -i loglevel` come root. Se stampa `loglevel VERBOSE`, ricarica il server SSH. Poi cerca una riga con `Connection from 203.0.113.7 port 51234` prima della riga del test.1498Le righe delle versioni da 8.0 a 8.2 non contengono un indirizzo. Per ottenerne uno, imposta `LogLevel VERBOSE` in `sshd_config` ed esegui `sshd -T | grep -i loglevel` come root. Se stampa `loglevel VERBOSE`, ricarica il server SSH. Poi cerca una riga con `Connection from 203.0.113.7 port 51234` prima della riga del test.

1499 1499 

1500##### Verificare se è il server SSH stesso a rifiutare l'indirizzo1500##### Verificare se il server SSH stesso rifiuta l'indirizzo

1501 1501 

1502Se le connessioni vengono rifiutate da un indirizzo condiviso da molti computer con Desktop, cerca nel log del server SSH una riga che termina come questa:1502Se le connessioni vengono rifiutate da un indirizzo condiviso da molti computer con Desktop, cerca nel log del server SSH una riga che termina come questa:

1503 1503 


1505drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication1505drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication

1506```1506```

1507 1507 

1508Con il `LogLevel` predefinito, OpenSSH 9.8 e successivi possono scrivere una riga del genere quando rifiutano un indirizzo per connessioni che si sono chiuse senza tentare l'accesso, come fanno i test di Desktop. Con le impostazioni predefinite, non vedi una riga del genere dopo pochi test soltanto.1508Con il `LogLevel` predefinito, OpenSSH 9.8 e versioni successive possono scrivere una riga di questo tipo quando rifiutano un indirizzo per connessioni che si sono chiuse senza tentare l'accesso, come fanno i test di Desktop. Con le impostazioni predefinite, non vedi una riga del genere dopo solo pochi test.

1509 1509 

1510Per evitare il rifiuto, imposta `PerSourcePenaltyExemptList` in `sshd_config` sugli indirizzi da cui le persone si connettono, ad esempio `PerSourcePenaltyExemptList 203.0.113.7`. Il server non applica quindi nessuna delle sue penalità a quegli indirizzi, incluse quelle per gli accessi non riusciti. Per verificare il file, esegui `sshd -T | grep -i persourcepenalt` come root. Se stampa il tuo elenco, ricarica il server SSH.1510Per evitare il rifiuto, imposta `PerSourcePenaltyExemptList` in `sshd_config` sugli indirizzi da cui le persone si connettono, ad esempio `PerSourcePenaltyExemptList 203.0.113.7`. Il server quindi non applica nessuna delle sue penalità a quegli indirizzi, comprese quelle per gli accessi non riusciti. Per verificare il file, esegui `sshd -T | grep -i persourcepenalt` come root. Se stampa il tuo elenco, ricarica il server SSH.

1511 1511 

1512##### Verificare se fail2ban conta i test di Desktop1512##### Verificare se fail2ban conta i test di Desktop

1513 1513 

1514Se fail2ban 0.10.5 o successivo ha bloccato un indirizzo da cui Desktop si connette, trova la modalità del tuo jail in `jail.conf`, `jail.local` o in `jail.d/`:1514Se fail2ban 0.10.5 o versione successiva ha bloccato un indirizzo da cui Desktop si connette, trova la modalità della tua jail in `jail.conf`, `jail.local` o sotto `jail.d/`:

1515 1515 

1516* **Una riga `filter` che indica una modalità tra parentesi quadre**, come `filter = sshd[mode=aggressive]`: usa quella modalità.1516* **Una riga `filter` che indica una modalità tra parentesi quadre**, come `filter = sshd[mode=aggressive]`: usa quella modalità.

1517* **Solo la riga `filter` standard**, con `[mode=%(mode)s]`: usa la riga `mode`, oppure `normal` se non ce n'è una.1517* **Solo la riga `filter` predefinita**, con `[mode=%(mode)s]`: usa la riga `mode`, oppure `normal` se non ce n'è una.

1518 1518 

1519Se la modalità è `normal`, fail2ban non conta le righe dei test di Desktop, quindi cerca un'altra causa del blocco.1519Se la modalità è `normal`, fail2ban non conta le righe dei test di Desktop, quindi cerca un'altra causa del blocco.

1520 1520 

1521Per un'altra modalità, copia le righe dal tuo log in un file sulla macchina remota. Copia ogni riga per intero, dalla data alla fine, ed entrambe le righe quando un test ne lascia due. Esegui lì `fail2ban-regex` con il file e la modalità del tuo jail, ad esempio `aggressive`:1521Per un'altra modalità, copia le righe dal tuo log in un file sulla macchina remota. Copia ogni riga per intero, dalla data alla fine, ed entrambe le righe quando un test ne lascia due. Esegui lì `fail2ban-regex` con il file e la modalità della tua jail, ad esempio `aggressive`:

1522 1522 

1523```bash theme={null}1523```bash theme={null}

1524fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"1524fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"


1528 1528 

1529##### Evitare un blocco da parte di fail2ban1529##### Evitare un blocco da parte di fail2ban

1530 1530 

1531Per impedire a fail2ban di bloccare un indirizzo per i test di Desktop, modifica una delle due impostazioni del jail, ciascuna con un costo:1531Per impedire a fail2ban di bloccare un indirizzo a causa dei test di Desktop, modifica una di due impostazioni della jail, ciascuna con un costo:

1532 1532 

1533* **`mode`**: impostala su `normal` ovunque il tuo jail la imposti, in una riga `mode` o tra le parentesi quadre di una riga come `filter = sshd[mode=aggressive]`. Rinunci a ogni conteggio che fanno solo le altre modalità, ad esempio quello dei client che si connettono e se ne vanno senza tentare l'accesso.1533* **`mode`**: impostala su `normal` ovunque la tua jail la imposti, in una riga `mode` o tra le parentesi quadre di una riga come `filter = sshd[mode=aggressive]`. Rinunci a ogni conteggio che solo le altre modalità effettuano, ad esempio dei client che si connettono e se ne vanno senza tentare l'accesso.

1534* **`ignoreip`**: impostala sugli indirizzi da cui le persone si connettono, ad esempio `ignoreip = 203.0.113.7`. fail2ban non conta quindi nulla da quegli indirizzi, inclusi gli accessi non riusciti.1534* **`ignoreip`**: impostala sugli indirizzi da cui le persone si connettono, ad esempio `ignoreip = 203.0.113.7`. fail2ban quindi non conta nulla da quegli indirizzi, compresi gli accessi non riusciti.

1535 1535 

1536#### Usare i server MCP configurati sulla macchina remota1536#### Usare server MCP configurati sulla macchina remota

1537 1537 

1538Per usare un [server MCP](https://code.claude.com/docs/it/mcp.md) 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).1538Per usare un [server MCP](https://code.claude.com/docs/it/mcp.md) da `~/.claude.json` o dal `.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 che quei server eseguono. Per i server da `claude_desktop_config.json`, consulta [Limiti mentre Desktop è disconnesso](#limits-while-desktop-is-disconnected).

1539 1539 

1540#### Aprire una sessione SSH da un link1540#### Aprire una sessione SSH da un link

1541 1541 

1542Un link `claude://code/new` apre la pagina di nuova sessione di Desktop e può indicare una connessione SSH. Inserisci un link di questo tipo in un runbook, in una dashboard o in una pagina wiki per aprire Desktop già configurato per la macchina e la cartella giuste. Per le piattaforme che rimuovono questi link, consulta [Il link viene visualizzato come testo normale invece di essere cliccabile](https://code.claude.com/docs/it/deep-links.md#the-link-renders-as-plain-text-instead-of-being-clickable).1542Un link `claude://code/new` apre la pagina di nuova sessione di Desktop e può indicare una connessione SSH. Inserisci un link di questo tipo in un runbook, una dashboard o una pagina wiki per aprire Desktop configurato per la macchina e la cartella giuste. Per le piattaforme che rimuovono tali link, consulta [Il link viene visualizzato come testo semplice anziché essere cliccabile](https://code.claude.com/docs/it/deep-links.md#the-link-renders-as-plain-text-instead-of-being-clickable).

1543 1543 

1544I link SSH richiedono Claude Desktop v2.110.0 o versioni successive.1544I link SSH richiedono Claude Desktop v2.110.0 o versione successiva.

1545 1545 

1546Il link seguente indica l'utente `dev` su `build.example.com`, la porta 2222 e la cartella `/srv/payments`, e compila un prompt:1546Il link seguente indica l'utente `dev` su `build.example.com`, la porta 2222 e la cartella `/srv/payments`, e compila un prompt:

1547 1547 


1555| :- | :- |1555| :- | :- |

1556| `ssh_host` | `host` o `user@host`, scritto come nel campo **SSH host**. Il valore non può iniziare con `-`, e la parte host accetta solo lettere, cifre, `.`, `_`, `:` e `-` |1556| `ssh_host` | `host` o `user@host`, scritto come nel campo **SSH host**. Il valore non può iniziare con `-`, e la parte host accetta solo lettere, cifre, `.`, `_`, `:` e `-` |

1557| `ssh_port` | Un numero di porta da 1 a 65535 |1557| `ssh_port` | Un numero di porta da 1 a 65535 |

1558| `ssh_folder` | Una cartella sulla macchina remota. Inizia con `/` o `~/`, oppure usa `~` |1558| `ssh_folder` | Una cartella sulla macchina remota. Iniziala con `/` o `~/`, oppure usa `~` |

1559| `q` | Testo con codifica URL per la casella del prompt |1559| `q` | Testo con codifica URL per la casella del prompt |

1560 1560 

1561Un alias di `~/.ssh/config` funziona come `ssh_host` solo per chi ha quella voce. Per far corrispondere una connessione che le persone hanno già, assegna al link lo stesso utente, host e porta di quella connessione.1561Un alias da `~/.ssh/config` funziona come `ssh_host` solo per le persone che hanno quella voce. Per corrispondere a una connessione che le persone hanno già, assegna al link lo stesso utente, host e porta di quella connessione.

1562 1562 

1563Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:1563Quando apri il link, Desktop ti chiede di confermare prima di selezionare la connessione:

1564 1564 

1565* **Una connessione che hai già**: se host, utente e porta corrispondono a una delle tue connessioni, Desktop ti chiede se usarla e ti mostra il nome e l'host della connessione, e la cartella se il link ne indica una.1565* **Una connessione che hai già**: se host, utente e porta corrispondono a una delle tue connessioni, Desktop ti chiede se usarla e ti mostra il nome e l'host della connessione, e la cartella se il link ne indica una.

1566* **Una nuova connessione**: altrimenti Desktop apre la finestra di dialogo per aggiungere una connessione SSH. Quando aggiungi la connessione, Desktop ti chiede se connetterti prima di salvare qualsiasi cosa e ti mostra l'host del link, e la porta e la cartella se il link le indica.1566* **Una nuova connessione**: altrimenti Desktop apre la finestra di dialogo per aggiungere una connessione SSH. Quando aggiungi la connessione, Desktop ti chiede se connetterti prima di salvare qualsiasi cosa e ti mostra l'host dal link, e la porta e la cartella se il link le indica.

1567 1567 

1568Finché non confermi, Desktop non salva l'host, la porta o la cartella del link, e non seleziona né apre una connessione con essi. Se è già selezionata una connessione SSH, la pagina di nuova sessione può comunque connettersi a essa autonomamente, come fa senza un link, anche quando il link indica lo stesso host. Un link non può contenere un file di chiave, una password o un comando.1568Finché non confermi, Desktop non salva l'host, la porta o la cartella dal link e non seleziona né apre una connessione con essi. Se una connessione SSH è già selezionata, la pagina di nuova sessione può comunque connettersi a essa da sola, come fa senza un link, anche quando il link indica lo stesso host. Un link non può contenere un file di chiave, una password o un comando.

1569 1569 

1570Chiunque può scrivere un link, quindi controlla cosa ha compilato:1570Chiunque può scrivere un link, quindi verifica cosa ha compilato:

1571 1571 

1572* **Prima di confermare**: controlla l'host e la cartella.1572* **Prima di confermare**: verifica l'host e la cartella.

1573* **Prima di inviare**: controlla il prompt e l'ambiente selezionato.1573* **Prima di inviare**: verifica il prompt e l'ambiente selezionato.

1574 1574 

1575Desktop compila il prompt quando il link si apre, al posto di qualsiasi testo che non hai inviato, e non lo invia mai al posto tuo. Tratta il prompt come testo normale, quindi una `/` o un `!` iniziali e una menzione di file con `@` non agiscono come comando o menzione. Se annulli, il prompt rimane nella casella e l'ambiente che avevi selezionato non cambia.1575Desktop compila il prompt quando il link si apre, al posto di qualsiasi testo che non hai inviato, e non lo invia mai per te. Tratta il prompt come testo semplice, quindi un `/` o `!` iniziale e una menzione di file con `@` non agiscono come un comando o una menzione. Se annulli, il prompt rimane nella casella e l'ambiente che avevi selezionato non cambia.

1576 1576 

1577Un link non aggira [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop controlla l'allowlist quando si connette.1577Un link non aggira [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). Desktop controlla l'allowlist quando si connette.

1578 1578 

1579Se il link apre Desktop senza una finestra di dialogo relativa alla connessione, verifica una di queste cause:1579Se il link apre Desktop senza una finestra di dialogo sulla connessione, cerca una di queste cause:

1580 1580 

1581* **Hai effettuato la disconnessione**: accedi, quindi apri di nuovo il link.1581* **Non hai effettuato l'accesso**: accedi, poi apri di nuovo il link.

1582* **È aperta un'altra finestra di dialogo**: chiudila, quindi apri di nuovo il link.1582* **È aperta un'altra finestra di dialogo**: chiudila, poi apri di nuovo il link.

1583* **Il link non è valido**: Desktop mostra un messaggio che indica cosa correggere e non compila il prompt.1583* **Il link non è valido**: Desktop mostra un messaggio che indica cosa correggere e non compila il prompt.

1584* **Desktop è precedente alla v2.110.0**: le versioni precedenti ignorano i parametri SSH e aprono la pagina di nuova sessione solo con il prompt.1584* **Desktop è precedente alla v2.110.0**: le versioni precedenti ignorano i parametri SSH e aprono la pagina di nuova sessione con il solo prompt.

1585* **Le sessioni SSH sono disattivate**: se il tuo amministratore imposta l'allowlist su un array vuoto, Desktop rifiuta i link SSH.1585* **Le sessioni SSH sono disattivate**: se il tuo amministratore imposta l'allowlist su un array vuoto, Desktop rifiuta i link SSH.

1586 1586 

1587#### Creare una connessione SSH da un comando1587#### Creare una connessione SSH da un comando

1588 1588 

1589Se uno strumento da riga di comando crea le tue macchine remote su richiesta, aggiungi il suo comando a `sshHostCommands` in [`~/.claude/settings.json`](https://code.claude.com/docs/it/settings#settings-files). Il selettore di ambiente elenca quindi una voce che prende il nome dalla tua voce, come **Create Dev box**. Quando la selezioni, Desktop esegue il comando sul tuo computer, salva come connessione SSH l'host che il comando stampa e si connette.1589Se uno strumento da riga di comando crea le tue macchine remote su richiesta, aggiungi il suo comando a `sshHostCommands` in [`~/.claude/settings.json`](https://code.claude.com/docs/it/settings#settings-files). Il selettore dell'ambiente elenca quindi un elemento che prende il nome dalla tua voce, come **Create Dev box**. Quando lo selezioni, Desktop esegue il comando sul tuo computer, salva l'host stampato dal comando come connessione SSH e si connette.

1590 1590 

1591> [!NOTE]1591> [!NOTE]

1592>1592>

1593> Le connessioni da un comando richiedono Claude Desktop v3.6556.0 o successivo su macOS o Linux, con accesso tramite un account Claude. Gli amministratori possono [distribuire i comandi a un team](#distribute-commands-to-your-team).1593> Le connessioni da un comando richiedono Claude Desktop v3.6556.0 o versione successiva su macOS o Linux, con accesso effettuato tramite un account Claude. Gli amministratori possono [distribuire i comandi a un team](#distribute-commands-to-your-team).

1594 1594 

1595Ogni voce è una connessione, con un host alla volta. Desktop esegue il comando solo quando crei la connessione o [sostituisci il suo host](#replace-the-host), non ogni volta che ti connetti. Per mantenere due macchine contemporaneamente, aggiungi una seconda voce.1595Ogni voce è una connessione, con un host alla volta. Desktop esegue il comando solo quando crei la connessione o [sostituisci il suo host](#replace-the-host), non ogni volta che ti connetti. Per mantenere due macchine contemporaneamente, aggiungi una seconda voce.

1596 1596 

1597> [!WARNING]1597> [!WARNING]

1598>1598>

1599> Desktop non arresta né elimina le macchine. Ognuna di queste resta in esecuzione, e può continuare a generare costi, finché non la elimini con il tuo strumento:1599> Desktop non arresta né elimina le macchine. Ciascuna di queste continua a essere in esecuzione, e può continuare a costare denaro, finché non la elimini con il tuo strumento:

1600>1600>

1601> * Un host che hai sostituito1601> * Un host che hai sostituito

1602> * L'host di una voce che hai rimosso dal file, o di cui hai cambiato l'`id`1602> * L'host di una voce che hai rimosso dal file, o di cui hai modificato l'`id`

1603> * Una macchina che il tuo comando ha creato senza che Desktop ne salvasse l'host, ad esempio in questi casi:1603> * Una macchina creata dal tuo comando senza che Desktop ne abbia salvato l'host, ad esempio in questi casi:

1604> * Il comando non riesce o supera il tempo limite1604> * Il comando non riesce o esaurisce il tempo

1605> * Desktop non può usare l'host stampato, un'altra connessione lo usa già oppure la tua organizzazione non lo consente1605> * Desktop non può usare l'host stampato, un'altra connessione lo usa già, oppure la tua organizzazione non lo consente

1606> * Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, cambi il suo `command` o `id`, oppure chiudi Desktop1606> * Mentre il comando è in esecuzione, lo annulli, rimuovi la sua voce, modifichi il suo `command` o `id`, oppure chiudi Desktop

1607 1607 

1608L'esempio seguente aggiunge una connessione chiamata Dev box. Se il file non esiste, crealo. Se contiene già delle impostazioni, aggiungi la chiave accanto a esse. Il comando `acme-dev create` rappresenta il tuo strumento, e `~/project` è la cartella che Desktop seleziona su ogni macchina creata dal tuo comando:1608L'esempio seguente aggiunge una connessione denominata Dev box. Se il file non esiste, crealo. Se contiene già delle impostazioni, aggiungi la chiave accanto a esse. Il comando `acme-dev create` rappresenta il tuo strumento, e `~/project` è la cartella che Desktop seleziona su ogni macchina creata dal tuo comando:

1609 1609 

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

1611{1611{


1624 1624 

1625| Campo | Valore |1625| Campo | Valore |

1626| :- | :- |1626| :- | :- |

1627| `id` | Fino a 64 lettere ASCII, cifre, `.`, `_` e `-`, che inizia con una lettera o una cifra. Usa un `id` che nessun'altra voce in `sshHostCommands` o [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) abbia. Desktop conserva l'host della connessione sotto di esso, quindi se lo cambi, la connessione riparte senza host e la vecchia macchina resta in esecuzione. |1627| `id` | Fino a 64 lettere ASCII, cifre, `.`, `_` e `-`, che inizi con una lettera o una cifra. Usa un `id` che nessun'altra voce in `sshHostCommands` o [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) abbia. Desktop conserva l'host della connessione sotto di esso, quindi se lo modifichi, la connessione ricomincia senza host e la vecchia macchina continua a essere in esecuzione. |

1628| `name` | Il nome della connessione nel selettore di ambiente, fino a 200 caratteri su una riga |1628| `name` | Il nome della connessione nel selettore dell'ambiente, fino a 200 caratteri su una riga |

1629| `command` | Un programma e i suoi argomenti, come descritto in [Scrivere il comando](#write-the-command) |1629| `command` | Un programma e i suoi argomenti, come descritto in [Scrivere il comando](#write-the-command) |

1630| `sshIdentityFile` | Percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |1630| `sshIdentityFile` | Percorso della tua chiave privata, come `~/.ssh/id_ed25519`. Omettilo per usare la tua configurazione SSH o il tuo agente SSH. |

1631| `startDirectory` | La cartella predefinita sulla macchina remota. Falla iniziare con `/` o `~/`, oppure usa `~`. |1631| `startDirectory` | La cartella predefinita sulla macchina remota. Iniziala con `/` o `~/`, oppure usa `~`. |

1632 1632 

1633Per modificare o rimuovere la connessione, modifica la sua voce nel file, perché la finestra di dialogo della connessione SSH dell'app non si apre per essa. Non è necessario riavviare Desktop dopo aver modificato il file. Se la voce non compare o non riesci a selezionarla, consulta [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).1633Per modificare o rimuovere la connessione, modifica la sua voce nel file, perché la finestra di dialogo della connessione SSH dell'app non si apre per essa. Non è necessario riavviare Desktop dopo aver modificato il file. Se la voce non compare o non puoi selezionarla, consulta [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).

1634 1634 

1635##### Scrivere il comando1635##### Scrivere il comando

1636 1636 


1638 1638 

1639* **Programma**: scrivi il suo nome, o il suo percorso completo a partire da `/`, senza spazi. Desktop cerca un nome semplice nel `PATH` esportato dalla tua shell di login. I percorsi relativi come `./acme-dev`, i percorsi che iniziano con `~` e gli alias e le funzioni della shell non funzionano.1639* **Programma**: scrivi il suo nome, o il suo percorso completo a partire da `/`, senza spazi. Desktop cerca un nome semplice nel `PATH` esportato dalla tua shell di login. I percorsi relativi come `./acme-dev`, i percorsi che iniziano con `~` e gli alias e le funzioni della shell non funzionano.

1640* **Argomenti**: separa gli argomenti semplici con spazi. Il comando può contenere solo spazi, lettere ASCII, cifre e i caratteri `+,-./:=@_~`, e nessuna parola può iniziare con `~`.1640* **Argomenti**: separa gli argomenti semplici con spazi. Il comando può contenere solo spazi, lettere ASCII, cifre e i caratteri `+,-./:=@_~`, e nessuna parola può iniziare con `~`.

1641* **Script**: se il comando ha bisogno di altro, come virgolette, pipe, variabili o un URL con `?` o `&`, inseriscilo in uno script. Rendi lo script eseguibile, fallo iniziare con una riga `#!` e imposta `command` sul suo percorso completo, come `/Users/you/bin/make-devbox`. Su macOS, tieni lo script fuori dalle cartelle Documenti, Scrivania e Download, dove macOS può bloccarlo.1641* **Script**: se il comando richiede qualcos'altro, come virgolette, pipe, variabili o un URL con `?` o `&`, inseriscilo in uno script. Rendi lo script eseguibile, inizialo con una riga `#!` e imposta `command` sul suo percorso completo, come `/Users/you/bin/make-devbox`. Su macOS, tieni lo script fuori dalle cartelle Documenti, Scrivania e Download, dove macOS può bloccarlo.

1642* **Input**: il programma non riceve input né terminale, quindi non può chiederti nulla lì. Se il tuo strumento ti fa accedere tramite un browser o una richiesta, accedi prima da un terminale, e di nuovo ogni volta che quell'accesso scade.1642* **Input**: il programma non riceve input né terminale, quindi non può chiederti nulla lì. Se il tuo strumento ti fa accedere tramite un browser o una richiesta, accedi prima da un terminale, e di nuovo ogni volta che quell'accesso scade.

1643* **Ambiente**: il programma viene eseguito nella tua directory home con le variabili esportate dalla tua shell di login. Desktop le legge all'avvio, come fa per [un `ProxyCommand`](#use-variables-from-your-shell-in-a-proxycommand), quindi chiudi e riapri Desktop dopo averle modificate.1643* **Ambiente**: il programma viene eseguito nella tua directory home con le variabili esportate dalla tua shell di login. Desktop le legge all'avvio, come fa per [un `ProxyCommand`](#use-variables-from-your-shell-in-a-proxycommand), quindi chiudi e riapri Desktop dopo averle modificate.

1644* **Tempo limite**: Desktop arresta un programma ancora in esecuzione dopo 10 minuti. Il messaggio di avanzamento di Desktop non mostra l'output del programma. Per arrestare il programma prima, seleziona **Cancel** accanto a quel messaggio.1644* **Limite di tempo**: Desktop arresta un programma che è ancora in esecuzione dopo 10 minuti. Il messaggio di avanzamento di Desktop non mostra l'output del programma. Per arrestare il programma prima, seleziona **Cancel** accanto a quel messaggio.

1645 1645 

1646Il programma deve terminare con codice 0 e stampare solo l'host sullo standard output, in una di due forme:1646Il programma deve uscire con codice 0 e stampare solo l'host sullo standard output, in una di due forme:

1647 1647 

1648* **Una riga**: `host` o `user@host`, scritto come per `ssh_host` in [un link SSH](#open-an-ssh-session-from-a-link). Per indicare una porta, usa la forma JSON.1648* **Una riga**: `host` o `user@host`, scritto come per `ssh_host` in [un link SSH](#open-an-ssh-session-from-a-link). Per indicare una porta, usa la forma JSON.

1649* **Un oggetto JSON**: `sshHost` e, facoltativamente, un `sshPort` numerico e una `startDirectory` che sostituisce quella della voce, come `{"sshHost": "dev@devbox-1234.example.com", "sshPort": 2222}`1649* **Un oggetto JSON**: `sshHost`, e facoltativamente un `sshPort` numerico e una `startDirectory` che sostituisce quella della voce, come `{"sshHost": "dev@devbox-1234.example.com", "sshPort": 2222}`

1650 1650 

1651Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output reindirizzato in un file:1651Per vedere l'output che Desktop legge, esegui il comando in un terminale senza input e con lo standard output in un file:

1652 1652 

1653```bash theme={null}1653```bash theme={null}

1654acme-dev create < /dev/null > host.txt1654acme-dev create < /dev/null > host.txt

1655```1655```

1656 1656 

1657Il file deve contenere solo l'host. Quando esegui questo test, anche il tuo strumento crea una macchina, quindi eliminala in seguito con il tuo strumento.1657Il file deve contenere solo l'host. Quando esegui questo test, il tuo strumento crea anche una macchina, quindi eliminala in seguito con il tuo strumento.

1658 1658 

1659Se il tuo strumento stampa altre righe prima dell'host, come messaggi di avanzamento, racchiudilo in uno script che stampi solo l'host. Lo script seguente stampa l'ultima riga dell'output del tuo strumento. Se il tuo strumento non riesce, lo script termina con lo stesso codice, in modo che Desktop segnali l'errore:1659Se il tuo strumento stampa altre righe prima dell'host, come messaggi di avanzamento, racchiudilo in uno script che stampi solo l'host. Lo script seguente stampa l'ultima riga dell'output del tuo strumento. Se il tuo strumento non riesce, lo script esce con lo stesso codice, in modo che Desktop segnali l'errore:

1660 1660 

1661```bash theme={null}1661```bash theme={null}

1662#!/bin/bash1662#!/bin/bash


1673Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:1673Rispondi a due domande la prima volta che ti connetti a ogni nuovo host:

1674 1674 

1675* **Chiave host**: con il controllo predefinito delle chiavi host di OpenSSH, verifica l'impronta digitale della chiave, poi scegli se connetterti. Per saltare la domanda, fai in modo che il tuo comando aggiunga la chiave a `~/.ssh/known_hosts` prima di stampare l'host, usando una chiave che il tuo strumento ha ottenuto quando ha creato la macchina. Per una porta diversa dalla 22, quella riga inizia con `[host]:port`. Se il tuo strumento riutilizza i nomi host, rimuovi anche la riga della vecchia chiave.1675* **Chiave host**: con il controllo predefinito delle chiavi host di OpenSSH, verifica l'impronta digitale della chiave, poi scegli se connetterti. Per saltare la domanda, fai in modo che il tuo comando aggiunga la chiave a `~/.ssh/known_hosts` prima di stampare l'host, usando una chiave che il tuo strumento ha ottenuto quando ha creato la macchina. Per una porta diversa dalla 22, quella riga inizia con `[host]:port`. Se il tuo strumento riutilizza i nomi host, rimuovi anche la riga della vecchia chiave.

1676* **Cartella**: scegli se considerare attendibile la cartella che apri lì1676* **Cartella**: scegli se ritieni attendibile la cartella che apri lì

1677 1677 

1678Mantieni attivo il controllo delle chiavi host per questi host e mantieni un file `known_hosts` per essi. Se `StrictHostKeyChecking` è `no` o `accept-new` e anche `UserKnownHostsFile` è `/dev/null` o `none`, nulla registra la chiave. Quando il tuo strumento riutilizza poi un nome, puoi connetterti a una macchina diversa senza alcun avviso.1678Mantieni attivo il controllo delle chiavi host per questi host e mantieni un file `known_hosts` per essi. Se `StrictHostKeyChecking` è `no` o `accept-new` e anche `UserKnownHostsFile` è `/dev/null` o `none`, nulla registra la chiave. Quando il tuo strumento riutilizza poi un nome, puoi connetterti a una macchina diversa senza alcun avviso.

1679 1679 

1680##### Sostituire l'host1680##### Sostituire l'host

1681 1681 

1682Una volta che Dev box ha un host, il selettore elenca Dev box tra le tue connessioni SSH, e **Create Dev box** diventa **Replace Dev box's host**. Se quella voce non è nell'elenco, cercala sotto **More**.1682Una volta che Dev box ha un host, il selettore elenca Dev box tra le tue connessioni SSH e **Create Dev box** diventa **Replace Dev box's host**. Se quell'elemento non è nell'elenco, cerca sotto **More**.

1683 1683 

1684Selezionala quando la macchina non c'è più o ne vuoi una nuova. Nella pagina di nuova sessione, la offre anche il messaggio che indica che Desktop non riesce a raggiungere l'host. Desktop esegue di nuovo il comando e le nuove sessioni usano il nuovo host.1684Selezionalo quando la macchina non esiste più o ne vuoi una nuova. Nella pagina di nuova sessione, lo offre anche il messaggio che indica che Desktop non riesce a raggiungere l'host. Desktop esegue di nuovo il comando e le nuove sessioni usano il nuovo host.

1685 1685 

1686* **Un nuovo host**: la voce è grigia per 10 minuti dopo che Desktop ha salvato un host, perché una nuova macchina può impiegare un po' di tempo ad avviarsi. Finché un nuovo host non risponde, la pagina di nuova sessione continua a provare a connettersi per quei 10 minuti.1686* **Un nuovo host**: l'elemento è grigio per 10 minuti dopo che Desktop ha salvato un host, perché una nuova macchina può impiegare un po' di tempo per avviarsi. Finché un nuovo host non risponde, la pagina di nuova sessione continua a tentare di connettersi per quei 10 minuti.

1687* **Sessioni sul vecchio host**: restano su di esso, e Desktop non si connette a quell'host a meno che tu non lo aggiunga di nuovo. Per continuarne una, apri la sessione e seleziona **Add SSH connection**. Desktop compila il vecchio host. Salvalo come connessione a sé stante.1687* **Sessioni sul vecchio host**: rimangono su di esso, e Desktop non si connette a quell'host a meno che tu non lo aggiunga di nuovo. Per continuarne una, apri la sessione e seleziona **Add SSH connection**. Desktop compila il vecchio host. Salvalo come connessione a sé stante.

1688 1688 

1689##### Distribuire i comandi al tuo team1689##### Distribuire i comandi al tuo team

1690 1690 

1691Per fornire una connessione al tuo team, imposta `sshHostCommands` nel file di [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) o nella policy MDM di Claude Code su ogni computer, non nella [policy di gestione dei dispositivi](#device-management-policies) propria dell'app desktop. Gli utenti vedono le tue voci accanto alle proprie, e l'app non offre alcun modo per modificare o rimuovere una voce, né loro né tua.1691Per fornire una connessione al tuo team, imposta `sshHostCommands` nel file di [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md) di Claude Code o nella policy MDM su ogni computer, non nella [policy di gestione dei dispositivi](#device-management-policies) propria dell'app desktop. Gli utenti vedono le tue voci accanto alle proprie, e l'app non offre alcun modo per modificare o rimuovere una voce, né loro né tua.

1692 1692 

1693Il seguente file di impostazioni gestite fornisce agli utenti una connessione chiamata Dev box e disattiva le loro voci, insieme agli hook di Claude Code dalle impostazioni utente, di progetto e locali:1693Il seguente file di impostazioni gestite fornisce agli utenti una connessione denominata Dev box e disattiva le loro voci, insieme agli hook di Claude Code dalle impostazioni utente, di progetto e locali:

1694 1694 

1695```json managed-settings.json theme={null}1695```json managed-settings.json theme={null}

1696{1696{


1707 1707 

1708Prima di distribuire la chiave, definisci ciascuno di questi aspetti:1708Prima di distribuire la chiave, definisci ciascuno di questi aspetti:

1709 1709 

1710* **Dove mettere la chiave**: se la tua policy MDM per Claude Code imposta già una [chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), mettila lì. Altrimenti, mettila nel file di impostazioni gestite. Per impostazione predefinita, una policy di questo tipo ha la precedenza sul file, e Desktop ignora quindi le voci nel file. Impostala sul computer anche dove si applicano le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md): Desktop ignora la chiave lì, così come nelle impostazioni di progetto e locali.1710* **Dove inserire la chiave**: se la tua policy MDM per Claude Code imposta già una [chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), inseriscila lì. Altrimenti, inseriscila nel file di impostazioni gestite. Per impostazione predefinita, tale policy ha la precedenza sul file, e Desktop ignora quindi le voci nel file. Impostala sul computer anche dove si applicano le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md): Desktop ignora la chiave lì, e nelle impostazioni di progetto e locali.

1711* **L'`id`**: se la voce `sshHostCommands` di un utente ha il tuo `id`, funziona solo la tua. Se qualsiasi altra connessione SSH lo ha, come una nelle `sshConfigs` di un utente, la tua voce è grigia. Scegli un `id` che difficilmente gli utenti sceglierebbero.1711* **L'`id`**: se la voce `sshHostCommands` di un utente ha il tuo `id`, funziona solo la tua. Se qualsiasi altra connessione SSH lo ha, come una nei `sshConfigs` di un utente, la tua voce è grigia. Scegli un `id` che difficilmente gli utenti sceglierebbero.

1712* **Il programma**: fornisci il suo percorso completo, perché Desktop cerca un nome semplice nel `PATH` di ciascun utente. Il programma viene eseguito come l'utente, con le variabili esportate dalla sua shell di login.1712* **Il programma**: indica il suo percorso completo, perché Desktop cerca un nome semplice nel `PATH` di ciascun utente. Il programma viene eseguito come l'utente, con le variabili esportate dalla sua shell di login.

1713* **Le voci degli utenti**: Desktop tratta la voce di un utente come un [hook](https://code.claude.com/docs/it/hooks.md), perché entrambi eseguono un programma sul computer. Per consentire solo le tue voci, imposta [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) su `["hooks"]`, oppure aggiungi `"hooks"` al suo elenco. In questo modo blocchi anche gli hook di Claude Code dalle impostazioni utente, di progetto e locali, senza alcun modo di mantenerli. Se invece imposti quella chiave o [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) su `true`, blocchi di più, come indica la voce di ciascuna chiave.1713* **Le voci degli utenti**: Desktop tratta la voce di un utente come un [hook](https://code.claude.com/docs/it/hooks.md), perché entrambi eseguono un programma sul computer. Per consentire solo le tue voci, imposta [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) su `["hooks"]`, oppure aggiungi `"hooks"` al suo elenco. Blocchi anche gli hook di Claude Code dalle impostazioni utente, di progetto e locali, senza alcun modo per mantenerli. Se imposti invece quella chiave o [`allowManagedHooksOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedhooksonly) su `true`, blocchi di più, come indicato nella voce di ciascuna chiave.

1714* **Tutte le voci**: per disattivare anche le tue voci, imposta [`disableAllHooks`](https://code.claude.com/docs/it/settings-reference#disableallhooks) nelle impostazioni gestite. Se imposti [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), o una `sshHostAllowlist` che non consente alcun host, il selettore non elenca voci **Create** o **Replace**.1714* **Tutte le voci**: per disattivare anche le tue voci, imposta [`disableAllHooks`](https://code.claude.com/docs/it/settings-reference#disableallhooks) nelle impostazioni gestite. Se imposti [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), oppure un `sshHostAllowlist` che non consente alcun host, il selettore non elenca elementi **Create** o **Replace**.

1715* **Dove contano i blocchi**: per queste voci, Desktop legge `allowManagedHooksOnly`, `strictPluginOnlyCustomization` e `disableAllHooks` dalle impostazioni gestite dal server e dal file o dalla policy del computer, e applica il risultato più restrittivo. Ogni voce resta grigia finché Desktop non ha verificato su claude.ai le impostazioni gestite dal server, anche se la tua organizzazione non ne ha.1715* **Dove contano i blocchi**: per queste voci, Desktop legge `allowManagedHooksOnly`, `strictPluginOnlyCustomization` e `disableAllHooks` dalle impostazioni gestite dal server e dal file o dalla policy del computer stesso, e applica il risultato più restrittivo. Ogni voce rimane grigia finché Desktop non ha verificato su claude.ai le impostazioni gestite dal server, anche se la tua organizzazione non ne ha.

1716* **Host consentiti**: se imposti [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to), assicurati che un pattern corrisponda a ogni nome host stampato dal tuo strumento, e ometti `user@` dal pattern. Desktop controlla il nome stampato solo dopo l'esecuzione del comando, quindi una macchina rifiutata dall'elenco esiste già, e l'utente deve eliminarla con il tuo strumento. A ogni connessione, anche l'`HostName` risolto deve corrispondere.1716* **Host consentiti**: se imposti [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to), assicurati che un pattern corrisponda a ogni nome host stampato dal tuo strumento, e ometti `user@` dal pattern. Desktop verifica il nome stampato solo dopo che il comando è stato eseguito, quindi una macchina rifiutata dall'elenco esiste già, e l'utente deve eliminarla con il tuo strumento. A ogni connessione, deve corrispondere anche l'`HostName` risolto.

1717 1717 

1718Dopo aver distribuito la chiave, riavvia Desktop su un computer di prova. Nel selettore di ambiente della scheda Code, cerca sotto **SSH**, o nella singola riga **SSH**. La tua voce appare come voce **Create**, oppure come voce grigia che indica il motivo quando ci passi sopra con il puntatore. Se manca, controlla dove hai messo la chiave, poi i casi in [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).1718Dopo aver distribuito la chiave, riavvia Desktop su un computer di prova. Nel selettore dell'ambiente della scheda Code, cerca sotto **SSH**, oppure nella singola riga **SSH**. La tua voce compare come elemento **Create**, oppure come elemento grigio che indica il motivo quando ci passi sopra con il puntatore. Se manca, verifica dove hai inserito la chiave, poi i casi in [Se un comando manca o è grigio](#if-a-command-is-missing-or-gray).

1719 1719 

1720##### Se un comando manca o è grigio1720##### Se un comando manca o è grigio

1721 1721 

1722Il selettore di ambiente non elenca alcuna voce **Create** o **Replace** in questi casi:1722Il selettore dell'ambiente non elenca alcun elemento **Create** o **Replace** in questi casi:

1723 1723 

1724* **Il file**: `~/.claude/settings.json` contiene [JSON non valido o un valore che lo schema rifiuta](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file), hai scritto male la chiave oppure l'hai inserita nelle impostazioni di un progetto. Correggi il file.1724* **Il file**: `~/.claude/settings.json` contiene [JSON non valido o un valore rifiutato dallo schema](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file), hai scritto male la chiave, oppure l'hai inserita nelle impostazioni di un progetto. Correggi il file.

1725* **Piattaforma e account**: usi Windows, oppure un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) invece di un account Claude. Aggiungi tu stesso ogni host come [connessione SSH](#ssh-sessions).1725* **Piattaforma e account**: usi Windows, oppure un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) anziché un account Claude. Aggiungi tu stesso ogni host come [connessione SSH](#ssh-sessions).

1726* **Le impostazioni della tua organizzazione**: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.1726* **Le impostazioni della tua organizzazione**: il tuo amministratore ha disattivato le sessioni locali o le sessioni SSH. Chiedigli se puoi usare i comandi.

1727* **Nessun programma `ssh`**: Desktop non è riuscito ad avviare il client OpenSSH sul tuo computer. Installalo, o chiedi al tuo amministratore di consentirlo, poi riavvia Desktop.1727* **Nessun programma `ssh`**: Desktop non è riuscito ad avviare il client OpenSSH sul tuo computer. Installalo, o chiedi al tuo amministratore di consentirlo, poi riavvia Desktop.

1728 1728 

1729Una voce che non puoi selezionare è grigia. Passaci sopra con il puntatore per vedere il motivo:1729Una voce che non puoi selezionare è grigia. Passaci sopra con il puntatore per vedere il motivo:

1730 1730 

1731* **Un errore nella voce**: correggi il campo o il comando indicato dal messaggio. Se l'`id` è già in uso, assegnane un altro alla voce.1731* **Un errore nella voce**: correggi il campo o il comando indicato dal messaggio. Se l'`id` è già in uso, assegna alla voce un altro `id`.

1732* **Un file di impostazioni danneggiato**: mentre il tuo file di impostazioni è danneggiato, le voci del tuo amministratore possono essere grigie, con un messaggio che indica il file. [Correggi il file](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).1732* **Un file di impostazioni danneggiato**: finché il tuo file di impostazioni è danneggiato, le voci del tuo amministratore potrebbero essere grigie, con un messaggio che indica il file. [Correggi il file](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).

1733* **Un nuovo host**: puoi [sostituire un host](#replace-the-host) quando ha almeno 10 minuti.1733* **Un nuovo host**: puoi [sostituire un host](#replace-the-host) una volta trascorsi 10 minuti dalla sua creazione.

1734* **Gli hook sono disattivati o limitati**: le tue voci funzionano solo dove possono essere eseguiti i tuoi hook. Rimuovi `disableAllHooks` dalle tue impostazioni, oppure chiedi al tuo amministratore.1734* **Gli hook sono disattivati o limitati**: le tue voci funzionano solo dove possono essere eseguiti i tuoi hook. Rimuovi `disableAllHooks` dalle tue impostazioni, oppure chiedi al tuo amministratore.

1735* **Le impostazioni sono ancora in caricamento**: ogni voce è grigia finché Desktop non ha caricato le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) della tua organizzazione, di solito pochi secondi dopo l'avvio. Se le voci restano grigie, controlla la tua connessione a claude.ai.1735* **Le impostazioni sono ancora in caricamento**: ogni voce è grigia finché Desktop non ha caricato le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) della tua organizzazione, di solito pochi secondi dopo l'avvio. Se le voci rimangono grigie, verifica la tua connessione a claude.ai.

1736 1736 

1737#### Pre-configure SSH connections for your team1737#### Preconfigurare le connessioni SSH per il tuo team

1738 1738 

1739Gli amministratori possono distribuire connessioni SSH ai membri del team impostando `sshConfigs` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).1739Gli amministratori possono distribuire connessioni SSH ai membri del team impostando `sshConfigs` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md).

1740 1740 

1741* **Cosa vedono gli utenti**: le connessioni definite in questo modo compaiono automaticamente nel selettore di ambiente di ciascun utente.1741* **Cosa vedono gli utenti**: le connessioni definite in questo modo compaiono automaticamente nel selettore dell'ambiente di ciascun utente.

1742* **Cosa possono modificare gli utenti**: gli utenti possono selezionare una connessione gestita e [impostare la propria **Worktree folder**](#set-the-worktree-folder-on-an-existing-connection) per essa. Non possono modificarne gli altri campi né eliminarla nell'app.1742* **Cosa possono modificare gli utenti**: gli utenti possono selezionare una connessione gestita e [impostare la propria **Worktree folder**](#set-the-worktree-folder-on-an-existing-connection) per essa. Non possono modificarne gli altri campi né eliminarla nell'app.

1743 1743 

1744L'esempio seguente pre-configura una singola connessione:1744L'esempio seguente preconfigura una singola connessione:

1745 1745 

1746```json theme={null}1746```json theme={null}

1747{1747{


1759 1759 

1760Ogni voce richiede `id`, `name` e `sshHost`. I campi `sshPort` e `sshIdentityFile` sono facoltativi. Gli utenti possono anche aggiungere `sshConfigs` al proprio `~/.claude/settings.json`.1760Ogni voce richiede `id`, `name` e `sshHost`. I campi `sshPort` e `sshIdentityFile` sono facoltativi. Gli utenti possono anche aggiungere `sshConfigs` al proprio `~/.claude/settings.json`.

1761 1761 

1762Se ometti `user@` da `sshHost`, Desktop si connette come lo `User` che il file `~/.ssh/config` di ciascuno sviluppatore imposta per l'host, oppure, in mancanza di questo, con il nome utente dello sviluppatore sul proprio computer.1762Se ometti `user@` da `sshHost`, Desktop si connette come lo `User` che il `~/.ssh/config` di ciascuno sviluppatore imposta per l'host, oppure come il suo nome utente sul proprio computer.

1763 1763 

1764#### Restrict which SSH hosts users can connect to1764#### Limitare gli host SSH a cui gli utenti possono connettersi

1765 1765 

1766Gli amministratori possono limitare le sessioni SSH di Desktop a un insieme approvato di host impostando `sshHostAllowlist` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Quando impostato, gli utenti possono connettersi solo a host il cui nome host risolto corrisponde a uno dei modelli. Impostalo su un array vuoto per disabilitare le sessioni SSH. La [voce di riferimento di `sshHostAllowlist`](https://code.claude.com/docs/it/settings-reference#sshhostallowlist) spiega come un array vuoto si combina con gli elenchi presenti in altre fonti gestite.1766Gli amministratori possono limitare le sessioni SSH di Desktop a un insieme approvato di host impostando `sshHostAllowlist` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Quando è impostata, gli utenti possono connettersi solo agli host il cui nome host risolto corrisponde a uno dei pattern. Impostala su un array vuoto per disattivare le sessioni SSH. La [voce di riferimento di `sshHostAllowlist`](https://code.claude.com/docs/it/settings-reference#sshhostallowlist) spiega come un array vuoto si combina con gli elenchi in altre origini gestite.

1767 1767 

1768L'esempio seguente consente connessioni a qualsiasi host sotto `devboxes.example.com` e a un singolo host bastion denominato:1768L'esempio seguente consente le connessioni a qualsiasi host sotto `devboxes.example.com` e a un singolo bastion host specifico:

1769 1769 

1770```json theme={null}1770```json theme={null}

1771{1771{


1775 1775 

1776> [!WARNING]1776> [!WARNING]

1777>1777>

1778> Se la tua organizzazione distribuisce [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), imposta `sshHostAllowlist` lì. Per impostazione predefinita, Desktop legge la chiave solo dalla [fonte gestita con priorità più alta che distribuisce una chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Se quella fonte lascia la chiave non impostata, Desktop ignora un elenco presente in una policy MDM o in un file di impostazioni gestite con priorità inferiore e tratta la chiave come [non impostata](https://code.claude.com/docs/it/settings-reference.md#sshhostallowlist). Desktop non mostra alcun avviso.1778> Se la tua organizzazione fornisce [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), imposta `sshHostAllowlist` lì. Per impostazione predefinita, Desktop legge la chiave solo dall'[origine gestita con priorità più alta che fornisce una chiave di policy](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Se quell'origine lascia la chiave non impostata, Desktop ignora un elenco in una policy MDM o in un file di impostazioni gestite con priorità inferiore e tratta la chiave come [non impostata](https://code.claude.com/docs/it/settings-reference.md#sshhostallowlist). Desktop non mostra alcun avviso.

1779>1779>

1780> Mantieni inoltre lo stesso elenco sulla macchina di ogni utente, nella policy MDM o nel file di impostazioni gestite con priorità più alta su quella macchina. Desktop recupera le impostazioni gestite dal server all'avvio e non conserva alcuna copia nella cache, quindi finché un recupero non riesce si applica l'elenco della macchina.1780> Mantieni inoltre lo stesso elenco sulla macchina di ciascun utente, nella policy MDM o nel file di impostazioni gestite con priorità più alta presente lì. Desktop recupera le impostazioni gestite dal server all'avvio e non ne conserva una copia nella cache, quindi finché un recupero non riesce si applica l'elenco della macchina.

1781 1781 

1782I pattern non distinguono tra maiuscole e minuscole. `*` corrisponde a qualsiasi host, e `*.example.com` corrisponde a `example.com` e a qualsiasi sottodominio. Qualsiasi altro valore è una corrispondenza esatta. Il controllo viene eseguito sull'hostname dopo la risoluzione di `~/.ssh/config` tramite `ssh -G`, quindi un alias `Host` è consentito purché il suo `HostName` risolto corrisponda. Anche i [jump host](#allow-jump-hosts) di una sessione devono corrispondere.1782I pattern non fanno distinzione tra maiuscole e minuscole. `*` corrisponde a qualsiasi host, e `*.example.com` corrisponde a `example.com` e a qualsiasi sottodominio. Qualsiasi altro valore è una corrispondenza esatta. Il controllo viene eseguito sul nome host dopo la risoluzione di `~/.ssh/config` tramite `ssh -G`, quindi un alias `Host` è consentito purché il suo `HostName` risolto corrisponda. Anche i [jump host](#allow-jump-hosts) di una sessione devono corrispondere.

1783 1783 

1784`sshHostAllowlist` viene letto solo dalle impostazioni gestite; i valori nelle impostazioni utente o progetto vengono ignorati. Solo l'app Claude Desktop onora questa impostazione; la CLI Claude Code e le estensioni IDE non la leggono, e non limita i comandi `ssh` eseguiti tramite lo strumento Bash. Governa a quali host l'app Desktop si connette, non l'uscita di rete, quindi abbinalo ai controlli di rete della tua organizzazione o zero-trust se hai bisogno di un confine rigido.1784`sshHostAllowlist` viene letta solo dalle impostazioni gestite; i valori nelle impostazioni utente o di progetto vengono ignorati. Solo l'app Claude Desktop rispetta questa impostazione; la CLI di Claude Code e le estensioni IDE non la leggono, e non limita i comandi `ssh` eseguiti tramite lo strumento Bash. Determina a quali host si connette l'app Desktop, non il traffico di rete in uscita, quindi abbinala ai controlli di rete o zero-trust della tua organizzazione se hai bisogno di un confine rigido.

1785 1785 

1786##### Consenti i jump host1786##### Consentire i jump host

1787 1787 

1788Aggiungi a `sshHostAllowlist` ogni jump host che Desktop controlla, tramite il suo `HostName` risolto. Aggiungi i jump host prima che gli utenti aggiornino a Claude Desktop v3.1623.0 o versioni successive, altrimenti non potranno connettersi tramite essi.1788Aggiungi a `sshHostAllowlist` ogni jump host che Desktop verifica, tramite il suo `HostName` risolto. Aggiungi i jump host prima che gli utenti aggiornino a Claude Desktop v3.1623.0 o versione successiva, altrimenti non potranno connettersi attraverso di essi.

1789 1789 

1790> [!WARNING]1790> [!WARNING]

1791>1791>

1792> L'elenco ha un solo tipo di voce, quindi gli utenti possono anche avviare una sessione su qualsiasi host che elenchi. Elenca solo i jump host su cui consentiresti anche agli utenti di eseguire sessioni.1792> L'elenco ha un solo tipo di voce, quindi gli utenti possono anche avviare una sessione su qualsiasi host che elenchi. Elenca solo jump host su cui consentiresti agli utenti anche di eseguire sessioni.

1793 1793 

1794Desktop controlla i jump host nel `ProxyJump` che il file `~/.ssh/config` dell'utente imposta per l'host della sessione, oppure in un `ProxyCommand` scritto come `ssh -W %h:%p <host>`. Se uno di quelli che controlla non è nell'elenco quando Desktop connette o riconnette una sessione, la connessione non riesce. Quando un utente avvia una sessione o invia un messaggio, i dettagli dell'errore riportano l'`HostName` di quel jump host, che è il nome da aggiungere:1794Desktop verifica i jump host nel `ProxyJump` che il `~/.ssh/config` dell'utente imposta per l'host della sessione, oppure in un `ProxyCommand` scritto come `ssh -W %h:%p <host>`. Se uno di quelli che verifica non è nell'elenco quando Desktop connette o riconnette una sessione, la connessione non riesce. Quando un utente avvia una sessione o invia un messaggio, i dettagli dell'errore riportano l'`HostName` di quel jump host, che è il nome da aggiungere:

1795 1795 

1796```text theme={null}1796```text theme={null}

1797SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".1797SSH host "bastion.example.com" is not allowed by your organization's managed settings. It is a jump host on the way to "devbox".

1798```1798```

1799 1799 

1800Se il messaggio dice `managed settings on this computer`, aggiungi il nome all'elenco sul computer dell'utente. Se manca più di un jump host, l'errore li indica uno alla volta. Per trovare tutti i nomi prima che gli utenti aggiornino, usa un terminale sul computer di un utente:1800Se il messaggio riporta `managed settings on this computer`, aggiungi il nome all'elenco sul computer dell'utente. Se manca più di un jump host, l'errore li indica uno alla volta. Per trovare tutti i nomi prima che gli utenti aggiornino, usa un terminale sul computer di un utente:

1801 1801 

1802**1. Trova il percorso**1802**1. Trova il percorso**

1803 1803 

1804Esegui `ssh -G` con un host a cui gli utenti si connettono, ad esempio `ssh -G devbox`. Cerca una riga `proxyjump`, oppure una riga `proxycommand` scritta come `ssh -W %h:%p <host>`. Il comando vale comunque con uno qualsiasi tra `-l`, `-p`, `-J`, `-q`, `-v`, `-N`, `-T`, `-x` o `-a`, e anche gli host dopo `-J` sono jump host. Se una riga `proxycommand` esegue un programma diverso da `ssh`, non aggiungere nulla per essa.1804Esegui `ssh -G` con un host a cui gli utenti si connettono, come `ssh -G devbox`. Cerca una riga `proxyjump`, oppure una riga `proxycommand` scritta come `ssh -W %h:%p <host>`. Il comando conta comunque con una qualsiasi delle opzioni `-l`, `-p`, `-J`, `-q`, `-v`, `-N`, `-T`, `-x` o `-a`, e anche gli host dopo `-J` sono jump host. Se una riga `proxycommand` esegue un programma diverso da `ssh`, non aggiungere nulla per essa.

1805 1805 

1806**2. Cerca ogni jump host**1806**2. Cerca ogni jump host**

1807 1807 

1808Esegui `ssh -G` con ogni jump host su quella riga, senza alcun `:port`, e annota l'`hostname` che stampa. Se l'output del primo jump host su quella riga contiene una riga di uno dei due tipi, ripeti questo passaggio con essa. Ignora una riga di questo tipo nell'output di un jump host successivo.1808Esegui `ssh -G` con ogni jump host presente su quella riga, senza alcun `:port`, e annota l'`hostname` che stampa. Se l'output per il primo jump host su quella riga contiene una riga di uno dei due tipi, ripeti questo passaggio con essa. Ignora una riga di questo tipo nell'output di un jump host successivo.

1809 1809 

1810**3. Aggiungi i nomi**1810**3. Aggiungi i nomi**

1811 1811 

1812Aggiungi ogni hostname, o un carattere jolly che lo copra, a `sshHostAllowlist` in ogni origine gestita in cui imposti un elenco. Poi chiedi agli utenti di chiudere e riaprire Desktop, perché recupera le impostazioni gestite dal server all'avvio.1812Aggiungi ogni nome host, o un carattere jolly che lo copra, a `sshHostAllowlist` in ogni origine gestita in cui imposti un elenco. Poi chiedi agli utenti di chiudere e riaprire Desktop, perché recupera le impostazioni gestite dal server all'avvio.

1813 1813 

1814#### Disattivare le sessioni locali e distribuire connessioni SSH1814#### Disattivare le sessioni locali e distribuire le connessioni SSH

1815 1815 

1816Per disattivare le sessioni locali e limitare le sessioni SSH agli host che scegli, distribuisci insieme [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) e [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to).1816Per disattivare le sessioni locali e limitare le sessioni SSH agli host che scegli, distribuisci insieme [`disableDesktopLocalSessions`](https://code.claude.com/docs/it/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) e [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to).

1817 1817 

1818> [!NOTE]1818> [!NOTE]

1819>1819>

1820> Questa configurazione è pensata per gli utenti che accedono con un account Claude. Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH sono disattivate per impostazione predefinita e impostare `sshHostAllowlist` può attivarle. Leggi [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) prima di distribuire queste chiavi.1820> Questa configurazione è destinata agli utenti che accedono con un account Claude. Con un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md), le sessioni SSH sono disattivate per impostazione predefinita, e l'impostazione di `sshHostAllowlist` può attivarle. Leggi [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) prima di distribuire queste chiavi.

1821 1821 

1822L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:1822L'esempio seguente disattiva le sessioni locali, aggiunge una connessione e limita le sessioni SSH all'host di quella connessione:

1823 1823 


1838Le chiavi si applicano all'app desktop. Lasciano invariati gli altri modi di eseguire Claude Code, come la CLI, Cowork e le sessioni cloud:1838Le chiavi si applicano all'app desktop. Lasciano invariati gli altri modi di eseguire Claude Code, come la CLI, Cowork e le sessioni cloud:

1839 1839 

1840* **La CLI**: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer1840* **La CLI**: nessuna delle chiavi impedisce a uno sviluppatore di eseguire la CLI di Claude Code sul proprio computer

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

1842* **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).1842* **Sessioni cloud**: nessuna delle chiavi modifica la disponibilità delle [sessioni cloud](#cloud-sessions). Per disattivarle, usa l'impostazione **Cloud sessions** in [Controlli della console di amministrazione](#admin-console-controls).

1843 1843 

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

1845 1845 

1846* **Hostname**: assicurati che un pattern in `sshHostAllowlist` corrisponda all'hostname di ogni voce di `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non potranno connettersi. Aggiungi anche un pattern che corrisponda a ogni [jump host](#allow-jump-hosts) che Desktop controlla lungo il percorso. Per sapere come Desktop confronta un hostname, consulta [Limita gli host SSH a cui gli utenti possono connettersi](#restrict-which-ssh-hosts-users-can-connect-to).1846* **Nomi host**: assicurati che un pattern in `sshHostAllowlist` corrisponda al nome host di ogni voce `sshConfigs`, senza `user@`, altrimenti gli sviluppatori non potranno connettersi. Aggiungi anche un pattern che corrisponda a ogni [jump host](#allow-jump-hosts) che Desktop verifica lungo il percorso. Per come Desktop confronta un nome host, consulta [Limitare gli host SSH a cui gli utenti possono connettersi](#restrict-which-ssh-hosts-users-can-connect-to).

1847* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o versioni successive1847* **Versione**: `disableDesktopLocalSessions` richiede Claude Desktop v1.37937.0 o versione successiva

1848* **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](https://code.claude.com/docs/it/managed-settings.md#find-entries-claude-code-dropped).1848* **Permessi del file**: assicurati che l'account di ciascuno sviluppatore sul computer possa leggere il file di impostazioni gestite. Desktop non applica le chiavi in un file che l'account non può leggere, e anche Claude Code [si avvia senza di esse](https://code.claude.com/docs/it/managed-settings.md#find-entries-claude-code-dropped).

1849 1849 

1850Inserisci le tre chiavi in un'unica [fonte gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), quella con priorità più alta tra quelle che distribuisci. Se distribuisci [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), 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.1850Inserisci le tre chiavi in un'unica [origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources), quella con priorità più alta tra quelle che fornisci. Se fornisci [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md), conserva anche una copia delle tre chiavi nella policy MDM o nel file di impostazioni gestite con priorità più alta su ogni computer. Desktop recupera le impostazioni gestite dal server all'avvio, e la copia sul computer si applica finché un recupero non riesce.

1851 1851 

1852Per verificare che le impostazioni vengano applicate, controlla il computer di uno sviluppatore:1852Per confermare che le impostazioni sono applicate, controlla il computer di uno sviluppatore:

1853 1853 

1854**1. Controlla il selettore di ambiente**1854**1. Controlla il selettore dell'ambiente**

1855 1855 

1856Chiudi e riapri Desktop, poi apri il [selettore di ambiente](#start-a-session). Le impostazioni sono applicate se mostra:1856Chiudi e riapri Desktop, poi apri il [selettore dell'ambiente](#start-a-session). Le impostazioni sono applicate se mostra:

1857 1857 

1858* La voce relativa a quel computer, in grigio1858* La voce per quel computer, in grigio

1859* **Shared Dev VM** sotto **SSH**. Se non è elencata lì, fai clic sulla singola riga **SSH**, oppure su **More** alla fine del gruppo.1859* **Shared Dev VM** sotto **SSH**. Se non è elencata lì, fai clic sulla singola riga **SSH**, oppure su **More** alla fine del gruppo.

1860 1860 

1861Se la voce relativa al computer è ancora disponibile, verifica queste cause:1861Se la voce per il computer è ancora disponibile, verifica queste cause:

1862 1862 

1863* **Versione di Desktop**: aggiorna Desktop se è precedente alla v1.37937.0.1863* **Versione di Desktop**: aggiorna Desktop se è precedente alla v1.37937.0.

1864* **File delle impostazioni gestite**: assicurati che il file sia un JSON valido.1864* **File di impostazioni gestite**: assicurati che il file sia JSON valido.

1865* **Fonte gestita**: assicurati che il computer legga la [fonte gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) che contiene le chiavi.1865* **Origine gestita**: assicurati che il computer legga l'[origine gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) che contiene le chiavi.

1866 1866 

1867**2. Aggiungi un host che non è nell'allowlist**1867**2. Aggiungi un host che non è nell'allowlist**

1868 1868 

1869[Aggiungi una connessione SSH](#ssh-sessions) con un hostname che non è nell'allowlist, come `other.example.com`. Desktop salva la connessione ma rifiuta di connettersi, e indica che le impostazioni della tua organizzazione non consentono la connessione.1869[Aggiungi una connessione SSH](#ssh-sessions) con un nome host che non è nell'allowlist, come `other.example.com`. Desktop salva la connessione ma rifiuta di connettersi, e indica che le impostazioni della tua organizzazione non consentono la connessione.

1870 1870 

1871## Configurazione aziendale1871## Configurazione aziendale

1872 1872 


2122 2122 

2123### Verifica quale layout hai2123### Verifica quale layout hai

2124 2124 

2125Se una nuova sessione non ha il [selettore dell'ambiente](#start-a-session) sotto la casella del prompt, hai il layout precedente:2125Se una nuova sessione mostra l'[ambiente](#start-a-session) sopra la casella del prompt anziché sotto, hai il layout precedente:

2126 2126 

2127* **[Desktop precedente alla v2.37337.0](#check-your-version)**: aggiorna per ottenere il layout attuale. Seleziona **Claude > Check for Updates…** su macOS o **Help > Check for Updates…** su Windows.2127* **[Desktop precedente alla v2.37337.0](#check-your-version)**: aggiorna per ottenere il layout attuale. Seleziona **Claude > Check for Updates…** su macOS o **Help > Check for Updates…** su Windows.

2128* **[Provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) con sessioni sul tuo computer**: il layout attuale richiede Claude Desktop v3.1623.0 o successiva, quindi [verifica la tua versione](#check-your-version). Per aggiornare, seleziona **Claude > Check for Updates…** su macOS o **Help > Check for Updates…** su Windows. Se la tua organizzazione [disattiva gli aggiornamenti automatici](#device-management-policies), **Check for Updates…** è nascosto, quindi chiedi al tuo amministratore la v3.1623.0 o successiva.2128* **[Provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) con sessioni sul tuo computer**: il layout attuale richiede Claude Desktop v3.1623.0 o successiva, quindi [verifica la tua versione](#check-your-version). Per aggiornare, seleziona **Claude > Check for Updates…** su macOS o **Help > Check for Updates…** su Windows. Se la tua organizzazione [disattiva gli aggiornamenti automatici](#device-management-policies), **Check for Updates…** è nascosto, quindi chiedi al tuo amministratore la v3.1623.0 o successiva.

2129* **Provider di terze parti con sessioni sull'infrastruttura della tua organizzazione**: quando la tua organizzazione esegue le sessioni sulla propria infrastruttura anziché sul tuo computer, Desktop mantiene il layout precedente e l'aggiornamento non cambia il layout. Se non sai dove vengono eseguite le tue sessioni, chiedi al tuo amministratore.2129* **Provider di terze parti con sessioni sull'infrastruttura della tua organizzazione**: il layout attuale richiede Claude Desktop v4.29.0 o successiva, quindi [verifica la tua versione](#check-your-version). Se hai una versione precedente, chiedi al tuo amministratore la v4.29.0 o successiva. Se non sai dove vengono eseguite le tue sessioni, chiedi al tuo amministratore.

2130 2130 

2131Nel layout precedente, scegli l'ambiente e la cartella del progetto sopra la casella del prompt, e la modalità di permesso e il modello nella riga sottostante. Il layout precedente non dispone del [pannello dei dettagli della sessione](#see-session-details) e degli [ambienti locali e SSH salvati](#create-a-saved-environment).2131Nel layout precedente, scegli l'ambiente ed eventuali cartelle del progetto o repository sopra la casella del prompt, e la modalità di permesso e il modello nella riga sottostante. Il layout precedente non dispone del [pannello dei dettagli della sessione](#see-session-details) e degli [ambienti locali e SSH salvati](#create-a-saved-environment).

2132 2132 

2133### 403 or authentication errors in the Code tab2133### 403 or authentication errors in the Code tab

2134 2134 

Details

57 57 

58Nella [riga sotto la casella del prompt](https://code.claude.com/docs/it/desktop.md#start-a-session), fai clic sul primo controllo, il selettore dell'ambiente, e seleziona la prima voce nel gruppo **Local**. Poi fai clic sul controllo della cartella del progetto accanto al selettore dell'ambiente, seleziona **Open folder…** e scegli la directory del tuo progetto.58Nella [riga sotto la casella del prompt](https://code.claude.com/docs/it/desktop.md#start-a-session), fai clic sul primo controllo, il selettore dell'ambiente, e seleziona la prima voce nel gruppo **Local**. Poi fai clic sul controllo della cartella del progetto accanto al selettore dell'ambiente, seleziona **Open folder…** e scegli la directory del tuo progetto.

59 59 

60Se sotto la casella del prompt non compare alcun selettore dell'ambiente, hai il layout precedente. Vedi [Verifica quale layout hai](https://code.claude.com/docs/it/desktop.md#check-which-layout-you-have).60Se una nuova sessione non mostra alcun ambiente sotto la casella del prompt, hai il layout precedente. Vedi [Verifica quale layout hai](https://code.claude.com/docs/it/desktop.md#check-which-layout-you-have).

61 61 

62> [!TIP]62> [!TIP]

63>63>


962. Pulsanti per approvare o rifiutare ogni modifica962. Pulsanti per approvare o rifiutare ogni modifica

973. Aggiornamenti in tempo reale mentre Claude elabora la tua richiesta973. Aggiornamenti in tempo reale mentre Claude elabora la tua richiesta

98 98 

99## E adesso?99## E ora?

100 100 

101Hai fatto la tua prima modifica. Per il riferimento completo su tutto ciò che Desktop può fare, consulta [Usare Claude Code Desktop](https://code.claude.com/docs/it/desktop.md). Ecco alcune cose da provare dopo.101Hai fatto la tua prima modifica. Per il riferimento completo su tutto ciò che Desktop può fare, consulta [Usare Claude Code Desktop](https://code.claude.com/docs/it/desktop.md). Ecco alcune cose da provare dopo.

102 102 

103**Interrompi e reindirizza.** Puoi reindirizzare Claude in qualsiasi momento. Fai clic sul pulsante di stop per interrompere immediatamente, oppure digita una correzione e premi **Invio** per inviarla senza fermare l'azione in corso. In entrambi i casi, non devi aspettare che finisca né ricominciare da capo.103**Interrompi e reindirizza.** Puoi reindirizzare Claude in qualsiasi momento. Fai clic sul pulsante di stop per interrompere immediatamente, oppure digita una correzione e premi **Enter** per inviarla senza fermare l'azione in corso. In entrambi i casi, non devi aspettare che finisca né ricominciare da capo.

104 104 

105**Fornisci a Claude più contesto.** Digita `@filename` nella casella del prompt per includere un file specifico nella conversazione. Più contesto ha Claude, migliori sono i risultati. Consulta [Aggiungere file e contesto](https://code.claude.com/docs/it/desktop.md#add-files-and-context-to-prompts).105**Dai a Claude più contesto.** Digita `@filename` nella casella del prompt per includere un file specifico nella conversazione. Più contesto ha Claude, migliori sono i risultati. Consulta [Aggiungere file e contesto](https://code.claude.com/docs/it/desktop.md#add-files-and-context-to-prompts).

106 106 

107**Usa le skill per attività ripetibili.** Digita `/` o fai clic su **+** → **Slash commands** per sfogliare i [comandi integrati](https://code.claude.com/docs/it/commands.md), le [skill personalizzate](https://code.claude.com/docs/it/skills.md) e le skill dei plugin. Le skill sono prompt riutilizzabili che puoi richiamare ogni volta che ne hai bisogno, come checklist di code review o passaggi di deploy.107**Usa le skill per le attività ripetibili.** Digita `/` o fai clic su **+** → **Slash commands** per sfogliare i [comandi integrati](https://code.claude.com/docs/it/commands.md), le [skill personalizzate](https://code.claude.com/docs/it/skills.md) e le skill dei plugin. Le skill sono prompt riutilizzabili che puoi richiamare ogni volta che ti servono, come checklist per la code review o passaggi di deploy.

108 108 

109**Rivedi le modifiche prima del commit.** Dopo che Claude modifica i file, compare un indicatore `+12 -1`. Fai clic su di esso per aprire la [vista diff](https://code.claude.com/docs/it/desktop.md#review-changes-with-diff-view), rivedere le modifiche file per file e commentare righe specifiche. Claude legge i tuoi commenti e apporta le revisioni. Per far rivedere le modifiche a Claude stesso, inserisci [`/code-review`](https://code.claude.com/docs/it/desktop#review-your-code) nella casella del prompt.109**Rivedi le modifiche prima di fare commit.** Dopo che Claude modifica i file, compare un indicatore `+12 -1`. Fai clic su di esso per aprire la [vista diff](https://code.claude.com/docs/it/desktop.md#review-changes-with-diff-view), rivedere le modifiche file per file e commentare righe specifiche. Claude legge i tuoi commenti e apporta revisioni. Per far rivedere le modifiche a Claude stesso, inserisci [`/code-review`](https://code.claude.com/docs/it/desktop#review-your-code) nella casella del prompt.

110 110 

111**Regola il livello di controllo.** La tua [modalità di permesso](https://code.claude.com/docs/it/desktop.md#choose-a-permission-mode) stabilisce quanto Claude può fare senza chiedere approvazione:111**Regola il livello di controllo.** La tua [modalità di permesso](https://code.claude.com/docs/it/desktop.md#choose-a-permission-mode) stabilisce quanto Claude può fare senza chiedere approvazione:

112 112 

113* **Auto**: un classificatore esamina le azioni in background e blocca quelle rischiose invece di chiedertelo.113* **Auto**: un classificatore esamina le azioni in background e blocca quelle rischiose invece di chiederti conferma.

114* **Manual**: Claude chiede prima di modificare file o eseguire comandi.114* **Manual**: Claude chiede prima di modificare file o eseguire comandi.

115* **Accept edits**: Claude accetta automaticamente le modifiche ai file per un'iterazione più rapida.115* **Accept edits**: Claude accetta automaticamente le modifiche ai file per iterazioni più rapide.

116* **Plan**: Claude propone un approccio senza modificare alcun file, utile prima di un refactoring di grandi dimensioni.116* **Plan**: Claude propone un approccio senza modificare alcun file, utile prima di un refactoring di grandi dimensioni.

117 117 

118**Aggiungi plugin per più funzionalità.** Installa [plugin](https://code.claude.com/docs/it/desktop.md#install-plugins) che aggiungono skill, agenti, server MCP e altro.118**Aggiungi plugin per ulteriori funzionalità.** Installa [plugin](https://code.claude.com/docs/it/desktop.md#install-plugins) che aggiungono skill, agenti, server MCP e altro ancora.

119 119 

120**Organizza il tuo workspace.** Trascina i riquadri di chat, diff, terminale, file e browser nel layout che preferisci. Apri il terminale con **Ctrl+\`** per eseguire comandi accanto alla tua sessione, oppure fai clic sul percorso di un file per aprirlo. Consulta [Organizzare il workspace](https://code.claude.com/docs/it/desktop.md#arrange-your-workspace).120**Organizza il tuo workspace.** Trascina i riquadri di chat, diff, terminale, file e browser nel layout che preferisci. Apri il terminale con **Ctrl+\`** per eseguire comandi accanto alla tua sessione, oppure fai clic su un percorso di file per aprirlo. Consulta [Organizzare il tuo workspace](https://code.claude.com/docs/it/desktop.md#arrange-your-workspace).

121 121 

122**Visualizza l'anteprima della tua app.** Quando esegui il tuo server di sviluppo nel desktop, la tua app si apre nel riquadro Browser, che può anche [aprire siti esterni](https://code.claude.com/docs/it/desktop.md#browse-external-sites). Claude può visualizzare l'app in esecuzione, testare gli endpoint, ispezionare i log e iterare in base a ciò che vede. Consulta [Visualizzare l'anteprima della tua app](https://code.claude.com/docs/it/desktop.md#preview-your-app).122**Visualizza l'anteprima della tua app.** Quando esegui il tuo server di sviluppo nel desktop, la tua app si apre nel riquadro Browser, che può anche [aprire siti esterni](https://code.claude.com/docs/it/desktop.md#browse-external-sites). Claude può visualizzare l'app in esecuzione, testare gli endpoint, ispezionare i log e iterare in base a ciò che vede. Consulta [Visualizzare l'anteprima della tua app](https://code.claude.com/docs/it/desktop.md#preview-your-app).

123 123 

124**Monitora la tua pull request.** Dopo l'apertura di una PR, Claude Code monitora i risultati dei controlli CI e può correggere automaticamente i fallimenti. Consulta [Monitorare lo stato della pull request](https://code.claude.com/docs/it/desktop.md#monitor-pull-request-status).124**Monitora la tua pull request.** Dopo aver aperto una PR, Claude Code monitora i risultati dei controlli CI e può correggere automaticamente gli errori. Consulta [Monitorare lo stato della pull request](https://code.claude.com/docs/it/desktop.md#monitor-pull-request-status).

125 125 

126**Pianifica il lavoro di Claude.** Configura delle [attività pianificate](https://code.claude.com/docs/it/desktop-scheduled-tasks.md) per eseguire Claude automaticamente a intervalli ricorrenti: una code review quotidiana ogni mattina, un audit settimanale delle dipendenze o un briefing che attinge dai tuoi strumenti collegati.126**Pianifica il lavoro di Claude.** Configura [attività pianificate](https://code.claude.com/docs/it/desktop-scheduled-tasks.md) per eseguire Claude automaticamente su base ricorrente: una code review quotidiana ogni mattina, un audit settimanale delle dipendenze o un briefing che attinge dai tuoi strumenti collegati.

127 127 

128**Amplia il lavoro quando sei pronto.** Apri [sessioni parallele](https://code.claude.com/docs/it/desktop.md#work-in-parallel-with-sessions) dalla barra laterale per lavorare su più attività contemporaneamente, facoltativamente ciascuna nel proprio worktree Git, e apri il [riquadro delle attività](https://code.claude.com/docs/it/desktop.md#watch-background-tasks) per osservare i subagent e i comandi in background che una sessione ha in esecuzione. Apri una [chat laterale](https://code.claude.com/docs/it/desktop.md#ask-a-side-question-without-derailing-the-session) per fare una domanda senza deviare il thread principale. Invia il [lavoro di lunga durata al cloud](https://code.claude.com/docs/it/desktop.md#run-long-running-tasks-in-the-cloud) in modo che continui anche se chiudi l'app, oppure [sposta nel cloud una sessione che hai già avviato](https://code.claude.com/docs/it/desktop.md#continue-in-another-surface) se un'attività richiede più tempo del previsto. [Collega strumenti esterni](https://code.claude.com/docs/it/desktop.md#extend-claude-code) come GitHub, Slack e Linear per riunire il tuo workflow.128**Espanditi quando sei pronto.** Apri [sessioni parallele](https://code.claude.com/docs/it/desktop.md#work-in-parallel-with-sessions) dalla barra laterale per lavorare su più attività contemporaneamente, facoltativamente ciascuna nel proprio worktree Git, e apri il [riquadro delle attività](https://code.claude.com/docs/it/desktop.md#watch-background-tasks) per osservare i subagent e i comandi in background che una sessione ha in esecuzione. Apri una [chat laterale](https://code.claude.com/docs/it/desktop.md#ask-a-side-question-without-derailing-the-session) per fare una domanda senza deviare il thread principale. Invia il [lavoro di lunga durata al cloud](https://code.claude.com/docs/it/desktop.md#run-long-running-tasks-in-the-cloud) in modo che continui anche se chiudi l'app, oppure [sposta nel cloud una sessione che hai già avviato](https://code.claude.com/docs/it/desktop.md#continue-in-another-surface) se un'attività richiede più tempo del previsto. [Collega strumenti esterni](https://code.claude.com/docs/it/desktop.md#extend-claude-code) come GitHub, Slack e Linear per unificare il tuo workflow.

129 129 

130## Cosa fare dopo130## Cosa fare dopo

131 131 

devcontainer.md +1 −1

Details

79 79 

80> [!NOTE]80> [!NOTE]

81>81>

82> Se l'accesso al browser si completa ma il callback non raggiunge mai il contenitore, copia il codice mostrato nel browser e incollalo al prompt `Paste code here if prompted` nel terminale. Questo può accadere quando l'inoltro delle porte dell'editor non instrada il callback localhost.82> Per l'accesso con Anthropic: se non si apre alcun browser, oppure il browser completa l'accesso e poi mostra un errore di connessione `localhost`, usa l'URL di accesso mostrato sopra il prompt di incolla del terminale. Copialo nel browser, accedi lì, quindi incolla in quel prompt il codice mostrato dal browser. Se incollare non ha alcun effetto, vedi [L'accesso OAuth non riesce in WSL2, SSH o nei contenitori](https://code.claude.com/docs/it/troubleshoot-install.md#oauth-login-fails-in-wsl2-ssh-or-containers).

83 83 

84## Mantieni l'autenticazione e le impostazioni tra i rebuild84## Mantieni l'autenticazione e le impostazioni tra i rebuild

85 85 

env-vars.md +3 −3

Details

233| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Imposta su `1` per disattivare l'elaborazione degli allegati. Le menzioni di file con la sintassi `@` vengono inviate come testo semplice invece di essere espanse nel contenuto del file. Ignorata nelle [impostazioni di progetto e locali](https://code.claude.com/docs/it/settings-reference.md#variables-claude-code-ignores-in-env) |233| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Imposta su `1` per disattivare l'elaborazione degli allegati. Le menzioni di file con la sintassi `@` vengono inviate come testo semplice invece di essere espanse nel contenuto del file. Ignorata nelle [impostazioni di progetto e locali](https://code.claude.com/docs/it/settings-reference.md#variables-claude-code-ignores-in-env) |

234| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Imposta su `1` per fare in modo che un processo Claude Code esegua direttamente il proprio comando [`gcpAuthRefresh`](https://code.claude.com/docs/it/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](https://code.claude.com/docs/it/settings-reference#awsauthrefresh) invece di attendere mentre un altro processo lo esegue. Richiede Claude Code v2.1.286 o versioni successive |234| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Imposta su `1` per fare in modo che un processo Claude Code esegua direttamente il proprio comando [`gcpAuthRefresh`](https://code.claude.com/docs/it/settings-reference#gcpauthrefresh) o [`awsAuthRefresh`](https://code.claude.com/docs/it/settings-reference#awsauthrefresh) invece di attendere mentre un altro processo lo esegue. Richiede Claude Code v2.1.286 o versioni successive |

235| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Imposta su `1` per disattivare la [memoria automatica](https://code.claude.com/docs/it/memory.md#auto-memory). Imposta su `0` per forzare l'attivazione della memoria automatica anche quando la modalità `--bare` o [`autoMemoryEnabled: false`](https://code.claude.com/docs/it/settings-reference#automemoryenabled) la disattiverebbero. Quando è disattivata, Claude non crea né carica i file della memoria automatica |235| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Imposta su `1` per disattivare la [memoria automatica](https://code.claude.com/docs/it/memory.md#auto-memory). Imposta su `0` per forzare l'attivazione della memoria automatica anche quando la modalità `--bare` o [`autoMemoryEnabled: false`](https://code.claude.com/docs/it/settings-reference#automemoryenabled) la disattiverebbero. Quando è disattivata, Claude non crea né carica i file della memoria automatica |

236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Imposta su `1` per rimuovere il parametro `run_in_background` dagli strumenti Bash, PowerShell e subagent e per disattivare la scorciatoia Ctrl+B e le esecuzioni in background delle [skill eseguite in fork](https://code.claude.com/docs/it/skills.md#run-skills-in-a-subagent). Claude Code smette quindi anche di spostare automaticamente in background i subagent, le chiamate lunghe agli strumenti MCP e i comandi shell andati in timeout. Le [attività MCP](https://code.claude.com/docs/it/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task) e lo [strumento Monitor](https://code.claude.com/docs/it/tools-reference.md#monitor-tool) vengono comunque eseguiti in background |236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Imposta `1` per rimuovere il parametro `run_in_background` dagli strumenti Bash, PowerShell e subagent e per disattivare la scorciatoia Ctrl+B e le esecuzioni in background delle [skill con fork](https://code.claude.com/docs/it/skills.md#run-skills-in-a-subagent). Claude Code smette quindi anche di spostare automaticamente in background i subagent, le chiamate lunghe agli strumenti MCP e i comandi shell andati in timeout. Le [attività MCP](https://code.claude.com/docs/it/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task) e lo [strumento Monitor](https://code.claude.com/docs/it/tools-reference.md#monitor-tool) continuano a essere eseguiti in background. Per disattivare anche le [sessioni in background](https://code.claude.com/docs/it/agent-view.md#turn-off-agent-view), imposta `CLAUDE_CODE_DISABLE_AGENT_VIEW` su `1` |

237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Imposta su `1` per impedire a Claude Code di trattare una risposta in streaming di [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) con un header `Content-Type` mancante o vuoto come event stream binario di Amazon Bedrock. Per impostazione predefinita, Claude Code presume che un gateway abbia rimosso l'header da una risposta altrimenti non modificata, quindi decodifica il corpo e lo streaming continua a funzionare. Impostala solo per un gateway che riemette anche lo stream come server-sent events; Claude Code legge allora il corpo senza header come server-sent events. Richiede Claude Code v2.1.239 o versioni successive |237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Imposta su `1` per impedire a Claude Code di trattare una risposta in streaming di [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) con un header `Content-Type` mancante o vuoto come event stream binario di Amazon Bedrock. Per impostazione predefinita, Claude Code presume che un gateway abbia rimosso l'header da una risposta altrimenti non modificata, quindi decodifica il corpo e lo streaming continua a funzionare. Impostala solo per un gateway che riemette anche lo stream come server-sent events; Claude Code legge allora il corpo senza header come server-sent events. Richiede Claude Code v2.1.239 o versioni successive |

238| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Imposta su `1` per saltare il controllo che verifica che una risposta in streaming di [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) abbia il content-type `application/vnd.amazon.eventstream`. Senza questa variabile, quando una risposta ha un content-type diverso, Claude Code fa fallire la richiesta con un errore che indica quel tipo, il che significa che un [gateway o un proxy sta trasformando la risposta](https://code.claude.com/docs/it/amazon-bedrock.md#streaming-errors-behind-a-gateway-or-proxy). Configura il gateway in modo che inoltri l'header `Content-Type` e il corpo senza modifiche invece di impostare questa variabile. Richiede Claude Code v2.1.208 o versioni successive |238| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Imposta su `1` per saltare il controllo che verifica che una risposta in streaming di [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) abbia il content-type `application/vnd.amazon.eventstream`. Senza questa variabile, quando una risposta ha un content-type diverso, Claude Code fa fallire la richiesta con un errore che indica quel tipo, il che significa che un [gateway o un proxy sta trasformando la risposta](https://code.claude.com/docs/it/amazon-bedrock.md#streaming-errors-behind-a-gateway-or-proxy). Configura il gateway in modo che inoltri l'header `Content-Type` e il corpo senza modifiche invece di impostare questa variabile. Richiede Claude Code v2.1.208 o versioni successive |

239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Imposta `1` per interrompere il lavoro in corso di una [sessione in background](https://code.claude.com/docs/it/agent-view.md) quando il [supervisore](https://code.claude.com/docs/it/agent-view.md#the-supervisor-process) arresta, riavvia o aggiorna il processo di quella sessione, invece di passarlo al processo successivo della sessione. Quel lavoro comprende i comandi shell in background in esecuzione della sessione, più i subagent in background a partire dalla v2.1.198. Influisce solo su quel passaggio: spostare una sessione in background con `←` o [`/background`](https://code.claude.com/docs/it/agent-view#from-inside-a-session) trasferisce comunque il lavoro in background in corso. Richiede Claude Code v2.1.196 o successivo |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Imposta `1` per interrompere il lavoro in corso di una [sessione in background](https://code.claude.com/docs/it/agent-view.md) quando il [supervisore](https://code.claude.com/docs/it/agent-view.md#the-supervisor-process) arresta, riavvia o aggiorna il processo di quella sessione, invece di passarlo al processo successivo della sessione. Quel lavoro comprende i comandi shell in background in esecuzione della sessione, più i subagent in background a partire dalla v2.1.198. Influisce solo su quel passaggio: spostare una sessione in background con `←` o [`/background`](https://code.claude.com/docs/it/agent-view#from-inside-a-session) trasferisce comunque il lavoro in background in corso. Richiede Claude Code v2.1.196 o successivo |


276| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Imposta su `1` per disattivare lo strumento [WebFetch](https://code.claude.com/docs/it/tools-reference.md#webfetch-tool-behavior). Lo strumento [WebSearch](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior) resta disponibile. Richiede Claude Code v2.1.285 o versioni successive |276| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Imposta su `1` per disattivare lo strumento [WebFetch](https://code.claude.com/docs/it/tools-reference.md#webfetch-tool-behavior). Lo strumento [WebSearch](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior) resta disponibile. Richiede Claude Code v2.1.285 o versioni successive |

277| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Imposta su `1` per avviare i comandi dello [strumento PowerShell](https://code.claude.com/docs/it/tools-reference.md#powershell-tool) su Windows direttamente invece che tramite il launcher `cmd.exe`. Per impostazione predefinita, il launcher consente a un comando PowerShell [in esecuzione in background](https://code.claude.com/docs/it/tools-reference.md#background-commands) di [passare al processo successivo della sessione](https://code.claude.com/docs/it/agent-view.md#the-supervisor-process), ad esempio quando [sposti la sessione in background](https://code.claude.com/docs/it/agent-view.md#from-inside-a-session). Se imposti la variabile, un comando PowerShell in background si arresta quando il processo della sessione termina. I comandi Bash non sono interessati. Richiede Claude Code v2.1.269 o versioni successive |277| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Imposta su `1` per avviare i comandi dello [strumento PowerShell](https://code.claude.com/docs/it/tools-reference.md#powershell-tool) su Windows direttamente invece che tramite il launcher `cmd.exe`. Per impostazione predefinita, il launcher consente a un comando PowerShell [in esecuzione in background](https://code.claude.com/docs/it/tools-reference.md#background-commands) di [passare al processo successivo della sessione](https://code.claude.com/docs/it/agent-view.md#the-supervisor-process), ad esempio quando [sposti la sessione in background](https://code.claude.com/docs/it/agent-view.md#from-inside-a-session). Se imposti la variabile, un comando PowerShell in background si arresta quando il processo della sessione termina. I comandi Bash non sono interessati. Richiede Claude Code v2.1.269 o versioni successive |

278| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Imposta su `1` per disattivare i [workflow](https://code.claude.com/docs/it/workflows.md#turn-workflows-off). Equivale all'impostazione [`disableWorkflows`](https://code.claude.com/docs/it/settings-reference#disableworkflows) |278| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Imposta su `1` per disattivare i [workflow](https://code.claude.com/docs/it/workflows.md#turn-workflows-off). Equivale all'impostazione [`disableWorkflows`](https://code.claude.com/docs/it/settings-reference#disableworkflows) |

279| `CLAUDE_CODE_EFFORT_LEVEL` | Imposta il livello di sforzo per i modelli supportati. Valori: `low`, `medium`, `high`, `xhigh`, `max` oppure `auto` per usare il valore predefinito del modello. I livelli disponibili dipendono dal modello. Ha la precedenza su `--effort`, `/effort` e sulle impostazioni `modelSettings` ed `effortLevel`. Un limite [`maxEffortLevel`](https://code.claude.com/docs/it/settings-reference#maxeffortlevel) si applica comunque. Consulta [Regolare il livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) |279| `CLAUDE_CODE_EFFORT_LEVEL` | Imposta il livello di sforzo per i modelli supportati. Valori: `low`, `medium`, `high`, `xhigh` o `max`. I livelli disponibili dipendono dal modello. Ha la precedenza su `--effort`, `/effort` e sulle impostazioni `modelSettings` ed `effortLevel`. Un limite [`maxEffortLevel`](https://code.claude.com/docs/it/settings-reference#maxeffortlevel) si applica comunque. Impostala su `auto` o `unset` per fare in modo che Claude Code [non invii alcun livello di sforzo](https://code.claude.com/docs/it/model-config.md#send-no-effort-level), così che l'API applichi il proprio valore predefinito per il modello. Consulta [Regolare il livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) |

280| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Imposta su `1` per aggiungere al flusso di messaggi i messaggi [`session_state_changed`](https://code.claude.com/docs/it/agent-sdk/typescript#sdksessionstatechangedmessage), che riportano lo stato della sessione. Richiede l'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) oppure `--print`, `--output-format stream-json` e `--verbose` |280| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Imposta su `1` per aggiungere al flusso di messaggi i messaggi [`session_state_changed`](https://code.claude.com/docs/it/agent-sdk/typescript#sdksessionstatechangedmessage), che riportano lo stato della sessione. Richiede l'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) oppure `--print`, `--output-format stream-json` e `--verbose` |

281| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Accettata per compatibilità con le versioni precedenti e non ha alcun effetto. La modalità auto è disponibile per impostazione predefinita su ogni provider, inclusi Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e le sessioni [Claude apps gateway](https://code.claude.com/docs/it/claude-apps-gateway) con accesso effettuato. Dalla v2.1.158 alla v2.1.206, impostarla su `1` era necessario per rendere disponibile la [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) su quei provider |281| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Accettata per compatibilità con le versioni precedenti e non ha alcun effetto. La modalità auto è disponibile per impostazione predefinita su ogni provider, inclusi Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e le sessioni [Claude apps gateway](https://code.claude.com/docs/it/claude-apps-gateway) con accesso effettuato. Dalla v2.1.158 alla v2.1.206, impostarla su `1` era necessario per rendere disponibile la [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode) su quei provider |

282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sovrascrive la disponibilità del [riepilogo della sessione](https://code.claude.com/docs/it/interactive-mode.md#session-recap). Imposta su `0` per forzare la disattivazione dei riepiloghi indipendentemente dall'interruttore in `/config`. Imposta su `1` per forzare l'attivazione dei riepiloghi quando [`awaySummaryEnabled`](https://code.claude.com/docs/it/settings-reference#awaysummaryenabled) è `false`. Ha la precedenza sull'impostazione e sull'interruttore in `/config` |282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Sovrascrive la disponibilità del [riepilogo della sessione](https://code.claude.com/docs/it/interactive-mode.md#session-recap). Imposta su `0` per forzare la disattivazione dei riepiloghi indipendentemente dall'interruttore in `/config`. Imposta su `1` per forzare l'attivazione dei riepiloghi quando [`awaySummaryEnabled`](https://code.claude.com/docs/it/settings-reference#awaysummaryenabled) è `false`. Ha la precedenza sull'impostazione e sull'interruttore in `/config` |


584* Ottenere lo [strumento PowerShell](https://code.claude.com/docs/it/tools-reference.md#powershell-tool) per impostazione predefinita per gli account claude.ai e Console su Windows con Git Bash installato; Claude Code instrada i comandi della shell tramite Git Bash a meno che tu non imposti `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Su Windows senza Git Bash, lo strumento resta attivo584* Ottenere lo [strumento PowerShell](https://code.claude.com/docs/it/tools-reference.md#powershell-tool) per impostazione predefinita per gli account claude.ai e Console su Windows con Git Bash installato; Claude Code instrada i comandi della shell tramite Git Bash a meno che tu non imposti `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Su Windows senza Git Bash, lo strumento resta attivo

585* Ottenere il [feedback redatto da Claude](https://code.claude.com/docs/it/tools-reference.md#sendfeedback-tool-behavior), che Claude Code attiva tramite un flag recuperato585* Ottenere il [feedback redatto da Claude](https://code.claude.com/docs/it/tools-reference.md#sendfeedback-tool-behavior), che Claude Code attiva tramite un flag recuperato

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

587* Fare in modo che Claude Code [escluda gli strumenti MCP il cui schema di input verrebbe rifiutato dall'API](https://code.claude.com/docs/it/mcp.md#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](https://code.claude.com/docs/it/errors.md#tool-input-schema-is-invalid)587* Fare in modo che Claude Code [escluda gli strumenti MCP il cui schema di input verrebbe rifiutato dall'API](https://code.claude.com/docs/it/mcp.md#tools-with-invalid-input-schemas)

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

589 589 

590### Prima sessione dopo un'installazione o un aggiornamento590### Prima sessione dopo un'installazione o un aggiornamento

errors.md +295 −261

Details

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

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

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

222| `Cloud sessions aren't available with this Console sign-in. They need a claude.ai sign-in.` | [Unable to get organization UUID](https://code.claude.com/docs/it/claude-code-on-the-web.md#unable-to-get-organization-uuid) |

222| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](https://code.claude.com/docs/it/claude-code-on-the-web.md#unable-to-get-organization-uuid) |223| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](https://code.claude.com/docs/it/claude-code-on-the-web.md#unable-to-get-organization-uuid) |

223| `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) |224| `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) |

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


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

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

327| `Path contains null bytes` | [Errori degli strumenti](#path-cannot-contain-null-bytes) |328| `Path contains null bytes` | [Errori degli strumenti](#path-cannot-contain-null-bytes) |

329| `command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run` | [Errori degli strumenti](#command-contains-an-invisible-character) |

328| `File is too large to read as an image (the limit is 128MB)` | [Errori degli strumenti](#file-is-too-large-to-read-as-an-image) |330| `File is too large to read as an image (the limit is 128MB)` | [Errori degli strumenti](#file-is-too-large-to-read-as-an-image) |

329| `Cannot read this as an image: <path> is a pipe or a device` | [Errori degli strumenti](#file-is-too-large-to-read-as-an-image) |331| `Cannot read this as an image: <path> is a pipe or a device` | [Errori degli strumenti](#file-is-too-large-to-read-as-an-image) |

330| `subagent_type is required: the general-purpose agent is not available in this session` | [Errori degli strumenti](#subagent-type-is-required) |332| `subagent_type is required: the general-purpose agent is not available in this session` | [Errori degli strumenti](#subagent-type-is-required) |


397| `Claude Code process exited with code N` | [Errori del wrapper e dell'IDE](#claude-code-process-exited-with-code-n) |399| `Claude Code process exited with code N` | [Errori del wrapper e dell'IDE](#claude-code-process-exited-with-code-n) |

398| `The connection to Claude Code ended before this message completed` | [Errori del wrapper e dell'IDE](#the-connection-to-claude-code-ended-before-this-message-completed) |400| `The connection to Claude Code ended before this message completed` | [Errori del wrapper e dell'IDE](#the-connection-to-claude-code-ended-before-this-message-completed) |

399| `Could not locate the Claude CLI on PATH` | [Errori del wrapper e dell'IDE](#could-not-locate-the-claude-cli-on-path) |401| `Could not locate the Claude CLI on PATH` | [Errori del wrapper e dell'IDE](#could-not-locate-the-claude-cli-on-path) |

402| `The Claude Code program for this computer, the <build> build, could not be found` | [Errori di wrapper e IDE](#the-claude-code-program-for-this-computer-could-not-be-found) |

400| `Restored the code, but skipped N files` | [Avvisi e errori di Rewind](#restored-the-code-but-skipped-files) |403| `Restored the code, but skipped N files` | [Avvisi e errori di Rewind](#restored-the-code-but-skipped-files) |

401| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Avvisi e errori di Rewind](#no-files-were-restored) |404| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Avvisi e errori di Rewind](#no-files-were-restored) |

402| `Transcript writes are failing (...)` | [Avvisi di salvataggio della sessione](#transcript-writes-are-failing) |405| `Transcript writes are failing (...)` | [Avvisi di salvataggio della sessione](#transcript-writes-are-failing) |


485 488 

486A partire dalla v2.1.198, il suggerimento dello spinner usuale è soppresso durante i tentativi. Una volta rivelato il motivo dell'errore, se il guasto è un sovraccarico 529 la riga sotto il countdown nomina anche dove controllare lo stato del servizio: `status.claude.com` sull'API Anthropic, o l'host del provider o del gateway nominato nel messaggio su altre configurazioni.489A partire dalla v2.1.198, il suggerimento dello spinner usuale è soppresso durante i tentativi. Una volta rivelato il motivo dell'errore, se il guasto è un sovraccarico 529 la riga sotto il countdown nomina anche dove controllare lo stato del servizio: `status.claude.com` sull'API Anthropic, o l'host del provider o del gateway nominato nel messaggio su altre configurazioni.

487 490 

488Se nessun dato arriva sul flusso di risposta per 20 secondi mentre una richiesta è ancora in sospeso, lo spinner mostra `Waiting for API response · will retry in … · check your network` prima che sia iniziato un tentativo. La richiesta non è ancora fallita: il countdown corre fino al punto in cui Claude Code interrompe la connessione bloccata. Dopo l'interruzione, ciò che vedi dipende da quanto lontano era arrivata la risposta:491#### Waiting for API response

492 

493Il banner `Waiting for API response · will retry in … · check your network` indica che Claude Code ha atteso almeno 20 secondi senza ricevere alcun dato per una richiesta. La richiesta non è ancora fallita: il countdown corre fino al punto in cui Claude Code interrompe la connessione bloccata. Se l'interruzione avviene:

489 494 

490* Prima che Claude abbia completato un blocco di testo o una chiamata a uno strumento, o ne abbia iniziato uno dopo aver finito il suo ragionamento, Claude Code ritenta la richiesta o termina il turno con un errore. [Automatic retries](#automatic-retries) dice quali blocchi ritenta e quante volte.495* Prima che Claude abbia completato un blocco di testo o una chiamata a uno strumento, o ne abbia iniziato uno dopo aver finito il suo ragionamento, Claude Code ritenta la richiesta o termina il turno con un errore. [Automatic retries](#automatic-retries) dice quali blocchi ritenta e quante volte.

491* Dopo che Claude ha completato un blocco di testo o una chiamata a uno strumento, o ne ha iniziato uno dopo aver finito il suo ragionamento, ma prima che Claude abbia finito la risposta, Claude Code mantiene ciò che Claude ha completato, continua il turno da qualsiasi chiamata a uno strumento che Claude ha finito, e mostra [The response above may be incomplete](#the-response-above-may-be-incomplete). In una sessione non interattiva, e per la risposta di un subagent in qualsiasi sessione, Claude Code potrebbe prima chiedere a Claude di continuare la risposta; quella voce dice quando lo fa e quando vedi ancora l'avviso lì.496* Dopo che Claude ha completato un blocco di testo o una chiamata a uno strumento, o ne ha iniziato uno dopo aver finito il suo ragionamento, ma prima che Claude abbia finito la risposta, Claude Code mantiene ciò che Claude ha completato, continua il turno da qualsiasi chiamata a uno strumento che Claude ha finito, e mostra [The response above may be incomplete](#the-response-above-may-be-incomplete). In una sessione non interattiva, e per la risposta di un subagent in qualsiasi sessione, Claude Code potrebbe prima chiedere a Claude di continuare la risposta; quella voce dice quando lo fa e quando vedi ancora l'avviso lì.

492* Dopo che Claude ha finito la risposta, Claude Code termina il turno normalmente.497* Dopo che Claude ha finito la risposta, Claude Code termina il turno normalmente.

493 498 

494Il banner si cancella da solo una volta che i dati riprendono o un tentativo ha successo. Se riappare ad ogni tentativo, trattalo come un [network issue](#unable-to-connect-to-api). Prima della v2.1.185, il banner appariva dopo 10 secondi con una formulazione diversa.499Il banner si cancella da solo una volta che i dati riprendono o un tentativo ha successo. Se riappare ad ogni tentativo, trattalo come un [network issue](#unable-to-connect-to-api). Se ti connetti tramite un gateway, vedi [Il banner di attesa compare e scompare dietro un gateway](#waiting-banner-behind-a-gateway). Prima della v2.1.185, il banner appariva dopo 10 secondi con una formulazione diversa.

495 

496Mentre Claude sta consultando l'[advisor](https://code.claude.com/docs/it/advisor.md), il banner appare dopo 90 secondi senza dati invece di 20, perché una lunga revisione dell'advisor può non inviare nulla per ben oltre 20 secondi. Prima della v2.1.214, la soglia di 20 secondi si applicava anche durante le chiamate dell'advisor, quindi il banner appariva durante le revisioni dell'advisor anche quando non c'era nulla di sbagliato.

497 500 

498#### Il banner di attesa compare e scompare dietro un gateway501#### Il banner di attesa compare e scompare dietro un gateway

499 502 


2495 2498 

2496**Cosa fare:**2499**Cosa fare:**

2497 2500 

2498* Se la tua versione di Claude Code è precedente alla v2.1.216, esegui `claude update`.2501* Se la tua versione di Claude Code è precedente alla v2.1.300, esegui [`claude update`](https://code.claude.com/docs/it/setup#update-claude-code) nella tua shell. Prima della v2.1.300, Claude Code non [riprovava la richiesta senza i parametri dello strumento rifiutato](https://code.claude.com/docs/it/mcp.md#tools-whose-input-schema-the-api-refuses), quindi questo errore si ripeteva a ogni richiesta che includeva lo strumento.

2499* Rimuovi o [disabilita](https://code.claude.com/docs/it/mcp.md#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.2502* Rimuovi o [disabilita](https://code.claude.com/docs/it/mcp.md#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.

2500* 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](https://code.claude.com/docs/it/mcp.md#tools-with-invalid-input-schemas).2503* 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](https://code.claude.com/docs/it/mcp.md#tools-with-invalid-input-schemas).

2501 2504 


3002 3005 

3003## Errori della riga di comando3006## Errori della riga di comando

3004 3007 

3005Questi errori provengono dalla riga di comando `claude` e dai suoi sottocomandi, da un nome di comando che invii al prompt e da comandi come `/security-review` che raccolgono contesto eseguendo comandi della shell prima che venga eseguito il loro prompt. Provengono anche da `/tui`, che riavvia la CLI.3008Questi errori provengono dalla riga di comando `claude` e dai suoi sottocomandi, da un nome di comando che invii al prompt e da comandi come `/security-review` che raccolgono il contesto eseguendo comandi shell prima che venga eseguito il loro prompt. Provengono anche da `/tui`, che riavvia la CLI.

3006 3009 

3007### Conflitto tra `--bg` e `--print`3010### Conflitto tra `--bg` e `--print`

3008 3011 


3014 3017 

3015**Cosa fare:**3018**Cosa fare:**

3016 3019 

3017* Rimuovi `-p` o `--print`. `--bg` accetta il prompt come argomento posizionale, quindi `claude --bg "<task>"` è il comando completo. Consulta [Avviare nuovi agenti dalla shell](https://code.claude.com/docs/it/agent-view.md#from-your-shell).3020* Rimuovi `-p` o `--print`. `--bg` accetta il prompt come argomento posizionale, quindi `claude --bg "<task>"` è il comando completo. Consulta [Inviare nuovi agenti dalla tua shell](https://code.claude.com/docs/it/agent-view.md#from-your-shell).

3018* Per eseguire il prompt in modo non interattivo e stampare il risultato invece di creare una sessione in background, rimuovi `--bg` ed esegui `claude -p "<task>"`3021* Per eseguire il prompt in modo non interattivo e stampare il risultato invece di creare una sessione in background, rimuovi `--bg` ed esegui `claude -p "<task>"`

3019 3022 

3020### Couldn't tell whether `--bg` is a flag or text3023### Couldn't tell whether `--bg` is a flag or text

3021 3024 

3022Hai eseguito `claude` con `--bg` o `--background` in una posizione in cui Claude Code non è riuscito a capire se lo intendessi come flag di background o come testo. Il comando non ha avviato nulla, ha stampato questa riga ed è terminato con codice di uscita 1:3025Hai eseguito `claude` con `--bg` o `--background` in una posizione in cui Claude Code non riusciva a capire se lo intendevi come flag per il background o come testo. Il comando non ha avviato nulla, ha stampato questa riga ed è uscito con codice 1:

3023 3026 

3024```text theme={null}3027```text theme={null}

3025Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>3028Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>

3026```3029```

3027 3030 

3028Se hai digitato `--background`, la riga indica invece `--background`.3031Se hai digitato `--background`, la riga nomina invece `--background`.

3029 3032 

3030**Cosa fare:**3033**Cosa fare:**

3031 3034 

3032* Per avviare una [sessione in background](https://code.claude.com/docs/it/agent-view.md#from-your-shell), esegui di nuovo il comando nella tua shell mettendo il flag per primo: `claude --bg --name nightly-audit "<task>"`3035* Per avviare una [sessione in background](https://code.claude.com/docs/it/agent-view.md#from-your-shell), esegui di nuovo il comando nella tua shell mettendo il flag per primo: `claude --bg --name nightly-audit "<task>"`

3033 3036 

3034### Conflitto tra un flag del prompt di sistema e la sua forma su file3037### Conflitto tra un flag del prompt di sistema e la sua forma con file

3035 3038 

3036Hai passato [`--append-subagent-system-prompt`](https://code.claude.com/docs/it/cli-reference#cli-flags) insieme a `--append-subagent-system-prompt-file` in un'unica invocazione di `claude`, quindi `claude` termina con codice di uscita 1 invece di avviare la sessione:3039Hai passato [`--append-subagent-system-prompt`](https://code.claude.com/docs/it/cli-reference#cli-flags) insieme a `--append-subagent-system-prompt-file` in un'unica invocazione di `claude`, quindi `claude` esce con codice 1 invece di avviare la sessione:

3037 3040 

3038```text theme={null}3041```text theme={null}

3039Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.3042Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.

3040```3043```

3041 3044 

3042Prima della v2.1.283, `claude` terminava allo stesso modo quando passavi `--system-prompt` con `--system-prompt-file`, oppure `--append-system-prompt` con `--append-system-prompt-file`, perché quelle coppie entravano in conflitto invece di [combinarsi](https://code.claude.com/docs/it/cli-reference.md#system-prompt-flags). In quelle versioni il messaggio indica la coppia che hai combinato.3045Prima della v2.1.283, `claude` usciva allo stesso modo quando passavi `--system-prompt` con `--system-prompt-file`, oppure `--append-system-prompt` con `--append-system-prompt-file`, perché queste coppie entravano in conflitto invece di [combinarsi](https://code.claude.com/docs/it/cli-reference.md#system-prompt-flags). In quelle versioni il messaggio nomina la coppia che hai combinato.

3043 3046 

3044**Cosa fare:**3047**Cosa fare:**

3045 3048 

3046* Mantieni una forma del flag e rimuovi l'altra. Per combinare un file di prompt fisso con testo specifico per ogni esecuzione, unisci il testo nel file prima dell'avvio invece di passare entrambi i flag3049* Mantieni una sola forma del flag ed elimina l'altra. Per combinare un file di prompt fisso con un testo specifico per ogni esecuzione, unisci il testo al file prima dell'avvio invece di passare entrambi i flag

3047 3050 

3048### Configurazione `--agents` non valida3051### Invalid `--agents` configuration

3049 3052 

3050Il valore che hai passato a `--agents` non è valido, quindi `claude` termina con codice di uscita 1 invece di avviare la sessione. Quando passi `--safe-mode` o imposti [`CLAUDE_CODE_SAFE_MODE`](https://code.claude.com/docs/it/env-vars#variables), Claude Code ignora completamente `--agents`. Con `--resume` o `--continue`, un valore JSON inline non viene verificato e la sessione si avvia; un valore letto da un file viene verificato a ogni avvio. Prima della v2.1.242, Claude Code avviava comunque la sessione.3053Il valore che hai passato a `--agents` non è valido, quindi `claude` esce con codice 1 invece di avviare la sessione. Quando passi `--safe-mode` o imposti [`CLAUDE_CODE_SAFE_MODE`](https://code.claude.com/docs/it/env-vars#variables), Claude Code ignora completamente `--agents`. Con `--resume` o `--continue`, un valore JSON inline non viene controllato e la sessione si avvia; un valore letto da un file viene controllato a ogni avvio. Prima della v2.1.242, Claude Code avviava comunque la sessione.

3051 3054 

3052```text theme={null}3055```text theme={null}

3053Error: Invalid --agents configuration:3056Error: Invalid --agents configuration:

3054<what failed>3057<what failed>

3055```3058```

3056 3059 

3057Ciò che segue la prima riga dipende da come il valore non è risultato valido. Claude Code esegue questi controlli in ordine e si ferma al primo che fallisce. Se il tuo valore presenta due tipi di problema, vedi il secondo solo dopo aver corretto il primo:3060Ciò che segue la prima riga dipende da come il valore non è risultato valido. Claude Code esegue questi controlli in ordine e si ferma al primo che fallisce. Se il tuo valore ha due tipi di problemi, vedi il secondo solo dopo aver corretto il primo:

3058 3061 

30591. Quando il valore inizia con `{` ma non viene analizzato come JSON, oppure il contenuto di un file `--agents` non viene analizzato, Claude Code stampa una riga `invalid JSON:` che riporta il messaggio del parser JSON stesso30621. Quando il valore inizia con `{` ma non viene analizzato come JSON, oppure il contenuto di un file `--agents` non viene analizzato, Claude Code stampa una riga `invalid JSON:` che riporta il messaggio del parser JSON

30602. Quando viene analizzato ma una definizione di agente non corrisponde allo schema per i [subagent definiti tramite CLI](https://code.claude.com/docs/it/sub-agents.md#choose-the-subagent-scope), Claude Code stampa una riga per ogni problema30632. Quando viene analizzato ma una definizione di agente non corrisponde allo schema per i [subagent definiti dalla CLI](https://code.claude.com/docs/it/sub-agents.md#choose-the-subagent-scope), Claude Code stampa una riga per ogni problema

30613. Quando il nome di un agente inizia con `-`, Claude Code stampa `<name>: agent names must not start with '-'`30643. Quando il nome di un agente inizia con `-`, Claude Code stampa `<name>: agent names must not start with '-'`

3062 3065 

3063Quando ci sono più di 20 righe di problemi, Claude Code stampa le prime 20 e sostituisce le restanti con `…and N more`.3066Quando ci sono più di 20 righe di problemi, Claude Code stampa le prime 20 e sostituisce le restanti con `…and N more`.

3064 3067 

3065Con `--print`, `--agents` accetta anche [il percorso di un file JSON](https://code.claude.com/docs/it/sub-agents.md#choose-the-subagent-scope) al posto dell'oggetto inline. Prima della v2.1.281, `--agents` accettava solo JSON inline e trattava un percorso di file come JSON non valido. La forma su file ha i propri rifiuti, stampati al posto di questo messaggio, tra cui questi:3068Con `--print`, `--agents` accetta anche [il percorso di un file JSON](https://code.claude.com/docs/it/sub-agents.md#choose-the-subagent-scope) al posto dell'oggetto inline. Prima della v2.1.281, `--agents` accettava solo JSON inline e trattava un percorso di file come JSON non valido. La forma con file ha rifiuti propri, stampati al posto di questo messaggio, tra cui questi:

3066 3069 

3067* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code ha letto il valore come percorso di file in una sessione interattiva. Passa le definizioni come JSON inline, oppure aggiungi `-p` per leggerle da un file.3070* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code ha letto il valore come percorso di file in una sessione interattiva. Passa le definizioni come JSON inline, oppure aggiungi `-p` per leggerle da un file.

3068* **`Error: --agents file not found: <path>`**: non esiste alcun file in quel percorso. Un valore che non inizia con `{` e non è JSON valido viene letto come percorso, quindi anche un JSON inline alterato dalla tua shell può fallire in questo modo. Controlla il percorso o le virgolette ed esegui di nuovo il comando.3071* **`Error: --agents file not found: <path>`**: non esiste alcun file in quel percorso. Un valore che non inizia con `{` e non è JSON valido viene letto come percorso, quindi anche un JSON inline alterato dalla tua shell può fallire in questo modo. Controlla il percorso o le virgolette ed esegui di nuovo il comando.

3069 3072 

3070**Cosa fare:**3073**Cosa fare:**

3071 3074 

3072* Correggi ogni problema elencato nel messaggio, quindi esegui di nuovo il comando. Consulta [i campi accettati da un subagent definito tramite CLI](https://code.claude.com/docs/it/sub-agents.md#choose-the-subagent-scope).3075* Correggi ogni problema elencato nel messaggio, quindi esegui di nuovo il comando. Consulta [i campi accettati da un subagent definito dalla CLI](https://code.claude.com/docs/it/sub-agents.md#choose-the-subagent-scope).

3073 3076 

3074### Non è possibile creare sessioni cloud da una sessione `--restricted`3077### Cloud sessions cannot be created from a `--restricted` session

3075 3078 

3076Quando avvii una sessione con [`--restricted`](https://code.claude.com/docs/it/cli-reference#cli-flags), Claude Code si rifiuta di creare [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md#from-terminal-to-cloud) a partire da essa, perché la nuova sessione verrebbe eseguita al di fuori del processo con restrizioni e non applicherebbe la modalità con restrizioni. Claude Code rifiuta lato client, prima di contattare il server, quindi non viene creata alcuna sessione cloud:3079Quando avvii una sessione con [`--restricted`](https://code.claude.com/docs/it/cli-reference#cli-flags), Claude Code si rifiuta di creare [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md#from-terminal-to-cloud) a partire da essa, perché la nuova sessione verrebbe eseguita al di fuori del processo con restrizioni e non applicherebbe la modalità con restrizioni. Claude Code rifiuta sul client, prima di contattare il server, quindi non viene creata alcuna sessione cloud:

3077 3080 

3078```text theme={null}3081```text theme={null}

3079Cloud sessions cannot be created from a --restricted session: they would not enforce it.3082Cloud sessions cannot be created from a --restricted session: they would not enforce it.


3086 3089 

3087Prima della v2.1.248, Claude Code non aveva il flag `--restricted`; le versioni precedenti rifiutano il flag stesso con un errore di opzione sconosciuta.3090Prima della v2.1.248, Claude Code non aveva il flag `--restricted`; le versioni precedenti rifiutano il flag stesso con un errore di opzione sconosciuta.

3088 3091 

3089### Le sessioni cloud sono disabilitate dalla policy della tua organizzazione3092### Cloud sessions are disabled by your organization's policy

3090 3093 

3091La policy `allow_remote_sessions` della tua organizzazione è disattivata, quindi le [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) e i comandi che le usano non sono disponibili:3094La policy `allow_remote_sessions` della tua organizzazione è disattivata, quindi le [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) e i comandi che le usano non sono disponibili:

3092 3095 


3094Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.3097Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

3095```3098```

3096 3099 

3097Il messaggio appare quando [crei una sessione cloud dal terminale](https://code.claude.com/docs/it/claude-code-on-the-web.md#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).3100Il messaggio compare quando [crei una sessione cloud dal terminale](https://code.claude.com/docs/it/claude-code-on-the-web.md#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 questi comandi restituiva invece [`Unknown command`](#unknown-command).

3098 3101 

3099Se 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).3102Se il messaggio invece nomina una credenziale usata da questa sessione 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).

3100 3103 

3101**Cosa fare:**3104**Cosa fare:**

3102 3105 

3103* Chiedi a un [Owner](https://code.claude.com/docs/it/server-managed-settings.md#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)3106* Chiedi a un [Owner](https://code.claude.com/docs/it/server-managed-settings.md#access-control) della tua organizzazione di abilitare le sessioni cloud nelle impostazioni di amministrazione di Claude Code all'indirizzo [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

3104 3107 

3105### Cloud sessions use your claude.ai login3108### Cloud sessions use your claude.ai login

3106 3109 

3107Quando 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:3110Quando il [rifiuto della policy](#cloud-sessions-are-disabled-by-your-organizations-policy) nomina una credenziale usata da questa sessione 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:

3108 3111 

3109```text theme={null}3112```text theme={null}

3110Cloud 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.3113Cloud 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.

3111```3114```

3112 3115 

3113L'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.3116L'ultima frase significa che le sessioni cloud vengono eseguite con il tuo accesso a claude.ai anziché con quella credenziale. Questa forma compare 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 dice di contattare l'amministratore della tua organizzazione.

3114 3117 

3115### Couldn't verify your organization's policy for cloud sessions3118### Couldn't verify your organization's policy for cloud sessions

3116 3119 


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

3121```3124```

3122 3125 

3123All'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.`3126All'interno di una sessione, anche un comando che richiede le sessioni cloud, come `/teleport` o `/web-setup`, restituisce questo messaggio. Lo fa anche nei casi in cui la tua shell stamperebbe una forma `Cloud sessions aren't available:`, e la sua seconda frase recita `Check your network connection, then restart Claude Code and try again.`

3124 3127 

3125Una 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 è:3128Una volta che la richiesta della policy è fallita, il messaggio indica cosa è fallito. Questo vale quando avvii, riprendi o invii un messaggio a una sessione cloud dalla tua shell con un flag come `--cloud` o `--teleport`. Senza alcun percorso verso l'API, recita:

3126 3129 

3127```text theme={null}3130```text theme={null}

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

3129```3132```

3130 3133 

3131Altri 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:3134Altri errori seguono la stessa apertura con la loro causa specifica, 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, come una variabile d'ambiente `ANTHROPIC_API_KEY`, il messaggio può anche nominarla e dirti di rimuoverla:

3132 3135 

3133```text theme={null}3136```text theme={null}

3134Cloud 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.3137Cloud 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.


3139**Cosa fare:**3142**Cosa fare:**

3140 3143 

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

3142* 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 comando3145* Per un messaggio `Cloud sessions aren't available:`, fai ciò che richiede la sua causa, ad esempio controllare il tuo proxy o rimuovere la credenziale indicata, quindi esegui di nuovo il comando

3143 3146 

3144### Nessuno stash eseguito perché una cartella ha sostituito un file tracciato3147### Nulla è stato messo in stash perché una cartella ha sostituito un file tracciato

3145 3148 

3146Questo 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](https://code.claude.com/docs/it/claude-code-on-the-web.md#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:3149Questo messaggio indica che una cartella nel tuo checkout si trova ora dove prima c'era un file o un link tracciato da git. Compare dopo che scegli l'opzione di stash mentre porti una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md#from-cloud-to-terminal) nel tuo terminale, ad esempio con `claude --teleport` o `/teleport`. Mettere in stash quello stato potrebbe eliminare i file all'interno della cartella, quindi Claude Code rifiuta lo stash e lascia invariati il checkout e l'indice:

3147 3150 

3148```text wrap theme={null}3151```text wrap theme={null}

3149Error: 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.3152Error: 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.


3151 3154 

3152**Cosa fare:**3155**Cosa fare:**

3153 3156 

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

3155 3158 

3156### Il valore di `--json-schema` non è un JSON Schema valido3159### Il valore di `--json-schema` non è un JSON Schema valido

3157 3160 

3158Lo schema che hai passato a [`--json-schema`](https://code.claude.com/docs/it/cli-reference#cli-flags) in [modalità non interattiva](https://code.claude.com/docs/it/headless.md#get-structured-output) non ha superato la compilazione JSON Schema, quindi `claude` termina con codice di uscita 1 invece di eseguire il prompt. Prima della v2.1.205, uno schema non valido produceva un output non strutturato senza alcun errore, e qualsiasi schema che usasse la parola chiave `format` veniva trattato come non valido.3161Lo schema che hai passato a [`--json-schema`](https://code.claude.com/docs/it/cli-reference#cli-flags) in [modalità non interattiva](https://code.claude.com/docs/it/headless.md#get-structured-output) non ha superato la compilazione JSON Schema, quindi `claude` esce con codice 1 invece di eseguire il prompt. Prima della v2.1.205, uno schema non valido produceva un output non strutturato senza alcun errore, e qualsiasi schema che usava la parola chiave `format` veniva considerato non valido.

3159 3162 

3160```text theme={null}3163```text theme={null}

3161Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values3164Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

3162```3165```

3163 3166 

3164Il testo dopo i secondi due punti è la diagnostica del validatore e indica la parola chiave o la posizione che non ha superato la verifica. Gli schemi che usano la parola chiave `format`, come `"format": "email"`, sono validi: Claude Code accetta `format` come annotazione e non lo applica.3167Il testo dopo i secondi due punti è la diagnostica del validatore e nomina la parola chiave o la posizione che non ha superato il controllo. Gli schemi che usano la parola chiave `format`, come `"format": "email"`, sono validi: Claude Code accetta `format` come annotazione e non la applica.

3165 3168 

3166Claude Code esegue due controlli prima della compilazione dello schema: rifiuta un valore che non è JSON analizzabile con `Error: --json-schema is not valid JSON`, e un JSON valido che non è un oggetto con `Error: --json-schema must be a JSON object`.3169Claude Code esegue due controlli prima della compilazione dello schema: rifiuta un valore che non è JSON analizzabile con `Error: --json-schema is not valid JSON`, e un JSON valido che non è un oggetto con `Error: --json-schema must be a JSON object`.

3167 3170 


3170* Correggi la parte dello schema indicata dalla diagnostica, quindi esegui di nuovo il comando3173* Correggi la parte dello schema indicata dalla diagnostica, quindi esegui di nuovo il comando

3171* Consulta [Ottenere output strutturato](https://code.claude.com/docs/it/headless.md#get-structured-output) per uno schema e un comando funzionanti3174* Consulta [Ottenere output strutturato](https://code.claude.com/docs/it/headless.md#get-structured-output) per uno schema e un comando funzionanti

3172 3175 

3173### Il file di impostazioni supera il limite di 2MiB3176### Settings file exceeds the 2MiB limit

3174 3177 

3175Il file che hai passato a [`--settings`](https://code.claude.com/docs/it/cli-reference#cli-flags) è più grande di 2 MiB, quindi `claude` termina con codice di uscita 1 all'avvio invece di caricarlo. Prima della v2.1.214, Claude Code leggeva il file senza alcun controllo sulla dimensione, e un file di diversi gigabyte o un file di dispositivo come `/dev/zero` facevano crescere la memoria senza limiti.3178Il file che hai passato a [`--settings`](https://code.claude.com/docs/it/cli-reference#cli-flags) è più grande di 2 MiB, quindi `claude` esce con codice 1 all'avvio invece di caricarlo. Prima della v2.1.214, Claude Code leggeva il file senza alcun controllo sulle dimensioni, e un file di diversi gigabyte o un file di dispositivo come `/dev/zero` faceva crescere la memoria senza limiti.

3176 3179 

3177```text theme={null}3180```text theme={null}

3178Error: Settings file exceeds the 2MiB limit: /path/to/settings.json3181Error: Settings file exceeds the 2MiB limit: /path/to/settings.json


3182 3185 

3183**Cosa fare:**3186**Cosa fare:**

3184 3187 

3185* Indica a `--settings` un file di impostazioni JSON regolare inferiore a 2 MiB. Consulta [Impostazioni](https://code.claude.com/docs/it/settings.md) per il formato.3188* Fai puntare `--settings` a un normale file di impostazioni JSON inferiore a 2 MiB. Consulta [Impostazioni](https://code.claude.com/docs/it/settings.md) per il formato.

3186 3189 

3187### La directory corrente non esiste più3190### The current directory no longer exists

3188 3191 

3189Hai avviato `claude` da una directory che è stata eliminata o spostata dopo che la tua shell vi è entrata, ad esempio un worktree o una directory temporanea rimossa da un'altra shell. Claude Code non riesce a leggere la propria directory di lavoro, quindi termina con codice di uscita 1 prima di avviare la sessione, sia in modalità interattiva sia in [modalità non interattiva](https://code.claude.com/docs/it/headless.md). Prima della v2.1.239, Claude Code andava in crash mostrando su stderr il sorgente minificato del bundle e uno stack `ENOENT ... uv_cwd` grezzo invece di questo messaggio.3192Hai avviato `claude` da una directory che è stata eliminata o spostata dopo che la tua shell vi è entrata, ad esempio un worktree o una directory temporanea rimossa da un'altra shell. Claude Code non riesce a leggere la sua directory di lavoro, quindi esce con codice 1 prima di avviare la sessione, sia in modalità interattiva sia in [modalità non interattiva](https://code.claude.com/docs/it/headless.md). Prima della v2.1.239, Claude Code andava in crash mostrando su stderr il codice sorgente minificato del bundle e uno stack `ENOENT ... uv_cwd` grezzo invece di questo messaggio.

3190 3193 

3191```text theme={null}3194```text theme={null}

3192The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.3195The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.


3195 3198 

3196La causa e la soluzione sono le stesse per entrambe le forme.3199La causa e la soluzione sono le stesse per entrambe le forme.

3197 3200 

3198Quando Claude Code non riesce a leggere la directory di lavoro per un motivo diverso, come una modifica dei permessi, il messaggio indica invece il codice di errore: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`3201Quando Claude Code non riesce a leggere la directory di lavoro per un motivo diverso, come una modifica dei permessi, il messaggio nomina invece il codice di errore: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`

3199 3202 

3200Su macOS, `EPERM` per una directory in `~/Desktop`, `~/Documents`, `~/Downloads` o iCloud Drive di solito significa che macOS sta bloccando l'accesso della tua app del terminale a quella cartella. Anche altri comandi che leggono quella cartella falliscono allo stesso modo: `ls` in quella posizione riporta `Operation not permitted`, anche con `sudo`.3203Su macOS, `EPERM` per una directory in `~/Desktop`, `~/Documents`, `~/Downloads` o iCloud Drive di solito significa che macOS sta bloccando l'accesso della tua app terminale a quella cartella. Gli altri comandi che leggono quella cartella falliscono allo stesso modo: `ls` lì riporta `Operation not permitted`, anche con `sudo`.

3201 3204 

3202**Cosa fare:**3205**Cosa fare:**

3203 3206 

3204* Passa a una directory esistente, come la tua directory home o la directory del progetto, quindi esegui di nuovo `claude`3207* Spostati in una directory esistente, come la tua directory home o la directory del progetto, quindi esegui di nuovo `claude`

3205* Se la directory è stata ricreata nello stesso percorso, la tua shell mantiene ancora quella eliminata. Esegui `cd "$PWD"` oppure esci dalla directory e rientraci, quindi esegui di nuovo `claude`3208* Se la directory è stata ricreata nello stesso percorso, la tua shell mantiene ancora quella eliminata. Esegui `cd "$PWD"` oppure esci e rientra nella directory, quindi esegui di nuovo `claude`

3206* Per `EPERM` su macOS, chiudi la tua app del terminale con Cmd+Q, riaprila, torna in quella cartella ed esegui `claude`. Se `ls` in quella cartella continua a fallire, apri **Impostazioni di Sistema > Privacy e sicurezza > File e cartelle**, attiva la cartella per la tua app del terminale, quindi riapri il terminale3209* Per `EPERM` su macOS, chiudi la tua app terminale con Cmd+Q, riaprila, torna a quella cartella ed esegui `claude`. Se `ls` in quella cartella continua a fallire, apri **Impostazioni di Sistema > Privacy e sicurezza > File e cartelle**, attiva la cartella per la tua app terminale, quindi riapri il terminale

3207 3210 

3208### Directory temporanea rifiutata o impossibile da creare3211### Directory temporanea rifiutata o impossibile da creare

3209 3212 

3210Su macOS e Linux, Claude Code crea all'avvio una directory temporanea privata, `claude-<uid>`, nella directory temporanea di sistema o nell'override [`CLAUDE_CODE_TMPDIR`](https://code.claude.com/docs/it/env-vars). Quando la directory non può essere creata, o una voce già presente in quel percorso non supera i controlli di sicurezza, Claude Code stampa l'errore su stderr e termina con codice di uscita 1 invece di avviare la sessione:3213Su macOS e Linux, Claude Code crea all'avvio una directory temporanea privata, `claude-<uid>`, nella directory temporanea di sistema o nella directory indicata dall'override [`CLAUDE_CODE_TMPDIR`](https://code.claude.com/docs/it/env-vars). Quando la directory non può essere creata, o una voce già presente in quel percorso non supera i controlli di sicurezza, Claude Code stampa l'errore su stderr ed esce con codice 1 anziché avviare la sessione:

3211 3214 

3212```text wrap theme={null}3215```text wrap theme={null}

3213Claude Code's temporary directory /tmp/claude-501 could not be created: the volume holding /tmp is full (ENOSPC). Free space on that volume, or set CLAUDE_CODE_TMPDIR to a directory on another one, then try again.3216Claude Code's temporary directory /tmp/claude-501 could not be created: the volume holding /tmp is full (ENOSPC). Free space on that volume, or set CLAUDE_CODE_TMPDIR to a directory on another one, then try again.


3222**Cosa fare:**3225**Cosa fare:**

3223 3226 

3224* Per `could not be created` seguito da `is full (ENOSPC)`, libera spazio su disco nel volume indicato dal messaggio. Quando invece dice `your disk quota on the volume holding /tmp is used up (EDQUOT)`, elimina i tuoi file su quel volume che non ti servono più3227* Per `could not be created` seguito da `is full (ENOSPC)`, libera spazio su disco nel volume indicato dal messaggio. Quando invece dice `your disk quota on the volume holding /tmp is used up (EDQUOT)`, elimina i tuoi file su quel volume che non ti servono più

3225* Per le forme `Refusing to use it`, rimuovi la voce indicata stessa, non ciò a cui punta un collegamento, e avvia di nuovo Claude Code; per la forma `owned by uid`, solo un amministratore o quell'utente può rimuoverla3228* Per le forme `Refusing to use it`, rimuovi la voce indicata stessa, non ciò a cui punta un link, e avvia di nuovo Claude Code; per la forma `owned by uid`, solo un amministratore o quell'utente può rimuoverla

3226* Per `is not readable`, esegui `chmod 0700` sulla directory indicata, oppure rimuovila e avvia di nuovo3229* Per `is not readable`, esegui `chmod 0700` sulla directory indicata, oppure rimuovila e avvia di nuovo

3227* In tutti questi casi, imposta [`CLAUDE_CODE_TMPDIR`](https://code.claude.com/docs/it/env-vars) su una directory che controlli e avvia di nuovo Claude Code, lasciando intatto il percorso rifiutato3230* In tutti questi casi, imposta [`CLAUDE_CODE_TMPDIR`](https://code.claude.com/docs/it/env-vars) su una directory che controlli e avvia di nuovo Claude Code, lasciando intatto il percorso rifiutato

3228 3231 

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

3230 3233 

3231### Non è stato possibile risolvere la directory in una posizione reale3234### Directory couldn't be resolved to a real location

3232 3235 

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

3234 3237 

3235Hai già accesso ai file di una sottodirectory della directory di lavoro, quindi `/add-dir` carica solo le sue skill, i suoi comandi e i suoi agenti. Prima di caricarli, Claude Code verifica che la posizione reale della directory, con eventuali collegamenti simbolici risolti, si trovi all'interno della directory di lavoro. Quando Claude Code non riesce a risolvere quella posizione, non carica nulla e mostra questo messaggio:3238Hai già accesso ai file di una sottodirectory della directory di lavoro, quindi `/add-dir` carica solo le sue skill, i suoi comandi e i suoi agenti. Prima di caricarli, Claude Code controlla che la posizione reale della directory, con tutti i collegamenti simbolici risolti, si trovi all'interno della directory di lavoro. Quando Claude Code non riesce a risolvere quella posizione, non carica nulla e mostra questo messaggio:

3236 3239 

3237```text theme={null}3240```text theme={null}

3238packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.3241packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.


3243* Verifica che il percorso indichi una directory reale all'interno della directory di lavoro, quindi esegui di nuovo `/add-dir`3246* Verifica che il percorso indichi una directory reale all'interno della directory di lavoro, quindi esegui di nuovo `/add-dir`

3244* Il messaggio non modifica il tuo accesso ai file; segnala solo che il contenuto `.claude/` della directory non è stato caricato3247* Il messaggio non modifica il tuo accesso ai file; segnala solo che il contenuto `.claude/` della directory non è stato caricato

3245 3248 

3246Prima della v2.1.261, questo messaggio appariva anche per ogni `/add-dir <subdirectory>` quando la directory di lavoro si trovava su un automount `/net/<host>`, dove Claude Code per scelta progettuale non risolve i percorsi; la directory era a posto e riprovare non poteva aiutare.3249Prima della v2.1.261, questo messaggio compariva anche per ogni `/add-dir <subdirectory>` quando la directory di lavoro si trovava su un automount `/net/<host>`, dove Claude Code per scelta progettuale non risolve i percorsi; la directory era a posto e riprovare non poteva servire.

3247 3250 

3248### Workspace non attendibile all'avvio di Remote Control3251### Workspace not trusted when starting Remote Control

3249 3252 

3250> [!NOTE]3253> [!NOTE]

3251>3254>

3252> Se `claude ultrareview` ha stampato `Error: Workspace not trusted`, consulta invece [Workspace not trusted when running claude ultrareview](#workspace-not-trusted-when-running-claude-ultrareview).3255> Se `claude ultrareview` ha stampato `Error: Workspace not trusted`, consulta invece [Workspace not trusted when running claude ultrareview](#workspace-not-trusted-when-running-claude-ultrareview).

3253 3256 

3254Hai avviato la modalità server di [Remote Control](https://code.claude.com/docs/it/remote-control.md) con `claude remote-control` o il suo alias `claude rc` in una directory che non hai contrassegnato come attendibile, e il comando non è riuscito a chiederti se considerarla attendibile. Ad esempio, lo standard input o lo standard output del comando non è un terminale perché uno dei due è reindirizzato o collegato tramite pipe. Il comando termina con codice di uscita 1:3257Hai avviato la modalità server di [Remote Control](https://code.claude.com/docs/it/remote-control.md) con `claude remote-control` o il suo alias `claude rc` in una directory che non hai considerato attendibile, e il comando non ha potuto chiederti se considerarla attendibile. Ad esempio, lo standard input o lo standard output del comando non è un terminale perché uno dei due è reindirizzato o collegato tramite pipe. Il comando esce con codice 1:

3255 3258 

3256```text theme={null}3259```text theme={null}

3257Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.3260Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

3258```3261```

3259 3262 

3260Due varianti che iniziano anch'esse con `Error: Workspace not trusted.` appaiono in un terminale troppo piccolo per mostrare cosa attiva il considerare attendibile la directory, o in uno che non ha riportato le proprie dimensioni. Ingrandisci la finestra o passa a una normale finestra del terminale, quindi esegui di nuovo `claude rc`.3263Due varianti che iniziano anch'esse con `Error: Workspace not trusted.` compaiono in un terminale troppo piccolo per mostrare cosa attiva la fiducia nella directory, o in uno che non ha riportato le sue dimensioni. Ingrandisci la finestra o passa a una normale finestra di terminale, quindi esegui di nuovo `claude rc`.

3261 3264 

3262Nella tua directory home il messaggio è diverso, perché la finestra di dialogo di attendibilità del workspace non salva mai l'attendibilità per la directory home, quindi accettarla lì non può soddisfare questo controllo. Prima della v2.1.214, la directory home mostrava il messaggio precedente, il cui consiglio non può funzionare in quella posizione.3265Nella tua directory home il messaggio è diverso, perché la finestra di dialogo di fiducia nel workspace non salva mai la fiducia per la directory home, quindi accettarla lì non può soddisfare questo controllo. Prima della v2.1.214, la directory home mostrava il messaggio precedente, il cui consiglio lì non può funzionare.

3263 3266 

3264```text theme={null}3267```text theme={null}

3265Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).3268Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

3266```3269```

3267 3270 

3268Se rispondi `n` o premi Invio alla [domanda `Trust <directory>?`](https://code.claude.com/docs/it/remote-control#requirements), il comando stampa un messaggio `Remote Control did not start` che indica la directory e termina con codice di uscita 1. Esegui di nuovo `claude rc` per rispondere `y`.3271Se rispondi `n` o premi Enter alla [domanda `Trust <directory>?`](https://code.claude.com/docs/it/remote-control#requirements), il comando stampa un messaggio `Remote Control did not start` che nomina la directory ed esce con codice 1. Esegui di nuovo `claude rc` per rispondere `y`.

3269 3272 

3270**Cosa fare:**3273**Cosa fare:**

3271 3274 

3272* Prima rendi attendibile la directory da un terminale: esegui `claude rc` lì e rispondi `y`, oppure esegui `claude` lì e accetta la [finestra di dialogo di attendibilità del workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust), quindi esegui di nuovo il comando originale3275* Considera prima attendibile la directory da un terminale: esegui lì `claude rc` e rispondi `y`, oppure esegui lì `claude` e accetta la [finestra di dialogo di fiducia nel workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust), quindi esegui di nuovo il comando originale

3273* Nella tua directory home, passa a una directory di progetto e avvia Remote Control da lì3276* Nella tua directory home, spostati in una directory di progetto e avvia Remote Control da lì

3274 3277 

3275Prima della v2.1.284, il comando non lo chiedeva mai, nemmeno in un terminale.3278Prima della v2.1.284, il comando non chiedeva mai, nemmeno in un terminale.

3276 3279 

3277### Workspace not trusted when running claude ultrareview3280### Workspace not trusted when running claude ultrareview

3278 3281 

3279In una cartella che non hai considerato attendibile, quando [`claude ultrareview`](https://code.claude.com/docs/it/ultrareview#trust-the-folder-before-the-review-runs) non può chiederti se la consideri attendibile, l'esecuzione termina con codice di uscita 1 prima che inizi la revisione:3282In una cartella che non hai considerato attendibile, quando [`claude ultrareview`](https://code.claude.com/docs/it/ultrareview#trust-the-folder-before-the-review-runs) non può chiederti se la consideri attendibile, l'esecuzione esce con codice 1 prima che la revisione inizi:

3280 3283 

3281```text theme={null}3284```text theme={null}

3282Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog. Or, in a script or CI job, pass `--trust-workspace` to trust the folder for this run only.3285Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog. Or, in a script or CI job, pass `--trust-workspace` to trust the folder for this run only.


3286 3289 

3287**Cosa fare:**3290**Cosa fare:**

3288 3291 

3289* In uno script o in un job di CI, aggiungi `--trust-workspace` per considerare attendibile la cartella per quell'esecuzione: `claude ultrareview --trust-workspace`. Aggiungilo solo per codice di cui ti fidi, perché git e Claude Code possono quindi eseguire programmi indicati nella configurazione git e nelle impostazioni di progetto della cartella. Per una pull request il cui codice non è attendibile, [esegui la revisione da un branch attendibile](https://code.claude.com/docs/it/ultrareview.md#trust-the-folder-before-the-review-runs).3292* In uno script o in un job di CI, aggiungi `--trust-workspace` per considerare attendibile la cartella per quell'esecuzione: `claude ultrareview --trust-workspace`. Aggiungilo solo per codice di cui ti fidi, perché git e Claude Code possono quindi eseguire programmi indicati nella configurazione git e nelle impostazioni di progetto della cartella. Per una pull request il cui codice non è attendibile, [esegui la revisione da un branch di cui ti fidi](https://code.claude.com/docs/it/ultrareview.md#trust-the-folder-before-the-review-runs).

3290* Sulla tua macchina, esegui `claude` in quella cartella e accetta la [finestra di dialogo di fiducia del workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust), quindi esegui di nuovo il comando originale3293* Sulla tua macchina, esegui `claude` in quella cartella e accetta la [finestra di dialogo di fiducia nel workspace](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust), quindi esegui di nuovo il comando originale

3291 3294 

3292Ciascuno di questi messaggi di `claude ultrareview` indica che non è stata avviata alcuna revisione e che il codice di uscita è 1:3295Ciascuno di questi messaggi di `claude ultrareview` indica che nessuna revisione è stata avviata e che il codice di uscita è 1:

3293 3296 

3294* **`Error: Workspace not trusted. This terminal ...`**: il terminale non ha riportato il numero di righe e colonne, oppure non riesce a contenere la domanda di fiducia e i relativi avvisi. Ingrandiscilo o usa un terminale che riporta la propria dimensione, quindi esegui di nuovo `claude ultrareview`. Al di fuori della tua directory home, puoi anche eseguire `claude` in quella cartella una volta e accettare la finestra di dialogo di fiducia, così le esecuzioni successive lì non chiederanno più.3297* **`Error: Workspace not trusted. This terminal ...`**: il terminale non ha riportato il numero di righe e colonne, oppure non riesce a contenere la domanda di fiducia e i relativi avvisi. Ingrandiscilo o usa un terminale che riporti le sue dimensioni, quindi esegui di nuovo `claude ultrareview`. Al di fuori della tua directory home, puoi anche eseguire `claude` in quella cartella una volta e accettare la finestra di dialogo di fiducia, così le esecuzioni successive lì non chiederanno nulla.

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

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

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

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

3299 3302 

3300Prima della v2.1.309, `claude ultrareview` non accettava `--trust-workspace`.3303Prima della v2.1.309, `claude ultrareview` non accettava `--trust-workspace`.

3301 3304 

3302### Non trasferito alle sessioni avviate da Remote Control3305### Not carried over to the sessions Remote Control starts

3303 3306 

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

3305 3308 

3306```text theme={null}3309```text theme={null}

3307Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3310Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).

3308```3311```

3309 3312 

3310Claude Code non rifiuta i flag globali che è innocuo scartare, come `--verbose`, `--model`, o un `--session-id` o `--plugin-dir` inserito da un wrapper: li ignora e Remote Control si avvia.3313Claude Code non rifiuta i flag globali che si possono scartare senza conseguenze, come `--verbose`, `--model`, o un `--session-id` o `--plugin-dir` inserito da un wrapper: li ignora e Remote Control si avvia.

3311 3314 

3312Claude Code si rifiuta di avviarsi anche per un flag globale che non riconosce ancora come innocuo, quindi un flag aggiunto in una release più recente può apparire in questo messaggio finché una release successiva non lo contrassegna come innocuo.3315Claude Code si rifiuta di avviarsi anche per un flag globale che non riconosce ancora come innocuo, quindi un flag aggiunto in una release più recente può comparire in questo messaggio finché una release successiva non lo contrassegna come innocuo.

3313 3316 

3314**Cosa fare:**3317**Cosa fare:**

3315 3318 

3316* Rimuovi il flag da prima del verbo e passa le [opzioni proprie di Remote Control](https://code.claude.com/docs/it/remote-control.md#start-a-remote-control-session) dopo di esso; `claude remote-control --help` le elenca3319* Rimuovi il flag da prima del verbo e passa le [opzioni specifiche di Remote Control](https://code.claude.com/docs/it/remote-control.md#start-a-remote-control-session) dopo di esso; `claude remote-control --help` le elenca

3317* Quando il flag rifiutato è `--permission-mode`, esegui `claude remote-control --permission-mode <mode>` per impostare la modalità di permesso per le sessioni avviate da Remote Control3320* Quando il flag rifiutato è `--permission-mode`, esegui `claude remote-control --permission-mode <mode>` per impostare la modalità di permesso per le sessioni avviate da Remote Control

3318 3321 

3319Prima della v2.1.248, `claude remote-control` non accettava i propri flag quando veniva prima un flag globale, e il comando falliva con un errore `unknown option`.3322Prima della v2.1.248, `claude remote-control` non accettava i propri flag quando veniva prima un flag globale, e il comando falliva con un errore `unknown option`.

3320 3323 

3321### `--sandbox` or `--no-sandbox` is not supported by claude remote-control3324### `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3322 3325 

3323Questo errore indica che il comando che avvia il tuo server [Remote Control](https://code.claude.com/docs/it/remote-control.md) passa `--sandbox` o `--no-sandbox` dopo `remote-control`, e `claude remote-control` non accetta nessuno dei due flag. Il server termina con codice di uscita 1 invece di avviarsi:3326Questo errore indica che il comando che avvia il tuo server [Remote Control](https://code.claude.com/docs/it/remote-control.md) passa `--sandbox` o `--no-sandbox` dopo `remote-control`, e `claude remote-control` non accetta nessuno dei due flag. Il server esce con codice 1 invece di avviarsi:

3324 3327 

3325```text theme={null}3328```text theme={null}

3326Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.3329Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.


3334 3337 

3335Entrambi i flag sono stati rimossi da `claude remote-control` nella v2.1.300, quindi un comando scritto per una versione precedente può ancora contenerne uno.3338Entrambi i flag sono stati rimossi da `claude remote-control` nella v2.1.300, quindi un comando scritto per una versione precedente può ancora contenerne uno.

3336 3339 

3337### claude import non è ancora disponibile in questa build3340### claude import is not yet available in this build

3338 3341 

3339Hai eseguito [`claude import`](https://code.claude.com/docs/it/cli-reference#cli-commands) e Claude Code ha rilevato che il flusso di importazione è disattivato, quindi il comando termina con codice di uscita 1 invece di avviare l'importazione. Prima della v2.1.222, una build con il flusso di importazione disattivato trattava `import` come un prompt e avviava una sessione interattiva invece di stampare questo messaggio.3342Hai eseguito [`claude import`](https://code.claude.com/docs/it/cli-reference#cli-commands), e Claude Code ha trovato il flusso di importazione disattivato, quindi il comando esce con codice 1 invece di avviare l'importazione. Prima della v2.1.222, una build con il flusso di importazione disattivato trattava `import` come un prompt e avviava una sessione interattiva invece di stampare questo messaggio.

3340 3343 

3341```text theme={null}3344```text theme={null}

3342`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.3345`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

3343```3346```

3344 3347 

3345Claude Code attiva `claude import` tramite un feature flag che recupera da Anthropic e memorizza nella cache su disco. Questo messaggio significa che il valore nella cache è disattivato. La causa è di solito una delle seguenti:3348Claude Code attiva `claude import` tramite un feature flag che recupera da Anthropic e memorizza nella cache su disco. Questo messaggio indica che il valore nella cache è disattivato. La causa è di solito una delle seguenti:

3346 3349 

3347* Non hai avviato una sessione dall'installazione, quindi Claude Code non ha ancora recuperato il flag. Il primo `claude import` può stampare questo messaggio anche quando la funzionalità è disponibile per te.3350* Non hai avviato una sessione dopo l'installazione, quindi Claude Code non ha ancora recuperato il flag. Il primo `claude import` può stampare questo messaggio anche quando la funzionalità è disponibile per te.

3348* Usi Claude Code tramite Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry o Claude Platform on AWS, oppure tramite un [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway#availability-and-limitations). Claude Code non recupera i feature flag in queste sessioni, quindi `claude import` resta non disponibile.3351* Usi Claude Code tramite Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry o Claude Platform su AWS, oppure tramite un [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway#availability-and-limitations). Claude Code non recupera i feature flag in queste sessioni, quindi `claude import` rimane non disponibile.

3349* Hai impostato `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK` o [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/it/env-vars), che disattivano il recupero dei feature flag, quindi `claude import` resta non disponibile.3352* Hai impostato `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK` o [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/it/env-vars), che disattivano il recupero dei feature flag, quindi `claude import` rimane non disponibile.

3350 3353 

3351**Cosa fare:**3354**Cosa fare:**

3352 3355 

3353* Su una nuova installazione, avvia `claude`, attendi che la sessione venga caricata, esci ed esegui di nuovo `claude import`3356* Su una nuova installazione, avvia `claude`, attendi che la sessione si carichi, esci ed esegui di nuovo `claude import`

3354* Dove il recupero dei feature flag resta disattivato, imposta tu stesso la configurazione: aggiungi i server MCP con [`claude mcp add`](https://code.claude.com/docs/it/mcp#installing-mcp-servers) e crea i [file `CLAUDE.md`](https://code.claude.com/docs/it/memory#how-claude-md-files-load), le [skill e i comandi](https://code.claude.com/docs/it/skills.md#where-skills-live) e i [subagent](https://code.claude.com/docs/it/sub-agents.md#choose-the-subagent-scope) che vuoi trasferire. Il messaggio indica anche `~/.claude/settings.json`. Della configurazione che `claude import` trasferisce, quel file contiene solo la [modalità di permesso](https://code.claude.com/docs/it/settings-reference.md#permission-settings); Claude Code non legge i server MCP da esso.3357* Dove il recupero dei feature flag rimane disattivato, prepara tu stesso la configurazione: aggiungi i server MCP con [`claude mcp add`](https://code.claude.com/docs/it/mcp#installing-mcp-servers), e crea i [file `CLAUDE.md`](https://code.claude.com/docs/it/memory#how-claude-md-files-load), le [skill e i comandi](https://code.claude.com/docs/it/skills.md#where-skills-live) e i [subagent](https://code.claude.com/docs/it/sub-agents.md#choose-the-subagent-scope) che vuoi trasferire. Il messaggio nomina anche `~/.claude/settings.json`. Della configurazione che `claude import` trasferisce, quel file contiene solo la [modalità di permesso](https://code.claude.com/docs/it/settings-reference.md#permission-settings); Claude Code non legge i server MCP da esso.

3355 3358 

3356### Impossibile leggere la configurazione di Claude Code3359### Could not read Claude Code config

3357 3360 

3358Hai eseguito [`claude import`](https://code.claude.com/docs/it/cli-reference#cli-commands) mentre Claude Code non riusciva ad analizzare `~/.claude.json`, il file in cui memorizza i dettagli del tuo account e lo stato per progetto. Il sottocomando legge quel file per verificare la disponibilità ma non mostra la finestra di dialogo di ripristino che mostra la sessione interattiva, quindi esce con codice 1. Prima della v2.1.222, `claude import` con un file di configurazione illeggibile avviava una sessione interattiva, la cui finestra di dialogo di ripristino gestiva il file.3361Hai eseguito [`claude import`](https://code.claude.com/docs/it/cli-reference#cli-commands) mentre Claude Code non riusciva ad analizzare `~/.claude.json`, il file in cui memorizza i dettagli del tuo account e lo stato per progetto. Il sottocomando legge quel file per verificare la disponibilità ma non mostra la finestra di dialogo di ripristino mostrata dalla sessione interattiva, quindi esce con codice 1. Prima della v2.1.222, `claude import` con un file di configurazione illeggibile avviava una sessione interattiva, la cui finestra di dialogo di ripristino gestiva il file.

3359 3362 

3360```text theme={null}3363```text theme={null}

3361Could not read Claude Code config — run `claude` with no arguments to recover it.3364Could not read Claude Code config — run `claude` with no arguments to recover it.


3363 3366 

3364**Cosa fare:**3367**Cosa fare:**

3365 3368 

3366* Esegui `claude` senza argomenti. Claude Code rileva il file non valido e offre di reimpostarlo. Quindi esegui di nuovo `claude import`.3369* Esegui `claude` senza argomenti. Claude Code rileva il file non valido e propone di reimpostarlo. Quindi esegui di nuovo `claude import`.

3367* Per mantenere le modifiche manuali che hai apportato, correggi invece la sintassi JSON in `~/.claude.json` in un editor, quindi esegui di nuovo `claude import`3370* Per mantenere le modifiche manuali che hai apportato, correggi invece la sintassi JSON in `~/.claude.json` in un editor, quindi esegui di nuovo `claude import`

3368 3371 

3369### Impossibile importare un server da Claude Desktop3372### Could not import a server from Claude Desktop

3370 3373 

3371Claude Code non è riuscito ad aggiungere uno dei server che hai selezionato in `claude mcp add-from-claude-desktop`. Il comando importa comunque gli altri server selezionati e stampa una riga per ogni server che non è riuscito ad aggiungere. Prima della v2.1.205, il primo server che falliva interrompeva l'importazione.3374Claude Code non è riuscito ad aggiungere uno dei server che hai selezionato in `claude mcp add-from-claude-desktop`. Il comando importa comunque gli altri server selezionati e stampa una riga per ogni server che non è riuscito ad aggiungere. Prima della v2.1.205, il primo server che falliva interrompeva l'importazione.

3372 3375 


3374Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3377Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

3375```3378```

3376 3379 

3377Il testo dopo il nome del server è il motivo. Il più comune è il controllo del nome: Claude Desktop consente nei nomi dei server caratteri, come spazi e punti, che `claude mcp` limita a lettere, numeri, trattini e trattini bassi. Altri motivi includono una configurazione del server che non supera la validazione e un server bloccato dalla [policy MCP](https://code.claude.com/docs/it/managed-mcp.md) della tua organizzazione.3380Il testo dopo il nome del server è il motivo. Il più comune è il controllo sul nome: Claude Desktop consente nei nomi dei server caratteri, come spazi e punti, che `claude mcp` limita a lettere, numeri, trattini e trattini bassi. Altri motivi includono una configurazione del server che non supera la convalida e un server bloccato dalla [policy MCP](https://code.claude.com/docs/it/managed-mcp.md) della tua organizzazione.

3378 3381 

3379**Cosa fare:**3382**Cosa fare:**

3380 3383 

3381* Rinomina il server in `claude_desktop_config.json` usando solo lettere, numeri, trattini e trattini bassi, quindi esegui di nuovo `claude mcp add-from-claude-desktop`3384* Rinomina il server in `claude_desktop_config.json` usando solo lettere, numeri, trattini e trattini bassi, quindi esegui di nuovo `claude mcp add-from-claude-desktop`

3382* Aggiungi quel server direttamente con `claude mcp add` o `claude mcp add-json` con un nome valido. Consulta [Importare server MCP da Claude Desktop](https://code.claude.com/docs/it/mcp.md#import-mcp-servers-from-claude-desktop).3385* Aggiungi quel server direttamente con `claude mcp add` o `claude mcp add-json` con un nome valido. Consulta [Importare server MCP da Claude Desktop](https://code.claude.com/docs/it/mcp.md#import-mcp-servers-from-claude-desktop).

3383 3386 

3384### Impossibile aggiungere un server MCP all'ambito managed3387### Cannot add MCP server to the managed scope

3385 3388 

3386Hai eseguito `claude mcp add` o `claude mcp add-json` con `--scope managed`. Quell'ambito contiene i server che la tua organizzazione fornisce tramite l'impostazione gestita [`managedMcpServers`](https://code.claude.com/docs/it/settings-reference#managedmcpservers). Claude Code li legge solo dalle impostazioni gestite, quindi il comando non può scrivere un server in quell'ambito.3389Hai eseguito `claude mcp add` o `claude mcp add-json` con `--scope managed`. Quell'ambito contiene i server che la tua organizzazione fornisce tramite l'impostazione gestita [`managedMcpServers`](https://code.claude.com/docs/it/settings-reference#managedmcpservers). Claude Code li legge solo dalle impostazioni gestite, quindi il comando non può scrivere un server in quell'ambito.

3387 3390 


3394* Aggiungi il server a un ambito in cui puoi scrivere: `local`, `user` o `project`. Senza `--scope`, il comando usa `local`. Consulta [Ambiti di installazione MCP](https://code.claude.com/docs/it/mcp.md#mcp-installation-scopes)3397* Aggiungi il server a un ambito in cui puoi scrivere: `local`, `user` o `project`. Senza `--scope`, il comando usa `local`. Consulta [Ambiti di installazione MCP](https://code.claude.com/docs/it/mcp.md#mcp-installation-scopes)

3395* Per fornire il server a ogni utente della tua organizzazione, aggiungilo a [`managedMcpServers`](https://code.claude.com/docs/it/settings-reference#managedmcpservers) nelle impostazioni gestite che distribuisci3398* Per fornire il server a ogni utente della tua organizzazione, aggiungilo a [`managedMcpServers`](https://code.claude.com/docs/it/settings-reference#managedmcpservers) nelle impostazioni gestite che distribuisci

3396 3399 

3397### Impossibile aggiungere un server MCP quando le impostazioni gestite consentono solo server dei plugin3400### Cannot add MCP server when managed settings allow only plugin servers

3398 3401 

3399Hai eseguito `claude mcp add` o `claude mcp add-json` mentre le impostazioni gestite della tua organizzazione impostano [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) su `true` o su un elenco che include `mcp`. Con questa impostazione, Claude Code non carica i server MCP da `~/.claude.json` o `.mcp.json`, quindi il comando termina con codice di uscita 1 invece di salvare un server che non verrebbe mai caricato:3402Hai eseguito `claude mcp add` o `claude mcp add-json` mentre le impostazioni gestite della tua organizzazione impostano [`strictPluginOnlyCustomization`](https://code.claude.com/docs/it/settings-reference#strictpluginonlycustomization) su `true` o su un elenco che include `mcp`. Con questa impostazione, Claude Code non carica i server MCP da `~/.claude.json` o `.mcp.json`, quindi il comando esce con codice 1 invece di salvare un server che non verrebbe mai caricato:

3400 3403 

3401```text theme={null}3404```text theme={null}

3402Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.3405Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.

3403```3406```

3404 3407 

3405`claude mcp add-from-claude-desktop` segnala ogni server che selezioni come non importato, con questo messaggio come motivo. [`/import`](https://code.claude.com/docs/it/commands#all-commands) riporta questo messaggio per ogni server MCP che tenta di aggiungere e importa comunque gli altri elementi che ha trovato.3408`claude mcp add-from-claude-desktop` segnala ogni server che selezioni come non importato, con questo messaggio come motivo. [`/import`](https://code.claude.com/docs/it/commands#all-commands) segnala questo messaggio per ogni server MCP che tenta di aggiungere e importa comunque gli altri elementi che ha trovato.

3406 3409 

3407Prima della v2.1.284, questi comandi salvavano il server e segnalavano il successo, e il server non veniva mai caricato.3410Prima della v2.1.284, questi comandi salvavano il server e segnalavano il successo, e il server non veniva mai caricato.

3408 3411 


3411* Installa un [plugin](https://code.claude.com/docs/it/plugins/install.md) che fornisce il server3414* Installa un [plugin](https://code.claude.com/docs/it/plugins/install.md) che fornisce il server

3412* Chiedi al tuo amministratore di distribuire il server in un [plugin](https://code.claude.com/docs/it/plugins/org.md), oppure di fornirlo tramite [`managedMcpServers`](https://code.claude.com/docs/it/settings-reference#managedmcpservers) se si tratta di un server HTTP o SSE remoto3415* Chiedi al tuo amministratore di distribuire il server in un [plugin](https://code.claude.com/docs/it/plugins/org.md), oppure di fornirlo tramite [`managedMcpServers`](https://code.claude.com/docs/it/settings-reference#managedmcpservers) se si tratta di un server HTTP o SSE remoto

3413 3416 

3414### Impossibile leggere .mcp.json3417### Can't read .mcp.json

3415 3418 

3416Un comando che legge il file [`.mcp.json`](https://code.claude.com/docs/it/mcp#project-scope) del progetto, come `claude mcp add` o `claude mcp add-json` con `--scope project`, oppure `claude mcp remove`, ha rilevato che il file nella directory corrente non è un file regolare o è più grande di 2 MiB, quindi termina con questo errore invece di leggere il file.3419Un comando che legge il [`.mcp.json`](https://code.claude.com/docs/it/mcp#project-scope) del progetto, come `claude mcp add` o `claude mcp add-json` con `--scope project`, oppure `claude mcp remove`, ha rilevato che il file nella directory corrente non è un file regolare o è più grande di 2 MiB, quindi esce con questo errore invece di leggere il file.

3417 3420 

3418```text theme={null}3421```text theme={null}

3419Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3422Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

3420```3423```

3421 3424 

3422Prima della v2.1.257, una FIFO in `.mcp.json` lasciava il comando in attesa all'infinito senza output, e un collegamento simbolico a un file di dispositivo come `/dev/zero` faceva crescere la memoria finché il processo non veniva terminato.3425Prima della v2.1.257, una FIFO in `.mcp.json` lasciava il comando in attesa indefinitamente senza alcun output, e un collegamento simbolico a un file di dispositivo come `/dev/zero` faceva crescere la memoria finché il processo non veniva terminato.

3423 3426 

3424**Cosa fare:**3427**Cosa fare:**

3425 3428 

3426* Controlla cosa si trova in `.mcp.json` nella directory corrente. Sostituiscilo con un normale file JSON nel [formato dell'ambito di progetto](https://code.claude.com/docs/it/mcp.md#project-scope), oppure eliminalo, quindi esegui di nuovo il comando.3429* Controlla cosa si trova in `.mcp.json` nella directory corrente. Sostituiscilo con un normale file JSON nel [formato dell'ambito di progetto](https://code.claude.com/docs/it/mcp.md#project-scope), oppure eliminalo, quindi esegui di nuovo il comando.

3427 3430 

3428### Il server MCP non è stato salvato o rimosso3431### MCP server was not saved or removed

3429 3432 

3430Hai eseguito `claude mcp add`, `claude mcp add-json` o `claude mcp remove` per un server nell'[ambito](https://code.claude.com/docs/it/mcp.md#mcp-installation-scopes) `user` o `local`. Entrambi gli ambiti sono memorizzati in `~/.claude.json`, e la modifica non è presente in quel file quando Claude Code lo rilegge dopo la scrittura. Il comando termina con questo errore invece della sua riga di successo.3433Hai eseguito `claude mcp add`, `claude mcp add-json` o `claude mcp remove` per un server nell'[ambito](https://code.claude.com/docs/it/mcp.md#mcp-installation-scopes) `user` o `local`. Entrambi gli ambiti sono memorizzati in `~/.claude.json`, e la modifica non è presente in quel file quando Claude Code lo rilegge dopo la scrittura. Il comando esce con questo errore invece della sua riga di successo.

3431 3434 

3432```text theme={null}3435```text theme={null}

3433MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3436MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3434```3437```

3435 3438 

3436Dopo una rimozione, il messaggio riporta `was not removed from` e termina con `then remove the server again`. Per un server nell'ambito `local`, il percorso è seguito dalla directory del progetto a cui appartiene la voce, come `(local scope for /path/to/project)`.3439Dopo una rimozione, il messaggio recita `was not removed from` e termina con `then remove the server again`. Per un server con ambito `local`, il percorso è seguito dalla directory del progetto a cui appartiene la voce, nella forma `(local scope for /path/to/project)`.

3437 3440 

3438Prima della v2.1.283, `claude mcp add`, `claude mcp add-json` e `claude mcp remove` segnalavano il successo anche quando la modifica non raggiungeva il file.3441Prima della v2.1.283, `claude mcp add`, `claude mcp add-json` e `claude mcp remove` segnalavano il successo anche quando la modifica non raggiungeva il file.

3439 3442 


3441 3444 

3442* Rendi scrivibile il file indicato dal messaggio, oppure esegui il comando al di fuori della sandbox, quindi esegui di nuovo lo stesso comando di aggiunta o rimozione.3445* Rendi scrivibile il file indicato dal messaggio, oppure esegui il comando al di fuori della sandbox, quindi esegui di nuovo lo stesso comando di aggiunta o rimozione.

3443 3446 

3444### Il server MCP potrebbe non essere stato salvato o rimosso3447### MCP server may not have been saved or removed

3445 3448 

3446Hai eseguito `claude mcp add`, `claude mcp add-json` o `claude mcp remove` per un server nell'[ambito](https://code.claude.com/docs/it/mcp.md#mcp-installation-scopes) `user` o `local`, e Claude Code non è riuscito a rileggere `~/.claude.json` per confermare la modifica. La modifica potrebbe essere su disco oppure no. Il testo tra parentesi è l'errore di quella lettura.3449Hai eseguito `claude mcp add`, `claude mcp add-json` o `claude mcp remove` per un server nell'[ambito](https://code.claude.com/docs/it/mcp.md#mcp-installation-scopes) `user` o `local`, e Claude Code non è riuscito a rileggere `~/.claude.json` per confermare la modifica. La modifica potrebbe essere o non essere su disco. Il testo tra parentesi è l'errore di quella lettura.

3447 3450 

3448```text theme={null}3451```text theme={null}

3449MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3452MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3450```3453```

3451 3454 

3452Dopo una rimozione, il messaggio riporta `may not have been removed` e termina con `then remove the server again if it is still listed`.3455Dopo una rimozione, il messaggio recita `may not have been removed` e termina con `then remove the server again if it is still listed`.

3453 3456 

3454Prima della v2.1.283, i comandi segnalavano il successo anche quando la modifica non poteva essere confermata.3457Prima della v2.1.283, i comandi segnalavano il successo anche quando la modifica non poteva essere confermata.

3455 3458 

3456**Cosa fare:**3459**Cosa fare:**

3457 3460 

3458* Esegui `claude mcp get <name>` per verificare se la modifica è su disco. Per un server nell'ambito `local`, eseguilo dalla directory del progetto a cui appartiene il server, poiché l'ambito locale è per progetto.3461* Esegui `claude mcp get <name>` per verificare se la modifica è su disco. Per un server con ambito `local`, eseguilo dalla directory del progetto a cui appartiene il server, poiché l'ambito locale è per progetto.

3459* Se il server manca dopo un'aggiunta, o è ancora elencato dopo una rimozione, esegui di nuovo lo stesso comando di aggiunta o rimozione.3462* Se il server manca dopo un'aggiunta, o è ancora elencato dopo una rimozione, esegui di nuovo lo stesso comando di aggiunta o rimozione.

3460 3463 

3461### Il server è ospitato da Anthropic e non supporta OAuth locale3464### Server is Anthropic-hosted and doesn't support local OAuth

3462 3465 

3463Hai avviato l'accesso per un server MCP il cui URL punta a un host di connettori ospitato da Anthropic che esegue l'autenticazione tramite un provider di identità di terze parti. Questi host includono `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com` e `gcal.mcp.claude.com`. Claude Code si rifiuta di avviare il proprio flusso OAuth locale per questi host sia dal pannello `/mcp` sia da `claude mcp login`, perché [il loro accesso funziona solo tramite claude.ai](https://code.claude.com/docs/it/mcp.md#use-mcp-servers-from-claude-ai).3466Hai avviato un accesso per un server MCP il cui URL punta a un host di connettori ospitato da Anthropic che esegue l'autenticazione tramite un provider di identità di terze parti. Questi host includono `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com` e `gcal.mcp.claude.com`. Claude Code si rifiuta di avviare il suo flusso OAuth locale per questi host sia dal pannello `/mcp` sia da `claude mcp login`, perché [il loro accesso funziona solo tramite claude.ai](https://code.claude.com/docs/it/mcp.md#use-mcp-servers-from-claude-ai).

3464 3467 

3465```text theme={null}3468```text theme={null}

3466"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.3469"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.


3469**Cosa fare:**3472**Cosa fare:**

3470 3473 

3471* Rimuovi la tua voce con `claude mcp remove <name>`, in modo che non possa nascondere il connettore claude.ai allo stesso URL3474* Rimuovi la tua voce con `claude mcp remove <name>`, in modo che non possa nascondere il connettore claude.ai allo stesso URL

3472* Dopo averla rimossa, collega il servizio su [claude.ai/customize/connectors](https://claude.ai/customize/connectors), dopo aver effettuato l'accesso con l'account che usi in Claude Code. Una volta collegato, [il connettore appare automaticamente in Claude Code](https://code.claude.com/docs/it/mcp.md#use-mcp-servers-from-claude-ai) se il tuo metodo di autenticazione attivo è un accesso con abbonamento claude.ai3475* Dopo averla rimossa, collega il servizio su [claude.ai/customize/connectors](https://claude.ai/customize/connectors), con l'accesso effettuato all'account che usi in Claude Code. Una volta collegato, [il connettore compare automaticamente in Claude Code](https://code.claude.com/docs/it/mcp.md#use-mcp-servers-from-claude-ai) se il tuo metodo di autenticazione attivo è un accesso con abbonamento claude.ai

3473 3476 

3474### Il server ha rifiutato l'header Authorization generato dall'headersHelper configurato3477### Server rejected the Authorization header minted by the configured headersHelper

3475 3478 

3476Un server MCP il cui [`headersHelper`](https://code.claude.com/docs/it/mcp#use-dynamic-headers-for-custom-authentication) fornisce l'header `Authorization` ha risposto alla connessione con HTTP 401 o 403, quindi Claude Code segnala la connessione come non riuscita. Poiché l'helper fornisce l'header `Authorization`, Claude Code [non ripiega su OAuth](https://code.claude.com/docs/it/mcp.md#authenticate-with-remote-mcp-servers) per il server:3479Un server MCP il cui [`headersHelper`](https://code.claude.com/docs/it/mcp#use-dynamic-headers-for-custom-authentication) fornisce l'header `Authorization` ha risposto alla connessione con HTTP 401 o 403, quindi Claude Code segnala la connessione come non riuscita. Poiché l'helper fornisce l'header `Authorization`, Claude Code [non ripiega su OAuth](https://code.claude.com/docs/it/mcp.md#authenticate-with-remote-mcp-servers) per il server:

3477 3480 


3479Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3482Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

3480```3483```

3481 3484 

3482Claude Code esegue di nuovo l'helper a ogni tentativo di connessione, quindi un nuovo tentativo dopo un rifiuto temporaneo, come una race condition nella rotazione dei token, può riuscire con una credenziale aggiornata.3485Claude Code esegue di nuovo l'helper a ogni tentativo di connessione, quindi un nuovo tentativo dopo un rifiuto temporaneo, come una race condition nella rotazione dei token, può riuscire con una credenziale nuova.

3483 3486 

3484**Cosa fare:**3487**Cosa fare:**

3485 3488 

3486* Esegui tu stesso il comando `headersHelper` nel modo in cui lo esegue Claude Code: dalla [directory in cui Claude Code lo esegue](https://code.claude.com/docs/it/mcp.md#where-the-helper-runs), con le [variabili d'ambiente che Claude Code imposta per esso](https://code.claude.com/docs/it/mcp.md#use-dynamic-headers-for-custom-authentication), e senza le [variabili delle credenziali che Claude Code rimuove](https://code.claude.com/docs/it/mcp.md#which-variables-a-helper-can-read) per un server proveniente da un `.mcp.json` di progetto, da un plugin o da un file di agente del progetto. Verifica che stampi un valore `Authorization` accettato dall'endpoint del server3489* Esegui tu stesso il comando `headersHelper` nel modo in cui lo esegue Claude Code: dalla [directory in cui Claude Code lo esegue](https://code.claude.com/docs/it/mcp.md#where-the-helper-runs), con le [variabili d'ambiente che Claude Code imposta per esso](https://code.claude.com/docs/it/mcp.md#use-dynamic-headers-for-custom-authentication) e senza le [variabili delle credenziali che Claude Code rimuove](https://code.claude.com/docs/it/mcp.md#which-variables-a-helper-can-read) per un server proveniente da un `.mcp.json` di progetto, da un plugin o da un file di agente di progetto. Verifica che stampi un valore `Authorization` accettato dall'endpoint del server

3487* Dopo aver corretto l'helper o l'origine delle sue credenziali, seleziona il server in `/mcp` e scegli **Reconnect**3490* Dopo aver corretto l'helper o la sua fonte di credenziali, seleziona il server in `/mcp` e scegli **Reconnect**

3488 3491 

3489Prima della v2.1.248, Claude Code eseguiva il discovery OAuth per un server il cui helper forniva l'header `Authorization`. Quel discovery poteva fallire con `Incompatible auth server: does not support dynamic client registration` invece di segnalare la credenziale rifiutata.3492Prima della v2.1.248, Claude Code eseguiva l'individuazione OAuth per un server il cui helper forniva l'header `Authorization`. Quell'individuazione poteva fallire con `Incompatible auth server: does not support dynamic client registration` invece di segnalare la credenziale rifiutata.

3490 3493 

3491### Il server MCP ha rifiutato la capacità di elicitation3494### MCP server rejected the elicitation capability

3492 3495 

3493Un server MCP basato su Java MCP SDK dalla 0.11.0 alla 0.17.0 ha rifiutato la connessione. Queste versioni dell'SDK non riescono ad analizzare le [modalità di elicitation](https://code.claude.com/docs/it/mcp.md#elicitation-modes-claude-code-declares) `form` e `url` che Claude Code dichiara nel proprio handshake. Il messaggio è:3496Un server MCP basato su Java MCP SDK dalla 0.11.0 alla 0.17.0 ha rifiutato la connessione. Queste versioni dell'SDK non riescono ad analizzare le [modalità di elicitation](https://code.claude.com/docs/it/mcp.md#elicitation-modes-claude-code-declares) `form` e `url` che Claude Code dichiara nel suo handshake. Il messaggio recita:

3494 3497 

3495```text theme={null}3498```text theme={null}

3496This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).3499This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).


3498 3501 

3499**Cosa fare:**3502**Cosa fare:**

3500 3503 

3501* Aggiorna il server a Java MCP SDK 0.17.1 o successivo, oppure a una delle release di Spring AI indicate dal messaggio3504* Aggiorna il server a Java MCP SDK 0.17.1 o successivo, oppure a una delle release di Spring AI indicate nel messaggio

3502* Oppure aggiungi `"bareElicitationCapability": true` alla voce di quel server nella tua configurazione MCP, quindi riavvia Claude Code. Il campo è accettato nelle voci stdio, `sse`, `http` e `ws` e richiede Claude Code v2.1.281 o versioni successive3505* Oppure aggiungi `"bareElicitationCapability": true` alla voce di quel server nella tua configurazione MCP, quindi riavvia Claude Code. Il campo è accettato nelle voci stdio, `sse`, `http` e `ws` e richiede Claude Code v2.1.281 o versioni successive

3503 3506 

3504Questa voce di `.mcp.json` imposta il campo per un server HTTP:3507Questa voce di `.mcp.json` imposta il campo per un server HTTP:


3515}3518}

3516```3519```

3517 3520 

3518Dopo il riavvio, `/mcp` mostra il server come connesso. Claude Code dichiara la modalità form solo a quel server, quindi rimuovi il campo dopo averlo aggiornato.3521Dopo il riavvio, `/mcp` mostra il server come connesso. Claude Code dichiara la modalità form solo a quel server, quindi rimuovi il campo una volta che lo hai aggiornato.

3519 3522 

3520Un server può anche fallire con un proprio testo di errore, come uno contenente `Unrecognized field "form"`. Si applicano le stesse soluzioni.3523Un server può anche fallire con un proprio testo di errore, ad esempio uno che contiene `Unrecognized field "form"`. Si applicano le stesse soluzioni.

3521 3524 

3522### Strumento di richiesta di permesso MCP non trovato3525### MCP permission prompt tool not found

3523 3526 

3524Lo strumento che hai passato a [`--permission-prompt-tool`](https://code.claude.com/docs/it/cli-reference#cli-flags) non era tra gli strumenti MCP connessi quando l'esecuzione ha avuto bisogno per la prima volta di una decisione sui permessi, o perché il suo server non si è mai connesso o perché nessun server connesso espone uno strumento con quel nome. Claude Code invia comunque il tuo prompt: l'esecuzione [non interattiva](https://code.claude.com/docs/it/headless.md) termina con questo errore, e codice di uscita 1, alla prima chiamata a uno strumento, quindi non produce alcuna risposta anche se la richiesta è stata effettuata. Prima del primo prompt, Claude Code attende che quel server si connetta fino al timeout di connessione per server di 30 secondi impostato da [`MCP_TIMEOUT`](https://code.claude.com/docs/it/env-vars). Prima della v2.1.206, l'avvio non attendeva che il server completasse la connessione, quindi anche un server funzionante ma lento ad avviarsi produceva questo errore.3527Lo strumento che hai passato a [`--permission-prompt-tool`](https://code.claude.com/docs/it/cli-reference#cli-flags) non era tra gli strumenti MCP connessi quando l'esecuzione ha avuto bisogno per la prima volta di una decisione sui permessi, o perché il suo server non si è mai connesso o perché nessun server connesso espone uno strumento con quel nome. Claude Code invia comunque il tuo prompt: l'esecuzione [non interattiva](https://code.claude.com/docs/it/headless.md) esce con questo errore, e con codice di uscita 1, alla prima chiamata a uno strumento, quindi non produce alcuna risposta anche se la richiesta è stata effettuata. Prima del primo prompt, Claude Code attende che quel server si connetta fino al timeout di connessione per server di 30 secondi impostato da [`MCP_TIMEOUT`](https://code.claude.com/docs/it/env-vars). Prima della v2.1.206, l'avvio non attendeva che il server terminasse la connessione, quindi anche un server sano ma lento ad avviarsi produceva questo errore.

3525 3528 

3526```text theme={null}3529```text theme={null}

3527Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3530Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

3528```3531```

3529 3532 

3530L'elenco dopo `Available MCP tools:` indica gli strumenti MCP che erano connessi.3533L'elenco dopo `Available MCP tools:` nomina gli strumenti MCP che erano connessi.

3531 3534 

3532**Cosa fare:**3535**Cosa fare:**

3533 3536 

3534* Verifica che il server si avvii e resti connesso: esegui `claude mcp list` nella stessa directory e conferma che il server sia elencato come connesso3537* Verifica che il server si avvii e rimanga connesso: esegui `claude mcp list` nella stessa directory e conferma che il server sia elencato come connesso

3535* Conferma che il nome dello strumento corrisponda al nome `mcp__<server>__<tool>` esposto dal server3538* Conferma che il nome dello strumento corrisponda al nome `mcp__<server>__<tool>` esposto dal server

3536* Se il server ha bisogno di più di 30 secondi per avviarsi, aumenta [`MCP_TIMEOUT`](https://code.claude.com/docs/it/env-vars)3539* Se il server ha bisogno di più di 30 secondi per avviarsi, aumenta [`MCP_TIMEOUT`](https://code.claude.com/docs/it/env-vars)

3537 3540 

3538### La porta di callback OAuth è già in uso3541### OAuth callback port is already in use

3539 3542 

3540Quando accedi a un server MCP remoto con OAuth, Claude Code avvia un listener locale per ricevere il callback di accesso. Se la porta di cui ha bisogno quel listener è occupata da un altro processo, l'accesso fallisce con questo messaggio. Questo accade soprattutto con una [porta di callback fissa](https://code.claude.com/docs/it/mcp.md#use-a-fixed-oauth-callback-port) impostata tramite la variabile [`MCP_OAUTH_CALLBACK_PORT`](https://code.claude.com/docs/it/env-vars) o `--callback-port`, poiché senza di essa Claude Code sceglie una porta disponibile.3543Quando accedi a un server MCP remoto con OAuth, Claude Code avvia un listener locale per ricevere il callback di accesso. Se la porta di cui ha bisogno quel listener è occupata da un altro processo, l'accesso fallisce con questo messaggio. Questo accade soprattutto con una [porta di callback fissa](https://code.claude.com/docs/it/mcp.md#use-a-fixed-oauth-callback-port) impostata tramite la variabile [`MCP_OAUTH_CALLBACK_PORT`](https://code.claude.com/docs/it/env-vars) o `--callback-port`, poiché senza di essa Claude Code sceglie una porta disponibile.

3541 3544 


3547 3550 

3548**Cosa fare:**3551**Cosa fare:**

3549 3552 

3550* Esegui il comando indicato nel messaggio per trovare il processo che occupa la porta, e arrestalo o attendi che termini3553* Esegui il comando indicato nel messaggio per trovare il processo che occupa la porta, e interrompilo o attendi che termini

3551* Se un altro programma ha bisogno di quella porta in modo permanente, registra un URI di reindirizzamento diverso con il server e imposta la sua porta con `MCP_OAUTH_CALLBACK_PORT` o `--callback-port`, a seconda di quale usi3554* Se un altro programma ha bisogno di quella porta in modo permanente, registra un URI di reindirizzamento diverso presso il server e impostane la porta con `MCP_OAUTH_CALLBACK_PORT` o `--callback-port`, a seconda di quello che usi

3552* Quindi avvia di nuovo l'accesso, ad esempio selezionando il server in `/mcp`3555* Quindi avvia di nuovo l'accesso, ad esempio selezionando il server in `/mcp`

3553 3556 

3554### Nessuna porta disponibile per il reindirizzamento OAuth3557### No available ports for OAuth redirect

3555 3558 

3556Quando accedi a un server MCP remoto con [OAuth](https://code.claude.com/docs/it/mcp.md#authenticate-with-remote-mcp-servers), Claude Code avvia un listener locale per ricevere il callback di accesso. L'accesso fallisce con questo messaggio quando Claude Code non riesce a effettuare il bind di una porta locale per esso. Qualcosa sulla macchina gli impedisce di mettersi in ascolto su `127.0.0.1`, ad esempio un software di sicurezza o una policy della sandbox che nega i listener locali.3559Quando accedi a un server MCP remoto con [OAuth](https://code.claude.com/docs/it/mcp.md#authenticate-with-remote-mcp-servers), Claude Code avvia un listener locale per ricevere il callback di accesso. L'accesso fallisce con questo messaggio quando Claude Code non riesce ad associare una porta locale per esso. Qualcosa sulla macchina gli impedisce di mettersi in ascolto su `127.0.0.1`, ad esempio un software di sicurezza o una policy della sandbox che nega i listener locali.

3557 3560 

3558```text theme={null}3561```text theme={null}

3559No available ports for OAuth redirect3562No available ports for OAuth redirect

3560```3563```

3561 3564 

3562Prima della v2.1.268, Claude Code non ripiegava su una porta assegnata dal sistema operativo, quindi il messaggio appariva anche quando non era possibile effettuare il bind solo delle porte scelte da Claude Code stesso. Questo può accadere su host Windows in cui Hyper-V riserva intervalli di porte che coprono le porte tra cui Claude Code sceglie.3565Prima della v2.1.268, Claude Code non ripiegava su una porta assegnata dal sistema operativo, quindi il messaggio compariva anche quando solo le porte scelte da esso non potevano essere associate. Questo può accadere sugli host Windows in cui Hyper-V riserva intervalli di porte che coprono le porte tra cui sceglie Claude Code.

3563 3566 

3564**Cosa fare:**3567**Cosa fare:**

3565 3568 

3566* Verifica se un software di sicurezza o una policy della sandbox impedisce ai processi di mettersi in ascolto su `127.0.0.1`, e consenti a Claude Code di effettuare il bind di una porta locale3569* Verifica se un software di sicurezza o una policy della sandbox impedisce ai processi di mettersi in ascolto su `127.0.0.1`, e consenti a Claude Code di associare una porta locale

3567* Quindi avvia di nuovo l'accesso, ad esempio selezionando il server in `/mcp`3570* Quindi avvia di nuovo l'accesso, ad esempio selezionando il server in `/mcp`

3568 3571 

3569### /security-review fallisce senza origin/HEAD3572### /security-review non riesce senza origin/HEAD

3570 3573 

3571[`/security-review`](https://code.claude.com/docs/it/commands#all-commands) costruisce il contesto della revisione calcolando il diff del tuo branch rispetto a `origin/HEAD`, il ref locale che registra quale branch è quello predefinito sul tuo remote `origin`. Quando quel ref non esiste, i comandi git che raccolgono il diff falliscono e la revisione si interrompe prima di iniziare.3574[`/security-review`](https://code.claude.com/docs/it/commands#all-commands) costruisce il contesto della revisione calcolando il diff del tuo branch rispetto a `origin/HEAD`, il riferimento locale che registra quale branch è quello predefinito sul tuo remote `origin`. Quando quel riferimento non esiste, i comandi git che raccolgono il diff falliscono e la revisione si interrompe prima di iniziare.

3572 3575 

3573```text theme={null}3576```text theme={null}

3574Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3577Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3577'git <command> [<revision>...] -- [<file>...]'3580'git <command> [<revision>...] -- [<file>...]'

3578```3581```

3579 3582 

3580Il messaggio potrebbe citare invece `git log` o un diverso `git diff`. Git crea `origin/HEAD` solo quando il remote annuncia un branch predefinito e il tuo refspec di fetch lo include, come avviene con un `git clone` completo di un remote con dei commit. Il ref manca in queste configurazioni:3583Il messaggio potrebbe citare invece `git log` o un diverso `git diff`. Git crea `origin/HEAD` solo quando il remote dichiara un branch predefinito e il tuo refspec di fetch lo include, cosa che avviene con un `git clone` completo di un remote con commit. Il riferimento manca in queste configurazioni:

3581 3584 

3582* Un checkout single-branch o di CI, che esegue il fetch di un refspec troppo ristretto3585* Un checkout a branch singolo o di CI, che esegue il fetch con un refspec troppo ristretto

3583* Un remote il cui HEAD lato server punta a un branch su cui nessuno ha eseguito il push3586* Un remote il cui HEAD lato server punta a un branch che nessuno ha mai inviato

3584* Un repository senza remote `origin`, o uno su cui non hai mai eseguito il fetch3587* Un repository senza remote `origin`, o uno di cui non hai mai eseguito il fetch

3585 3588 

3586Claude Code mostra lo stesso errore per qualsiasi skill che [inietta contesto dinamico](https://code.claude.com/docs/it/skills.md#when-an-injected-command-fails), e un comando iniettato non riuscito interrompe l'invocazione di quella skill.3589Claude Code mostra lo stesso errore per qualsiasi skill che [inserisce contesto dinamico](https://code.claude.com/docs/it/skills.md#when-an-injected-command-fails), e un comando inserito che fallisce interrompe l'invocazione di quella skill.

3587 3590 

3588Stringhe simili vengono generate prima ancora che il comando venga eseguito:3591Stringhe analoghe compaiono prima ancora che il comando venga eseguito:

3589 3592 

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

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

3592* `No shell command in <name> was run`: uno dei comandi `!` del file contiene un carattere di controllo grezzo diverso da tabulazione o a capo, quindi nessuno di essi viene eseguito. Consulta [come trovare e rimuovere il carattere](#no-shell-command-was-run)

3593 3595 

3594**Cosa fare:**3596**Cosa fare:**

3595 3597 

3596* Crea il ref indicando il branch predefinito del tuo remote: `git remote set-head origin <default-branch>`. Questo funziona ogni volta che esiste il ref di tracciamento locale `origin/<default-branch>`. Se non esiste, come nei clone single-branch, esegui prima il fetch del branch: esegui `git remote set-branches --add origin <branch>`, poi `git fetch origin`, quindi esegui di nuovo il comando set-head. Esegui di nuovo `/security-review`.3598* Crea il riferimento indicando il branch predefinito del tuo remote: `git remote set-head origin <default-branch>`. Questo funziona ogni volta che esiste il riferimento di tracciamento locale `origin/<default-branch>`. Se non esiste, come nei clone a branch singolo, esegui prima il fetch del branch: esegui `git remote set-branches --add origin <branch>`, poi `git fetch origin`, quindi esegui di nuovo il comando set-head. Esegui di nuovo `/security-review`.

3597* Se preferisci non indicare il branch, esegui `git fetch origin` e poi `git remote set-head origin --auto`, che chiede al remote quale branch è quello predefinito. Fallisce con `error: Cannot determine remote HEAD` quando il remote non annuncia alcun branch predefinito, perché è vuoto o il suo HEAD punta a un branch su cui nessuno ha eseguito il push; in tal caso indica il branch esplicitamente. Fallisce con `error: Not a valid ref` quando il tuo clone non esegue il fetch di quel branch; prima amplia il refspec come indicato sopra.3599* Se preferisci non indicare il branch, esegui `git fetch origin` e poi `git remote set-head origin --auto`, che chiede al remote quale branch è il suo predefinito. Fallisce con `error: Cannot determine remote HEAD` quando il remote non dichiara alcun branch predefinito, perché è vuoto o il suo HEAD punta a un branch che nessuno ha mai inviato; in tal caso indica esplicitamente il branch. Fallisce con `error: Not a valid ref` quando il tuo clone non esegue il fetch di quel branch; amplia prima il refspec come indicato sopra.

3598* Se il repository non ha un remote, aggiungine uno con `git remote add origin <url>` ed esegui il fetch prima di creare il ref. Se il remote è vuoto, esegui prima il push del tuo branch con `git push -u origin HEAD` e indica quel branch nel comando set-head; `origin/HEAD` punterà quindi al branch di cui hai appena eseguito il push, quindi `/security-review` vedrà un diff vuoto finché il branch non divergerà da esso.3600* Se il repository non ha alcun remote, aggiungine uno con `git remote add origin <url>` ed esegui il fetch prima di creare il riferimento. Se il remote è vuoto, invia prima il tuo branch con `git push -u origin HEAD` e indica quel branch nel comando set-head; `origin/HEAD` punterà quindi al branch che hai appena inviato, quindi `/security-review` vedrà un diff vuoto finché il branch non se ne discosta.

3601 

3602### No shell command in a skill or command was run

3599 3603 

3600### Nessun comando shell in una skill o in un comando è stato eseguito3604`No shell command in <name> was run` indica che un [comando di contesto dinamico](https://code.claude.com/docs/it/skills.md#inject-dynamic-context) `` !`<command>` `` in quel file di skill o di comando contiene un carattere che lo strumento Bash o PowerShell rifiuta:

3601 3605 

3602Uno dei [comandi di contesto dinamico](https://code.claude.com/docs/it/skills.md#inject-dynamic-context) `` !`<command>` `` in un file di skill o di comando personalizzato contiene un carattere di controllo grezzo diverso da tabulazione o a capo. Claude Code rifiuta l'intera invocazione prima che venga eseguito qualsiasi comando del file.3606* **Entrambi gli strumenti**: un carattere di controllo grezzo diverso da una tabulazione o da un a capo

3607* **Strumento PowerShell**: anche U+FEFF o U+180E

3603 3608 

3604Il messaggio nomina lo strumento shell che avrebbe eseguito i comandi, Bash o PowerShell, e termina con il comando rifiutato. Ognuno di questi caratteri viene sostituito da `�` in modo che tu possa vedere dove si trova:3609Il messaggio termina con il comando rifiutato, mostrando ogni carattere rifiutato come `�`, come in questo esempio dello strumento Bash:

3605 3610 

3606```text theme={null}3611```text theme={null}

3607No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.3612No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.


3610 3615 

3611**Cosa fare:**3616**Cosa fare:**

3612 3617 

3613* Trova ogni `�` nel comando citato alla fine del messaggio. Rimuovi il carattere che rappresenta dal file di skill o di comando, oppure dagli argomenti o dalle opzioni sostituiti nel file.3618* Trova ogni `�` nel comando citato alla fine del messaggio. Rimuovi il carattere che rappresenta dal [file di skill o di comando](https://code.claude.com/docs/it/skills.md#where-skills-live), oppure dagli argomenti o dalle [opzioni](https://code.claude.com/docs/it/plugins/manifest-reference.md#user-configuration) sostituiti nel file.

3614 3619 

3615### È necessario fornire un input quando si usa `--print`3620### Input must be provided when using `--print`

3616 3621 

3617`claude` senza argomenti ha bisogno che stdout sia un terminale per avviare l'interfaccia interattiva. Quando stdout è reindirizzato, o la console non è un vero terminale, come PowerShell ISE e alcuni riquadri di output degli IDE, `claude` viene invece eseguito in [modalità non interattiva](https://code.claude.com/docs/it/headless.md). È la stessa modalità di `claude -p`, che richiede un prompt, quindi il messaggio indica `--print` anche quando non hai passato il flag. Passare `-p`/`--print` senza un prompt e senza nulla inviato tramite pipe su stdin produce lo stesso errore ovunque.3622Il semplice `claude` ha bisogno che stdout sia un terminale per avviare l'interfaccia interattiva. Quando stdout è reindirizzato, o la console non è un vero terminale, come PowerShell ISE e alcuni pannelli di output degli IDE, `claude` viene invece eseguito in [modalità non interattiva](https://code.claude.com/docs/it/headless.md). È la stessa modalità di `claude -p`, che richiede un prompt, quindi il messaggio nomina `--print` anche se non hai passato il flag. Passare `-p`/`--print` senza prompt e senza nulla inviato tramite pipe su stdin produce lo stesso errore ovunque.

3618 3623 

3619```text theme={null}3624```text theme={null}

3620Error: Input must be provided either through stdin or as a prompt argument when using --print3625Error: Input must be provided either through stdin or as a prompt argument when using --print


3622 3627 

3623**Cosa fare:**3628**Cosa fare:**

3624 3629 

3625* Per l'uso interattivo, esegui `claude` in un vero terminale: Windows Terminal o la console di PowerShell invece di ISE, e il terminale integrato del tuo IDE invece di un riquadro di output3630* Per l'uso interattivo, esegui `claude` in un vero terminale: Windows Terminal o la console di PowerShell anziché ISE, e il terminale integrato del tuo IDE anziché un pannello di output

3626* Per un uso singolo, passa il prompt: `claude -p "your question"`, oppure invialo tramite pipe con `echo "your question" | claude -p`3631* Per l'uso singolo, passa il prompt: `claude -p "your question"`, oppure invialo tramite pipe con `echo "your question" | claude -p`

3627 3632 

3628### Claude Code non può leggere la tastiera qui3633### Claude Code can't read the keyboard here

3629 3634 

3630Hai eseguito `claude` senza [`-p`](https://code.claude.com/docs/it/headless), il che avvia una [sessione interattiva](https://code.claude.com/docs/it/interactive-mode.md), ma il suo standard input non è un terminale. Qualcosa lo ha collegato tramite pipe o reindirizzato, oppure il programma che ha avviato `claude` ha fornito il proprio flusso di input.3635Hai eseguito `claude` senza [`-p`](https://code.claude.com/docs/it/headless), il che avvia una [sessione interattiva](https://code.claude.com/docs/it/interactive-mode.md), ma il suo standard input non è un terminale. Qualcosa lo ha collegato tramite pipe o reindirizzato, oppure il programma che ha avviato `claude` ha fornito un proprio flusso di input.

3631 3636 

3632Una sessione interattiva ha bisogno di un terminale da cui leggere i tuoi tasti, e ciò che Claude Code fa in assenza di uno dipende dalla tua piattaforma:3637Una sessione interattiva ha bisogno di un terminale da cui leggere i tuoi tasti, e ciò che Claude Code fa senza di esso dipende dalla tua piattaforma:

3633 3638 

3634* **Windows**: Claude Code stampa il messaggio su stderr e termina con codice di uscita 1 invece di avviare l'interfaccia3639* **Windows**: Claude Code stampa il messaggio su stderr ed esce con codice 1 invece di avviare l'interfaccia

3635* **macOS e Linux**: Claude Code legge i tuoi tasti da `/dev/tty` e avvia la sessione, usando l'eventuale testo inviato tramite pipe come primo prompt. Vedi il messaggio quando `/dev/tty` non può essere aperto, e la sua prima riga indica `/dev/tty` al posto della formulazione per Windows.3640* **macOS e Linux**: Claude Code legge i tuoi tasti da `/dev/tty` e avvia la sessione, con l'eventuale testo inviato tramite pipe come primo prompt. Vedi il messaggio quando `/dev/tty` non può essere aperto, e la sua prima riga nomina `/dev/tty` al posto della formulazione per Windows.

3636 3641 

3637Su Windows il messaggio è:3642Su Windows il messaggio recita:

3638 3643 

3639```text theme={null}3644```text theme={null}

3640Claude Code can't read the keyboard here: stdin is not a terminal (it is piped, redirected, or supplied by the program that launched claude), and on Windows it can't fall back to the console for input yet.3645Claude Code can't read the keyboard here: stdin is not a terminal (it is piped, redirected, or supplied by the program that launched claude), and on Windows it can't fall back to the console for input yet.


3647* Per lavorare in modo interattivo, esegui `claude` direttamente in un terminale, senza collegare tramite pipe o reindirizzare il suo input3652* Per lavorare in modo interattivo, esegui `claude` direttamente in un terminale, senza collegare tramite pipe o reindirizzare il suo input

3648* Per ottenere una risposta senza l'interfaccia interattiva, ad esempio da uno script, aggiungi `-p` e fornisci il prompt come argomento o su stdin, come in `claude -p "your question"` o `echo "your question" | claude -p`. Lo stesso funziona con `--continue` e `--resume <session-id>`.3653* Per ottenere una risposta senza l'interfaccia interattiva, ad esempio da uno script, aggiungi `-p` e fornisci il prompt come argomento o su stdin, come in `claude -p "your question"` o `echo "your question" | claude -p`. Lo stesso funziona con `--continue` e `--resume <session-id>`.

3649 3654 

3650Prima della v2.1.287, Claude Code avviava l'interfaccia invece di stampare questo messaggio, quindi non mostrava nulla sullo schermo oppure falliva con un errore contenente `Raw mode is not supported`.3655Prima della v2.1.287, Claude Code avviava l'interfaccia invece di stampare questo messaggio, e poi non mostrava nulla sullo schermo oppure falliva con un errore contenente `Raw mode is not supported`.

3651 3656 

3652Se invece vedi `Raw mode is not supported` durante `claude install`, consulta [`Raw mode is not supported` durante l'installazione](https://code.claude.com/docs/it/troubleshoot-install#raw-mode-is-not-supported-during-install).3657Se invece vedi `Raw mode is not supported` durante `claude install`, consulta [`Raw mode is not supported` durante l'installazione](https://code.claude.com/docs/it/troubleshoot-install#raw-mode-is-not-supported-during-install).

3653 3658 

3654### L'input conteneva solo spazi vuoti3659### Input contained only whitespace

3655 3660 

3656In [modalità non interattiva](https://code.claude.com/docs/it/headless.md), Claude Code rifiuta un prompt composto interamente da spazi, tabulazioni o a capo invece di inviarlo, perché l'API rifiuta i messaggi senza testo visibile. Il messaggio che vedi dipende dalla provenienza del prompt vuoto:3661In [modalità non interattiva](https://code.claude.com/docs/it/headless.md), Claude Code rifiuta un prompt composto interamente da spazi, tabulazioni o a capo invece di inviarlo, perché l'API rifiuta i messaggi senza testo visibile. Il messaggio che vedi dipende dalla provenienza del prompt vuoto:

3657 3662 

3658* **Argomento del prompt o stdin tramite pipe per `claude -p`**: `claude` termina con `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`3663* **Argomento del prompt o stdin tramite pipe per `claude -p`**: `claude` esce con `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`

3659* **Messaggio inviato a una sessione `--input-format stream-json` o [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) in esecuzione**: Claude Code termina il turno senza chiamare il modello e la sessione resta utilizzabile. Il rifiuto arriva come messaggio informativo e come testo del risultato del turno: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`3664* **Messaggio inviato a una sessione `--input-format stream-json` o [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) in esecuzione**: Claude Code termina il turno senza chiamare il modello e la sessione rimane utilizzabile. Il rifiuto arriva come messaggio informativo e come testo del risultato del turno: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3660 3665 

3661Prima della v2.1.229, Claude Code inviava all'API il messaggio composto solo da spazi vuoti, e l'API rifiutava la richiesta con un errore 400.3666Prima della v2.1.229, Claude Code inviava all'API il messaggio composto solo da spazi, che rifiutava la richiesta con un errore 400.

3662 3667 

3663**Cosa fare:**3668**Cosa fare:**

3664 3669 

3665* Includi testo visibile nel prompt. Se uno script costruisce il prompt da una variabile o da un file, verifica che l'origine non sia vuota prima di chiamare Claude Code.3670* Includi testo visibile nel prompt. Se uno script costruisce il prompt da una variabile o da un file, verifica che la fonte non sia vuota prima di chiamare Claude Code.

3666 3671 

3667### L'input stream-json conteneva oltre 256M caratteri senza un a capo3672### stream-json input carried over 256M characters with no newline

3668 3673 

3669Il tuo programma ha inviato più di 268.435.456 caratteri su stdin senza un a capo a un'esecuzione `claude -p --input-format stream-json`, quindi Claude Code stampa questo errore su stderr e termina con codice di uscita 1 invece di accumulare altro input nel buffer. Il messaggio indica quel limite come `256M`. Prima della v2.1.257, Claude Code accumulava tale input nel buffer senza limiti, facendo crescere la memoria finché il processo non andava in crash o veniva terminato.3674Il tuo programma ha inviato più di 268.435.456 caratteri su stdin senza un a capo a un'esecuzione `claude -p --input-format stream-json`, quindi Claude Code stampa questo errore su stderr ed esce con codice 1 invece di continuare a bufferizzare l'input. Il messaggio indica questo limite come `256M`. Prima della v2.1.257, Claude Code bufferizzava tale input senza limiti, facendo crescere la memoria finché il processo non andava in crash o veniva terminato.

3670 3675 

3671```text theme={null}3676```text theme={null}

3672Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3677Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3673```3678```

3674 3679 

3675Un input così lungo senza un a capo di solito significa che il produttore non è affatto un produttore stream-json, come un file binario o un normale output di log inviato tramite pipe per errore. Anche un singolo messaggio che supera il limite non supera lo stesso controllo.3680Un input così lungo senza un a capo di solito significa che il producer non è affatto un producer stream-json, ad esempio un file binario o un normale output di log inviato tramite pipe per errore. Un singolo messaggio che supera il limite non supera lo stesso controllo.

3676 3681 

3677**Cosa fare:**3682**Cosa fare:**

3678 3683 

3679* Controlla cosa viene inviato tramite pipe a stdin. Con [`--input-format stream-json`](https://code.claude.com/docs/it/cli-reference#cli-flags), ogni messaggio deve essere una singola riga JSON terminata da un a capo3684* Controlla cosa viene inviato tramite pipe su stdin. Con [`--input-format stream-json`](https://code.claude.com/docs/it/cli-reference#cli-flags), ogni messaggio deve essere una singola riga JSON terminata da un a capo

3680* Per inviare invece testo semplice, rimuovi `--input-format stream-json`; `claude -p` legge per impostazione predefinita un prompt in testo semplice da stdin3685* Per inviare invece testo semplice, rimuovi `--input-format stream-json`; `claude -p` legge per impostazione predefinita un prompt in testo semplice da stdin

3681 3686 

3682### Comando sconosciuto3687### Unknown command

3683 3688 

3684In una sessione interattiva del terminale, hai inviato un nome `/` che non corrisponde ad alcun comando in questa sessione, quindi Claude Code segnala il nome invece di eseguire qualcosa:3689In una sessione di terminale interattiva, hai inviato un nome con `/` che non corrisponde ad alcun comando in questa sessione, quindi Claude Code segnala il nome invece di eseguire qualcosa:

3685 3690 

3686```text theme={null}3691```text theme={null}

3687Unknown command: /hepl. Did you mean /help?3692Unknown command: /hepl. Did you mean /help?

3688```3693```

3689 3694 

3690Claude Code suggerisce il nome di comando o alias più vicino tra quelli elencati nel menu in questa sessione. Quando non c'è nulla di simile, il messaggio termina dopo il nome. La causa è di solito una delle seguenti:3695Claude Code suggerisce il nome di comando o l'alias più vicino tra quelli elencati nel menu in questa sessione. Quando non c'è nulla di simile, il messaggio termina dopo il nome. La causa è di solito una delle seguenti:

3691 3696 

3692* Un errore di battitura, come `/hepl` per `/help`. [Come il menu dei comandi trova corrispondenze con ciò che digiti](https://code.claude.com/docs/it/commands.md#how-the-command-menu-matches-what-you-type) spiega come scegliere una corrispondenza vicina prima di inviare3697* Un errore di battitura, come `/hepl` per `/help`. [Come il menu dei comandi associa ciò che digiti](https://code.claude.com/docs/it/commands.md#how-the-command-menu-matches-what-you-type) spiega come scegliere una corrispondenza vicina prima dell'invio

3693* Un comando che esiste ma non è disponibile in questa sessione perché un requisito non è soddisfatto, come la tua piattaforma, il tuo piano o il tuo metodo di autenticazione. Consulta la voce per [`/web-setup`](https://code.claude.com/docs/it/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command), [`/schedule`](https://code.claude.com/docs/it/routines#schedule-returns-unknown-command) o [`/auto-mode-setup`](https://code.claude.com/docs/it/auto-mode-config#auto-mode-setup-returns-unknown-command). Alcuni comandi rispondono con un proprio messaggio quando la policy della tua organizzazione li disabilita, come [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3698* Un comando che esiste ma non è disponibile in questa sessione perché un requisito non è soddisfatto, come la tua piattaforma, il tuo piano o il tuo metodo di autenticazione. Consulta la voce per [`/web-setup`](https://code.claude.com/docs/it/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command), [`/schedule`](https://code.claude.com/docs/it/routines#schedule-returns-unknown-command) o [`/auto-mode-setup`](https://code.claude.com/docs/it/auto-mode-config#auto-mode-setup-returns-unknown-command). Alcuni comandi rispondono con un proprio messaggio quando la policy della tua organizzazione li disabilita, come [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3694* Un comando di un [plugin](https://code.claude.com/docs/it/plugins/overview.md) o di un [server MCP](https://code.claude.com/docs/it/mcp.md#use-mcp-prompts-as-commands) che non è installato o connesso in questa sessione3699* Un comando di un [plugin](https://code.claude.com/docs/it/plugins/overview.md) o di un [server MCP](https://code.claude.com/docs/it/mcp.md#use-mcp-prompts-as-commands) che non è installato o connesso in questa sessione

3695 3700 

3696Claude Code risponde in questo modo a un nome `/` senza corrispondenza solo in una sessione interattiva del terminale. In tutte le altre sessioni, invia invece il prompt a Claude come un normale messaggio, con una nota che indica che il comando non è stato eseguito e un elenco dei comandi che Claude può eseguire nella sessione. Queste sessioni includono:3701Claude Code risponde in questo modo a un nome con `/` senza corrispondenza solo in una sessione di terminale interattiva. In ogni altra sessione, invia invece il prompt a Claude come un normale messaggio, con una nota che indica che il comando non è stato eseguito e un elenco dei comandi che Claude può eseguire nella sessione. Queste sessioni includono:

3697 3702 

3698* Le esecuzioni con `-p`3703* Le esecuzioni con `-p`

3699* Le applicazioni [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md)3704* Le applicazioni [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md)

3700* La scheda Code dell'[app Desktop](https://code.claude.com/docs/it/desktop.md)3705* La scheda Code dell'[app Desktop](https://code.claude.com/docs/it/desktop.md)

3701* Il pannello della chat dell'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md)3706* Il pannello di chat dell'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md)

3702* Le [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) e le [attività pianificate cloud](https://code.claude.com/docs/it/routines.md)3707* Le [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) e le [attività pianificate cloud](https://code.claude.com/docs/it/routines.md)

3703 3708 

3704Per un comando integrato che non può essere eseguito in una di queste sessioni, Claude Code risponde comunque che il comando non è disponibile invece di inviarlo a Claude. Prima della v2.1.274, solo le sessioni cloud e le attività pianificate cloud inviavano a Claude un nome senza corrispondenza. Prima della v2.1.273, anche queste rispondevano `Unknown command`.3709Per un comando integrato che non può essere eseguito in una di queste sessioni, Claude Code risponde comunque che il comando non è disponibile invece di inviarlo a Claude. Prima della v2.1.274, solo le sessioni cloud e le attività pianificate cloud inviavano a Claude un nome senza corrispondenza. Prima della v2.1.273, anche queste rispondevano `Unknown command`.

3705 3710 

3706Claude Code non tratta come comando ogni prompt che inizia con `/`. Invia il prompt a Claude come un normale messaggio quando la prima parola dopo `/` inizia con un segno di punteggiatura, come il `/--` che apre un commento di documentazione Lean, oppure è un percorso come `/var/log/syslog`.3711Claude Code non tratta come comando ogni prompt che inizia con `/`. Invia il prompt a Claude come un normale messaggio quando la prima parola dopo la `/` inizia con un segno di punteggiatura, come il `/--` che apre un commento di documentazione Lean, oppure è un percorso come `/var/log/syslog`.

3707 3712 

3708Prima della v2.1.236, se premevi `Enter` mentre il menu dei comandi elencava una corrispondenza vicina al nome che avevi digitato, Claude Code eseguiva quella corrispondenza, quindi un errore di battitura come `/hepl` eseguiva `/help` invece di produrre questo messaggio.3713Prima della v2.1.236, se premevi `Enter` mentre il menu dei comandi elencava una corrispondenza vicina al nome che avevi digitato, Claude Code eseguiva quella corrispondenza, quindi un errore di battitura come `/hepl` eseguiva `/help` invece di produrre questo messaggio.

3709 3714 

3710**Cosa fare:**3715**Cosa fare:**

3711 3716 

3712* Esegui il nome suggerito, oppure digita `/` seguito da parte del nome per vedere cosa è disponibile in questa sessione3717* Esegui il nome suggerito, oppure digita `/` seguito da parte del nome per vedere cosa è disponibile in questa sessione

3713* Se Claude Code segnala come sconosciuto un comando documentato, controlla la sua riga nel [riferimento dei comandi](https://code.claude.com/docs/it/commands.md) per il requisito indicato3718* Se Claude Code segnala come sconosciuto un comando documentato, controlla la sua riga nel [riferimento dei comandi](https://code.claude.com/docs/it/commands.md) per il requisito che indica

3714 3719 

3715### Il diff è troppo grande per ultrareview3720### Diff is too large for ultrareview

3716 3721 

3717Il diff tra il tuo branch e il branch di base, incluse le modifiche non sottoposte a commit e quelle nell'area di staging, supera i limiti di dimensione per un'[ultrareview](https://code.claude.com/docs/it/ultrareview.md), quindi `/code-review ultra` e il sottocomando `claude ultrareview` rifiutano la revisione prima che la sessione cloud si avvii. Una revisione rifiutata non consuma un'esecuzione gratuita e non addebita crediti di utilizzo. Il messaggio indica i limiti in vigore, la dimensione del tuo diff e i file che contribuiscono con il maggior numero di righe modificate. Prima della v2.1.216, il messaggio mostrava solo le statistiche grezze del diff.3722Il diff tra il tuo branch e il branch di base, incluse le modifiche non sottoposte a commit e quelle in staging, supera i limiti di dimensione per una [ultrareview](https://code.claude.com/docs/it/ultrareview.md), quindi `/code-review ultra` e il sottocomando `claude ultrareview` rifiutano la revisione prima dell'avvio della sessione cloud. Una revisione rifiutata non consuma un'esecuzione gratuita e non addebita crediti di utilizzo. Il messaggio indica i limiti in vigore, la dimensione del tuo diff e i file che contribuiscono con il maggior numero di righe modificate. Prima della v2.1.216, il messaggio mostrava solo le statistiche grezze del diff.

3718 3723 

3719```text theme={null}3724```text theme={null}

3720Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3725Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.


3724 3729 

3725**Cosa fare:**3730**Cosa fare:**

3726 3731 

3727* Passa un branch di base più vicino al tuo lavoro, come `/code-review ultra develop`, in modo che la revisione copra solo il diff rispetto a quel branch3732* Passa un branch di base più vicino al tuo lavoro, ad esempio `/code-review ultra develop`, in modo che la revisione copra solo il diff rispetto a quel branch

3728* Suddividi la modifica in branch più piccoli e revisionali uno alla volta. I file indicati dal messaggio contribuiscono con il maggior numero di righe modificate, quindi inizia spostandoli in un branch a sé.3733* Suddividi la modifica in branch più piccoli e revisiona ciascuno di essi. I file indicati nel messaggio contribuiscono con il maggior numero di righe modificate, quindi inizia spostandoli in un branch dedicato.

3729 3734 

3730### Impossibile trovare il merge-base con il branch di base3735### Could not find merge-base with the base branch

3731 3736 

3732`/code-review ultra` e il sottocomando `claude ultrareview` revisionano il diff tra il tuo branch e un branch di base, il che richiede un commit condiviso dai due. Quando `git merge-base` non ne trova nessuno, Claude Code rifiuta la revisione prima che la sessione cloud si avvii. Su un clone che Claude Code può verificare come completo, con almeno un branch, ripiega sulla [revisione di ogni file tracciato](https://code.claude.com/docs/it/ultrareview.md#diff-limits-and-fallbacks) invece di rifiutare. Vedi questo rifiuto quando il branch di base non può essere trovato affatto, quando Claude Code non riesce a verificare che il tuo clone sia completo, oppure nel raro repository in cui il diff dell'intero albero non è possibile, come con il formato oggetti SHA-256.3737`/code-review ultra` e il sottocomando `claude ultrareview` revisionano il diff tra il tuo branch e un branch di base, operazione che richiede un commit condiviso dai due. Quando `git merge-base` non ne trova nessuno, Claude Code rifiuta la revisione prima dell'avvio della sessione cloud. Su un clone che Claude Code può verificare come completo, con almeno un branch, ripiega sulla [revisione di ogni file tracciato](https://code.claude.com/docs/it/ultrareview.md#diff-limits-and-fallbacks) invece di rifiutare. Vedi questo rifiuto quando il branch di base non può essere trovato affatto, quando Claude Code non riesce a verificare che il tuo clone sia completo, oppure nel raro caso di un repository in cui il diff dell'intero albero non è possibile, come con il formato di oggetti SHA-256.

3733 3738 

3734```text theme={null}3739```text theme={null}

3735Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3740Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.


3738Il suggerimento dopo la prima frase dipende da ciò che Claude Code ha osservato:3743Il suggerimento dopo la prima frase dipende da ciò che Claude Code ha osservato:

3739 3744 

3740* **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 sopra3745* **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

3741* **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>`)``3746* **Hai passato un branch di base già presente nel tuo clone**: il suggerimento è ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

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

3743 3748 

3744**Cosa fare:**3749**Cosa fare:**

3745 3750 

3746* Se un altro branch è il tuo vero branch di base, passalo esplicitamente: `/code-review ultra <branch>`3751* Se il tuo vero branch di base è un altro, passalo esplicitamente: `/code-review ultra <branch>`

3747* Se il tuo clone potrebbe non avere la cronologia completa, esegui `git fetch --unshallow origin` ed esegui di nuovo la revisione3752* Se il tuo clone potrebbe non avere la cronologia completa, esegui `git fetch --unshallow origin` e ripeti la revisione

3748 3753 

3749### Il tuo checkout non ha branch3754### Your checkout has no branches

3750 3755 

3751Un checkout può avere dei commit ma nessun branch: se esegui `git init` seguito da `git fetch <url>` e `git checkout FETCH_HEAD`, ottieni un HEAD scollegato senza ref. Claude Code impacchetta il tuo repository come bundle git per caricarlo per un'[ultrareview](https://code.claude.com/docs/it/ultrareview.md), e non può creare il bundle di un repository che non ha branch o altri ref, quindi `/code-review ultra` e il sottocomando `claude ultrareview` rifiutano la revisione prima che la sessione cloud si avvii.3756Un checkout può avere commit ma nessun branch: se esegui `git init` seguito da `git fetch <url>` e `git checkout FETCH_HEAD`, ottieni un HEAD scollegato senza ref. Claude Code impacchetta il tuo repository come git bundle per caricarlo per una [ultrareview](https://code.claude.com/docs/it/ultrareview.md), e non può creare un bundle di un repository privo di branch o di altri ref, quindi `/code-review ultra` e il sottocomando `claude ultrareview` rifiutano la revisione prima dell'avvio della sessione cloud.

3752 3757 

3753```text theme={null}3758```text theme={null}

3754Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3759Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.


3758 3763 

3759**Cosa fare:**3764**Cosa fare:**

3760 3765 

3761* Crea un branch al commit corrente con `git checkout -b <name>`, quindi esegui di nuovo la revisione3766* Crea un branch al commit corrente con `git checkout -b <name>`, poi ripeti la revisione

3762 3767 

3763### Nessun account GitHub è collegato al tuo account Claude3768### No GitHub account is connected to your Claude account

3764 3769 

3765Hai eseguito `/code-review ultra <PR#>` o `claude ultrareview <PR#>`, e prima di creare la sessione cloud Claude Code chiede al server se [l'account GitHub collegato al tuo account Claude](https://code.claude.com/docs/it/ultrareview.md#review-a-pull-request) può accedere al repository della PR. Nessun account è collegato, o il collegamento è scaduto, quindi il clone nel cloud fallirebbe e Claude Code rifiuta l'avvio. Claude Code non consuma un'esecuzione gratuita né addebita crediti di utilizzo per un avvio rifiutato.3770Hai eseguito `/code-review ultra <PR#>` o `claude ultrareview <PR#>`, e prima di creare la sessione cloud Claude Code chiede al server se [l'account GitHub collegato al tuo account Claude](https://code.claude.com/docs/it/ultrareview.md#review-a-pull-request) può accedere al repository della PR. Nessun account è collegato, oppure il collegamento è scaduto, quindi il clone nel cloud fallirebbe e Claude Code rifiuta l'avvio. Claude Code non consuma un'esecuzione gratuita né addebita crediti di utilizzo per un avvio rifiutato.

3766 3771 

3767```text theme={null}3772```text theme={null}

3768Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3773Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).


3772 3777 

3773**Cosa fare:**3778**Cosa fare:**

3774 3779 

3775* Esegui `/web-setup` per collegare il tuo accesso alla GitHub CLI al tuo account Claude, oppure collega un account su [claude.ai/connect-github](https://claude.ai/connect-github)3780* Esegui `/web-setup` per collegare il tuo login della GitHub CLI al tuo account Claude, oppure collega un account su [claude.ai/connect-github](https://claude.ai/connect-github)

3776* Esegui di nuovo la revisione un minuto dopo il collegamento3781* Ripeti la revisione un minuto dopo il collegamento

3777 3782 

3778Prima della v2.1.248, Claude Code non effettuava questo controllo prima dell'avvio.3783Prima della v2.1.248, Claude Code non eseguiva questo controllo prima dell'avvio.

3779 3784 

3780### Il tuo account GitHub collegato non può vedere il repository3785### Your connected GitHub account can't see the repository

3781 3786 

3782Hai eseguito `/code-review ultra <PR#>` o `claude ultrareview <PR#>`, e [l'account GitHub collegato al tuo account Claude](https://code.claude.com/docs/it/ultrareview.md#review-a-pull-request) non può leggere il repository della PR, quindi il clone nel cloud fallirebbe e Claude Code rifiuta l'avvio. Claude Code non consuma un'esecuzione gratuita né addebita crediti di utilizzo per un avvio rifiutato.3787Hai eseguito `/code-review ultra <PR#>` o `claude ultrareview <PR#>`, e [l'account GitHub collegato al tuo account Claude](https://code.claude.com/docs/it/ultrareview.md#review-a-pull-request) non può leggere il repository della PR, quindi il clone nel cloud fallirebbe e Claude Code rifiuta l'avvio. Claude Code non consuma un'esecuzione gratuita né addebita crediti di utilizzo per un avvio rifiutato.

3783 3788 


3789 3794 

3790**Cosa fare:**3795**Cosa fare:**

3791 3796 

3792* Se la tua CLI `gh` locale può leggere il repository, esegui `/web-setup` per collegare quell'accesso al tuo account Claude3797* Se la tua CLI `gh` locale può leggere il repository, esegui `/web-setup` per collegare quel login al tuo account Claude

3793* Esegui di nuovo la revisione dopo la modifica3798* Ripeti la revisione dopo la modifica

3794 3799 

3795Prima della v2.1.248, Claude Code non effettuava questo controllo prima dell'avvio.3800Prima della v2.1.248, Claude Code non eseguiva questo controllo prima dell'avvio.

3796 3801 

3797### Il controllo preliminare della GitHub App non è riuscito temporaneamente3802### The GitHub App preflight failed transiently

3798 3803 

3799Hai avviato una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) da un repository locale, e due passaggi sono falliti insieme. Claude Code non è riuscito a creare o caricare il bundle del tuo repository. Prima del caricamento, ha verificato se il servizio cloud può clonare il repository da GitHub e, invece di una risposta definitiva, quel controllo si è concluso con un errore che un nuovo tentativo potrebbe risolvere, come un errore di rete, un timeout o un errore temporaneo del server. Il messaggio completo inizia con ciò che ha bloccato il bundle, ad esempio `Could not upload repo bundle (<error>)`, e termina con la frase sul controllo preliminare:3804Hai avviato una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) da un repository locale, e due passaggi sono falliti insieme. Claude Code non è riuscito a creare o caricare il bundle del tuo repository. Prima del caricamento, ha verificato se il servizio cloud può clonare il repository da GitHub e, invece di una risposta definitiva, quel controllo è terminato con un errore che un nuovo tentativo potrebbe risolvere, come un errore di rete, un timeout o un errore temporaneo del server. Il messaggio completo inizia con ciò che ha bloccato il bundle, ad esempio `Could not upload repo bundle (<error>)`, e termina con la frase relativa al controllo preliminare:

3800 3805 

3801```text theme={null}3806```text theme={null}

3802Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3807Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead


3804 3809 

3805**Cosa fare:**3810**Cosa fare:**

3806 3811 

3807* Esegui di nuovo il comando dopo un momento. Quando il controllo GitHub viene superato, Claude Code può avviare la sessione da un clone GitHub, quindi il caricamento non riuscito non blocca più l'avvio3812* Esegui di nuovo il comando dopo qualche istante. Quando il controllo GitHub ha esito positivo, Claude Code può avviare la sessione da un clone GitHub, quindi il caricamento fallito non blocca più l'avvio

3808* Se i nuovi tentativi continuano a fallire, l'inizio del messaggio indica cosa ha bloccato il caricamento. Quando quella causa è qualcosa che puoi correggere, correggila in modo che la sessione possa invece avviarsi dal tuo repository locale3813* Se i nuovi tentativi continuano a fallire, l'inizio del messaggio indica cosa ha bloccato il caricamento. Quando si tratta di una causa che puoi risolvere, risolvila in modo che la sessione possa invece avviarsi dal tuo repository locale

3809 3814 

3810Prima della v2.1.251, Claude Code terminava il messaggio con `Please set up GitHub on https://claude.ai/code` anche quando il controllo GitHub falliva solo temporaneamente, e un consiglio di configurazione non può risolvere un errore temporaneo.3815Prima della v2.1.251, Claude Code terminava il messaggio con `Please set up GitHub on https://claude.ai/code` anche quando il controllo GitHub falliva solo temporaneamente, e un consiglio di configurazione non può risolvere un errore temporaneo.

3811 3816 

3812### Il caricamento del repository non può seguire un'impostazione git3817### Il caricamento del repository non può seguire un'impostazione git

3813 3818 

3814Hai avviato una [sessione cloud che carica il tuo repository locale](https://code.claude.com/docs/it/claude-code-on-the-web.md#send-local-repositories-without-github), oppure un'[ultrareview](https://code.claude.com/docs/it/ultrareview.md) di un branch, e il caricamento non può seguire una delle impostazioni git che determinano quali regole degli attributi si applicano ai tuoi file. Se il caricamento procedesse e ignorasse una regola, un file che git trasforma prima di memorizzarlo, come uno cifrato da un clean filter, potrebbe arrivare nel cloud così com'è su disco. Claude Code rifiuta invece il caricamento, e non viene caricato nulla:3819Hai avviato una [sessione cloud che carica il tuo repository locale](https://code.claude.com/docs/it/claude-code-on-the-web.md#send-local-repositories-without-github), oppure una [ultrareview](https://code.claude.com/docs/it/ultrareview.md) di un branch, e il caricamento non può seguire una delle impostazioni git che determinano quali regole di attributo si applicano ai tuoi file. Se il caricamento procedesse ignorando una regola, un file che git trasforma prima di memorizzarlo, ad esempio uno che un clean filter cifra, potrebbe arrivare nel cloud così com'è sul disco. Claude Code rifiuta invece il caricamento, e nulla viene caricato:

3815 3820 

3816```text theme={null}3821```text theme={null}

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

3818```3823```

3819 3824 

3820Il messaggio indica l'impostazione e dove è impostata, e termina con la soluzione per il caso in cui ti trovi. Lo stesso rifiuto appare per `core.attributesFile` e `attr.tree`, ciascuno con la propria soluzione.3825Il messaggio indica l'impostazione e dove è definita, e termina con la correzione per il caso riscontrato. Lo stesso rifiuto compare per `core.attributesFile` e `attr.tree`, ciascuno con la propria correzione.

3821 3826 

3822Il messaggio può indicare un file di configurazione che la tua configurazione git include tramite una direttiva `include` o `includeIf`, anche quando la condizione di quella direttiva non si applica a questo repository.3827Il messaggio può indicare un file di configurazione che la tua configurazione git include tramite una direttiva `include` o `includeIf`, anche quando la condizione di quella direttiva non si applica a questo repository.

3823 3828 

3824**Cosa fare:**3829**Cosa fare:**

3825 3830 

3826* Applica la soluzione indicata nella frase finale del messaggio3831* Applica la correzione indicata nell'ultima frase del messaggio

3827 3832 

3828### GitHub non è collegato al tuo account Claude3833### GitHub isn't connected to your Claude account

3829 3834 

3830Hai avviato una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) dal tuo repository locale, ad esempio con `/autofix-pr`. Nessun account GitHub è collegato al tuo account Claude, o il collegamento è scaduto, quindi Claude Code rifiuta l'avvio:3835Hai avviato una [sessione cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md) dal tuo repository locale, ad esempio con `/autofix-pr`. Nessun account GitHub è collegato al tuo account Claude, oppure il collegamento è scaduto, quindi Claude Code rifiuta l'avvio:

3831 3836 

3832```text theme={null}3837```text theme={null}

3833GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3838GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github


3837 3842 

3838**Cosa fare:**3843**Cosa fare:**

3839 3844 

3840* Esegui `/web-setup` per collegare il tuo accesso alla GitHub CLI al tuo account Claude, oppure collega un account su [claude.ai/connect-github](https://claude.ai/connect-github). Consulta [Opzioni di autenticazione GitHub](https://code.claude.com/docs/it/claude-code-on-the-web.md#github-authentication-options) per le differenze tra i due metodi.3845* Esegui `/web-setup` per collegare il tuo login della GitHub CLI al tuo account Claude, oppure collega un account su [claude.ai/connect-github](https://claude.ai/connect-github). Consulta [Opzioni di autenticazione GitHub](https://code.claude.com/docs/it/claude-code-on-the-web.md#github-authentication-options) per capire in cosa differiscono le due opzioni.

3841* Esegui di nuovo il comando un minuto dopo il collegamento3846* Esegui di nuovo il comando un minuto dopo il collegamento

3842 3847 

3843Prima della v2.1.268, Claude Code segnalava questa situazione come un errore temporaneo del controllo della Claude GitHub App e suggeriva di riprovare o di installare l'app; nessuna delle due opzioni collega un account GitHub.3848Prima della v2.1.268, Claude Code segnalava questa situazione come un errore temporaneo del controllo della Claude GitHub App e suggeriva di riprovare o di installare l'app; nessuna delle due azioni collega un account GitHub.

3844 3849 

3845### Una policy dell'organizzazione GitHub sta bloccando Claude3850### Una policy dell'organizzazione GitHub sta bloccando Claude

3846 3851 

3847Hai eseguito al prompt di Claude Code un comando che avvia una sessione cloud, come [`/autofix-pr`](https://code.claude.com/docs/it/claude-code-on-the-web#auto-fix-pull-requests). Prima di creare la sessione, Claude Code verifica l'accesso di Claude al repository su GitHub, e GitHub lo ha rifiutato perché la tua organizzazione GitHub ha una policy che blocca Claude. Claude Code si ferma lì e mostra un messaggio che indica la policy.3852Hai eseguito al prompt di Claude Code un comando che avvia una sessione cloud, come [`/autofix-pr`](https://code.claude.com/docs/it/claude-code-on-the-web#auto-fix-pull-requests). Prima di creare la sessione, Claude Code verifica l'accesso di Claude al repository su GitHub, e GitHub l'ha rifiutato perché la tua organizzazione GitHub ha una policy che blocca Claude. Claude Code si ferma lì e mostra un messaggio che indica la policy.

3848 3853 

3849Quando a bloccare l'accesso è una allowlist di IP, il messaggio è:3854Quando a bloccare l'accesso è un'allowlist di IP, il messaggio è:

3850 3855 

3851```text theme={null}3856```text theme={null}

3852Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist.3857Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist.


3866 3871 

3867**Cosa fare:**3872**Cosa fare:**

3868 3873 

3869* **Allowlist di IP**: chiedi a un proprietario della tua organizzazione o enterprise GitHub di consentire gli indirizzi IP in uscita di Anthropic. Consulta [Allowlist e firewall di GitHub](https://code.claude.com/docs/it/network-config.md#github-allow-lists-and-firewalls) per gli indirizzi e le impostazioni di GitHub da modificare.3874* **Allowlist di IP**: chiedi a un owner della tua organizzazione o enterprise GitHub di consentire gli indirizzi IP in uscita di Anthropic. Consulta [Allowlist e firewall di GitHub](https://code.claude.com/docs/it/network-config.md#github-allow-lists-and-firewalls) per gli indirizzi e le impostazioni GitHub da modificare.

3870* **Single sign-on**: disconnetti GitHub su [claude.ai/customize/connectors](https://claude.ai/customize/connectors), quindi connettilo di nuovo. Quando GitHub lo chiede, fai clic su **Authorize** accanto alla tua organizzazione, in modo che la nuova connessione sia autorizzata per il suo single sign-on.3875* **Single sign-on**: scollega GitHub su [claude.ai/customize/connectors](https://claude.ai/customize/connectors), poi collegalo di nuovo. Quando GitHub lo chiede, fai clic su **Authorize** accanto alla tua organizzazione in modo che il nuovo collegamento sia autorizzato per il suo single sign-on.

3871* **Policy di accesso condizionale**: chiedi al tuo amministratore di GitHub Enterprise o di Microsoft Entra ID di consentire Claude in quella policy3876* **Policy di accesso condizionale**: chiedi al tuo amministratore di GitHub Enterprise o di Microsoft Entra ID di consentire Claude in quella policy

3872* Dopo la modifica, esegui di nuovo il comando3877* Dopo la modifica, esegui di nuovo il comando

3873 3878 

3874### Autorizzazione single sign-on necessaria3879### Single sign-on authorization needed

3875 3880 

3876Hai eseguito [`/install-github-app`](https://code.claude.com/docs/it/github-actions#quick-setup) e scelto un repository la cui organizzazione impone il single sign-on SAML. Prima della configurazione, Claude Code verifica il tuo accesso al repository con la GitHub CLI, e GitHub ha rifiutato quella verifica perché il tuo token `gh` non è ancora autorizzato per l'organizzazione. La procedura guidata mostra l'avviso con i passaggi per l'autorizzazione:3881Hai eseguito [`/install-github-app`](https://code.claude.com/docs/it/github-actions#quick-setup) e scelto un repository la cui organizzazione impone il single sign-on SAML. Prima della configurazione, Claude Code verifica il tuo accesso al repository con la GitHub CLI, e GitHub ha rifiutato quel controllo perché il tuo token `gh` non è ancora autorizzato per l'organizzazione. La procedura guidata mostra l'avviso con i passaggi per l'autorizzazione:

3877 3882 

3878```text theme={null}3883```text theme={null}

3879Single sign-on authorization needed3884Single sign-on authorization needed


3882 3887 

3883**Cosa fare:**3888**Cosa fare:**

3884 3889 

3885* Autorizza di nuovo il tuo accesso alla GitHub CLI con gli scope `repo` e `workflow` eseguendo `gh auth refresh -h github.com -s repo,workflow`, e autorizza l'organizzazione quando GitHub chiede il single sign-on3890* Autorizza di nuovo il tuo login della GitHub CLI con gli scope `repo` e `workflow` eseguendo `gh auth refresh -h github.com -s repo,workflow`, e autorizza l'organizzazione quando GitHub richiede il single sign-on

3886* Se ti autentichi con un personal access token in `GH_TOKEN`, apri [github.com/settings/tokens](https://github.com/settings/tokens), seleziona **Configure SSO** sul token e autorizza l'organizzazione3891* Se ti autentichi con un personal access token in `GH_TOKEN`, apri [github.com/settings/tokens](https://github.com/settings/tokens), seleziona **Configure SSO** sul token e autorizza l'organizzazione

3887* Esegui di nuovo `/install-github-app`3892* Esegui di nuovo `/install-github-app`

3888 3893 


3890 3895 

3891### Failed to resume the conversation3896### Failed to resume the conversation

3892 3897 

3893Claude Code non è riuscito a leggere o elaborare la trascrizione salvata della sessione che hai selezionato dal [selettore di `claude --resume`](https://code.claude.com/docs/it/sessions#use-the-session-picker), quindi termina il processo anziché continuare in uno stato caricato solo parzialmente. Il messaggio include il comando per riprovare:3898Claude Code non è riuscito a leggere o elaborare la trascrizione salvata della sessione selezionata dal [selettore di `claude --resume`](https://code.claude.com/docs/it/sessions#use-the-session-picker), quindi termina il processo anziché proseguire in uno stato caricato solo in parte. Il messaggio include il comando per riprovare:

3894 3899 

3895```text theme={null}3900```text theme={null}

3896Failed to resume the conversation.3901Failed to resume the conversation.

3897Run claude --resume <session-id> to retry, or claude to start a new session.3902Run claude --resume <session-id> to retry, or claude to start a new session.

3898```3903```

3899 3904 

3900Claude Code esce con codice 1 dopo aver mostrato il messaggio. Il selettore di `/resume` all'interno di una sessione in esecuzione segnala invece `Failed to resume conversation` nella conversazione, e la tua sessione corrente continua a essere eseguita. Prima della v2.1.216, una ripresa non riuscita dal selettore di `claude --resume` restava indefinitamente sull'indicatore `Resuming conversation…` invece di mostrare questo messaggio.3905Claude Code esce con codice 1 dopo aver mostrato il messaggio. Il selettore di `/resume` all'interno di una sessione in esecuzione riporta invece `Failed to resume conversation` nella conversazione, e la tua sessione corrente continua a funzionare. Prima della v2.1.216, una ripresa non riuscita dal selettore di `claude --resume` restava indefinitamente sull'indicatore `Resuming conversation…` invece di mostrare questo messaggio.

3901 3906 

3902**Cosa fare:**3907**Cosa fare:**

3903 3908 

3904* Esegui `claude --resume <session-id>` con l'ID di sessione indicato nel messaggio per riprovare3909* Esegui `claude --resume <session-id>` con l'ID di sessione indicato nel messaggio per riprovare

3905* In una versione precedente alla v2.1.285, se il nuovo tentativo fallisce allo stesso modo, esegui `claude update` e riprendi di nuovo. Quelle versioni non riescono a riprendere la sessione quando la trascrizione salvata contiene una voce che non sono in grado di leggere.3910* In una versione precedente alla v2.1.285, se il nuovo tentativo fallisce allo stesso modo, esegui `claude update` e riprendi di nuovo. Quelle versioni falliscono la ripresa quando la trascrizione salvata contiene una voce che non riescono a leggere.

3906* Se il nuovo tentativo fallisce ancora, esegui `claude` per avviare una nuova sessione3911* Se il nuovo tentativo fallisce ancora, esegui `claude` per avviare una nuova sessione

3907 3912 

3908### No conversation found with the session ID3913### No conversation found with the session ID


3913No conversation found with session ID: <session-id>3918No conversation found with session ID: <session-id>

3914```3919```

3915 3920 

3916Claude Code esce con codice 1 dopo aver mostrato il messaggio. Claude Code [cerca l'ID prima nel progetto corrente, poi in ogni altro progetto su questa macchina](https://code.claude.com/docs/it/sessions.md#where-the-session-picker-looks). Prima della v2.1.223, la ricerca si fermava alla directory del progetto corrente e ai suoi worktree git, quindi riprendi dalla directory in cui la sessione ha lavorato per ultima.3921Claude Code esce con codice 1 dopo aver mostrato il messaggio. Claude Code [cerca l'ID prima nel progetto corrente, poi in tutti gli altri progetti su questa macchina](https://code.claude.com/docs/it/sessions.md#where-the-session-picker-looks). Prima della v2.1.223, la ricerca si fermava alla directory del progetto corrente e ai suoi worktree git, quindi riprendi dalla directory in cui la sessione ha lavorato per ultima.

3917 3922 

3918Cause comuni:3923Cause comuni:

3919 3924 

3920* **ID digitato in modo errato**: per un'esecuzione non interattiva, l'ID è il campo `session_id` dell'[output di `--output-format json`](https://code.claude.com/docs/it/headless#get-structured-output)3925* **ID digitato in modo errato**: per un'esecuzione non interattiva, l'ID è il campo `session_id` dell'[output di `--output-format json`](https://code.claude.com/docs/it/headless#get-structured-output)

3921* **Trascrizione eliminata**: Claude Code rimuove le trascrizioni dopo il [periodo di conservazione](https://code.claude.com/docs/it/sessions.md#where-transcripts-are-stored), 30 giorni per impostazione predefinita, seguendo le [regole di pulizia della conservazione](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically)3926* **Trascrizione eliminata**: Claude Code rimuove le trascrizioni dopo il [periodo di conservazione](https://code.claude.com/docs/it/sessions.md#where-transcripts-are-stored), 30 giorni per impostazione predefinita, secondo le [regole di pulizia per la conservazione](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically)

3922* **Macchina diversa**: Claude Code memorizza le trascrizioni localmente, quindi riprendi la sessione sulla macchina in cui è stata eseguita3927* **Macchina diversa**: Claude Code memorizza le trascrizioni in locale, quindi riprendi la sessione sulla macchina in cui è stata eseguita

3923* **Copie duplicate**: se hai copiato una directory di progetto in `~/.claude/projects` in modo che due trascrizioni abbiano lo stesso ID, Claude Code mostra questo messaggio anziché riprendere arbitrariamente una delle copie3928* **Copie duplicate**: se hai copiato una directory di progetto sotto `~/.claude/projects` così che due trascrizioni riportano lo stesso ID, Claude Code mostra questo messaggio anziché riprendere arbitrariamente una delle copie

3924 3929 

3925**Cosa fare:**3930**Cosa fare:**

3926 3931 

3927* Per una sessione interattiva, apri il [selettore delle sessioni](https://code.claude.com/docs/it/sessions.md#use-the-session-picker) con `claude --resume` e premi `Ctrl+A` per estenderlo a tutti i progetti su questa macchina, quindi seleziona la sessione3932* Per una sessione interattiva, apri il [selettore delle sessioni](https://code.claude.com/docs/it/sessions.md#use-the-session-picker) con `claude --resume` e premi `Ctrl+A` per estenderlo a tutti i progetti su questa macchina, poi seleziona la sessione

3928* Le sessioni create con `claude -p` o con l'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) non compaiono nel selettore, quindi ricontrolla l'ID confrontandolo con il `session_id` stampato dall'esecuzione originale3933* Le sessioni create con `claude -p` o con l'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) non compaiono nel selettore, quindi ricontrolla l'ID confrontandolo con il `session_id` stampato dall'esecuzione originale

3929 3934 

3930### Windows ha segnalato un errore (EBADF) quando Claude Code ha letto il file di trascrizione di questa sessione3935### Windows reported an error (EBADF) when Claude Code read this session's transcript file

3931 3936 

3932Hai ripreso una sessione su Windows, il suo [file di trascrizione](https://code.claude.com/docs/it/sessions.md#where-transcripts-are-stored) salvato si è aperto normalmente, e poi la lettura è fallita con l'errore di sistema EBADF. L'errore di sistema non indica perché la lettura sia fallita, quindi il messaggio suggerisce le cause probabili e cosa provare:3937Hai ripreso una sessione su Windows, il suo [file di trascrizione](https://code.claude.com/docs/it/sessions.md#where-transcripts-are-stored) salvato si è aperto normalmente, e la lettura è poi fallita con l'errore di sistema EBADF. L'errore di sistema non spiega perché la lettura è fallita, quindi il messaggio suggerisce le cause probabili e cosa provare:

3933 3938 

3934```text theme={null}3939```text theme={null}

3935Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.3940Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3936```3941```

3937 3942 

3938Il messaggio segue la riga di errore del comando stesso, come `Failed to resume session <session-id>`. Un comando `claude --resume` o [`claude -p`](https://code.claude.com/docs/it/headless) esce con codice 1 dopo averlo mostrato. Dopo `/resume` all'interno di una sessione, la tua sessione corrente continua a essere eseguita.3943Il messaggio segue la riga di errore del comando stesso, ad esempio `Failed to resume session <session-id>`. Un comando `claude --resume` o [`claude -p`](https://code.claude.com/docs/it/headless) esce con codice 1 dopo averlo mostrato. Dopo `/resume` all'interno di una sessione, la tua sessione corrente continua a funzionare.

3939 3944 

3940**Cosa fare:**3945**Cosa fare:**

3941 3946 

3942* Escludi la cartella che contiene le trascrizioni delle tue sessioni dai software che analizzano o intercettano le letture dei file, come gli strumenti di sicurezza, crittografia o gestione degli endpoint. Le trascrizioni si trovano in `%USERPROFILE%\.claude\projects` per impostazione predefinita, oppure nella directory indicata da [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars)3947* Escludi la cartella che contiene le trascrizioni delle tue sessioni dai software che analizzano o intercettano le letture dei file, come strumenti di sicurezza, cifratura o gestione degli endpoint. Le trascrizioni si trovano in `%USERPROFILE%\.claude\projects` per impostazione predefinita, oppure nella directory indicata da [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars)

3943* Se non puoi aggiungere un'esclusione, aggiungi invece Claude Code alle applicazioni consentite di quel software3948* Se non puoi aggiungere un'esclusione, aggiungi invece Claude Code alle applicazioni consentite di quel software

3944* Riprendi di nuovo la sessione3949* Riprendi di nuovo la sessione

3945 3950 

3946Prima della v2.1.282, l'errore non era accompagnato da alcuna spiegazione: `claude --resume <session-id>` terminava con `Failed to resume session <session-id>`, e un'esecuzione `-p` stampava solo il testo dell'errore di sistema, come `Failed to resume session: EBADF: bad file descriptor, read`.3951Prima della v2.1.282, l'errore non era accompagnato da alcuna spiegazione: `claude --resume <session-id>` terminava con `Failed to resume session <session-id>`, e un'esecuzione con `-p` stampava solo il testo dell'errore di sistema, ad esempio `Failed to resume session: EBADF: bad file descriptor, read`.

3947 3952 

3948### Cannot switch renderers in this session3953### Cannot switch renderers in this session

3949 3954 

3950Quando cambi renderer, Claude Code riavvia il proprio processo. Hai eseguito [`/tui`](https://code.claude.com/docs/it/fullscreen#enable-fullscreen-rendering) in una sessione che Claude Code si rifiuta di riavviare, quindi non effettua il cambio e non salva nulla. Il messaggio che vedi ti indica la causa:3955Quando cambi renderer, Claude Code riavvia il proprio processo. Hai eseguito [`/tui`](https://code.claude.com/docs/it/fullscreen#enable-fullscreen-rendering) in una sessione che Claude Code rifiuta di riavviare, quindi non effettua il cambio e non salva nulla. Il messaggio che vedi ti indica la causa:

3951 3956 

3952* `Cannot switch renderers while work is running in the background`: hai attività in esecuzione in background che un riavvio abbandonerebbe, come una shell in background o un subagent. Attendi che l'attività finisca o interrompila con [`/tasks`](https://code.claude.com/docs/it/commands), quindi esegui di nuovo `/tui fullscreen` o `/tui default`3957* `Cannot switch renderers while work is running in the background`: hai attività in background in esecuzione che un riavvio abbandonerebbe, come una shell in background o un subagent. Attendi che l'attività termini o interrompila con [`/tasks`](https://code.claude.com/docs/it/commands), poi esegui di nuovo `/tui fullscreen` o `/tui default`

3953* `Cannot switch renderers in this session`: la sessione ha restrizioni che Claude Code non può passare al processo riavviato. Prima della v2.1.234, Claude Code effettuava comunque il riavvio e la sessione riavviata veniva eseguita senza di esse3958* `Cannot switch renderers in this session`: la sessione ha restrizioni che Claude Code non può trasmettere al processo riavviato. Prima della v2.1.234, Claude Code effettuava comunque il riavvio e la sessione rilanciata veniva eseguita senza di esse

3954 3959 

3955Nel messaggio sulle restrizioni, la parte tra parentesi indica le restrizioni trovate da Claude Code:3960Nel messaggio sulle restrizioni, la parte tra parentesi indica le restrizioni rilevate da Claude Code:

3956 3961 

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

3958Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.3963Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.


3960 3965 

3961Ogni motivo che il messaggio può mostrare tra parentesi:3966Ogni motivo che il messaggio può mostrare tra parentesi:

3962 3967 

3963* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: hai avviato la sessione con un flag che Claude Code non ripassa al processo riavviato. Questi flag includono [`--system-prompt`](https://code.claude.com/docs/it/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, una allowlist [`--tools`](https://code.claude.com/docs/it/cli-reference#cli-flags), [`--setting-sources`](https://code.claude.com/docs/it/cli-reference#cli-flags) e [`--permission-prompt-tool`](https://code.claude.com/docs/it/cli-reference#cli-flags)3968* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: hai avviato la sessione con un flag che Claude Code non ritrasmette al processo riavviato. Questi flag includono [`--system-prompt`](https://code.claude.com/docs/it/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, un'allowlist [`--tools`](https://code.claude.com/docs/it/cli-reference#cli-flags), [`--setting-sources`](https://code.claude.com/docs/it/cli-reference#cli-flags) e [`--permission-prompt-tool`](https://code.claude.com/docs/it/cli-reference#cli-flags)

3964* `permission rules set for this session only`: un [aggiornamento dei permessi](https://code.claude.com/docs/it/hooks.md#permission-update-entries) da un hook o da un chiamante SDK ha aggiunto regole deny o ask con destinazione `session`. Le regole allow limitate alla sessione non provocano il rifiuto. Un riavvio le elimina, e Claude Code chiede di nuovo3969* `permission rules set for this session only`: un [aggiornamento dei permessi](https://code.claude.com/docs/it/hooks.md#permission-update-entries) da un hook o da un chiamante SDK ha aggiunto regole deny o ask con destinazione `session`. Le regole allow limitate alla sessione non provocano il rifiuto. Un riavvio le elimina, e Claude Code invece chiede di nuovo

3965* `ask-before-running rules with no command-line form`: un aggiornamento dei permessi da un hook o da un chiamante SDK ha aggiunto regole ask insieme alle regole che Claude Code ripassa come `--allowed-tools` e `--disallowed-tools`. Non esiste alcun flag per le regole ask3970* `ask-before-running rules with no command-line form`: un aggiornamento dei permessi da un hook o da un chiamante SDK ha aggiunto regole ask insieme alle regole che Claude Code ritrasmette come `--allowed-tools` e `--disallowed-tools`. Non esiste alcun flag per le regole ask

3966* `permission rules a command line cannot carry intact` e `added directories a command line cannot carry intact`: un aggiornamento dei permessi ha aggiunto una regola o un percorso di directory durante la sessione. La riga di comando del processo riavviato non può trasportarne il testo come lo stesso valore3971* `permission rules a command line cannot carry intact` e `added directories a command line cannot carry intact`: un aggiornamento dei permessi ha aggiunto una regola o un percorso di directory durante la sessione. La riga di comando del processo riavviato non può trasmetterne il testo come lo stesso valore

3967 3972 

3968**Cosa fare:**3973**Cosa fare:**

3969 3974 


3971 3976 

3972### Claude Code couldn't restart3977### Claude Code couldn't restart

3973 3978 

3974Quando 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`](https://code.claude.com/docs/it/fullscreen#enable-fullscreen-rendering), e non è riuscito ad avviare il nuovo processo, quindi è uscito con stato 1:3979Quando questo messaggio dice che la tua conversazione è salvata, la conversazione è su disco e puoi riprenderla dal punto in cui si è interrotta. Claude Code si stava riavviando, ad esempio per passare al rendering a schermo intero o uscirne dopo che hai eseguito [`/tui`](https://code.claude.com/docs/it/fullscreen#enable-fullscreen-rendering), e non è riuscito ad avviare il nuovo processo, quindi è uscito con stato 1:

3975 3980 

3976```text theme={null}3981```text theme={null}

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


3982**Cosa fare:**3987**Cosa fare:**

3983 3988 

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

3985* Se i riavvii continuano a non riuscire, avvia Claude Code dalla tua shell con [`claude --debug-file claude-debug.log`](https://code.claude.com/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)3990* Se i riavvii continuano a fallire, avvia Claude Code dalla tua shell con [`claude --debug-file claude-debug.log`](https://code.claude.com/docs/it/cli-reference#cli-flags). Se un riavvio da quella sessione fallisce, `claude-debug.log` nella directory da cui hai avviato registra una riga `Failed to relaunch:` con l'errore del sistema operativo. Includi quella riga quando [segnali il problema](#report-an-error)

3986 3991 

3987### Impossibile aprire Claude Desktop3992### Couldn't open Claude Desktop

3988 3993 

3989Hai eseguito [`/desktop`](https://code.claude.com/docs/it/desktop#coming-from-the-cli) o il suo alias `/app` in una sessione, oppure [`claude --desktop`](https://code.claude.com/docs/it/cli-reference#cli-flags) nella tua shell, e il comando di sistema che Claude Code usa per aprire Claude Desktop non è riuscito. Dopo `/desktop`, la sessione resta nel terminale; `claude --desktop` stampa il messaggio senza il prefisso `Error:` ed esce con stato 1.3994Hai eseguito [`/desktop`](https://code.claude.com/docs/it/desktop#coming-from-the-cli) o il suo alias `/app` in una sessione, oppure [`claude --desktop`](https://code.claude.com/docs/it/cli-reference#cli-flags) nella tua shell, e il comando di sistema che Claude Code usa per aprire Claude Desktop è fallito. Dopo `/desktop`, la sessione resta nel terminale; `claude --desktop` stampa il messaggio senza il prefisso `Error:` ed esce con stato 1.

3990 3995 

3991Il testo tra parentesi indica il comando non riuscito, con il suo stato di uscita e la prima riga del suo output di errore quando li ha prodotti. Su macOS quel comando è `open`, come in questo esempio; su Windows è `rundll32`:3996Il testo tra parentesi indica il comando fallito, con il suo stato di uscita e la prima riga del suo output di errore quando li ha prodotti. Su macOS quel comando è `open`, come in questo esempio; su Windows è `rundll32`:

3992 3997 

3993```text theme={null}3998```text theme={null}

3994Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.3999Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.


3996 4001 

3997**Cosa fare:**4002**Cosa fare:**

3998 4003 

3999* Apri Claude Desktop manualmente, quindi esegui di nuovo `/desktop` o `claude --desktop`4004* Apri tu stesso Claude Desktop, poi esegui di nuovo `/desktop` o `claude --desktop`

4000* Per leggere l'output di errore completo del comando non riuscito, attiva il logging di debug con `/debug` ed esegui di nuovo `/desktop`, oppure esegui `claude --desktop --debug-file <path>`, quindi controlla il log di debug4005* Per leggere l'output di errore completo del comando fallito, attiva il logging di debug con `/debug` ed esegui di nuovo `/desktop`, oppure esegui `claude --desktop --debug-file <path>`, poi controlla il log di debug

4001 4006 

4002Prima della v2.1.285, il messaggio terminava con `Open Claude Desktop and run /desktop again.` Prima della v2.1.275, era `Failed to open Claude Desktop. Please try opening it manually.` e non indicava cosa fosse fallito.4007Prima della v2.1.285, il messaggio terminava con `Open Claude Desktop and run /desktop again.` Prima della v2.1.275, era `Failed to open Claude Desktop. Please try opening it manually.` e non diceva cosa fosse fallito.

4003 4008 

4004### /terminal-setup ha lasciato invariata la tua keymap di Zed4009### /terminal-setup ha lasciato invariata la tua keymap di Zed

4005 4010 

4006Hai eseguito [`/terminal-setup`](https://code.claude.com/docs/it/terminal-config#enter-multiline-prompts) in Zed, e Claude Code non è riuscito a completare l'aggiornamento del tuo `keymap.json` di Zed, quindi ha lasciato il file com'era.4011Hai eseguito [`/terminal-setup`](https://code.claude.com/docs/it/terminal-config#enter-multiline-prompts) in Zed, e Claude Code non è riuscito a completare l'aggiornamento del tuo `keymap.json` di Zed, quindi ha lasciato il file così com'era.

4007 4012 

4008Ogni messaggio indica il percorso della tua keymap e termina con il blocco della scorciatoia da tastiera da aggiungere manualmente:4013Ogni messaggio indica il percorso della tua keymap e termina con il blocco di scorciatoie da tastiera da aggiungere tu stesso:

4009 4014 

4010```text theme={null}4015```text theme={null}

4011Couldn't update your Zed keymap, so it was left unchanged.4016Couldn't update your Zed keymap, so it was left unchanged.


4015 4020 

4016La prima riga del messaggio indica la causa:4021La prima riga del messaggio indica la causa:

4017 4022 

4018* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code non è riuscito a leggere il file, ad esempio a causa dei permessi sui file4023* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code non è riuscito a leggere il file, ad esempio a causa dei permessi del file

4019* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: il file è stato letto correttamente ma non viene interpretato come un array di blocchi di scorciatoie da tastiera, nemmeno consentendo commenti `//` e virgole finali4024* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: il file è stato letto correttamente ma non viene interpretato come un array di blocchi di scorciatoie da tastiera, nemmeno consentendo commenti `//` e virgole finali

4020* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code non è riuscito a copiare il file in un backup `.bak` accanto a esso, quindi non ha modificato nulla4025* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code non è riuscito a copiare il file in un backup `.bak` accanto a esso, quindi non ha modificato nulla

4021* `Couldn't update your Zed keymap, so it was left unchanged.`: il risultato dell'unione non è stato verificato come keymap valida contenente la scorciatoia, quindi Claude Code lo ha scartato invece di scriverlo. Un blocco di scorciatoie da tastiera con una chiave duplicata può causare questo problema4026* `Couldn't update your Zed keymap, so it was left unchanged.`: il risultato unito non è stato verificato come keymap valida contenente la scorciatoia, quindi Claude Code lo ha scartato invece di scriverlo. Un blocco di scorciatoie da tastiera con una chiave duplicata può causare questo problema

4022 4027 

4023**Cosa fare:**4028**Cosa fare:**

4024 4029 

4025* Copia il blocco dal messaggio nell'array di primo livello del tuo `keymap.json` al percorso indicato dal messaggio4030* Copia il blocco dal messaggio nell'array di primo livello del tuo `keymap.json` al percorso indicato nel messaggio

4026* Per `isn't a readable list of keybindings`, correggi l'errore di sintassi, oppure rendi un array il valore di primo livello del file, quindi esegui di nuovo `/terminal-setup`4031* Per `isn't a readable list of keybindings`, correggi l'errore di sintassi, oppure rendi un array il valore di primo livello del file, poi esegui di nuovo `/terminal-setup`

4027 4032 

4028Prima della v2.1.247, `/terminal-setup` non riusciva a interpretare una keymap di Zed che usava commenti `//` o virgole finali, e sostituiva l'intero file con la sola propria scorciatoia, segnalando comunque la scorciatoia come installata. Per ripristinare una keymap sostituita da una versione precedente, usa il file di backup `.bak` descritto in [Inserire prompt su più righe](https://code.claude.com/docs/it/terminal-config.md#enter-multiline-prompts).4033Prima della v2.1.247, `/terminal-setup` non riusciva a interpretare una keymap di Zed che usava commenti `//` o virgole finali, e sostituiva l'intero file con la sola propria scorciatoia pur segnalandola come installata. Per ripristinare una keymap sostituita da una versione precedente, usa il file di backup `.bak` descritto in [Inserire prompt su più righe](https://code.claude.com/docs/it/terminal-config.md#enter-multiline-prompts).

4029 4034 

4030### Skill usage reports are not available on this connection4035### Skill usage reports are not available on this connection

4031 4036 


4039 4044 

4040* Esegui `/skill-doctor` nel terminale della macchina su cui è in esecuzione la sessione, oppure esegui lì `claude -p "/skill-doctor"`4045* Esegui `/skill-doctor` nel terminale della macchina su cui è in esecuzione la sessione, oppure esegui lì `claude -p "/skill-doctor"`

4041 4046 

4042### Gli stili di output personalizzati non possono essere selezionati tramite Remote Control4047### Custom output styles can't be selected over Remote Control

4043 4048 

4044Hai eseguito [`/output-style`](https://code.claude.com/docs/it/output-styles#change-your-output-style) dall'app mobile o dal web tramite [Remote Control](https://code.claude.com/docs/it/remote-control.md), oppure il comando è arrivato in un messaggio inoltrato nella sessione. Poiché un turno di questo tipo potrebbe non provenire dal proprietario dell'account, Claude Code elenca e seleziona in esso solo gli [stili integrati](https://code.claude.com/docs/it/output-styles.md#built-in-output-styles), e aggiunge questo avviso ogni volta che il comando elenca gli stili o non riconosce il nome che hai fornito. Il nome di uno [stile personalizzato](https://code.claude.com/docs/it/output-styles.md#create-a-custom-output-style) riceve la stessa risposta di un nome che non esiste:4049Hai eseguito [`/output-style`](https://code.claude.com/docs/it/output-styles#change-your-output-style) dall'app mobile o dal web tramite [Remote Control](https://code.claude.com/docs/it/remote-control.md), oppure il comando è arrivato in un messaggio inoltrato nella sessione. Poiché un turno di questo tipo potrebbe non provenire dal proprietario dell'account, Claude Code elenca e seleziona solo gli [stili predefiniti](https://code.claude.com/docs/it/output-styles.md#built-in-output-styles) su di esso, e aggiunge questo avviso ogni volta che il comando elenca gli stili o non riconosce il nome che hai fornito. Il nome di uno [stile personalizzato](https://code.claude.com/docs/it/output-styles.md#create-a-custom-output-style) riceve la stessa risposta di un nome inesistente:

4045 4050 

4046```text theme={null}4051```text theme={null}

4047Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.4052Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.


4049 4054 

4050**Cosa fare:**4055**Cosa fare:**

4051 4056 

4052* Scegli uno stile integrato, ad esempio `/output-style concise`4057* Scegli uno stile predefinito, ad esempio `/output-style concise`

4053* Per usare uno stile personalizzato, imposta [`outputStyle`](https://code.claude.com/docs/it/settings-reference#outputstyle) nel file `.claude/settings.local.json` del progetto, oppure esegui `/output-style <style>` nel terminale della sessione stessa, se ne ha uno4058* Per usare uno stile personalizzato, imposta [`outputStyle`](https://code.claude.com/docs/it/settings-reference#outputstyle) nel file `.claude/settings.local.json` del progetto, oppure esegui `/output-style <style>` nel terminale della sessione stessa, se ne ha uno

4054 4059 

4055### Gli stili di output vengono salvati nelle impostazioni locali, che questa sessione non carica4060### Output styles are saved to local settings which this session doesn't load

4056 4061 

4057Hai provato a cambiare [stile di output](https://code.claude.com/docs/it/output-styles.md) con `/output-style <style>` o `/config outputStyle=<style>` in una sessione le cui origini delle impostazioni escludono `local`. Esempi sono una sessione dell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/typescript.md) il cui [`settingSources`](https://code.claude.com/docs/it/agent-sdk/typescript#options) non include `"local"` e una sessione della CLI avviata con un valore di [`--setting-sources`](https://code.claude.com/docs/it/cli-reference#cli-flags) che non include `local`. Entrambi i comandi salvano lo stile in `.claude/settings.local.json`, un file che una sessione di questo tipo non rilegge mai, quindi Claude Code rifiuta anziché scrivere un'impostazione che non avrebbe alcun effetto:4062Hai provato a cambiare [stile di output](https://code.claude.com/docs/it/output-styles.md) con `/output-style <style>` o `/config outputStyle=<style>` in una sessione le cui fonti di impostazioni escludono `local`. Alcuni esempi sono una sessione dell'[Agent SDK](https://code.claude.com/docs/it/agent-sdk/typescript.md) il cui [`settingSources`](https://code.claude.com/docs/it/agent-sdk/typescript#options) non include `"local"` e una sessione CLI avviata con un valore di [`--setting-sources`](https://code.claude.com/docs/it/cli-reference#cli-flags) che non include `local`. Entrambi i comandi salvano lo stile in `.claude/settings.local.json`, un file che una sessione di questo tipo non rilegge mai, quindi Claude Code rifiuta invece di scrivere un'impostazione che non avrebbe alcun effetto:

4058 4063 

4059```text theme={null}4064```text theme={null}

4060Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.4065Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.


4062 4067 

4063**Cosa fare:**4068**Cosa fare:**

4064 4069 

4065* Aggiungi `local` alle origini delle impostazioni della sessione e cambia di nuovo stile4070* Aggiungi `local` alle fonti di impostazioni della sessione e cambia di nuovo stile

4066* Imposta la chiave [`outputStyle`](https://code.claude.com/docs/it/settings-reference#outputstyle) in un file di impostazioni che la sessione carica, come `.claude/settings.json` nel progetto o `~/.claude/settings.json`. Nell'SDK TypeScript, imposta invece `outputStyle` all'interno dell'oggetto inline `settings`; consulta [Attivare uno stile di output](https://code.claude.com/docs/it/agent-sdk/modifying-system-prompts.md#activate-an-output-style)4071* Imposta la chiave [`outputStyle`](https://code.claude.com/docs/it/settings-reference#outputstyle) in un file di impostazioni che la sessione carica, come `.claude/settings.json` nel progetto o `~/.claude/settings.json`. Nell'SDK TypeScript, imposta invece `outputStyle` all'interno dell'oggetto inline `settings`; consulta [Attivare uno stile di output](https://code.claude.com/docs/it/agent-sdk/modifying-system-prompts.md#activate-an-output-style)

4067 4072 

4068### /recap viene eseguito solo quando lo richiedi tu stesso4073### /recap only runs when you ask for it yourself

4069 4074 

4070La richiesta [`/recap`](https://code.claude.com/docs/it/interactive-mode#session-recap) non proveniva dal tuo input. È arrivata in un messaggio inoltrato nella sessione da un thread di Slack, Teams o di un [progetto](https://code.claude.com/docs/it/claude-projects.md), oppure in un prompt inviato da un'[attività pianificata nel cloud](https://code.claude.com/docs/it/routines.md) o da un altro programma.4075La richiesta [`/recap`](https://code.claude.com/docs/it/interactive-mode#session-recap) non proviene dal tuo input. È arrivata in un messaggio inoltrato nella sessione da un thread di Slack, Teams o di un [progetto](https://code.claude.com/docs/it/claude-projects.md), oppure in un prompt inviato da un'[attività pianificata nel cloud](https://code.claude.com/docs/it/routines.md) o da un altro programma.

4071 4076 

4072Un messaggio inoltrato riceve l'avviso anche se l'hai scritto tu. Claude Code non può stabilire che un messaggio inoltrato o automatizzato provenga dalla persona con il cui account è in esecuzione la sessione, quindi risponde con questo avviso invece che con un riepilogo:4077Un messaggio inoltrato riceve l'avviso anche se l'hai scritto tu. Claude Code non può stabilire che un messaggio inoltrato o automatizzato provenga dalla persona il cui account esegue la sessione, quindi risponde con questo avviso invece di un riepilogo:

4073 4078 

4074```text theme={null}4079```text theme={null}

4075/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it.4080/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it.

4076```4081```

4077 4082 

4078Un `/recap` che passi a `claude -p`, o che la tua applicazione [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) invia a una sessione che ha avviato, conta come tuo input.4083Un `/recap` che passi a `claude -p`, o che la tua applicazione [Agent SDK](https://code.claude.com/docs/it/agent-sdk/overview.md) invia a una sessione da essa avviata, conta come tuo input.

4079 4084 

4080**Cosa fare:**4085**Cosa fare:**

4081 4086 


4084 4089 

4085### /feedback is disabled by your organization's policy4090### /feedback is disabled by your organization's policy

4086 4091 

4087Questo messaggio significa che la policy della tua organizzazione non consente l'invio di feedback sul prodotto da Claude Code, quindi `/feedback`, `/bug` e `/share` non aprono la finestra di feedback. Il messaggio indica il comando che hai digitato al prompt di Claude Code:4092Questo messaggio significa che la policy della tua organizzazione non consente l'invio di feedback sul prodotto da Claude Code, quindi `/feedback`, `/bug` e `/share` non aprono la finestra di dialogo del feedback. Il messaggio indica il comando che hai digitato al prompt di Claude Code:

4088 4093 

4089```text wrap theme={null}4094```text wrap theme={null}

4090/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.4095/feedback is disabled by your organization's policy. To report a bug, open an issue at https://github.com/anthropics/claude-code/issues. Issues are public, so leave out anything confidential.

4091```4096```

4092 4097 

4093Il messaggio può anche consistere nella sola prima frase.4098Il messaggio può anche essere costituito dalla sola prima frase.

4094 4099 

4095**Cosa fare:**4100**Cosa fare:**

4096 4101 


4568 4573 

4569Prima della v2.1.281, un byte nullo in un percorso di Read, Write, Edit o NotebookEdit terminava l'intero turno con un errore che indicava `Path contains null bytes`, e lo strumento non veniva mai eseguito.4574Prima della v2.1.281, un byte nullo in un percorso di Read, Write, Edit o NotebookEdit terminava l'intero turno con un errore che indicava `Path contains null bytes`, e lo strumento non veniva mai eseguito.

4570 4575 

4576### Command contains an invisible character

4577 

4578Lo [strumento PowerShell](https://code.claude.com/docs/it/tools-reference.md#powershell-tool) si è rifiutato di eseguire un comando che contiene U+FEFF o U+180E:

4579 

4580```text theme={null}

4581Error: command contains the invisible character U+FEFF (byte order mark) or U+180E (Mongolian vowel separator), and was not run. Remove the character, keep the text that needs it in a file that the command reads, or write it as $([char]0xFEFF) or $([char]0x180E) inside a double-quoted string

4582```

4583 

4584**Cosa fare:**

4585 

4586* **Per un comando scritto da Claude**: non hai nulla da correggere. Il messaggio spiega a Claude come riscrivere il comando.

4587* **Per un file di skill o di comando**: il messaggio segue `No shell command in <name> was run`. Consulta [dove trovare il carattere e rimuoverlo](#no-shell-command-was-run).

4588 

4571### File is too large to read as an image4589### File is too large to read as an image

4572 4590 

4573Claude ha tentato di leggere un file come immagine con lo [strumento Read](https://code.claude.com/docs/it/tools-reference.md#read-tool-behavior), e il file supera i 128 MB, il massimo che Read carica da un file immagine. Non è stato letto nulla, e Claude riceve questo errore come risultato dello strumento:4591Claude ha tentato di leggere un file come immagine con lo [strumento Read](https://code.claude.com/docs/it/tools-reference.md#read-tool-behavior), e il file supera i 128 MB, il massimo che Read carica da un file immagine. Non è stato letto nulla, e Claude riceve questo errore come risultato dello strumento:


5431* Impostate la voce PATH come variabile di ambiente utente o di sistema, non nel vostro profilo PowerShell. L'estensione non esegue il vostro profilo, quindi una modifica di PATH che vive solo lì non la raggiunge mai.5449* Impostate la voce PATH come variabile di ambiente utente o di sistema, non nel vostro profilo PowerShell. L'estensione non esegue il vostro profilo, quindi una modifica di PATH che vive solo lì non la raggiunge mai.

5432* Riavviate VS Code dopo aver modificato PATH. L'estensione controlla il PATH che VS Code ha catturato all'avvio, quindi una modifica di PATH ha effetto solo dopo un riavvio.5450* Riavviate VS Code dopo aver modificato PATH. L'estensione controlla il PATH che VS Code ha catturato all'avvio, quindi una modifica di PATH ha effetto solo dopo un riavvio.

5433 5451 

5452### The Claude Code program for this computer could not be found

5453 

5454L'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) ha cercato la copia di Claude Code inclusa al suo interno e non ne ha trovata nessuna compilata per il tuo computer. Il messaggio indica la build di cui il tuo computer ha bisogno:

5455 

5456```text theme={null}

5457The Claude Code program for this computer, the Linux (linux-x64) build, could not be found.

5458```

5459 

5460**Cosa fare:**

5461 

5462* Se il messaggio indica quale build contiene l'estensione, hai il pacchetto dell'estensione per un'altra piattaforma: installa il pacchetto realizzato per la build indicata nel messaggio

5463* Se il messaggio non indica quale build contiene l'estensione, reinstalla l'estensione Claude Code dalla vista Estensioni del tuo editor

5464* In alternativa, in entrambi i casi, imposta [`claudeCode.claudeProcessWrapper`](https://code.claude.com/docs/it/vs-code#extension-settings) su un binario `claude` installato separatamente

5465 

5466Prima della v2.1.290, questo errore appariva come `Unsupported platform: <platform>-<arch>. No compatible Claude Code binary found.`

5467 

5434### The connection to Claude Code ended before this message completed5468### The connection to Claude Code ended before this message completed

5435 5469 

5436L'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) ha inviato il vostro messaggio al processo `claude`, e la connessione è terminata senza un errore prima che il processo lo riconoscesse o lo completasse. L'estensione non può dire se il messaggio è stato elaborato, quindi vi chiede di inviarlo di nuovo:5470L'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) ha inviato il vostro messaggio al processo `claude`, e la connessione è terminata senza un errore prima che il processo lo riconoscesse o lo completasse. L'estensione non può dire se il messaggio è stato elaborato, quindi vi chiede di inviarlo di nuovo:

fast-mode.md +30 −28

Details

8 8 

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

10>10>

11> La modalità veloce è in [anteprima di ricerca](#research-preview). La funzione, i prezzi e la disponibilità potrebbero cambiare in base al feedback.11> La modalità veloce per Claude Opus 5.5 è disponibile, mentre la modalità veloce per Claude Opus 5 e Claude Opus 4.8 è in [anteprima di ricerca](#research-preview).

12 12 

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

14 14 


20 20 

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

22* I prezzi della modalità veloce per MTok input/output sono \$8/\$40 su Opus 5.5 e \$10/\$50 su Opus 5 e Opus 4.8.22* I prezzi della modalità veloce per MTok input/output sono \$8/\$40 su Opus 5.5 e \$10/\$50 su Opus 5 e Opus 4.8.

23* Disponibile per gli utenti di Claude Code sui piani di abbonamento (Pro/Max/Team/Enterprise) e su Claude Console. Le organizzazioni Team ed Enterprise hanno bisogno che un Owner lo abiliti per primo, e le organizzazioni Console hanno bisogno che l'accesso sia fornito per primo, entrambi descritti in [Requisiti](#requirements).23* Disponibile per gli utenti di Claude Code sui piani di abbonamento (Pro/Max/Team/Enterprise) e su Claude Console. Le organizzazioni Team ed Enterprise hanno bisogno che un Owner la abiliti prima, e le organizzazioni Console hanno bisogno che l'accesso sia fornito prima di poterla usare con Opus 5 o Opus 4.8. [Requisiti](#requirements) descrive entrambi i casi.

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

25 25 

26## Attiva/disattiva la modalità veloce26## Attivare o disattivare la modalità veloce

27 27 

28Attiva/disattiva la modalità veloce in uno di questi modi:28Nella CLI, attiva o disattiva la modalità veloce in uno di questi modi:

29 29 

30* Esegui `/fast`, premi Spazio per attivare o disattivare, quindi premi Invio per confermare30* Esegui `/fast`, premi Space per attivarla o disattivarla, quindi premi Enter per confermare

31* Imposta `"fastMode": true` nel tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md)31* Imposta `"fastMode": true` nel tuo [file di impostazioni utente](https://code.claude.com/docs/it/settings.md)

32 32 

33Per impostazione predefinita, la modalità veloce che attivi in una sessione interattiva persiste tra le sessioni. Puoi configurare la modalità veloce per ripristinarsi ogni sessione. Vedi [richiedi opt-in per sessione](#require-per-session-opt-in) per i dettagli.33Per impostazione predefinita, la modalità veloce che attivi in una sessione interattiva persiste tra le sessioni. Puoi configurare la modalità veloce in modo che si reimposti a ogni sessione. Consulta [richiedere l'attivazione per sessione](#require-per-session-opt-in) per i dettagli.

34 34 

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

36 36 

37Puoi eseguire `/fast` mentre Claude sta lavorando, e Claude Code attiva/disattiva la modalità veloce senza aspettare che il turno termini. Claude Code completa il turno in esecuzione alla sua velocità originale, quindi il cambio di velocità ha effetto dal tuo turno successivo. Se il tuo modello attuale non supporta la modalità veloce, attivarla comporta anche il passaggio del tuo modello, e Claude Code utilizza il nuovo modello dalla sua prossima richiesta in quel turno.37Puoi eseguire `/fast` mentre Claude sta lavorando, e Claude Code attiva o disattiva la modalità veloce senza attendere la fine del turno. Claude Code completa il turno in corso alla velocità originale, quindi il cambio di velocità ha effetto dal tuo turno successivo. Se il tuo modello attuale non supporta la modalità veloce, attivarla cambia anche il modello, e Claude Code usa il nuovo modello dalla sua richiesta successiva in quel turno.

38 38 

39Per la migliore efficienza dei costi, abilita la modalità veloce all'inizio di una sessione piuttosto che passare a metà conversazione. Vedi [comprendi il compromesso di costo](#understand-the-cost-tradeoff) per i dettagli.39Per la migliore efficienza dei costi, attiva la modalità veloce all'inizio di una sessione anziché cambiarla a metà conversazione. Consulta [comprendere il compromesso sui costi](#understand-the-cost-tradeoff) per i dettagli.

40 40 

41Quando abiliti la modalità veloce:41Quando attivi la modalità veloce:

42 42 

43* Se il tuo modello attuale non supporta la modalità veloce, Claude Code passa a Opus43* Se il tuo modello attuale non supporta la modalità veloce, Claude Code passa a Opus

44* Vedrai un messaggio di conferma: "Fast mode ON"44* Vedrai un messaggio di conferma: "Fast mode ON"

45* Un piccolo icona `↯` appare accanto al prompt mentre la modalità veloce è attiva45* Una piccola icona `↯` appare accanto al prompt mentre la modalità veloce è attiva

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

47 47 

48Opus 5.5 è il valore predefinito della modalità veloce in Claude Code v2.1.280 e successivo. Prima di v2.1.280, la modalità veloce predefinita era Opus 5 da v2.1.219.48Opus 5.5 è il modello predefinito della modalità veloce in Claude Code v2.1.280 e successive. Prima della v2.1.280, la modalità veloce usava come predefinito Opus 5 a partire dalla v2.1.219.

49 49 

50Quando disabiliti la modalità veloce con `/fast` di nuovo, rimani su Opus. Per passare a un modello diverso, usa `/model`.50Quando disattivi la modalità veloce eseguendo di nuovo `/fast`, rimani su Opus. Per passare a un modello diverso, usa `/model`.

51 51 

52### Cambia modello mentre la modalità veloce è attiva52### Cambiare modello mentre la modalità veloce è attiva

53 53 

54La modalità veloce segue i tuoi cambi di modello in entrambe le direzioni:54La modalità veloce segue i tuoi cambi di modello in entrambe le direzioni:

55 55 

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

57* **Torna indietro**: tornare a un modello Opus supportato attiva di nuovo la modalità veloce quando la tua preferenza di modalità veloce salvata è attiva, la stessa preferenza da cui una nuova sessione inizia per impostazione predefinita. Un cambio di modello non attiva mai la modalità veloce per una sessione la cui preferenza salvata è disattiva, e con [opt-in per sessione](#require-per-session-opt-in) configurato, tornare indietro non attiva di nuovo la modalità veloce; esegui `/fast` per riattivarla.57* **Ritorno**: tornare a un modello Opus supportato riattiva la modalità veloce quando la tua preferenza salvata per la modalità veloce è attiva, la stessa preferenza da cui parte per impostazione predefinita una nuova sessione. Un cambio di modello non attiva mai la modalità veloce per una sessione la cui preferenza salvata è disattivata, e con l'[attivazione per sessione](#require-per-session-opt-in) configurata, nemmeno il ritorno la attiva; esegui `/fast` per riattivarla.

58 58 

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

60 60 

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

62 62 

63### Usa la modalità veloce in sessioni cloud63### Usare la modalità veloce nelle sessioni cloud

64 64 

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

66 66 

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

68 68 

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

70 70 

71## Comprendi il compromesso di costo71## Comprendi il compromesso di costo

72 72 


119 119 

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

121 121 

122* **Solo API Anthropic o abbonamento**: la modalità veloce è disponibile tramite l'API Anthropic Console e per i piani di abbonamento Claude utilizzando i crediti di utilizzo. Non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o Claude Platform su AWS. Le organizzazioni Console devono anche avere [accesso alla modalità veloce provisioning](#enable-fast-mode-for-your-organization).122* **Solo API Anthropic o abbonamento**: la modalità veloce è disponibile tramite l'API Anthropic Console e per i piani di abbonamento Claude utilizzando i crediti di utilizzo. Non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o Claude Platform su AWS. Le organizzazioni Console devono anche avere [l'accesso alla modalità veloce abilitato](#enable-fast-mode-for-your-organization) per usarla con Opus 5 o Opus 4.8.

123* **Crediti di utilizzo abilitati per i piani di abbonamento**: su un piano Pro, Max, Team o Enterprise, il tuo account deve avere i [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) abilitati, che consente la fatturazione oltre l'utilizzo incluso nel tuo piano. Finché non sono abilitati, `/fast` mostra "Fast mode requires usage credits". Come abilitarli dipende dal tuo piano:123* **Crediti di utilizzo abilitati per i piani di abbonamento**: su un piano Pro, Max, Team o Enterprise, il tuo account deve avere i [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) abilitati, che consente la fatturazione oltre l'utilizzo incluso nel tuo piano. Finché non sono abilitati, `/fast` mostra "Fast mode requires usage credits". Come abilitarli dipende dal tuo piano:

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

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


129> L'utilizzo della modalità veloce viene fatturato direttamente dai crediti di utilizzo, anche se hai un utilizzo rimanente nel tuo piano.129> L'utilizzo della modalità veloce viene fatturato direttamente dai crediti di utilizzo, anche se hai un utilizzo rimanente nel tuo piano.

130 130 

131* **Organizzazione Console a pagamento**: gli account Claude Console non utilizzano crediti di utilizzo e la tua organizzazione paga la modalità veloce per token insieme al resto dell'utilizzo dell'API. Nel piano Evaluation gratuito della Console, `/fast` mostra "Fast mode unavailable during evaluation. Please purchase credits." Per cancellarlo, acquista crediti nelle tue [impostazioni di fatturazione della Console](https://platform.claude.com/settings/billing).131* **Organizzazione Console a pagamento**: gli account Claude Console non utilizzano crediti di utilizzo e la tua organizzazione paga la modalità veloce per token insieme al resto dell'utilizzo dell'API. Nel piano Evaluation gratuito della Console, `/fast` mostra "Fast mode unavailable during evaluation. Please purchase credits." Per cancellarlo, acquista crediti nelle tue [impostazioni di fatturazione della Console](https://platform.claude.com/settings/billing).

132 

133 La modalità veloce con Opus 5.5 dipende anche dal [livello di utilizzo](https://platform.claude.com/docs/en/api/rate-limits) della tua organizzazione.

132* **Abilitazione del proprietario per Team e Enterprise**: la modalità veloce è disabilitata per impostazione predefinita per le organizzazioni Team e Enterprise. Un proprietario deve esplicitamente [abilitare la modalità veloce](#enable-fast-mode-for-your-organization) prima che gli utenti possano accedervi.134* **Abilitazione del proprietario per Team e Enterprise**: la modalità veloce è disabilitata per impostazione predefinita per le organizzazioni Team e Enterprise. Un proprietario deve esplicitamente [abilitare la modalità veloce](#enable-fast-mode-for-your-organization) prima che gli utenti possano accedervi.

133 135 

134> [!NOTE]136> [!NOTE]


144 146 

145Dove abiliti la modalità veloce dipende da quale prodotto utilizza la tua organizzazione:147Dove abiliti la modalità veloce dipende da quale prodotto utilizza la tua organizzazione:

146 148 

147* **Console** (clienti API): un amministratore la abilita in [Preferenze Claude Code](https://platform.claude.com/claude-code/preferences). La modalità veloce è in [anteprima di ricerca](#research-preview), quindi la tua organizzazione deve anche avere accesso alla modalità veloce provisioning prima che le richieste di modalità veloce abbiano successo. Per ottenere l'accesso, contatta il tuo account manager o iscriviti alla lista d'attesa, come descritto in [modalità veloce sull'API Claude](https://platform.claude.com/docs/en/build-with-claude/fast-mode).149* **Console** (clienti API): un amministratore la abilita in [Preferenze Claude Code](https://platform.claude.com/claude-code/preferences)

148 

149 Senza accesso provisioning, l'API rifiuta ogni richiesta di modalità veloce con un 429, e Claude Code tratta ogni rifiuto come un [limite di velocità della modalità veloce](#handle-rate-limits). A differenza del cooldown di un limite di velocità, i rifiuti continuano fino a quando l'accesso non viene provisioning.

150* **Claude AI** (Team e Enterprise): un Owner la abilita in [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code)150* **Claude AI** (Team e Enterprise): un Owner la abilita in [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code)

151 151 

152Le organizzazioni Console che utilizzano Claude Opus 5 o Claude Opus 4.8 necessitano anche di un accesso abilitato, come descritto in [modalità veloce sull'API Claude](https://platform.claude.com/docs/en/build-with-claude/fast-mode). Senza tale accesso, le richieste di modalità veloce su questi modelli incorrono nel [rate limit della modalità veloce](#handle-rate-limits) e tornano alla velocità standard finché l'accesso non viene abilitato.

153 

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

153 155 

154### Usa la modalità veloce dietro proxy e gateway LLM156### Usa la modalità veloce dietro proxy e gateway LLM


201 203 

202## Gestisci i limiti di velocità204## Gestisci i limiti di velocità

203 205 

204La modalità veloce ha limiti di velocità separati da Opus standard. Tutti i modelli Opus supportati condividono un pool di limiti di velocità della modalità veloce: l'utilizzo su uno qualsiasi di essi attinge dagli stessi limiti. Quando raggiungi il limite di velocità della modalità veloce:206La modalità veloce ha rate limit separati da Opus standard; per le organizzazioni Console, la pagina [rate limit](https://platform.claude.com/docs/en/api/rate-limits) della Claude Platform li descrive. Quando raggiungi il rate limit della modalità veloce:

205 207 

2061. La modalità veloce torna automaticamente alla velocità standard2081. La modalità veloce torna automaticamente alla velocità standard

2072. L'icona `↯` diventa grigia per indicare il raffreddamento2092. L'icona `↯` diventa grigia per indicare il raffreddamento


217 219 

218## Anteprima di ricerca220## Anteprima di ricerca

219 221 

220La modalità veloce è una funzione di anteprima di ricerca. Ciò significa:222La modalità veloce per Claude Opus 5 e Claude Opus 4.8 è una funzione di anteprima di ricerca. Ciò significa:

221 223 

222* La funzione potrebbe cambiare in base al feedback224* La funzione potrebbe cambiare in base al feedback

223* La disponibilità e i prezzi sono soggetti a modifiche225* La disponibilità e i prezzi sono soggetti a modifiche

Details

90 <tr>90 <tr>

91 <td>[Fast mode](https://code.claude.com/docs/it/fast-mode.md)</td>91 <td>[Fast mode](https://code.claude.com/docs/it/fast-mode.md)</td>

92 <td>✓ ([Abilitato dal proprietario](https://code.claude.com/docs/it/fast-mode.md#enable-fast-mode-for-your-organization) su Team e Enterprise)</td>92 <td>✓ ([Abilitato dal proprietario](https://code.claude.com/docs/it/fast-mode.md#enable-fast-mode-for-your-organization) su Team e Enterprise)</td>

93 <td>✓ (organizzazioni provisionate)</td>93 <td>✓ (Opus 5 e 4.8 richiedono il provisioning)</td>

94 <td>✗</td>94 <td>✗</td>

95 <td>✗</td>95 <td>✗</td>

96 <td>✗</td>96 <td>✗</td>


285 285 

286**Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription).286**Non disponibile:** tutte le [funzionalità che richiedono un abbonamento Claude](#features-that-require-a-claude-subscription).

287 287 

288Tutto in [Funzionalità CLI che variano per provider](#cli-capabilities-that-vary-by-provider) è disponibile, tranne che [fast mode](https://code.claude.com/docs/it/fast-mode.md) richiede [accesso provisioned](https://code.claude.com/docs/it/fast-mode.md#enable-fast-mode-for-your-organization). Le [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) che configuri in un'organizzazione Team o Enterprise su claude.ai non raggiungono una sessione che si autentica con una chiave API della Console. Consulta [Disponibilità per piattaforma](https://code.claude.com/docs/it/server-managed-settings.md#platform-availability) per sapere come coprire quelle sessioni.288Tutto in [Funzionalità CLI che variano per provider](#cli-capabilities-that-vary-by-provider) è disponibile, tranne che [fast mode](https://code.claude.com/docs/it/fast-mode.md) con Claude Opus 5 o Claude Opus 4.8 richiede [accesso provisioned](https://code.claude.com/docs/it/fast-mode.md#enable-fast-mode-for-your-organization). Le [server-managed settings](https://code.claude.com/docs/it/server-managed-settings.md) che configuri in un'organizzazione Team o Enterprise su claude.ai non raggiungono una sessione che si autentica con una chiave API della Console. Consulta [Disponibilità per piattaforma](https://code.claude.com/docs/it/server-managed-settings.md#platform-availability) per sapere come coprire quelle sessioni.

289 289 

290**Supporto parziale:**290**Supporto parziale:**

291 291 

fullscreen.md +19 −19

Details

189 189 

190## Cercare e rivedere la conversazione190## Cercare e rivedere la conversazione

191 191 

192`Ctrl+o` attiva/disattiva tra la modalità prompt normale e la modalità trascrizione.192`Ctrl+o` alterna tra il prompt normale e la modalità trascrizione.

193 193 

194Per una visualizzazione più silenziosa che mostra solo l'ultimo prompt, un riepilogo di una riga delle chiamate di strumenti con diffstat di modifica e la risposta finale, eseguire `/focus`. L'impostazione persiste tra le sessioni. Eseguire `/focus` di nuovo per disattivarla.194Per una vista più essenziale che mostra solo il tuo ultimo prompt, un riepilogo su una riga delle chiamate agli strumenti con le statistiche delle modifiche e la risposta finale, esegui `/focus`. L'impostazione persiste tra le sessioni. Esegui di nuovo `/focus` per disattivarla.

195 195 

196La modalità trascrizione acquisisce la navigazione e la ricerca in stile `less`:196La modalità trascrizione aggiunge navigazione e ricerca in stile `less`:

197 197 

198| Tasto | Azione |198| Tasto | Azione |

199| :- | :- |199| :- | :- |

200| `/` | Apri ricerca. Digita per trovare corrispondenze, `Invio` per accettare, `Esc` per annullare e ripristinare la posizione di scorrimento |200| `/` | Apri la ricerca. Digita per trovare le corrispondenze, `Enter` per confermare, `Esc` per annullare e ripristinare la posizione di scorrimento |

201| `n` / `N` | Salta alla corrispondenza successiva o precedente. Funziona dopo aver chiuso la barra di ricerca |201| `n` / `N` | Passa alla corrispondenza successiva o precedente. Funziona anche dopo aver chiuso la barra di ricerca |

202| `j` / `k` o `↑` / `↓` | Scorri una riga |202| `j` / `k` o `↑` / `↓` | Scorri di una riga |

203| `g` / `G` o `Home` / `End` | Salta all'inizio o alla fine |203| `g` / `G` o `Home` / `End` | Vai all'inizio o alla fine |

204| `{` / `}` | Salta al prompt precedente o successivo |204| `{` / `}` | Passa al prompt precedente o successivo |

205| `Ctrl+u` / `Ctrl+d` | Scorri mezza pagina |205| `Ctrl+u` / `Ctrl+d` | Scorri di mezza pagina |

206| `Ctrl+b` / `Ctrl+f` o `Space` / `b` | Scorri una pagina intera |206| `Ctrl+b` / `Ctrl+f` o `Space` / `b` | Scorri di una pagina intera |

207| `Ctrl+o`, `Esc` o `q` | Esci dalla modalità trascrizione e ritorna al prompt |207| `Ctrl+o`, `Esc` o `q` | Esci dalla modalità trascrizione e torna al prompt |

208 208 

209La ricerca `Cmd+f` del terminale e la ricerca tmux non vedono la conversazione perché risiede nel buffer dello schermo alternativo, non nello scrollback nativo. Per restituire il contenuto al terminale, premere `Ctrl+o` per entrare prima in modalità trascrizione, quindi:209`Cmd+f` del tuo terminale e la ricerca di tmux non vedono la conversazione perché questa si trova nel buffer dello schermo alternativo, non nello scrollback nativo. Per restituire il contenuto al tuo terminale, premi prima `Ctrl+o` per entrare nella modalità trascrizione, poi:

210 210 

211* **`[`**: scrive l'intera conversazione nel buffer di scrollback nativo del terminale, con tutto l'output dello strumento espanso. La conversazione è ora testo ordinario nel terminale, quindi `Cmd+f`, la modalità copia tmux e qualsiasi altro strumento nativo possono cercarla o selezionarla. Le sessioni lunghe possono fare una pausa per un momento mentre ciò accade. Questo dura fino a quando non si esce dalla modalità trascrizione con `Esc` o `q`, che ti riporta al rendering a schermo intero. Il prossimo `Ctrl+o` ricomincia da capo.211* **`[`**: scrive l'intera conversazione nel buffer di scrollback nativo del tuo terminale, con tutto l'output degli strumenti espanso. La conversazione diventa così testo normale nel tuo terminale, quindi `Cmd+f`, la modalità copia di tmux e qualsiasi altro strumento nativo possono cercarla o selezionarla. Nelle sessioni lunghe potrebbe esserci una breve pausa mentre avviene l'operazione. L'effetto dura finché non esci dalla modalità trascrizione con `Esc` o `q`, che ti riporta al rendering a schermo intero. Il successivo `Ctrl+o` riparte da zero.

212* **`v`**: scrive la conversazione in un file temporaneo e lo apre in `$VISUAL` o `$EDITOR`.212* **`v`**: scrive la conversazione in un file temporaneo e lo apre in `$VISUAL` o `$EDITOR`.

213 213 

214## Guarda i tuoi cambiamenti nel pannello diff214## Guarda i tuoi cambiamenti nel pannello diff


321 321 

322## Anteprima di ricerca322## Anteprima di ricerca

323 323 

324Il rendering a schermo intero è una funzione in anteprima di ricerca. È stato testato su emulatori di terminale comuni, ma potresti riscontrare problemi di rendering su terminali meno comuni o configurazioni insolite.324Il rendering a schermo intero è una funzionalità in anteprima di ricerca. È stato testato sugli emulatori di terminale più comuni, ma potresti riscontrare problemi di rendering su terminali meno diffusi o con configurazioni insolite.

325 325 

326Se riscontri un problema, esegui `/feedback` all'interno di Claude Code per segnalarlo, oppure apri un problema nel [repository GitHub di claude-code](https://github.com/anthropics/claude-code/issues). Includi il nome e la versione del tuo emulatore di terminale.326Se riscontri un problema, esegui `/feedback` all'interno di Claude Code per segnalarlo, oppure apri una issue nel [repository GitHub claude-code](https://github.com/anthropics/claude-code/issues). Includi il nome e la versione del tuo emulatore di terminale.

327 327 

328Per disattivare il rendering a schermo intero, esegui `/tui default`, oppure annulla l'impostazione di `CLAUDE_CODE_NO_FLICKER` se l'hai abilitata in quel modo. Quando torni indietro con `/tui default`, Claude Code potrebbe prima mostrare un prompt di feedback facoltativo che chiede cosa ti ha fatto cambiare. Digita un motivo e premi `Invio` per inviarlo, oppure premi `Esc` per saltare. Il CLI si riavvia nel renderer classico comunque. Per forzare il renderer classico indipendentemente dall'impostazione `tui` salvata, imposta `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`. Il renderer classico mantiene la conversazione nello scrollback nativo del tuo terminale, quindi `Cmd+f` e la modalità di copia di tmux funzionano come al solito.328Per disattivare il rendering a schermo intero, esegui `/tui default`, oppure rimuovi `CLAUDE_CODE_NO_FLICKER` se lo hai abilitato in quel modo. Quando torni indietro con `/tui default`, Claude Code potrebbe prima mostrare un prompt di feedback facoltativo che ti chiede cosa ti ha spinto a cambiare. Digita un motivo e premi `Enter` per inviarlo, oppure premi `Esc` per saltare. In entrambi i casi la CLI si riavvia con il renderer classico. Per forzare il renderer classico indipendentemente dall'impostazione `tui` salvata, imposta `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`. Il renderer classico mantiene la conversazione nello scrollback nativo del tuo terminale, quindi `Cmd+f` e la modalità di copia di tmux funzionano come di consueto.

329 329 

330Le sessioni in background aperte da [agent view](https://code.claude.com/docs/it/agent-view.md) o `claude attach` utilizzano sempre il rendering a schermo intero. Il terminale di collegamento entra nel buffer dello schermo alternativo per mostrare la sessione, e il renderer classico non ha scrollback o gestione del mouse lì, quindi l'impostazione `tui` e `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` non si applicano a loro.330Le sessioni in background aperte dalla [vista agente](https://code.claude.com/docs/it/agent-view.md) o con `claude attach` usano sempre il rendering a schermo intero. Il terminale che si collega entra nel buffer dello schermo alternativo per mostrare la sessione, e lì il renderer classico non gestisce né lo scrollback né il mouse, quindi l'impostazione `tui` e `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` non si applicano a queste sessioni.

Details

241 - uses: anthropics/claude-code-action@v1241 - uses: anthropics/claude-code-action@v1

242 with:242 with:

243 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}243 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

244 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"244 plugin_marketplaces: "https://github.com/anthropics/claude-plugins-official.git"

245 plugins: "code-review@claude-code-plugins"245 plugins: "code-review@claude-plugins-official"

246 prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"246 prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

247 claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'247 claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'

248```248```

Details

221 221 

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

223 223 

224### Il test di connessione riesce ma un secondo test fallisce

225 

226Il secondo test si connette alla tua istanza GHES nello stesso modo delle sessioni cloud ospitate da Anthropic. Trova il tuo messaggio per capire se controllare il firewall o riprovare:

227 

228* **`Connection test passed, but a second test failed.`**: se la tua istanza si trova dietro un firewall, consenti tutti gli [indirizzi IP in uscita di Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses), perché un test di connessione può riuscire anche quando il firewall ne blocca alcuni. Puoi anche riprovare tra qualche minuto.

229* **`Connection test passed, but a second test could not run.`**: riprova tra qualche minuto.

230 

231Per eseguire di nuovo il test, apri il menu **More options** della connessione in [**Organization settings > Git providers**](https://claude.ai/admin-settings/source-control#github-enterprise) e seleziona **Test connection**.

232 

224### L'avvio della sessione fallisce con `Unable to get organization UUID`233### L'avvio della sessione fallisce con `Unable to get organization UUID`

225 234 

226Claude Code non ha potuto leggere un'organizzazione claude.ai dalle tue credenziali. Accedi con `/login` utilizzando un account nella tua organizzazione Team o Enterprise, poiché il supporto per GitHub Enterprise Server è limitato a questi piani. Vedi [Unable to get organization UUID](https://code.claude.com/docs/it/claude-code-on-the-web.md#unable-to-get-organization-uuid) per le cause e gli altri messaggi che questo stato produce.235Claude Code non ha potuto leggere un'organizzazione claude.ai dalle tue credenziali. Accedi con `/login` utilizzando un account nella tua organizzazione Team o Enterprise, poiché il supporto per GitHub Enterprise Server è limitato a questi piani. Vedi [Unable to get organization UUID](https://code.claude.com/docs/it/claude-code-on-the-web.md#unable-to-get-organization-uuid) per le cause e gli altri messaggi che questo stato produce.

Details

172 172 

173***173***

174 174 

175## Lavora efficacemente con Claude Code175## Lavorare in modo efficace con Claude Code

176 176 

177Questi suggerimenti ti aiutano a ottenere risultati migliori da Claude Code. Per ulteriori informazioni su prompt specifici, verifica e le regole che conviene imporre anziché richiedere tramite prompt, vedi [Best practice](https://code.claude.com/docs/it/best-practices.md).177Questi suggerimenti ti aiutano a ottenere risultati migliori da Claude Code. Per approfondire prompt specifici, la verifica e le regole che vale la pena imporre anziché richiedere tramite prompt, consulta [Best practice](https://code.claude.com/docs/it/best-practices.md).

178 178 

179### Chiedi aiuto a Claude Code179### Chiedi aiuto a Claude Code

180 180 

181Claude Code può insegnarti come usarlo. Fai domande come "come configuro gli hooks?" o "qual è il modo migliore per strutturare il mio CLAUDE.md?" e Claude spiegherà.181Claude Code può insegnarti come usarlo. Fai domande come "come configuro gli hook?" o "qual è il modo migliore per strutturare il mio CLAUDE.md?" e Claude te lo spiegherà.

182 182 

183I comandi integrati ti guidano anche attraverso la configurazione:183Anche i comandi integrati ti guidano nella configurazione:

184 184 

185* `/init` genera un CLAUDE.md iniziale per il tuo progetto185* `/init` genera un CLAUDE.md iniziale per il tuo progetto

186* `/doctor` esegue un controllo di configurazione che diagnostica i problemi di installazione e configurazione e può risolverli186* `/doctor` esegue un controllo della configurazione che diagnostica i problemi di installazione e configurazione e può risolverli

187 187 

188### È una conversazione188### È una conversazione

189 189 

190Claude Code è conversazionale. Non hai bisogno di prompt perfetti. Inizia con quello che vuoi, quindi affina:190Claude Code è conversazionale. Non servono prompt perfetti. Inizia da ciò che vuoi, poi affina:

191 191 

192```text theme={null}192```text theme={null}

193Correggi il bug di login193Fix the login bug

194```194```

195 195 

196\[Claude indaga, prova qualcosa]196\[Claude indaga, prova qualcosa]

197 197 

198```text theme={null}198```text theme={null}

199Non è del tutto giusto. Il problema è nella gestione della sessione.199That's not quite right. The issue is in the session handling.

200```200```

201 201 

202\[Claude adatta l'approccio]202\[Claude modifica l'approccio]

203 203 

204Quando il primo tentativo non è giusto, non ricominciare da capo. Itera.204Quando il primo tentativo non è corretto, non ricominci da capo. Iteri.

205 205 

206#### Interrompi e indirizza206#### Interrompi e reindirizza

207 207 

208Puoi reindirizzare Claude in qualsiasi momento senza ricominciare da capo. Fai una di queste cose:208Puoi reindirizzare Claude in qualsiasi momento senza ricominciare da capo. Fai una di queste due cose:

209 209 

210* **Premi `Esc`** per fermare Claude immediatamente. La chiamata dello strumento in esecuzione viene annullata e Claude attende la tua prossima istruzione. Se hai messaggi in coda, Claude Code [li invia successivamente](https://code.claude.com/docs/it/interactive-mode.md#queue-messages-while-claude-works).210* **Premi `Esc`** per fermare Claude immediatamente. La chiamata allo strumento in esecuzione viene annullata e Claude attende la tua prossima istruzione. Se hai messaggi in coda, Claude Code [li invia subito dopo](https://code.claude.com/docs/it/interactive-mode.md#queue-messages-while-claude-works).

211* **Digita una correzione e premi `Invio`** senza fermare Claude. Il messaggio viene visualizzato come in coda nella conversazione. Se Claude sta eseguendo chiamate di strumenti, legge il messaggio non appena quelle chiamate si completano, nello stesso turno, e si adatta prima del suo prossimo passo. [Accoda messaggi mentre Claude lavora](https://code.claude.com/docs/it/interactive-mode.md#queue-messages-while-claude-works) copre quando altre voci in coda vengono inviate.211* **Scrivi una correzione e premi `Enter`** senza fermare Claude. Il messaggio appare come in coda nella conversazione. Se Claude sta eseguendo chiamate agli strumenti, legge il messaggio non appena tali chiamate terminano, all'interno dello stesso turno, e si adatta prima del passaggio successivo. [Mettere in coda messaggi mentre Claude lavora](https://code.claude.com/docs/it/interactive-mode.md#queue-messages-while-claude-works) spiega quando vengono inviate le altre voci in coda.

212 212 

213### Delega, non dettare213### Delega, non dettare

214 214 

215Pensa di delegare a un collega capace. Fornisci contesto e direzione, quindi affida a Claude di capire i dettagli:215Pensa a come delegheresti a un collega capace. Fornisci contesto e indicazioni, poi affidati a Claude per capire i dettagli:

216 216 

217```text theme={null}217```text theme={null}

218Il flusso di checkout è rotto per gli utenti con carte scadute.218The checkout flow is broken for users with expired cards.

219Il codice rilevante è in src/payments/. Puoi indagare e correggerlo?219The relevant code is in src/payments/. Can you investigate and fix it?

220```220```

221 221 

222Non hai bisogno di specificare quali file leggere o quali comandi eseguire. Claude lo capisce.222Non devi specificare quali file leggere o quali comandi eseguire. Claude lo capisce da solo.

223 223 

224## Cosa c'è dopo224## Cosa c'è dopo

225 225 

Details

116 116 

117## Comandi117## Comandi

118 118 

119Digita `/` in Claude Code per visualizzare i comandi disponibili, oppure digita `/` seguito da qualsiasi lettera per filtrare. Il menu `/` elenca i comandi integrati, le [skills](https://code.claude.com/docs/it/skills.md) raggruppate e create dagli utenti, e i comandi forniti da [plugins](https://code.claude.com/docs/it/plugins/overview.md) e [server MCP](https://code.claude.com/docs/it/mcp.md#use-mcp-prompts-as-commands). Non tutti i comandi integrati sono visibili a ogni utente poiché alcuni dipendono dalla tua piattaforma o dal tuo piano, e [alcuni comandi disponibili sono nascosti dal menu per scelta progettuale](https://code.claude.com/docs/it/commands.md#how-the-command-menu-matches-what-you-type) e vengono eseguiti quando digiti il loro nome completo.119Digita `/` in Claude Code per vedere i comandi a tua disposizione, oppure digita `/` seguito da qualsiasi lettera per filtrarli. Il menu `/` elenca i comandi integrati, le [skill](https://code.claude.com/docs/it/skills.md) incluse e create dagli utenti, e i comandi forniti dai [plugin](https://code.claude.com/docs/it/plugins/overview.md) e dai [server MCP](https://code.claude.com/docs/it/mcp.md#use-mcp-prompts-as-commands). Non tutti i comandi integrati sono visibili a ogni utente, poiché alcuni dipendono dalla tua piattaforma o dal tuo piano, e [alcuni comandi disponibili sono nascosti dal menu per scelta progettuale](https://code.claude.com/docs/it/commands.md#how-the-command-menu-matches-what-you-type) e vengono eseguiti quando ne digiti il nome completo.

120 120 

121Nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md#use-the-mouse), il comando `/` e gli elenchi di suggerimenti file `@` rispondono anche al mouse: passare il mouse evidenzia una riga e fare clic la accetta.121Nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md#use-the-mouse), gli elenchi di suggerimenti dei comandi `/` e dei file `@` rispondono anche al mouse: passando sopra una riga la si evidenzia e facendo clic la si accetta.

122 122 

123Consulta il [riferimento dei comandi](https://code.claude.com/docs/it/commands.md) per l'elenco completo dei comandi inclusi in Claude Code.123Consulta il [riferimento dei comandi](https://code.claude.com/docs/it/commands.md) per l'elenco completo dei comandi inclusi in Claude Code.

124 124 

125### Completare un comando a metà del prompt125### Completare un comando a metà prompt

126 126 

127Il completamento dei comandi funziona anche a metà di un prompt: digita `/` dopo uno spazio, quindi le prime lettere di un nome, come in `esegui i test, quindi /com`. Solo i comandi i cui nomi iniziano con quelle lettere corrispondono, quindi un percorso di file come `/tmp/notes.md` non mantiene un elenco aperto. Claude Code esegue un comando solo quando il comando [inizia il tuo messaggio](https://code.claude.com/docs/it/commands.md).127Il completamento dei comandi funziona anche a metà di un prompt: digita `/` dopo uno spazio, poi le prime lettere di un nome, come in `run the tests, then /com`. Corrispondono solo i comandi il cui nome inizia con quelle lettere, quindi un percorso di file come `/tmp/notes.md` non mantiene aperto un elenco. Claude Code esegue direttamente un comando solo quando il comando [si trova all'inizio del tuo messaggio](https://code.claude.com/docs/it/commands.md).

128 128 

129* **Nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md)**: i risultati si aprono come un elenco mentre digiti, senza alcuna riga evidenziata, quindi `Invio` invia comunque il tuo prompt così come digitato. Premi `Tab` per inserire il risultato principale, oppure seleziona una riga con i tasti freccia e `Invio`.129* **Nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md)**: le corrispondenze si aprono come elenco mentre digiti, senza alcuna riga evidenziata, quindi `Enter` invia comunque il tuo prompt così come l'hai digitato. Premi `Tab` per inserire la prima corrispondenza, oppure scegli una riga con i tasti freccia e `Enter`.

130* **Al di fuori dello schermo intero**: il resto del risultato principale appare come testo fantasma al tuo cursore, con un conteggio come `+2` quando più comandi corrispondono. Premi `Tab` per inserire l'unico risultato, oppure per aprire l'elenco quando più risultati corrispondono, quindi seleziona una riga con i tasti freccia e `Invio`.130* **Fuori dalla modalità a schermo intero**: il resto della prima corrispondenza appare come testo fantasma in corrispondenza del cursore, con un conteggio come `+2` quando corrispondono più comandi. Premi `Tab` per inserire l'unica corrispondenza, oppure per aprire l'elenco quando ce ne sono diverse, poi scegli una riga con i tasti freccia e `Enter`.

131 131 

132In entrambi i renderer, premi `Tab` su un `/` nudo a metà prompt per elencare ogni comando.132In entrambi i renderer, premi `Tab` su un `/` isolato a metà prompt per elencare tutti i comandi.

133 133 

134Una skill di plugin corrisponde anche al suo nome nudo, quindi `/deploy` trova una skill denominata `myplugin:deploy-app`. Quando inserisci il risultato, Claude Code scrive il `/myplugin:deploy-app` completo.134Una skill di un plugin corrisponde anche al suo nome semplice, quindi `/deploy` trova una skill chiamata `myplugin:deploy-app`. Quando inserisci la corrispondenza, Claude Code scrive il nome completo `/myplugin:deploy-app`.

135 135 

136## Modalità editor Vim136## Modalità editor Vim

137 137 


270 270 

271## Cronologia dei comandi271## Cronologia dei comandi

272 272 

273Claude Code mantiene una cronologia dei prompt che digitate, e il richiamo con freccia Su raggiunge i prompt delle sessioni precedenti dello stesso progetto:273Claude Code conserva una cronologia dei prompt che digiti, e il richiamo con la freccia Su raggiunge i prompt delle sessioni passate dello stesso progetto:

274 274 

275* La cronologia degli input è archiviata per directory di lavoro275* La cronologia degli input viene memorizzata per directory di lavoro

276* Eseguendo `/clear` si avvia una nuova sessione: il richiamo elenca quindi i prompt della nuova sessione per primi, seguiti dai prompt delle sessioni precedenti. La conversazione della sessione precedente viene preservata e può essere ripresa.276* L'esecuzione di `/clear` avvia una nuova sessione: il richiamo elenca quindi prima i prompt della nuova sessione, seguiti da quelli delle sessioni precedenti. La conversazione della sessione precedente viene conservata e può essere ripresa.

277* L'invio dello stesso prompt due volte di seguito registra una voce di cronologia, quindi premendo Su si passa al prompt distinto precedente277* Inviare lo stesso prompt due volte di seguito registra una sola voce nella cronologia, quindi premendo Su passi al prompt distinto precedente

278* Quando richiamate un prompt che includeva testo incollato, Claude Code invia di nuovo il contenuto incollato completo quando lo reinviate. Se il contenuto è stato nel frattempo [pulito](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), Claude Code non invia la stringa letterale `[Pasted text #N]`; vedere [Incollare contenuto di grandi dimensioni](https://code.claude.com/docs/it/terminal-config.md#paste-large-content) per sapere cosa accade al prompt278* Quando richiami un prompt che includeva testo incollato, Claude Code invia di nuovo l'intero contenuto incollato quando lo reinvii. Se nel frattempo il contenuto è stato [ripulito](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), Claude Code non invia la stringa letterale `[Pasted text #N]`; consulta [Incollare contenuti di grandi dimensioni](https://code.claude.com/docs/it/terminal-config.md#paste-large-content) per sapere cosa succede al prompt

279* L'espansione della cronologia con `!` è disabilitata per impostazione predefinita279* L'espansione della cronologia con `!` è disabilitata per impostazione predefinita

280 280 

281### Recuperare una bozza cancellata281### Recuperare una bozza cancellata

282 282 

283Per recuperare una bozza che hai cancellato con `Ctrl+C`, premi `Su`, subito oppure dopo aver inviato un messaggio o un comando:283Per recuperare una bozza che hai cancellato con `Ctrl+C`, premi `Up`, subito oppure dopo aver inviato un messaggio o un comando:

284 284 

285* **Subito dopo aver cancellato la bozza**: premi `Su` una volta mentre il prompt è ancora vuoto. Richiede Claude Code v2.1.288 o versioni successive.285* **Subito dopo aver cancellato la bozza**: premi `Up` una volta mentre il prompt è ancora vuoto. Richiede Claude Code v2.1.288 o successivo.

286* **Dopo aver inviato un messaggio o un comando**: premi `Su` per tornare indietro fino alla bozza. Claude Code conserva le dieci bozze cancellate più recenti per la sessione corrente, con il relativo testo incollato e le immagini, e le elimina quando esci. Richiede Claude Code v2.1.292 o versioni successive.286* **Dopo aver inviato un messaggio o un comando**: premi `Up` per tornare indietro fino alla bozza. Claude Code conserva le dieci bozze cancellate più recenti per la sessione corrente, con il relativo testo incollato e le immagini, e le elimina quando esci. Richiede Claude Code v2.1.292 o successivo.

287 287 

288### Ricerca inversa con Ctrl+R288### Ricerca inversa con Ctrl+R

289 289 

290Premete `Ctrl+R` per cercare in modo interattivo nella cronologia dei comandi. Nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), `Ctrl+R` apre una finestra di dialogo di ricerca: digitate per filtrare, premete `Su` e `Giù` per spostarvi tra i risultati e premete `Ctrl+S` per ciclo l'ambito attraverso questa sessione, questo progetto e tutti i progetti. Premete `Invio` o `Tab` per posizionare una corrispondenza nell'input del prompt, oppure `Esc` per annullare. I passaggi seguenti descrivono la ricerca inline del renderer classico:290Premi `Ctrl+R` per cercare in modo interattivo nella cronologia dei comandi. Nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), `Ctrl+R` apre invece una finestra di dialogo di ricerca: digita per filtrare, premi `Up` e `Down` per spostarti tra le corrispondenze e premi `Ctrl+S` per far scorrere l'ambito tra questa sessione, questo progetto e tutti i progetti. Premi `Enter` o `Tab` per inserire una corrispondenza nell'input del prompt, oppure `Esc` per annullare. I passaggi seguenti descrivono la ricerca inline del renderer classico:

291 291 

2921. **Avvia ricerca**: premete `Ctrl+R` per attivare la ricerca inversa della cronologia2921. **Avvia la ricerca**: premi `Ctrl+R` per attivare la ricerca inversa nella cronologia

2932. **Digita query**: inserite il testo da cercare nei comandi precedenti. Il termine di ricerca è evidenziato nei risultati corrispondenti2932. **Digita la query**: inserisci il testo da cercare nei comandi precedenti. Il termine di ricerca viene evidenziato nei risultati corrispondenti

2943. **Naviga tra i risultati**: premete di nuovo `Ctrl+R` per ciclo tra i risultati più vecchi2943. **Naviga tra le corrispondenze**: premi di nuovo `Ctrl+R` per scorrere le corrispondenze più vecchie

2954. **Ambito di ricerca**: la ricerca inline cerca sempre i prompt da tutti i progetti2954. **Ambito della ricerca**: la ricerca inline cerca sempre i prompt di tutti i progetti

2965. **Accetta corrispondenza**:2965. **Accetta la corrispondenza**:

297 * Premete `Tab` o `Esc` per accettare la corrispondenza corrente e continuare la modifica297 * Premi `Tab` o `Esc` per accettare la corrispondenza corrente e continuare a modificare

298 * Premete `Invio` per accettare ed eseguire il comando immediatamente298 * Premi `Enter` per accettare ed eseguire immediatamente il comando

2996. **Annulla ricerca**:2996. **Annulla la ricerca**:

300 * Premete `Ctrl+C` per annullare e ripristinare l'input originale300 * Premi `Ctrl+C` per annullare e ripristinare l'input originale

301 * Premete `Backspace` su una ricerca vuota per annullare301 * Premi `Backspace` con la ricerca vuota per annullare

302 302 

303La ricerca inline scansiona la cronologia completa dei prompt, dal più recente al più vecchio, con i duplicati compressi all'occorrenza più recente. La finestra di dialogo a schermo intero cerca l'intera cronologia dei prompt nell'ambito selezionato, dal più recente al più vecchio, con i duplicati compressi all'occorrenza più recente: i prompt più recenti appaiono immediatamente e i risultati dai prompt più vecchi si riempiono mentre Claude Code carica il resto. I prompt corrispondenti vengono visualizzati con il termine di ricerca evidenziato, in modo da poter trovare e riutilizzare gli input precedenti.303La ricerca inline analizza l'intera cronologia dei prompt, dal più recente, con i duplicati ridotti all'occorrenza più recente. La finestra di dialogo a schermo intero cerca nell'intera cronologia dei prompt nell'ambito selezionato, dal più recente, con i duplicati ridotti all'occorrenza più recente: i prompt più recenti compaiono immediatamente e le corrispondenze dei prompt più vecchi si aggiungono man mano che Claude Code carica il resto. I prompt corrispondenti vengono visualizzati con il termine di ricerca evidenziato, così puoi trovare e riutilizzare gli input precedenti.

304 304 

305L'accettazione di una corrispondenza o l'annullamento della ricerca hanno effetto immediato, anche mentre Claude Code sta ancora caricando la cronologia.305Accettare una corrispondenza o annullare la ricerca ha effetto immediato, anche mentre Claude Code sta ancora caricando la cronologia.

306 306 

307## Comandi Bash in background307## Comandi Bash in background

308 308 


332* I comandi in background in una sessione locale su cui lavori da un terminale, dall'app desktop o dall'estensione VS Code non hanno limiti di tempo. In una sessione eseguita senza supervisione, come un'esecuzione con `-p` o una sessione cloud, Claude Code interrompe un comando in background al raggiungimento del suo [limite di tempo](https://code.claude.com/docs/it/tools-reference.md#time-limit-for-background-commands)332* I comandi in background in una sessione locale su cui lavori da un terminale, dall'app desktop o dall'estensione VS Code non hanno limiti di tempo. In una sessione eseguita senza supervisione, come un'esecuzione con `-p` o una sessione cloud, Claude Code interrompe un comando in background al raggiungimento del suo [limite di tempo](https://code.claude.com/docs/it/tools-reference.md#time-limit-for-background-commands)

333* Un comando in background che un [subagent](https://code.claude.com/docs/it/sub-agents.md#run-subagents-in-foreground-or-background) in foreground ha avviato termina quando la corsa di quel subagent termina, sia che sia finita, fallita o sia stata interrotta; vedere [Quando un comando in background si ferma](https://code.claude.com/docs/it/tools-reference.md#when-a-background-command-stops) nel riferimento degli strumenti333* Un comando in background che un [subagent](https://code.claude.com/docs/it/sub-agents.md#run-subagents-in-foreground-or-background) in foreground ha avviato termina quando la corsa di quel subagent termina, sia che sia finita, fallita o sia stata interrotta; vedere [Quando un comando in background si ferma](https://code.claude.com/docs/it/tools-reference.md#when-a-background-command-stops) nel riferimento degli strumenti

334 334 

335Per disattivare i comandi in background, imposta la variabile d'ambiente [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars#variables) a `1`. Con questa impostazione, perdi anche i subagent in background, le skill forked in background e `Ctrl+B`. Avviare in [modalità bare](https://code.claude.com/docs/it/headless.md#start-faster-with-bare-mode) ha lo stesso effetto.335Per disattivare i comandi in background, imposta la variabile d'ambiente [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars#variables) a `1`. Con questa impostazione, perdi anche la scorciatoia `Ctrl+B` e [altre funzionalità in background](https://code.claude.com/docs/it/env-vars.md#variables), come l'[esecuzione delle skill in background](https://code.claude.com/docs/it/skills.md#run-skills-in-a-subagent). Avviare in [modalità bare](https://code.claude.com/docs/it/headless.md#start-faster-with-bare-mode) ha lo stesso effetto.

336 336 

337**Comandi comuni messi in background:**337**Comandi comuni messi in background:**

338 338 


418 418 

419## Suggerimenti di prompt419## Suggerimenti di prompt

420 420 

421Quando aprite una sessione per la prima volta, Claude Code mostra un comando di esempio attenuato nell'input del prompt per aiutarvi a iniziare. Lo seleziona dalla cronologia git del vostro progetto, quindi l'esempio riflette i file su cui avete lavorato di recente.421Quando apri una sessione per la prima volta, Claude Code mostra un comando di esempio in grigio nell'input del prompt per aiutarti a iniziare. Lo sceglie dalla cronologia git del tuo progetto, quindi l'esempio riflette i file su cui hai lavorato di recente.

422 422 

423Dopo che Claude risponde, Claude Code può suggerire il vostro prossimo prompt in base alla cronologia della conversazione, come un passaggio successivo da una richiesta in più parti o una continuazione naturale del vostro flusso di lavoro.423Dopo che Claude ha risposto, Claude Code può suggerire il tuo prossimo prompt in base alla cronologia della conversazione, ad esempio un passaggio successivo di una richiesta in più parti o una naturale continuazione del tuo workflow.

424 424 

425* Premete `Tab` o `Freccia destra` per inserire il suggerimento nell'input del prompt, quindi `Invio` per inviare425* Premi `Tab` o `Right arrow` per inserire il suggerimento nell'input del prompt, poi `Enter` per inviarlo

426* Iniziate a digitare per chiudere il suggerimento426* Inizia a digitare per ignorarlo

427 427 

428Claude Code genera ciascuno di questi suggerimenti di prompt successivo con una richiesta in background al medesimo modello che la vostra sessione sta utilizzando. La richiesta conta verso i limiti di utilizzo del vostro piano o i vostri costi API. Poiché riutilizza la cache del prompt della conversazione, è principalmente costituita da letture della cache più alcuni token di output, quindi il costo aggiuntivo è minimo.428Claude Code genera ciascuno di questi suggerimenti per il prompt successivo con una breve richiesta in background allo stesso modello usato dalla tua sessione. La richiesta viene conteggiata nei limiti di utilizzo del tuo piano o nei tuoi costi API. Poiché riutilizza la cache dei prompt della conversazione, consiste principalmente in letture dalla cache più alcuni token di output, quindi il costo aggiuntivo è ridotto.

429 429 

430### Quando Claude Code salta i suggerimenti430### Quando Claude Code salta i suggerimenti

431 431 

432In modalità interattiva, Claude Code lascia i suggerimenti di prompt disattivati per impostazione predefinita e nasconde l'interruttore **Prompt suggestions** in `/config` in una [sessione che non recupera i flag delle funzionalità](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), come una su un provider di terze parti o attraverso un gateway di app Claude, e in una [prima sessione dopo un'installazione o un aggiornamento](https://code.claude.com/docs/it/env-vars.md#first-session-after-an-install-or-upgrade) i cui flag non sono ancora arrivati.432In modalità interattiva, Claude Code lascia i suggerimenti di prompt disattivati per impostazione predefinita e nasconde l'opzione **Prompt suggestions** in `/config` in una [sessione che non recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), come una su un provider di terze parti o tramite un gateway di app Claude, e in una [prima sessione dopo un'installazione o un aggiornamento](https://code.claude.com/docs/it/env-vars.md#first-session-after-an-install-or-upgrade) i cui flag non sono ancora arrivati.

433 433 

434Claude Code salta anche i singoli suggerimenti in diverse situazioni, tra cui:434Claude Code salta anche singoli suggerimenti in diverse situazioni, tra cui:

435 435 

436* La cache del prompt è fredda, per evitare costi inutili436* La cache dei prompt è fredda, per evitare costi inutili

437* Dopo il primo turno di una conversazione, in alcune sessioni437* Dopo il primo turno di una conversazione, in alcune sessioni

438* La risposta precedente è terminata con un errore438* La risposta precedente è terminata con un errore

439* Mentre siete in plan mode439* Mentre sei in plan mode

440* Il tuo account è vicino o al limite di utilizzo. Per evitare che questa esclusione si applichi finché non raggiungi il limite, imposta [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/it/env-vars) su `true`. Prima della v2.1.238, Claude Code saltava i suggerimenti vicino al limite anche con la variabile impostata su `true`440* Il tuo account è vicino al limite di utilizzo o lo ha raggiunto. Per fare in modo che questo salto non si applichi finché non raggiungi il limite, imposta [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/it/env-vars) su `true`. Prima della v2.1.238, Claude Code saltava i suggerimenti vicino al limite anche con la variabile impostata su `true`

441* In un [agent team](https://code.claude.com/docs/it/agent-teams.md), nelle sessioni dei compagni di squadra per impostazione predefinita. La sessione del lead mostra i suggerimenti441* In un [team di agenti](https://code.claude.com/docs/it/agent-teams.md), nelle sessioni dei compagni di squadra per impostazione predefinita. La sessione del lead mostra i suggerimenti

442 442 

443L'avviso `Showing fewer prompt suggestions · use one to bring them back` significa che Claude Code mostra i suggerimenti meno spesso perché ne hai lasciati molti di fila inutilizzati. Per tornare alla frequenza abituale, usa un suggerimento oppure imposta [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/it/env-vars) su `true`.443L'avviso `Showing fewer prompt suggestions · use one to bring them back` significa che Claude Code mostra i suggerimenti meno spesso perché ne hai lasciati molti di fila inutilizzati. Per tornare alla frequenza abituale, usa un suggerimento oppure imposta [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/it/env-vars) su `true`.

444 444 

445In modalità stampa, Claude Code non genera suggerimenti per impostazione predefinita. Passate [`--prompt-suggestions`](https://code.claude.com/docs/it/cli-reference#cli-flags) con `-p "<prompt>" --output-format stream-json --verbose` per fare in modo che Claude Code emetta un messaggio `prompt_suggestion` dopo ogni turno che ne genera uno. Il generatore salta anche le conversazioni molto brevi e le cache di prompt fredde qui, quindi una singola query `-p` breve potrebbe non emetterne nessuna.445In modalità print, Claude Code non genera suggerimenti per impostazione predefinita. Passa [`--prompt-suggestions`](https://code.claude.com/docs/it/cli-reference#cli-flags) con `-p "<prompt>" --output-format stream-json --verbose` per fare in modo che Claude Code emetta un messaggio `prompt_suggestion` dopo ogni turno che ne genera uno. Anche qui il generatore salta le conversazioni molto brevi e le cache dei prompt fredde, quindi una singola query `-p` breve potrebbe non emetterne nessuno.

446 446 

447### Disattivare i suggerimenti di prompt447### Disattivare i suggerimenti di prompt

448 448 

449Per disattivare completamente i suggerimenti di prompt, utilizzate uno dei seguenti metodi:449Per disattivare completamente i suggerimenti di prompt, usa uno dei seguenti metodi:

450 450 

451* Disattivate **Prompt suggestions** in `/config`451* Disattiva **Prompt suggestions** in `/config`

452* Impostate [`promptSuggestionEnabled`](https://code.claude.com/docs/it/settings-reference#promptsuggestionenabled) su `false` nel vostro file di impostazioni452* Imposta [`promptSuggestionEnabled`](https://code.claude.com/docs/it/settings-reference#promptsuggestionenabled) su `false` nel tuo file di impostazioni

453* Impostate la variabile di ambiente [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/it/env-vars) su `false`, che ha la precedenza sull'impostazione:453* Imposta la variabile d'ambiente [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](https://code.claude.com/docs/it/env-vars) su `false`, che ha la precedenza sull'impostazione:

454 ```bash theme={null}454 ```bash theme={null}

455 export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false455 export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false

456 ```456 ```

457 457 

458Per disattivare i suggerimenti di prompt in tutta un'organizzazione, impostate `promptSuggestionEnabled` su `false` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Impostate anche `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` su `false` sotto la chiave [`env`](https://code.claude.com/docs/it/settings-reference#env) gestita in modo che gli utenti non possano riattivarli con la propria variabile di ambiente.458Per disattivare i suggerimenti di prompt in un'intera organizzazione, imposta `promptSuggestionEnabled` su `false` nelle [impostazioni gestite](https://code.claude.com/docs/it/managed-settings.md). Imposta anche `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` su `false` sotto la chiave gestita [`env`](https://code.claude.com/docs/it/settings-reference#env), in modo che gli utenti non possano riattivarli con la propria variabile d'ambiente.

459 459 

460## Suggerimenti You should know460## Suggerimenti You should know

461 461 


619 619 

620## Caratteri invisibili nei prompt620## Caratteri invisibili nei prompt

621 621 

622Il testo incollato può contenere caratteri Unicode che un terminale disegna come nulla, come caratteri di tag, controlli bidirezionali e spazi a larghezza zero, quindi un prompt può contenere testo che non vedi mai. Per evitare che il testo copiato contenga istruzioni che il terminale non disegna, Claude Code rimuove questi caratteri quando premi Invio, prima di inviare qualsiasi cosa. Pulisce sia il prompt che il contenuto di qualsiasi [riferimento di testo incollato](https://code.claude.com/docs/it/terminal-config.md#paste-large-content) compresso che il prompt include. Claude Code mantiene i caratteri di unione che gli script persiani e indici scrivono e i selettori all'interno delle sequenze emoji.622Il testo incollato può contenere caratteri Unicode che un terminale non visualizza affatto, come i caratteri tag, i controlli bidirezionali e gli spazi a larghezza zero, quindi un prompt può contenere testo che non vedi mai. Per evitare che il testo copiato porti con sé istruzioni che il tuo terminale non visualizza, Claude Code rimuove questi caratteri quando premi Enter, prima di inviare qualsiasi cosa. Ripulisce sia il prompt sia il contenuto di qualsiasi [riferimento a testo incollato](https://code.claude.com/docs/it/terminal-config.md#paste-large-content) compresso incluso nel prompt. Claude Code mantiene i caratteri di unione usati dalle scritture persiane e indiane e i selettori all'interno delle sequenze emoji.

623 623 

624Se Claude Code ha rimosso qualcosa, quel tasto Invio non invia nulla. Il prompt pulito ritorna nella casella di input con un avviso come `Removed 3 invisible characters · review and press Enter to send`, e premendo Invio di nuovo si invia il testo come mostrato.624Se Claude Code ha rimosso qualcosa, quella pressione di Enter non invia nulla. Il prompt ripulito torna nella casella di input con un avviso come `Removed 3 invisible characters · review and press Enter to send`, e premendo di nuovo Enter il testo viene inviato così come appare.

625 625 

626Quando passi un prompt sulla riga di comando, come in `claude "fix the login bug"`, Claude Code non aspetta un secondo Invio. Rimuove i caratteri, mostra un avviso e invia il prompt pulito. Se il prompt pulito inizierebbe con `/`, Claude Code lo mette invece nella casella di input affinché tu lo riveda e lo invii.626Quando passi un prompt dalla riga di comando, come in `claude "fix the login bug"`, Claude Code non attende un secondo Enter. Rimuove i caratteri, mostra un avviso e invia il prompt ripulito. Se il prompt ripulito inizierebbe con `/`, Claude Code lo inserisce invece nella casella di input perché tu possa rivederlo e inviarlo.

627 627 

628## Esamina le modifiche con /diff628## Rivedere le modifiche con /diff

629 629 

630Esegui `/diff` per rivedere le modifiche nel tuo albero di lavoro senza lasciare Claude Code. Vedrai le modifiche che Claude ha apportato finora insieme a qualsiasi altra cosa che non hai ancora committato. Ciò che `/diff` apre dipende dal renderer attivo:630Esegui `/diff` per esaminare le modifiche nel tuo working tree senza uscire da Claude Code. Vedi le modifiche che Claude ha apportato finora insieme a tutto ciò di cui non hai ancora fatto il commit. Ciò che `/diff` apre dipende dal renderer attivo:

631 631 

632* **[Rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md)**: il [pannello diff](#diff-panel) si apre accanto alla conversazione. Rimane aperto e si aggiorna mentre continui a lavorare.632* **[Rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md)**: il [pannello diff](#diff-panel) si apre accanto alla conversazione. Rimane aperto e si aggiorna mentre continui a lavorare.

633* **Renderer classico**: la [finestra di dialogo diff](#diff-dialog) si apre sopra il prompt, e la chiudi quando hai finito di leggere.633* **Renderer classico**: la [finestra di dialogo diff](#diff-dialog) si apre sopra il prompt e la chiudi quando hai finito di leggere.

634 634 

635Il pannello e la finestra di dialogo provengono entrambi da `cc-plugin-diff`, uno dei [mod integrati in Claude Code](https://code.claude.com/docs/it/plugins/mods/overview.md#mods-built-into-claude-code). Se disattivi quel mod in `/plugin`, `/diff` apre invece il pannello precedente di Claude Code e il [visualizzatore diff](https://code.claude.com/docs/it/keybindings.md#diff-actions).635Sia il pannello sia la finestra di dialogo provengono da `cc-plugin-diff`, uno dei [mod integrati in Claude Code](https://code.claude.com/docs/it/plugins/mods/overview.md#mods-built-into-claude-code). Se disattivi quel mod in `/plugin`, `/diff` apre invece il pannello precedente di Claude Code e il [visualizzatore diff](https://code.claude.com/docs/it/keybindings.md#diff-actions).

636 636 

637Nelle modifiche che `/diff` legge da git, un submodule appare come una singola voce, e solo quando cambia il commit a cui punta; le modifiche ai file all'interno del submodule non appaiono lì. Il pannello e la finestra di dialogo offrono anche una vista delle modifiche di ogni turno una volta che Claude ha modificato dei file. Queste viste di turno derivano dalle modifiche dei file di Claude piuttosto che da git, quindi una modifica che Claude apporta tramite un comando shell appare solo sotto `Current`, la vista dell'albero di lavoro.637Nelle modifiche che `/diff` legge da git, un submodule appare come una singola voce, e solo quando cambia il commit a cui punta; le modifiche ai file all'interno del submodule non compaiono lì. Il pannello e la finestra di dialogo offrono anche una vista delle modifiche di ciascun turno, una volta che Claude ha modificato dei file. Queste viste per turno derivano dalle modifiche ai file fatte da Claude anziché da git, quindi una modifica che Claude apporta tramite un comando shell compare solo in `Current`, la vista del working tree.

638 638 

639### Diff panel639### Pannello diff

640 640 

641Il pannello diff elenca i file modificati con i conteggi delle righe aggiunte e rimosse, e mostra il diff di ogni file sotto l'elenco. Claude Code lo aggiorna ogni volta che Claude modifica un file o esegue un comando shell. Per chiudere il pannello, esegui `/diff` di nuovo o fai clic sulla `✕` nella sua intestazione.641Il pannello diff elenca i file modificati con il numero di righe aggiunte e rimosse, e mostra il diff di ciascun file sotto l'elenco. Claude Code lo aggiorna ogni volta che Claude modifica un file o esegue un comando shell. Per chiudere il pannello, esegui di nuovo `/diff` o fai clic sulla `✕` nella sua intestazione.

642 642 

643Per utilizzare il pannello hai bisogno di:643Per usare il pannello ti servono:

644 644 

645* [Rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md)645* [Rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md)

646* Un repository git646* Un repository git

647* Un terminale largo almeno 110 colonne647* Un terminale largo almeno 110 colonne

648* Claude Code v2.1.287 o successivo648* Claude Code v2.1.287 o successivo

649 649 

650Il pannello si apre anche automaticamente una volta che Claude inizia a modificare i file, se il tuo terminale è largo almeno 144 colonne. Dopo averlo aperto tu stesso con `/diff`, le sessioni successive lo aprono non appena Claude modifica un file in qualsiasi terminale abbastanza largo per contenerlo. Chiudi il pannello e rimane chiuso, in questa sessione e nelle successive, finché non esegui `/diff` di nuovo.650Il pannello si apre anche da solo quando Claude inizia a modificare file, se il tuo terminale è largo almeno 144 colonne. Dopo che lo hai aperto tu stesso con `/diff`, le sessioni successive lo aprono non appena Claude modifica un file, in qualsiasi terminale abbastanza largo da contenerlo. Se chiudi il pannello, rimane chiuso, in questa sessione e in quelle successive, finché non esegui di nuovo `/diff`.

651 651 

652Mentre il pannello è aperto, puoi:652Mentre il pannello è aperto, puoi:

653 653 

654* **Saltare a un file**: fai clic sulla sua riga nell'elenco. Scorri il pannello con la rotella del mouse. Quando l'elenco dei file stesso è troppo lungo per stare, scorrilo con `Alt+Up` e `Alt+Down`, o `Ctrl+Up` e `Ctrl+Down`.654* **Passare a un file**: fai clic sulla sua riga nell'elenco. Scorri il pannello con la rotella del mouse. Quando l'elenco dei file stesso è troppo lungo per essere visualizzato interamente, scorrilo con `Alt+Up` e `Alt+Down`, oppure `Ctrl+Up` e `Ctrl+Down`.

655* **Chiedere a Claude informazioni sulle modifiche di un file**: fai clic su `ask`, a destra del nome del file sopra il suo diff. Claude Code allega il diff di quel file al tuo prossimo prompt, e il pulsante mostra `asked ✓` finché non invii quel prompt. Chiedere su un secondo file sostituisce il primo.655* **Chiedere a Claude delle modifiche di un file**: fai clic su `ask`, a destra del nome del file sopra il suo diff. Claude Code allega il diff di quel file al tuo prossimo prompt, e il pulsante mostra `asked ✓` finché non invii quel prompt. Chiedere su un secondo file sostituisce il primo.

656* **Mostrare le modifiche di un turno**: fai clic sul selettore `source` nell'intestazione del pannello, poi scegli un turno con `Up` e `Down` e premi `Enter`. I turni sono etichettati `T1`, `T2` e così via. Il selettore appare una volta che Claude ha modificato dei file, e `Current` ti riporta all'albero di lavoro.656* **Mostrare le modifiche di un turno**: fai clic sul selettore `source` nell'intestazione del pannello, poi scegli un turno con `Up` e `Down` e premi `Enter`. I turni sono etichettati `T1`, `T2` e così via. Il selettore compare una volta che Claude ha modificato dei file, e `Current` ti riporta al working tree.

657* **Mostrare i file che il pannello omette**: l'elenco salta i file di test e i file generati, e comprime le modifiche da prima di questa sessione in una riga in fondo. Fai clic su una riga di conteggio per espanderla.657* **Mostrare i file che il pannello esclude**: l'elenco salta i file di test e i file generati, e raggruppa in una riga in fondo le modifiche precedenti a questa sessione. Fai clic su una delle due righe di conteggio per espanderla.

658* **Cambiare ciò con cui il pannello confronta**: premi `Ctrl+X B` per passare dalle modifiche di questa sessione, alle tue modifiche non committate come un unico elenco, a tutto ciò che è accaduto da quando il tuo branch si è separato dal branch predefinito. Claude Code ricorda la scelta per ogni repository.658* **Cambiare il termine di confronto del pannello**: premi `Ctrl+X B` per passare ciclicamente dalle modifiche di questa sessione, alle tue modifiche senza commit come unico elenco, a tutto ciò che è cambiato da quando il tuo branch si è separato dal branch predefinito. Claude Code ricorda la scelta per ciascun repository.

659 659 

660Per riassociare i tasti che scorrono l'elenco dei file o cambiano il confronto, vedi [Azioni del pannello diff](https://code.claude.com/docs/it/keybindings.md#diff-panel-actions).660Per riassegnare i tasti che scorrono l'elenco dei file o cambiano il confronto, consulta [Azioni del pannello diff](https://code.claude.com/docs/it/keybindings.md#diff-panel-actions).

661 661 

662Durante un merge, un rebase, un cherry-pick o un revert non completato, il pannello continua a mostrare le modifiche che ha letto per ultime da git, così non si riempie delle modifiche in arrivo dell'operazione. Si aggiorna al primo refresh dopo la fine dell'operazione, ad esempio quando Claude modifica di nuovo un file.662Durante un merge, un rebase, un cherry-pick o un revert non completato, il pannello continua a mostrare le modifiche che ha letto per ultime da git, così non si riempie delle modifiche in arrivo dell'operazione. Si aggiorna al primo refresh successivo alla fine dell'operazione, ad esempio quando Claude modifica di nuovo un file.

663 663 

664### Diff dialog664### Finestra di dialogo diff

665 665 

666La finestra di dialogo diff si apre come un blocco con bordo sopra il prompt ed elenca i file modificati con i conteggi delle righe aggiunte e rimosse. Li confronta con `HEAD`, o con ciò che hai [scelto per ultimo nel pannello diff](#diff-panel) per questo repository.666La finestra di dialogo diff si apre come un blocco con bordo sopra il prompt ed elenca i tuoi file modificati con il numero di righe aggiunte e rimosse. Li confronta con `HEAD`, oppure con ciò che hai [scelto per ultimo nel pannello diff](#diff-panel) per questo repository.

667 667 

668Una volta che Claude ha modificato dei file, sopra l'elenco appare un selettore `source`. Offre una vista di turno, etichettata `T1`, `T2` e così via, per ciascuno dei tuoi prompt che ha portato Claude a modificare dei file. Una vista di turno mostra solo le modifiche di quel turno, e `Current` ti riporta all'albero di lavoro.668Una volta che Claude ha modificato dei file, sopra l'elenco compare un selettore `source`. Offre una vista per turno, etichettata `T1`, `T2` e così via, per ciascuno dei tuoi prompt che hanno portato Claude a modificare file. Una vista per turno mostra solo le modifiche di quel turno, e `Current` ti riporta al working tree.

669 669 

670Usa questi tasti nella finestra di dialogo:670Usa questi tasti nella finestra di dialogo:

671 671 

672* **Su e Giù**: seleziona un file.672* **Up e Down**: seleziona un file.

673* **Invio**: apri il diff del file selezionato. Scorrilo con Su e Giù, o PaginaSu e PaginaGiù.673* **Enter**: apri il diff del file selezionato. Scorrilo con Up e Down, oppure PageUp e PageDown.

674* **Esc**: ritorna dal diff di un file all'elenco, o chiudi la finestra di dialogo dall'elenco.674* **Esc**: torna dal diff di un file all'elenco, oppure chiudi la finestra di dialogo dall'elenco.

675* **Tab**: spostati sul selettore `source`, poi scegli `Current` o una vista di turno con Su e Giù e premi Invio. Nel diff di un file, Tab si sposta sul pulsante `ask`. Premi Invio per allegare il diff di quel file al tuo prossimo prompt.675* **Tab**: passa al selettore `source`, poi scegli `Current` o una vista per turno con Up e Down e premi Enter. Nel diff di un file, Tab passa al pulsante `ask`. Premi Enter per allegare il diff di quel file al tuo prossimo prompt.

676 676 

677## Domande laterali con /btw677## Domande laterali con /btw

678 678 


738 738 

739```text theme={null}739```text theme={null}

740Usage limit reached · limit resets 3:45pm740Usage limit reached · limit resets 3:45pm

741Continuing automatically at 3:45pm · esc to cancel741Continuing automatically at 3:45pm · Esc to cancel

742```742```

743 743 

744Entrambe le righe possono contenere altro dopo queste parole, come un link di aiuto nella prima o `/usage-credits to continue now` nella seconda. Quando l'attesa inizia automaticamente, la conversazione la registra anche con una riga che riporta `Usage limit reached · continuing automatically at 3:45pm · esc to cancel`.744Entrambe le righe possono contenere altro dopo queste parole, come un link di aiuto nella prima o `/usage-credits to continue now` nella seconda. Quando l'attesa inizia automaticamente, la conversazione la registra anche con una riga che riporta `Usage limit reached · continuing automatically at 3:45pm · esc to cancel`.

745 745 

746Mantenere la sessione aperta. Ciò che accade dopo dipende da come termina l'attesa:746Mantenere la sessione aperta. Ciò che accade dopo dipende da come termina l'attesa:

747 747 

748* **Al ripristino**: la seconda riga diventa `Continuing shortly · esc to cancel`. Poi nella conversazione compare `Usage limit reset · continuing automatically` e Claude Code chiede a Claude di riprendere l'attività da dove si era fermata. Non rinvia il tuo ultimo messaggio.748* **Al ripristino**: la seconda riga diventa `Continuing shortly · Esc to cancel`. Poi nella conversazione compare `Usage limit reset · Continuing automatically` e Claude Code chiede a Claude di riprendere l'attività da dove si era fermata. Non rinvia il tuo ultimo messaggio.

749* **Dopo che il computer è andato in sospensione**: se è rimasto in sospensione per più di circa 30 minuti e il limite si è ripristinato durante la sospensione, la prima riga riporta `Your usage limit has reset` e la seconda `Press enter to continue`. Premi `Enter` per continuare. Dopo una sospensione più breve, o terminata prima del ripristino, Claude Code continua automaticamente.749* **Dopo che il computer è andato in sospensione**: se è rimasto in sospensione per più di circa 30 minuti e il limite si è ripristinato durante la sospensione, la prima riga riporta `Your usage limit has reset` e la seconda `Press enter to continue`. Premi `Enter` per continuare. Dopo una sospensione più breve, o terminata prima del ripristino, Claude Code continua automaticamente.

750* **Anticipatamente**: quando completate l'aggiunta di [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) con `/usage-credits`, effettuate di nuovo l'accesso dopo `/upgrade`, o cambiate modello con `/model` durante l'attesa, Claude Code verifica se l'utilizzo è di nuovo disponibile e continua immediatamente se lo è. Non verifica dopo un aggiornamento o un acquisto che effettuate in un browser da soli. In [`opusplan`](https://code.claude.com/docs/it/model-config#opusplan-model-setting) e altre impostazioni di modello che eseguono la modalità plan su un modello diverso, Claude Code attende il ripristino.750* **Anticipatamente**: quando completate l'aggiunta di [crediti di utilizzo](https://code.claude.com/docs/it/costs.md#add-usage-credits-to-your-subscription) con `/usage-credits`, effettuate di nuovo l'accesso dopo `/upgrade`, o cambiate modello con `/model` durante l'attesa, Claude Code verifica se l'utilizzo è di nuovo disponibile e continua immediatamente se lo è. Non verifica dopo un aggiornamento o un acquisto che effettuate in un browser da soli. In [`opusplan`](https://code.claude.com/docs/it/model-config#opusplan-model-setting) e altre impostazioni di modello che eseguono la modalità plan su un modello diverso, Claude Code attende il ripristino.

751 751 

jetbrains.md +13 −13

Details

69 69 

70### Impostazioni di Claude Code70### Impostazioni di Claude Code

71 71 

72Configura l'integrazione dell'IDE attraverso le impostazioni di Claude Code:72Configura l'integrazione con l'IDE tramite le impostazioni di Claude Code:

73 73 

741. Esegui `claude`741. Esegui `claude`

752. Inserisci il comando `/config`752. Inserisci il comando `/config`

763. Imposta lo **strumento diff** su `auto` per mostrare i diff nell'IDE, oppure `terminal` per mantenerli nel terminale763. Imposta **Diff tool** su `auto` per mostrare i diff nell'IDE, oppure su `terminal` per mantenerli nel terminale

77 77 

78La voce **Diff tool** appare in `/config` solo quando Claude Code è connesso all'IDE, quindi esegui `claude` dal terminale JetBrains o esegui [`/ide`](https://code.claude.com/docs/it/commands) prima da un terminale esterno. Consulta [`diffTool`](https://code.claude.com/docs/it/settings-reference#difftool) per l'impostazione sottostante.78La voce **Diff tool** compare in `/config` solo quando Claude Code è connesso all'IDE, quindi esegui `claude` dal terminale di JetBrains oppure esegui prima [`/ide`](https://code.claude.com/docs/it/commands) da un terminale esterno. Consulta [`diffTool`](https://code.claude.com/docs/it/settings-reference#difftool) per l'impostazione sottostante.

79 79 

80### Impostazioni del plugin80### Impostazioni del plugin

81 81 

82Configura il plugin Claude Code andando a **Impostazioni → Strumenti → Claude Code \[Beta]**:82Configura il plugin di Claude Code andando su **Settings → Tools → Claude Code \[Beta]**:

83 83 

84#### Impostazioni generali84#### Impostazioni generali

85 85 

86* **Comando Claude**: Specifica un comando personalizzato per eseguire Claude, ad esempio `claude`, `/usr/local/bin/claude`, o `npx @anthropic-ai/claude-code`86* **Claude command**: specifica un comando personalizzato per eseguire Claude, ad esempio `claude`, `/usr/local/bin/claude` oppure `npx @anthropic-ai/claude-code`

87* **Sopprimere la notifica per il comando Claude non trovato**: Salta le notifiche relative al mancato reperimento del comando Claude87* **Suppress notification for when Claude Command is not found**: salta le notifiche relative al comando Claude non trovato

88* **Abilita l'uso di Option+Invio per prompt multi-riga**: Solo su macOS. Quando abilitato, Option+Invio inserisce nuove righe nei prompt di Claude Code. Disabilita se il tasto Option viene catturato inaspettatamente. Richiede il riavvio del terminale.88* **Enable using Option+Enter for multi-line prompts**: solo su macOS. Quando è abilitata, Option+Enter inserisce nuove righe nei prompt di Claude Code. Disabilitala se il tasto Option viene catturato in modo imprevisto. Richiede il riavvio del terminale.

89* **Abilita aggiornamenti automatici**: Controlla automaticamente e installa gli aggiornamenti del plugin, applicati al riavvio89* **Enable automatic updates**: controlla e installa automaticamente gli aggiornamenti del plugin, applicati al riavvio

90 90 

91> [!TIP]91> [!TIP]

92>92>

93> Per gli utenti WSL: Imposta `wsl -d Ubuntu -- bash -lic "claude"` come comando Claude (sostituisci `Ubuntu` con il nome della tua distribuzione WSL)93> Per gli utenti WSL: imposta `wsl -d Ubuntu -- bash -lic "claude"` come comando Claude (sostituisci `Ubuntu` con il nome della tua distribuzione WSL)

94 94 

95#### Configurazione del tasto ESC95#### Configurazione del tasto ESC

96 96 

97Se il tasto ESC non interrompe le operazioni di Claude Code nei terminali JetBrains:97Se il tasto ESC non interrompe le operazioni di Claude Code nei terminali JetBrains:

98 98 

991. Vai a **Impostazioni → Strumenti → Terminale**991. Vai su **Settings → Tools → Terminal**

1002. Oppure:1002. Puoi:

101 * Deseleziona "Sposta il focus sull'editor con Escape", oppure101 * Deselezionare "Move focus to the editor with Escape", oppure

102 * Fai clic su "Configura scorciatoie da tastiera del terminale" e elimina la scorciatoia "Sposta il focus sull'editor"102 * Fare clic su "Configure terminal keybindings" ed eliminare la scorciatoia "Switch focus to Editor"

1033. Applica le modifiche1033. Applica le modifiche

104 104 

105Questo consente al tasto ESC di interrompere correttamente le operazioni di Claude Code.105Questo consente al tasto ESC di interrompere correttamente le operazioni di Claude Code.

keybindings.md +168 −168

Details

78 78 

79## Azioni disponibili79## Azioni disponibili

80 80 

81Le azioni seguono un formato `namespace:action`, come `chat:submit` per inviare un messaggio o `app:toggleTodos` per mostrare l'elenco delle attività. Ogni contesto ha azioni specifiche disponibili.81Le azioni seguono il formato `namespace:action`, come `chat:submit` per inviare un messaggio o `app:toggleTodos` per mostrare l'elenco delle attività. Ogni contesto ha azioni specifiche disponibili.

82 82 

83### Azioni dell'app83### Azioni dell'app

84 84 


87| Azione | Predefinito | Descrizione |87| Azione | Predefinito | Descrizione |

88| :- | :- | :- |88| :- | :- | :- |

89| `app:interrupt` | Ctrl+C | Annulla l'operazione corrente |89| `app:interrupt` | Ctrl+C | Annulla l'operazione corrente |

90| `app:exit` | Ctrl+D | Esci da Claude Code. Premi due volte entro 800ms per confermare |90| `app:exit` | Ctrl+D | Esci da Claude Code. Premi due volte entro 800 ms per confermare |

91| `app:redraw` | (non associato) | Forza il ridisegno del terminale |91| `app:redraw` | (non assegnato) | Forza il ridisegno del terminale |

92| `app:toggleTodos` | Ctrl+T | Attiva/disattiva la visibilità della lista di controllo delle attività di Claude. Questo non è il [`/tasks`](https://code.claude.com/docs/it/commands) background-task view |92| `app:toggleTodos` | Ctrl+T | Mostra o nascondi la checklist delle cose da fare di Claude. Non è la vista delle attività in background di [`/tasks`](https://code.claude.com/docs/it/commands) |

93| `app:toggleTranscript` | Ctrl+O | Attiva/disattiva il trascritto dettagliato |93| `app:toggleTranscript` | Ctrl+O | Attiva o disattiva la trascrizione dettagliata |

94 94 

95### Azioni della cronologia95### Azioni della cronologia

96 96 


98 98 

99| Azione | Predefinito | Descrizione |99| Azione | Predefinito | Descrizione |

100| :- | :- | :- |100| :- | :- | :- |

101| `history:search` | Ctrl+R | Apri ricerca nella cronologia |101| `history:search` | Ctrl+R | Apri la ricerca nella cronologia |

102| `history:previous` | Su | Elemento precedente della cronologia |102| `history:previous` | Up | Elemento precedente della cronologia |

103| `history:next` | Giù | Elemento successivo della cronologia |103| `history:next` | Down | Elemento successivo della cronologia |

104 104 

105### Azioni della chat105### Azioni della chat

106 106 


109| Azione | Predefinito | Descrizione |109| Azione | Predefinito | Descrizione |

110| :- | :- | :- |110| :- | :- | :- |

111| `chat:cancel` | Escape | Annulla l'input corrente |111| `chat:cancel` | Escape | Annulla l'input corrente |

112| `chat:clearInput` | Ctrl+L | Forza un ridisegno completo dello schermo, preservando l'input e la conversazione |112| `chat:clearInput` | Ctrl+L | Forza un ridisegno completo dello schermo, conservando input e conversazione |

113| `chat:clearScreen` | Cmd+K | Uguale a `chat:clearInput`. Vedi [Cancella la conversazione](https://code.claude.com/docs/it/fullscreen.md#clear-the-conversation) per come Cmd+K si comporta su iTerm2 e Terminal.app |113| `chat:clearScreen` | Cmd+K | Come `chat:clearInput`. Consulta [Cancellare la conversazione](https://code.claude.com/docs/it/fullscreen.md#clear-the-conversation) per il comportamento di Cmd+K su iTerm2 e Terminal.app |

114| `chat:killAgents` | Ctrl+X Ctrl+K | Interrompi tutti i [subagent in background](https://code.claude.com/docs/it/sub-agents.md#run-subagents-in-foreground-or-background) in esecuzione in questa sessione e disattiva le [risposte automatiche degli artefatti](https://code.claude.com/docs/it/artifacts.md#let-claude-reply-to-comments-on-its-own) per il resto della sessione. Premi la scorciatoia due volte entro 3 secondi per confermare. Puoi premerla anche mentre è aperta la richiesta di permesso di un subagent in background |114| `chat:killAgents` | Ctrl+X Ctrl+K | Arresta tutti i [subagent in background](https://code.claude.com/docs/it/sub-agents.md#run-subagents-in-foreground-or-background) in esecuzione in questa sessione e disattiva le [risposte automatiche agli artefatti](https://code.claude.com/docs/it/artifacts.md#let-claude-reply-to-comments-on-its-own) per il resto della sessione. Premi la scorciatoia due volte entro 3 secondi per confermare. Puoi premerla anche mentre è aperta la richiesta di permesso di un subagent in background |

115| `chat:cycleMode` | Shift+Tab\* | Cicla le modalità di autorizzazione |115| `chat:cycleMode` | Shift+Tab\* | Scorri tra le modalità di permesso |

116| `chat:modelPicker` | Meta+P | Apri il selezionatore di modelli |116| `chat:modelPicker` | Meta+P | Apri il selettore del modello |

117| `chat:fastMode` | Meta+O | Attiva/disattiva la modalità veloce |117| `chat:fastMode` | Meta+O | Attiva o disattiva la modalità veloce |

118| `chat:thinkingToggle` | Meta+T | Attiva/disattiva il pensiero esteso |118| `chat:thinkingToggle` | Meta+T | Attiva o disattiva il ragionamento esteso |

119| `chat:submit` | Invio | Invia il messaggio |119| `chat:submit` | Enter | Invia il messaggio |

120| `chat:queueSubmit` | Ctrl+X Invio | Invia il messaggio, contrassegnato per attendere il suo turno: mentre Claude sta lavorando, Claude Code lo [mette in coda](https://code.claude.com/docs/it/interactive-mode.md#queue-messages-while-claude-works) e non interrompe mai il turno. A differenza di `chat:submit`, invia la bozza anche quando un suggerimento di completamento automatico è evidenziato. Richiede v2.1.247 o successiva |120| `chat:queueSubmit` | Ctrl+X Enter | Invia il messaggio, contrassegnato per attendere il suo turno: mentre Claude sta lavorando, Claude Code [lo mette in coda](https://code.claude.com/docs/it/interactive-mode.md#queue-messages-while-claude-works) e non interrompe mai il turno. A differenza di `chat:submit`, invia la bozza anche mentre è evidenziato un suggerimento di completamento automatico. Richiede v2.1.247 o successiva |

121| `chat:sendNow` | Ctrl+Invio, Ctrl+X Ctrl+S | Invia i tuoi [messaggi in coda](https://code.claude.com/docs/it/interactive-mode.md#queue-messages-while-claude-works) e la tua bozza insieme a loro, subito. [Quando Claude Code invia quello che hai messo in coda](https://code.claude.com/docs/it/interactive-mode.md#when-claude-code-sends-what-you-queued) copre cosa succede al turno su cui Claude sta lavorando. Quando nulla è in esecuzione, il tasto invia la bozza, e in [modalità shell](https://code.claude.com/docs/it/interactive-mode.md#shell-mode-with-prefix) mette in coda solo il comando. I terminali che non segnalano tasti estesi consegnano `Ctrl+Enter` come semplice `Enter`, quindi `Ctrl+X Ctrl+S` è l'associazione che funziona in qualsiasi terminale. Richiede v2.1.275 o successiva |121| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | Invia subito i tuoi [messaggi in coda](https://code.claude.com/docs/it/interactive-mode.md#queue-messages-while-claude-works) insieme alla tua bozza. [Quando Claude Code invia ciò che hai messo in coda](https://code.claude.com/docs/it/interactive-mode.md#when-claude-code-sends-what-you-queued) spiega cosa succede al turno su cui Claude sta lavorando. Quando non è in esecuzione nulla, il tasto invia la bozza, e in [modalità shell](https://code.claude.com/docs/it/interactive-mode.md#shell-mode-with-prefix) mette solo in coda il comando. I terminali che non segnalano i tasti estesi trasmettono `Ctrl+Enter` come semplice `Enter`, quindi `Ctrl+X Ctrl+S` è la scorciatoia che funziona in qualsiasi terminale. Richiede v2.1.275 o successiva |

122| `chat:newline` | Ctrl+J | Inserisci una nuova riga senza inviare |122| `chat:newline` | Ctrl+J | Inserisci una nuova riga senza inviare |

123| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Annulla l'ultima azione |123| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Annulla l'ultima azione |

124| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Apri nell'editor esterno. Il [dispatch input della vista agente](https://code.claude.com/docs/it/agent-view.md#keyboard-shortcuts) segue anche le associazioni a singolo tasto di questa azione |124| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Apri nell'editor esterno. Anche l'[input di dispatch della vista agenti](https://code.claude.com/docs/it/agent-view.md#keyboard-shortcuts) segue le scorciatoie a tasto singolo di questa azione |

125| `chat:stash` | Ctrl+S | Nascondi il prompt corrente |125| `chat:stash` | Ctrl+S | Metti da parte il prompt corrente |

126| `chat:imagePaste` | Ctrl+V (Alt+V su Windows e WSL) | Incolla l'immagine dagli appunti. Su WSL, entrambe le scorciatoie sono associate per impostazione predefinita |126| `chat:imagePaste` | Ctrl+V (Alt+V su Windows e WSL) | Incolla un'immagine dagli appunti. Su WSL, entrambe le scorciatoie sono assegnate per impostazione predefinita |

127| `command:<name>` | (non associato) | Esegui il [comando](https://code.claude.com/docs/it/commands.md) `/<name>`. Ad esempio, `"meta+g": "command:compact"` in un blocco `Chat` fa sì che `Meta+G` esegua `/compact` |127| `command:<name>` | (non assegnato) | Esegui il [comando](https://code.claude.com/docs/it/commands.md) `/<name>`. Ad esempio, `"meta+g": "command:compact"` in un blocco `Chat` fa sì che `Meta+G` esegua `/compact` |

128 128 

129\*Su Windows senza modalità VT (Node \<24.2.0/\<22.17.0, Bun \<1.2.23), il valore predefinito è Meta+M.129\*Su Windows senza modalità VT (Node \<24.2.0/\<22.17.0, Bun \<1.2.23), il valore predefinito è Meta+M.

130 130 

131### Azioni di completamento automatico131### Azioni del completamento automatico

132 132 

133Azioni disponibili nel contesto `Autocomplete`:133Azioni disponibili nel contesto `Autocomplete`:

134 134 


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

137| `autocomplete:accept` | Tab | Accetta il suggerimento |137| `autocomplete:accept` | Tab | Accetta il suggerimento |

138| `autocomplete:dismiss` | Escape | Chiudi il menu |138| `autocomplete:dismiss` | Escape | Chiudi il menu |

139| `autocomplete:previous` | Su | Suggerimento precedente |139| `autocomplete:previous` | Up | Suggerimento precedente |

140| `autocomplete:next` | Giù | Suggerimento successivo |140| `autocomplete:next` | Down | Suggerimento successivo |

141 141 

142### Azioni di conferma142### Azioni di conferma

143 143 


145 145 

146| Azione | Predefinito | Descrizione |146| Azione | Predefinito | Descrizione |

147| :- | :- | :- |147| :- | :- | :- |

148| `confirm:yes` | Invio | Conferma l'azione |148| `confirm:yes` | Enter | Conferma l'azione |

149| `confirm:no` | Escape | Rifiuta l'azione |149| `confirm:no` | Escape | Rifiuta l'azione |

150| `confirm:previous` | Su | Opzione precedente |150| `confirm:previous` | Up | Opzione precedente |

151| `confirm:next` | Giù | Opzione successiva |151| `confirm:next` | Down | Opzione successiva |

152| `confirm:nextField` | Tab | Nella finestra di dialogo `/fast`, attiva o disattiva la modalità veloce |152| `confirm:nextField` | Tab | Nella finestra di dialogo `/fast`, attiva o disattiva la modalità veloce |

153| `confirm:previousField` | (non associato) | Claude Code non risponde a questa azione, e un `keybindings.json` che la nomina rimane valido |153| `confirm:previousField` | (non assegnato) | Claude Code non risponde a questa azione, e un `keybindings.json` che la nomina resta valido |

154| `confirm:toggle` | Spazio | Attiva/disattiva la selezione |154| `confirm:toggle` | Space | Attiva o disattiva la selezione |

155| `confirm:cycleMode` | Shift+Tab\* | Su una richiesta di permesso per un file, chiude un [campo commento](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) aperto; senza campo aperto, seleziona l'opzione che consente l'azione per il resto della sessione, quando la richiesta offre tale opzione |155| `confirm:cycleMode` | Shift+Tab\* | In una richiesta di permesso per un file, chiude un [campo commento](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) aperto; se nessun campo è aperto, seleziona l'opzione che consente l'azione per il resto della sessione, quando la richiesta offre tale opzione |

156 156 

157\*Su Windows senza modalità VT (Node \<24.2.0/\<22.17.0, Bun \<1.2.23), il valore predefinito è Meta+M.157\*Su Windows senza modalità VT (Node \<24.2.0/\<22.17.0, Bun \<1.2.23), il valore predefinito è Meta+M.

158 158 

159Prima della v2.1.257, un'azione `confirm:toggleExplanation`, associata a `Ctrl+E` per impostazione predefinita, mostrava una spiegazione generata dal modello del comando su prompt di autorizzazione Bash e PowerShell.159Prima della v2.1.257, un'azione `confirm:toggleExplanation`, assegnata a `Ctrl+E` per impostazione predefinita, mostrava una spiegazione del comando generata dal modello nelle richieste di permesso di Bash e PowerShell.

160 160 

161I dialoghi utilizzano `confirm:yes` e `confirm:no` per accettare e annullare anche quando non pongono una domanda sì-o-no. Se associ una lettera semplice come `y` o `n` in questo contesto, la lettera agisce anche su dialoghi che non la mostrano mai come tasto. Un dialogo che mostra `y` e `n` come suoi tasti legge quelle lettere stesso e non ha bisogno di alcuna associazione.161Le finestre di dialogo usano `confirm:yes` e `confirm:no` per accettare e annullare anche quando non pongono una domanda sì-o-no. Se assegni una lettera semplice come `y` o `n` in questo contesto, la lettera agisce anche sulle finestre di dialogo che non la mostrano mai come tasto. Una finestra di dialogo che mostra `y` e `n` come tasti legge quelle lettere autonomamente e non ha bisogno di alcuna assegnazione.

162 162 

163Nella maggior parte dei dialoghi, premere `Ctrl+C` o `Ctrl+D` due volte chiude il dialogo invece di uscire da Claude Code. L'hint dopo il primo pressione dice se il secondo pressione chiude il dialogo o esce. Entrambi i tasti sono [riservati](#reserved-shortcuts) e non possono essere riassociati.163Nella maggior parte delle finestre di dialogo, premere `Ctrl+C` o `Ctrl+D` due volte chiude la finestra invece di uscire da Claude Code. Il suggerimento dopo la prima pressione indica se la seconda pressione chiude la finestra o esce. Entrambi i tasti sono [riservati](#reserved-shortcuts) e non possono essere riassegnati.

164 164 

165Questo esempio associa `y` a `confirm:yes` e `n` a `confirm:no`:165Questo esempio assegna `y` a `confirm:yes` e `n` a `confirm:no`:

166 166 

167```json theme={null}167```json theme={null}

168{168{


178}178}

179```179```

180 180 

181Con queste associazioni, `y` e `n` continuano a digitare come lettere mentre un [campo di testo](#text-fields) ha il focus.181Con queste assegnazioni, `y` e `n` continuano a digitare lettere mentre un [campo di testo](#text-fields) ha il focus.

182 182 

183Prima della v2.1.280, `y` era anche associato a `confirm:yes` e `n` a `confirm:no` per impostazione predefinita. Se hai creato il tuo `keybindings.json` con `/keybindings` prima della v2.1.280, il file elenca entrambe le associazioni e rimangono in vigore finché non elimini quelle due righe.183Prima della v2.1.280, `y` era assegnato anche a `confirm:yes` e `n` a `confirm:no` per impostazione predefinita. Se hai creato il tuo `keybindings.json` con `/keybindings` prima della v2.1.280, il file elenca entrambe le assegnazioni, che restano attive finché non elimini quelle due righe.

184 184 

185### Azioni di autorizzazione185### Azioni dei permessi

186 186 

187Azioni disponibili nel contesto `Confirmation` per i dialoghi di autorizzazione:187Azioni disponibili nel contesto `Confirmation` per le finestre di dialogo dei permessi:

188 188 

189| Azione | Predefinito | Descrizione |189| Azione | Predefinito | Descrizione |

190| :- | :- | :- |190| :- | :- | :- |

191| `permission:toggleDebug` | (non associato) | Claude Code non risponde a questa azione, e un `keybindings.json` che la nomina rimane valido |191| `permission:toggleDebug` | (non assegnato) | Claude Code non risponde a questa azione, e un `keybindings.json` che la nomina resta valido |

192 192 

193### Azioni del trascritto193### Azioni della trascrizione

194 194 

195Azioni disponibili nel contesto `Transcript`:195Azioni disponibili nel contesto `Transcript`:

196 196 

197| Azione | Predefinito | Descrizione |197| Azione | Predefinito | Descrizione |

198| :- | :- | :- |198| :- | :- | :- |

199| `transcript:toggleShowAll` | Ctrl+E | Attiva/disattiva mostra tutto il contenuto |199| `transcript:toggleShowAll` | Ctrl+E | Attiva o disattiva la visualizzazione di tutti i contenuti |

200| `transcript:exit` | q, Ctrl+C, Escape | Esci dalla vista trascritto |200| `transcript:exit` | q, Ctrl+C, Escape | Esci dalla vista della trascrizione |

201 201 

202`transcript:toggleShowAll` si applica solo nel renderer classico; nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), il visualizzatore di trascritti non offre un'opzione di mostra tutto.202`transcript:toggleShowAll` si applica solo nel renderer classico; nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), il visualizzatore della trascrizione non offre un'opzione per mostrare tutto.

203 203 

204### Azioni di ricerca nella cronologia204### Azioni della ricerca nella cronologia

205 205 

206Azioni disponibili nel contesto `HistorySearch`:206Azioni disponibili nel contesto `HistorySearch`:

207 207 


210| `historySearch:next` | Ctrl+R | Corrispondenza successiva |210| `historySearch:next` | Ctrl+R | Corrispondenza successiva |

211| `historySearch:accept` | Escape, Tab | Accetta la selezione |211| `historySearch:accept` | Escape, Tab | Accetta la selezione |

212| `historySearch:cancel` | Ctrl+C | Annulla la ricerca |212| `historySearch:cancel` | Ctrl+C | Annulla la ricerca |

213| `historySearch:execute` | Invio | Esegui il comando selezionato |213| `historySearch:execute` | Enter | Esegui il comando selezionato |

214| `historySearch:cycleScope` | Ctrl+S | Cicla l'ambito: sessione, progetto, ovunque |214| `historySearch:cycleScope` | Ctrl+S | Scorri tra gli ambiti: sessione, progetto, ovunque |

215 215 

216I valori predefiniti di `historySearch:next`, `historySearch:accept`, `historySearch:cancel` e `historySearch:execute` si applicano alla ricerca nella cronologia inline nel renderer classico, che ricerca sempre i prompt da tutti i progetti. `historySearch:cycleScope` ha effetto solo nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), dove `Ctrl+R` apre invece una finestra di dialogo di ricerca e `Ctrl+S` cicla il suo ambito. Gli altri tasti della finestra di dialogo sono fissi e non possono essere riassociati: `Enter` o `Tab` posiziona la corrispondenza evidenziata nell'input del prompt e `Esc` annulla.216I valori predefiniti di `historySearch:next`, `historySearch:accept`, `historySearch:cancel` e `historySearch:execute` si applicano alla ricerca nella cronologia in linea del renderer classico, che cerca sempre tra i prompt di tutti i progetti. `historySearch:cycleScope` ha effetto solo nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), dove `Ctrl+R` apre invece una finestra di dialogo di ricerca e `Ctrl+S` ne cambia l'ambito. Gli altri tasti della finestra di dialogo sono fissi e non possono essere riassegnati: `Enter` o `Tab` inserisce la corrispondenza evidenziata nell'input del prompt e `Esc` annulla.

217 217 

218### Azioni delle attività218### Azioni delle attività

219 219 


221 221 

222| Azione | Predefinito | Descrizione |222| Azione | Predefinito | Descrizione |

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

224| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | Metti l'attività corrente in background |224| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | Manda in background l'attività corrente |

225 225 

226### Azioni del tema226### Azioni del tema

227 227 


229 229 

230| Azione | Predefinito | Descrizione |230| Azione | Predefinito | Descrizione |

231| :- | :- | :- |231| :- | :- | :- |

232| `theme:toggleSyntaxHighlighting` | Ctrl+T | Attiva/disattiva l'evidenziazione della sintassi |232| `theme:toggleSyntaxHighlighting` | Ctrl+T | Attiva o disattiva l'evidenziazione della sintassi |

233 233 

234### Azioni della guida234### Azioni della guida

235 235 


245 245 

246| Azione | Predefinito | Descrizione |246| Azione | Predefinito | Descrizione |

247| :- | :- | :- |247| :- | :- | :- |

248| `tabs:next` | Tab, Destra | Scheda successiva |248| `tabs:next` | Tab, Right | Scheda successiva |

249| `tabs:previous` | Shift+Tab, Sinistra | Scheda precedente |249| `tabs:previous` | Shift+Tab, Left | Scheda precedente |

250 250 

251In una finestra di dialogo con schede, `tabs:next` e `tabs:previous` cambiano le schede mentre la riga delle schede ha il focus. In alcuni dialoghi, come `/help` e `/sandbox`, i tasti di cambio scheda funzionano anche dall'interno del contenuto della scheda.251In una finestra di dialogo a schede, `tabs:next` e `tabs:previous` cambiano scheda mentre la riga delle schede ha il focus. In alcune finestre di dialogo, come `/help` e `/sandbox`, i tasti per cambiare scheda funzionano anche dall'interno del contenuto della scheda.

252 252 

253`Up` e `Down` spostano il focus tra la riga delle schede e il contenuto della scheda, e un elenco nel contenuto risponde ai tasti solo mentre ha il focus.253`Up` e `Down` spostano il focus tra la riga delle schede e il contenuto della scheda, e un elenco nel contenuto risponde ai tasti solo mentre ha il focus.

254 254 


258 258 

259| Azione | Predefinito | Descrizione |259| Azione | Predefinito | Descrizione |

260| :- | :- | :- |260| :- | :- | :- |

261| `attachments:next` | Destra | Allegato successivo |261| `attachments:next` | Right | Allegato successivo |

262| `attachments:previous` | Sinistra | Allegato precedente |262| `attachments:previous` | Left | Allegato precedente |

263| `attachments:remove` | Backspace, Canc | Rimuovi l'allegato selezionato |263| `attachments:remove` | Backspace, Delete | Rimuovi l'allegato selezionato |

264| `attachments:exit` | Giù, Escape | Esci dalla navigazione degli allegati |264| `attachments:exit` | Down, Escape | Esci dalla navigazione degli allegati |

265 265 

266### Azioni del piè di pagina266### Azioni del footer

267 267 

268Azioni disponibili nel contesto `Footer`:268Azioni disponibili nel contesto `Footer`:

269 269 

270| Azione | Predefinito | Descrizione |270| Azione | Predefinito | Descrizione |

271| :- | :- | :- |271| :- | :- | :- |

272| `footer:next` | Destra | Elemento del piè di pagina successivo |272| `footer:next` | Right | Elemento successivo del footer |

273| `footer:previous` | Sinistra | Elemento del piè di pagina precedente |273| `footer:previous` | Left | Elemento precedente del footer |

274| `footer:up` | Su, Ctrl+P | Naviga verso l'alto nel piè di pagina (deseleziona in alto) |274| `footer:up` | Up, Ctrl+P | Spostati verso l'alto nel footer (deseleziona in cima) |

275| `footer:down` | Giù, Ctrl+N | Naviga verso il basso nel piè di pagina |275| `footer:down` | Down, Ctrl+N | Spostati verso il basso nel footer |

276| `footer:openSelected` | Invio | Apri l'elemento del piè di pagina selezionato |276| `footer:openSelected` | Enter | Apri l'elemento selezionato del footer |

277| `footer:clearSelection` | Escape | Cancella la selezione del piè di pagina |277| `footer:clearSelection` | Escape | Cancella la selezione del footer |

278| `footer:close` | x | Interrompi l'[agente](https://code.claude.com/docs/it/sub-agents.md#observe-and-steer-running-forks) o il [workflow](https://code.claude.com/docs/it/workflows.md#manage-runs) selezionato, oppure chiudi la sua riga se non è più in esecuzione |278| `footer:close` | x | Arresta l'[agente](https://code.claude.com/docs/it/sub-agents.md#observe-and-steer-running-forks) o il [workflow](https://code.claude.com/docs/it/workflows.md#manage-runs) selezionato, oppure rimuovi la sua riga se non è più in esecuzione |

279| `footer:dismiss` | (non associato) | Associare un tasto a questa azione non ha alcun effetto, e un `keybindings.json` che la nomina rimane valido. Prima della v2.1.281, Backspace e Canc erano associati a essa e chiudevano il collegamento dell'artefatto selezionato dal piè di pagina. |279| `footer:dismiss` | (non assegnato) | Assegnare un tasto a questa azione non ha alcun effetto, e un `keybindings.json` che la nomina resta valido. Prima della v2.1.281, Backspace e Delete erano assegnati a questa azione e rimuovevano dal footer il link all'artefatto selezionato. |

280 280 

281Mentre un elemento del piè di pagina è selezionato, come una riga nel pannello dell'agente sotto il prompt, `Enter` lo apre anche quando riassoci `Enter` nel contesto `Chat` a `chat:queueSubmit` o `chat:newline`.281Mentre è selezionato un elemento del footer, come una riga nel pannello degli agenti sotto il prompt, `Enter` lo apre anche se riassegni `Enter` nel contesto `Chat` a `chat:queueSubmit` o `chat:newline`.

282 282 

283Le associazioni `Chat` sui tasti che il contesto `Footer` non associa, come `Shift+Tab` per `chat:cycleMode`, continuano a funzionare mentre un elemento è selezionato.283Le assegnazioni `Chat` su tasti che il contesto `Footer` non assegna, come `Shift+Tab` per `chat:cycleMode`, continuano a funzionare mentre un elemento è selezionato.

284 284 

285### Azioni del selezionatore di messaggi285### Azioni del selettore dei messaggi

286 286 

287Nel messaggio elenco del [menu di rewind](https://code.claude.com/docs/it/checkpointing.md), ti muovi attraverso i messaggi e ne scegli uno con le [azioni di selezione](#select-actions) e i loro tasti predefiniti. Le tue associazioni `Select` per quelle azioni si applicano anche lì. Il contesto `MessageSelector` non ha azioni o associazioni predefinite proprie. Usalo per cambiare un tasto per questo elenco solo, associando un'azione Select come `select:accept` in un blocco `MessageSelector`.287Nell'elenco dei messaggi del [menu di riavvolgimento](https://code.claude.com/docs/it/checkpointing.md), ti sposti tra i messaggi e ne scegli uno con le [azioni Select](#select-actions) e i loro tasti predefiniti. Anche le tue assegnazioni `Select` per quelle azioni si applicano lì. Il contesto `MessageSelector` non ha azioni né assegnazioni predefinite proprie. Usalo per cambiare un tasto solo per questo elenco, assegnando un'azione Select come `select:accept` in un blocco `MessageSelector`.

288 288 

289Questo esempio associa `o` per scegliere il messaggio evidenziato nel menu di rewind, senza cambiare nessun altro elenco:289Questo esempio assegna `o` alla scelta del messaggio evidenziato nel menu di riavvolgimento, senza modificare nessun altro elenco:

290 290 

291```json theme={null}291```json theme={null}

292{292{


301}301}

302```302```

303 303 

304Prima della v2.1.283, questo elenco ignorava le associazioni `Select` e aveva le sue azioni: `messageSelector:up`, `messageSelector:down`, `messageSelector:top`, `messageSelector:bottom` e `messageSelector:select`. Se il tuo `keybindings.json` associa uno di quei nomi, l'associazione continua a funzionare in questo elenco come l'azione Select che fa la stessa cosa. `Home` e `End` saltano a entrambe le estremità dell'elenco; prima della v2.1.283, tasti come `Shift+K` e `Shift+J` lo facevano per impostazione predefinita.304Prima della v2.1.283, questo elenco ignorava le assegnazioni `Select` e aveva azioni proprie: `messageSelector:up`, `messageSelector:down`, `messageSelector:top`, `messageSelector:bottom` e `messageSelector:select`. Se il tuo `keybindings.json` assegna uno di questi nomi, l'assegnazione continua a funzionare in questo elenco come l'azione Select che fa la stessa cosa. `Home` e `End` saltano a una delle due estremità dell'elenco; prima della v2.1.283, tasti come `Shift+K` e `Shift+J` lo facevano per impostazione predefinita.

305 305 

306### Azioni diff306### Azioni del diff

307 307 

308Queste azioni raggiungono solo il visualizzatore diff precedente di Claude Code, che `/diff` apre al di fuori del [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md) dopo che hai disattivato il [mod `cc-plugin-diff`](https://code.claude.com/docs/it/plugins/mods/overview#mods-built-into-claude-code) in `/plugin`. Mentre quel mod è attivo, `/diff` apre invece la [finestra di dialogo diff](https://code.claude.com/docs/it/interactive-mode.md#diff-dialog). Un `keybindings.json` che nomina queste azioni si carica senza errori in entrambi i casi.308Queste azioni raggiungono solo il precedente visualizzatore di diff di Claude Code, che `/diff` apre al di fuori del [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md) dopo aver disabilitato il [mod `cc-plugin-diff`](https://code.claude.com/docs/it/plugins/mods/overview#mods-built-into-claude-code) in `/plugin`. Finché quel mod è abilitato, `/diff` apre invece la [finestra di dialogo del diff](https://code.claude.com/docs/it/interactive-mode.md#diff-dialog). Un `keybindings.json` che nomina queste azioni viene caricato senza errori in entrambi i casi.

309 309 

310Azioni disponibili nel contesto `DiffDialog`:310Azioni disponibili nel contesto `DiffDialog`:

311 311 

312| Azione | Predefinito | Descrizione |312| Azione | Predefinito | Descrizione |

313| :- | :- | :- |313| :- | :- | :- |

314| `diff:dismiss` | Escape | Chiudi il visualizzatore diff; dalla vista dettagli, ritorna all'elenco dei file |314| `diff:dismiss` | Escape | Chiudi il visualizzatore di diff; dalla vista dettagliata, torna invece all'elenco dei file |

315| `diff:previousSource` | Sinistra | Sorgente diff precedente |315| `diff:previousSource` | Left | Origine del diff precedente |

316| `diff:nextSource` | Destra | Sorgente diff successiva |316| `diff:nextSource` | Right | Origine del diff successiva |

317| `diff:previousFile` | Su, K | File precedente nell'elenco dei file; scorri verso l'alto di una riga nella vista dettagli |317| `diff:previousFile` | Up, K | File precedente nell'elenco dei file; scorri in su di una riga nella vista dettagliata |

318| `diff:nextFile` | Giù, J | File successivo nell'elenco dei file; scorri verso il basso di una riga nella vista dettagli |318| `diff:nextFile` | Down, J | File successivo nell'elenco dei file; scorri in giù di una riga nella vista dettagliata |

319| `diff:back` | (non associato) | Torna indietro nel visualizzatore diff. Escape esegue l'azione indietro tramite `diff:dismiss`. Il valore predefinito precedente di Sinistra nella vista dettagli è stato rimosso nella v2.1.203 |319| `diff:back` | (non assegnato) | Torna indietro nel visualizzatore di diff. Escape esegue l'azione di ritorno tramite `diff:dismiss`. Il precedente valore predefinito Left nella vista dettagliata è stato rimosso nella v2.1.203 |

320 320 

321L'elenco dei file risponde anche alle [azioni di selezione](#select-actions), attraverso i loro tasti predefiniti e le tue associazioni `Select`. `select:previous` e `select:next` si spostano al file precedente e successivo, e `Enter` apre il diff del file selezionato tramite `select:accept`. Per cambiare uno di quei tasti solo per l'elenco dei file, associa l'azione Select in un blocco `DiffDialog`.321L'elenco dei file risponde anche alle [azioni Select](#select-actions), tramite i loro tasti predefiniti e le tue assegnazioni `Select`. `select:previous` e `select:next` passano al file precedente e successivo, e `Enter` apre il diff del file selezionato tramite `select:accept`. Per cambiare uno di questi tasti solo per l'elenco dei file, assegna l'azione Select in un blocco `DiffDialog`.

322 322 

323Prima della v2.1.283, l'elenco dei file ignorava le associazioni `Select`, e `Enter` apriva il diff del file selezionato tramite un'azione `diff:viewDetails` separata. Se il tuo `keybindings.json` associa `diff:viewDetails`, l'associazione continua a funzionare nell'elenco dei file come `select:accept`.323Prima della v2.1.283, l'elenco dei file ignorava le assegnazioni `Select`, e `Enter` apriva il diff del file selezionato tramite un'azione separata `diff:viewDetails`. Se il tuo `keybindings.json` assegna `diff:viewDetails`, l'assegnazione continua a funzionare nell'elenco dei file come `select:accept`.

324 324 

325La vista dettagli diff associa anche i tasti in stile pager alle [azioni di scorrimento](#scroll-actions) standard. Queste associazioni fanno parte del contesto `DiffDialog` e si applicano solo nella vista dettagli; i valori predefiniti del contesto `Scroll` elencati in [Azioni di scorrimento](#scroll-actions) rimangono invariati.325La vista dettagliata del diff assegna anche tasti in stile pager alle [azioni di scorrimento](#scroll-actions) standard. Queste assegnazioni fanno parte del contesto `DiffDialog` e si applicano solo nella vista dettagliata; i valori predefiniti del contesto `Scroll` elencati in [Azioni di scorrimento](#scroll-actions) restano invariati.

326 326 

327| Azione | Predefinito | Descrizione |327| Azione | Predefinito | Descrizione |

328| :- | :- | :- |328| :- | :- | :- |

329| `scroll:pageUp` | PagSu | Scorri verso l'alto di mezza finestra |329| `scroll:pageUp` | PageUp | Scorri in su di mezza area visibile |

330| `scroll:pageDown` | PagGiù | Scorri verso il basso di mezza finestra |330| `scroll:pageDown` | PageDown | Scorri in giù di mezza area visibile |

331| `scroll:fullPageUp` | Shift+Spazio, B | Scorri verso l'alto di una finestra completa |331| `scroll:fullPageUp` | Shift+Space, B | Scorri in su di un'intera area visibile |

332| `scroll:fullPageDown` | Spazio | Scorri verso il basso di una finestra completa |332| `scroll:fullPageDown` | Space | Scorri in giù di un'intera area visibile |

333| `scroll:top` | G, Home | Salta in alto |333| `scroll:top` | G, Home | Salta all'inizio |

334| `scroll:bottom` | Shift+G, Fine | Salta in basso |334| `scroll:bottom` | Shift+G, End | Salta alla fine |

335 335 

336### Azioni del pannello diff336### Azioni del pannello del diff

337 337 

338Azioni per il [pannello diff](https://code.claude.com/docs/it/interactive-mode.md#diff-panel) che `/diff` apre nel rendering a schermo intero. `app:cycleDiffBase` è nel contesto `DiffPanel`, che è attivo mentre il pannello è aperto; le altre sono `Global`.338Azioni per il [pannello del diff](https://code.claude.com/docs/it/interactive-mode.md#diff-panel) che `/diff` apre nel rendering a schermo intero. `app:cycleDiffBase` è nel contesto `DiffPanel`, attivo mentre il pannello è aperto; le altre sono `Global`.

339 339 

340Il [mod `cc-plugin-diff`](https://code.claude.com/docs/it/plugins/mods/overview#mods-built-into-claude-code) integrato disegna questo pannello e gestisce `app:cycleDiffBase`, `app:diffFileListUp` e `app:diffFileListDown`. `app:toggleReplTab`, `app:toggleDiffNoiseFilter` e `app:toggleDiffPreSession` raggiungono solo il pannello precedente di Claude Code, che `/diff` apre dopo che hai disattivato `cc-plugin-diff` in `/plugin`.340Il [mod `cc-plugin-diff`](https://code.claude.com/docs/it/plugins/mods/overview#mods-built-into-claude-code) integrato disegna questo pannello e gestisce `app:cycleDiffBase`, `app:diffFileListUp` e `app:diffFileListDown`. `app:toggleReplTab`, `app:toggleDiffNoiseFilter` e `app:toggleDiffPreSession` raggiungono solo il precedente pannello di Claude Code, che `/diff` apre dopo aver disabilitato `cc-plugin-diff` in `/plugin`.

341 341 

342| Azione | Predefinito | Descrizione |342| Azione | Predefinito | Descrizione |

343| :- | :- | :- |343| :- | :- | :- |

344| `app:toggleReplTab` | (non associato) | Apri o chiudi il pannello diff |344| `app:toggleReplTab` | (non assegnato) | Apri o chiudi il pannello del diff |

345| `app:cycleDiffBase` | Ctrl+X B | Cicla la base di confronto del pannello: questa sessione, non committato, quindi ramo |345| `app:cycleDiffBase` | Ctrl+X B | Scorri tra le basi di confronto del pannello: questa sessione, modifiche non sottoposte a commit, quindi branch |

346| `app:diffFileListUp` | Ctrl+Su, Meta+Su | Scorri l'elenco dei file del pannello verso l'alto quando trabocca |346| `app:diffFileListUp` | Ctrl+Up, Meta+Up | Scorri in su l'elenco dei file del pannello quando eccede lo spazio disponibile |

347| `app:diffFileListDown` | Ctrl+Giù, Meta+Giù | Scorri l'elenco dei file del pannello verso il basso quando trabocca |347| `app:diffFileListDown` | Ctrl+Down, Meta+Down | Scorri in giù l'elenco dei file del pannello quando eccede lo spazio disponibile |

348| `app:toggleDiffNoiseFilter` | (non associato) | Mostra o nascondi i file di test e generati nel pannello |348| `app:toggleDiffNoiseFilter` | (non assegnato) | Mostra o nascondi i file di test e generati nel pannello |

349| `app:toggleDiffPreSession` | (non associato) | Espandi o comprimi le modifiche da prima di questa sessione |349| `app:toggleDiffPreSession` | (non assegnato) | Espandi o comprimi le modifiche precedenti a questa sessione |

350 350 

351### Azioni del selezionatore di modelli351### Azioni del selettore del modello

352 352 

353Azioni disponibili nel contesto `ModelPicker`:353Azioni disponibili nel contesto `ModelPicker`:

354 354 

355| Azione | Predefinito | Descrizione |355| Azione | Predefinito | Descrizione |

356| :- | :- | :- |356| :- | :- | :- |

357| `modelPicker:decreaseEffort` | Sinistra | Diminuisci il livello di sforzo |357| `modelPicker:decreaseEffort` | Left | Riduci il livello di sforzo |

358| `modelPicker:increaseEffort` | Destra | Aumenta il livello di sforzo |358| `modelPicker:increaseEffort` | Right | Aumenta il livello di sforzo |

359| `modelPicker:thisSessionOnly` | s | Applica il modello evidenziato solo a questa sessione |359| `modelPicker:thisSessionOnly` | s | Applica il modello evidenziato solo a questa sessione |

360 360 

361### Azioni del cursore di sforzo361### Azioni del cursore dello sforzo

362 362 

363Azioni disponibili nel contesto `EffortSlider`, il cursore che si apre quando esegui `/effort` senza argomenti. I tasti Invio ed Escape del cursore non possono essere riassociati.363Azioni disponibili nel contesto `EffortSlider`, il cursore che si apre quando esegui `/effort` senza argomenti. I tasti Enter ed Escape del cursore non possono essere riassegnati.

364 364 

365| Azione | Predefinito | Descrizione |365| Azione | Predefinito | Descrizione |

366| :- | :- | :- |366| :- | :- | :- |

367| `effortSlider:decreaseEffort` | Sinistra | Sposta il cursore al livello di sforzo successivo inferiore. Richiede v2.1.284 o successiva |367| `effortSlider:decreaseEffort` | Left | Sposta il cursore al livello di sforzo immediatamente inferiore. Richiede v2.1.284 o successiva |

368| `effortSlider:increaseEffort` | Destra | Sposta il cursore al livello di sforzo successivo superiore. Richiede v2.1.284 o successiva |368| `effortSlider:increaseEffort` | Right | Sposta il cursore al livello di sforzo immediatamente superiore. Richiede v2.1.284 o successiva |

369| `effortSlider:toggleUltracode` | Tab | Attiva/disattiva [ultracode](https://code.claude.com/docs/it/workflows.md#let-claude-decide-with-ultracode) per questa sessione, quando il cursore lo [offre](https://code.claude.com/docs/it/model-config.md#when-ultracode-is-available). Richiede v2.1.284 o successiva |369| `effortSlider:toggleUltracode` | Tab | Attiva o disattiva [ultracode](https://code.claude.com/docs/it/workflows.md#let-claude-decide-with-ultracode) per questa sessione, quando il cursore [lo offre](https://code.claude.com/docs/it/model-config.md#when-ultracode-is-available). Richiede v2.1.284 o successiva |

370| `effortSlider:thisSessionOnly` | s | Applica il [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) focalizzato solo a questa sessione. Richiede v2.1.257 o successiva |370| `effortSlider:thisSessionOnly` | s | Applica il [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) attivo solo a questa sessione. Richiede v2.1.257 o successiva |

371 371 

372### Azioni di selezione372### Azioni Select

373 373 

374Azioni disponibili nel contesto `Select`:374Azioni disponibili nel contesto `Select`:

375 375 

376| Azione | Predefinito | Descrizione |376| Azione | Predefinito | Descrizione |

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

378| `select:next` | Giù, J, Ctrl+N | Opzione successiva |378| `select:next` | Down, J, Ctrl+N | Opzione successiva |

379| `select:previous` | Su, K, Ctrl+P | Opzione precedente |379| `select:previous` | Up, K, Ctrl+P | Opzione precedente |

380| `select:pageUp` | PagSu | Sposta verso l'alto di una pagina di opzioni |380| `select:pageUp` | PageUp | Sali di una pagina di opzioni |

381| `select:pageDown` | PagGiù | Sposta verso il basso di una pagina di opzioni |381| `select:pageDown` | PageDown | Scendi di una pagina di opzioni |

382| `select:first` | Home | Prima opzione |382| `select:first` | Home | Prima opzione |

383| `select:last` | Fine | Ultima opzione |383| `select:last` | End | Ultima opzione |

384| `select:accept` | Invio | Accetta la selezione |384| `select:accept` | Enter | Accetta la selezione |

385| `select:cancel` | Escape | Annulla la selezione |385| `select:cancel` | Escape | Annulla la selezione |

386 386 

387Nei pannelli elenco come `/skills`, `/mcp` e `/tasks`, Claude Code applica le tue associazioni `select:pageUp`, `select:pageDown`, `select:first` e `select:last`. Nella maggior parte degli altri elenchi, come il selezionatore `/model`, si applicano le tue associazioni `select:first` e `select:last`. PagSu e PagGiù scorrono le opzioni in quegli elenchi indipendentemente dalle tue associazioni.387Nei pannelli a elenco come `/skills`, `/mcp` e `/tasks`, Claude Code applica le tue assegnazioni `select:pageUp`, `select:pageDown`, `select:first` e `select:last`. Nella maggior parte degli altri elenchi, come il selettore `/model`, si applicano le tue assegnazioni `select:first` e `select:last`. PageUp e PageDown scorrono le opzioni di quegli elenchi indipendentemente dalle tue assegnazioni.

388 388 

389Prima della v2.1.280, quegli altri elenchi ignoravano Home, Fine e le tue associazioni `select:first` e `select:last`.389Prima della v2.1.280, quegli altri elenchi ignoravano Home, End e le tue assegnazioni `select:first` e `select:last`.

390 390 

391Prima della v2.1.283, l'elenco degli strumenti `/mcp` scorreva con tasti PageUp e PageDown fissi indipendentemente dalle tue associazioni.391Prima della v2.1.283, l'elenco degli strumenti di `/mcp` scorreva per pagine con tasti PageUp e PageDown fissi, indipendentemente dalle tue assegnazioni.

392 392 

393### Azioni dei plugin393### Azioni dei plugin

394 394 


396 396 

397| Azione | Predefinito | Descrizione |397| Azione | Predefinito | Descrizione |

398| :- | :- | :- |398| :- | :- | :- |

399| `plugin:toggle` | Spazio | Attiva/disattiva la selezione del plugin |399| `plugin:toggle` | Space | Attiva o disattiva la selezione del plugin |

400| `plugin:install` | I | Installa i plugin selezionati |400| `plugin:install` | I | Installa i plugin selezionati |

401| `plugin:favorite` | F | Contrassegna il plugin selezionato come preferito in modo che si ordini vicino alla parte superiore della scheda Installato |401| `plugin:favorite` | F | Aggiungi ai preferiti il plugin selezionato, in modo che venga ordinato vicino all'inizio della scheda Installed |

402 402 

403### Azioni sopra il prompt403### Azioni sopra il prompt

404 404 

405Azioni per la fascia sopra il prompt, la striscia condivisa in cui i [mod](https://code.claude.com/docs/it/plugins/mods/interface.md#pick-where-to-draw) disegnano pulsanti, campi di input e selettori. `abovePrompt:toggle` e `abovePrompt:focus` si applicano nel contesto `Chat`. Le altre azioni si applicano nel [contesto](#contexts) di qualunque elemento abbia il focus della tastiera nella fascia o in un riquadro.405Azioni per la fascia sopra il prompt, la striscia condivisa in cui i [mod](https://code.claude.com/docs/it/plugins/mods/interface.md#pick-where-to-draw) disegnano pulsanti, campi di input e menu di selezione. `abovePrompt:toggle` e `abovePrompt:focus` si applicano nel contesto `Chat`. Le altre azioni si applicano nel [contesto](#contexts) dell'elemento che ha il focus della tastiera nella fascia o in un riquadro.

406 406 

407| Azione | Predefinito | Descrizione |407| Azione | Predefinito | Descrizione |

408| :- | :- | :- |408| :- | :- | :- |

409| `abovePrompt:toggle` | Ctrl+X Ctrl+A | Comprimi la fascia in un suggerimento di una riga, o espandila di nuovo |409| `abovePrompt:toggle` | Ctrl+X Ctrl+A | Comprimi la fascia in un suggerimento di una riga, o espandila di nuovo |

410| `abovePrompt:focus` | Ctrl+X Tab | Sposta il focus della tastiera nella fascia, poi su ogni [riquadro](#pane-actions) aperto, e dall'ultimo riquadro di nuovo al prompt |410| `abovePrompt:focus` | Ctrl+X Tab | Sposta il focus della tastiera nella fascia, poi su ciascun [riquadro](#pane-actions) aperto, e dall'ultimo riquadro di nuovo al prompt |

411| `abovePrompt:next` | Tab | Sposta il focus sul controllo successivo |411| `abovePrompt:next` | Tab | Porta il focus sul controllo successivo |

412| `abovePrompt:previous` | Shift+Tab | Sposta il focus sul controllo precedente |412| `abovePrompt:previous` | Shift+Tab | Porta il focus sul controllo precedente |

413| `abovePrompt:press` | Invio | Premi il pulsante con il focus, invia il campo di input con il focus o scegli l'opzione evidenziata in un selettore |413| `abovePrompt:press` | Enter | Premi il pulsante attivo, invia il campo di input attivo o scegli l'opzione evidenziata in un menu di selezione |

414| `abovePrompt:leave` | Escape | Riporta il focus della tastiera al prompt |414| `abovePrompt:leave` | Escape | Riporta il focus della tastiera al prompt |

415| `abovePrompt:highlightNext` | Giù | Evidenzia l'opzione successiva in un selettore con il focus |415| `abovePrompt:highlightNext` | Down | Evidenzia l'opzione successiva in un menu di selezione attivo |

416| `abovePrompt:highlightPrevious` | Su | Evidenzia l'opzione precedente in un selettore con il focus |416| `abovePrompt:highlightPrevious` | Up | Evidenzia l'opzione precedente in un menu di selezione attivo |

417 417 

418Nel [contesto `AbovePrompt`](#contexts), anche Destra e Sinistra eseguono `abovePrompt:next` e `abovePrompt:previous` per impostazione predefinita, e anche Spazio esegue `abovePrompt:press`.418Nel [contesto `AbovePrompt`](#contexts), anche Right e Left eseguono `abovePrompt:next` e `abovePrompt:previous` per impostazione predefinita, e anche Space esegue `abovePrompt:press`.

419 419 

420Il contesto `AbovePrompt` associa anche Su, Giù, PagSu, PagGiù, Home e Fine alle [azioni di scorrimento del riquadro](#pane-actions) da `pane:scrollUp` a `pane:bottom`, quindi per cambiare uno di quei tasti per la fascia, associa l'azione di scorrimento in un blocco `AbovePrompt`.420Il contesto `AbovePrompt` assegna anche Up, Down, PageUp, PageDown, Home ed End alle [azioni di scorrimento del riquadro](#pane-actions) da `pane:scrollUp` a `pane:bottom`, quindi per cambiare uno di questi tasti per la fascia, assegna l'azione di scorrimento in un blocco `AbovePrompt`.

421 421 

422### Azioni dei riquadri422### Azioni del riquadro

423 423 

424Azioni per un riquadro disegnato da un [mod](https://code.claude.com/docs/it/plugins/mods/interface.md#know-which-keys-your-mod-can-receive). Le azioni di scorrimento, ridimensionamento e chiusura si applicano nel [contesto](#contexts) `Pane`. `pane:close` si applica anche nel contesto `PaneField`, quindi funziona mentre uno dei campi del riquadro ha il focus. `pane:next` e `pane:previous` si applicano nel contesto `Global` mentre è aperto più di un riquadro.424Azioni per un riquadro disegnato da un [mod](https://code.claude.com/docs/it/plugins/mods/interface.md#know-which-keys-your-mod-can-receive). Le azioni di scorrimento, ridimensionamento e chiusura si applicano nel [contesto](#contexts) `Pane`. `pane:close` si applica anche nel contesto `PaneField`, quindi funziona mentre uno dei campi del riquadro ha il focus. `pane:next` e `pane:previous` si applicano nel contesto `Global` quando è aperto più di un riquadro.

425 425 

426| Azione | Predefinito | Descrizione |426| Azione | Predefinito | Descrizione |

427| :- | :- | :- |427| :- | :- | :- |

428| `pane:scrollUp` | Su | Scorri il riquadro verso l'alto quando ha più righe di quante ne possa mostrare |428| `pane:scrollUp` | Up | Scorri in su il riquadro quando ha più righe di quante ne possa mostrare |

429| `pane:scrollDown` | Giù | Scorri il riquadro verso il basso quando ha più righe di quante ne possa mostrare |429| `pane:scrollDown` | Down | Scorri in giù il riquadro quando ha più righe di quante ne possa mostrare |

430| `pane:pageUp` | PagSu | Scorri il riquadro verso l'alto di una pagina |430| `pane:pageUp` | PageUp | Scorri in su il riquadro di una pagina |

431| `pane:pageDown` | PagGiù | Scorri il riquadro verso il basso di una pagina |431| `pane:pageDown` | PageDown | Scorri in giù il riquadro di una pagina |

432| `pane:top` | Home | Salta all'inizio del riquadro |432| `pane:top` | Home | Salta all'inizio del riquadro |

433| `pane:bottom` | Fine | Salta alla fine del riquadro |433| `pane:bottom` | End | Salta alla fine del riquadro |

434| `pane:grow` | Ctrl+X Sinistra, Ctrl+X Su | Dai più spazio al riquadro: in larghezza quando si trova accanto alla trascrizione, in altezza quando si trova sopra il prompt |434| `pane:grow` | Ctrl+X Left, Ctrl+X Up | Dai più spazio al riquadro: in larghezza quando si trova accanto alla trascrizione, in altezza quando si trova sopra il prompt |

435| `pane:shrink` | Ctrl+X Destra, Ctrl+X Giù | Dai meno spazio al riquadro: in larghezza quando si trova accanto alla trascrizione, in altezza quando si trova sopra il prompt |435| `pane:shrink` | Ctrl+X Right, Ctrl+X Down | Dai meno spazio al riquadro: in larghezza quando si trova accanto alla trascrizione, in altezza quando si trova sopra il prompt |

436| `pane:close` | Ctrl+X X | Chiudi il riquadro |436| `pane:close` | Ctrl+X X | Chiudi il riquadro |

437| `pane:next` | (non associato) | Mostra il riquadro aperto successivo |437| `pane:next` | (non assegnato) | Mostra il riquadro aperto successivo |

438| `pane:previous` | (non associato) | Mostra il riquadro aperto precedente |438| `pane:previous` | (non assegnato) | Mostra il riquadro aperto precedente |

439 439 

440Il contesto `Pane` associa anche Tab, Shift+Tab, Invio ed Escape alle stesse [azioni sopra il prompt](#above-prompt-actions) della fascia, e i campi di input e i selettori di un riquadro usano i contesti `AbovePromptInput` e `AbovePromptSelect`. [Focus della tastiera e hotkey](https://code.claude.com/docs/it/plugins/mods/interface.md#know-which-keys-your-mod-can-receive) elenca cosa fa ogni tasto in un riquadro.440Il contesto `Pane` assegna anche Tab, Shift+Tab, Enter ed Escape alle stesse [azioni sopra il prompt](#above-prompt-actions) della fascia, e i campi di input e i menu di selezione di un riquadro usano i contesti `AbovePromptInput` e `AbovePromptSelect`. [Focus della tastiera e tasti di scelta](https://code.claude.com/docs/it/plugins/mods/interface.md#know-which-keys-your-mod-can-receive) elenca cosa fa ciascun tasto in un riquadro.

441 441 

442### Azioni delle impostazioni442### Azioni delle impostazioni

443 443 

444Azioni disponibili nel contesto `Settings`. Le azioni `select:accept` e `confirm:no` vengono riutilizzate dai contesti [Select](#select-actions) e [Confirmation](#confirmation-actions) con comportamento specifico delle impostazioni: le modifiche si applicano a ogni impostazione non appena la modifichi, quindi Escape chiude il pannello con le tue modifiche salvate piuttosto che rifiutare.444Azioni disponibili nel contesto `Settings`. Le azioni `select:accept` e `confirm:no` sono riutilizzate dai contesti [Select](#select-actions) e [Confirmation](#confirmation-actions) con un comportamento specifico per le impostazioni: le modifiche si applicano a ciascuna impostazione non appena la cambi, quindi Escape chiude il pannello con le modifiche salvate anziché rifiutarle.

445 445 

446| Azione | Predefinito | Descrizione |446| Azione | Predefinito | Descrizione |

447| :- | :- | :- |447| :- | :- | :- |

448| `settings:search` | / | Entra in modalità di ricerca |448| `settings:search` | / | Entra in modalità di ricerca |

449| `settings:retry` | R | Riprova a caricare i dati di utilizzo in caso di errore |449| `settings:retry` | R | Riprova a caricare i dati di utilizzo in caso di errore |

450| `settings:fixUsage` | F | Invia alla tua sessione i [consigli di `/usage`](https://code.claude.com/docs/it/costs#apply-recommendations-with-the-fix-shortcut) che Claude Code può applicare, quando il piè di pagina di `/usage` offre una correzione. Richiede v2.1.305 o successiva |450| `settings:fixUsage` | F | Invia alla tua sessione i [suggerimenti di `/usage`](https://code.claude.com/docs/it/costs#apply-recommendations-with-the-fix-shortcut) che Claude Code può applicare, quando il footer di `/usage` offre una correzione. Richiede v2.1.305 o successiva |

451| `select:accept` | Invio, Spazio | Modifica l'impostazione selezionata o apri il suo sottomenu |451| `select:accept` | Enter, Space | Modifica l'impostazione selezionata o apri il suo sottomenu |

452| `confirm:no` | Escape | Chiudi il pannello. Le modifiche sono già salvate |452| `confirm:no` | Escape | Chiudi il pannello. Le modifiche sono già salvate |

453 453 

454### Azioni degli agenti454### Azioni degli agenti

455 455 

456Azioni disponibili nel contesto `Agents`, che si applica nella [vista agente](https://code.claude.com/docs/it/agent-view.md), aperta con `claude agents`. Richiede v2.1.257 o successiva.456Azioni disponibili nel contesto `Agents`, che si applica nella [vista agenti](https://code.claude.com/docs/it/agent-view.md), aperta con `claude agents`. Richiede v2.1.257 o successiva.

457 457 

458| Azione | Predefinito | Descrizione |458| Azione | Predefinito | Descrizione |

459| :- | :- | :- |459| :- | :- | :- |

460| `agents:switchView` | Ctrl+S | Cambia il [raggruppamento della sessione](https://code.claude.com/docs/it/agent-view.md#organize-the-list) tra stato e directory |460| `agents:switchView` | Ctrl+S | Cambia il [raggruppamento delle sessioni](https://code.claude.com/docs/it/agent-view.md#organize-the-list) tra stato e directory |

461| `agents:togglePin` | Ctrl+T | [Fissa o scollega](https://code.claude.com/docs/it/agent-view.md#organize-the-list) la sessione selezionata |461| `agents:togglePin` | Ctrl+T | [Fissa o sblocca](https://code.claude.com/docs/it/agent-view.md#organize-the-list) la sessione selezionata |

462| `agents:find` | Ctrl+F | Trova le sessioni per nome, con il [filtro `n:`](https://code.claude.com/docs/it/agent-view#filter-sessions). Richiede v2.1.288 o successiva |462| `agents:find` | Ctrl+F | Trova le sessioni per nome, con il [filtro `n:`](https://code.claude.com/docs/it/agent-view#filter-sessions). Richiede v2.1.288 o successiva |

463| `agents:rename` | Ctrl+R | [Rinomina](https://code.claude.com/docs/it/agent-view.md#organize-the-list) la sessione selezionata. Richiede v2.1.288 o successiva |463| `agents:rename` | Ctrl+R | [Rinomina](https://code.claude.com/docs/it/agent-view.md#organize-the-list) la sessione selezionata. Richiede v2.1.288 o successiva |

464| `agents:previousGroup` | Ctrl+Su, Meta+Su | Salta all'[intestazione di gruppo](https://code.claude.com/docs/it/agent-view.md#organize-the-list) precedente. Richiede v2.1.288 o successiva |464| `agents:previousGroup` | Ctrl+Up, Meta+Up | Salta all'[intestazione di gruppo](https://code.claude.com/docs/it/agent-view.md#organize-the-list) precedente. Richiede v2.1.288 o successiva |

465| `agents:nextGroup` | Ctrl+Giù, Meta+Giù | Salta all'intestazione di gruppo successiva. Richiede v2.1.288 o successiva |465| `agents:nextGroup` | Ctrl+Down, Meta+Down | Salta all'intestazione di gruppo successiva. Richiede v2.1.288 o successiva |

466 466 

467Mentre la vista agente è aperta, Claude Code utilizza l'associazione `Agents` per qualsiasi tasto che il contesto `Agents` associa, e ignora un'associazione `Chat` o `Global` sulla stessa chiave. Ad esempio, premere Ctrl+S nella vista agente cambia il raggruppamento della sessione piuttosto che attivare il valore predefinito `chat:stash`.467Mentre la vista agenti è aperta, Claude Code usa l'assegnazione `Agents` per qualsiasi tasto assegnato dal contesto `Agents`, e ignora un'assegnazione `Chat` o `Global` sullo stesso tasto. Ad esempio, premendo Ctrl+S nella vista agenti si cambia il raggruppamento delle sessioni anziché attivare il `chat:stash` predefinito.

468 468 

469La scorciatoia dell'editor esterno dell'input di dispatch non è un'azione `Agents`. La vista agente segue l'associazione `chat:externalEditor` del contesto `Chat`, Ctrl+G per impostazione predefinita.469La scorciatoia dell'editor esterno dell'input di dispatch non è un'azione `Agents`. La vista agenti segue l'assegnazione `chat:externalEditor` del contesto `Chat`, Ctrl+G per impostazione predefinita.

470 470 

471Le associazioni si attivano su singoli tasti nella vista agente, quindi l'accordo Ctrl+X Ctrl+E associato a `chat:externalEditor` non apre l'editor lì.471Nella vista agenti le assegnazioni si attivano con singole pressioni di tasto, quindi la combinazione Ctrl+X Ctrl+E assegnata a `chat:externalEditor` non apre l'editor in quella vista.

472 472 

473### Azioni vocali473### Azioni vocali

474 474 


476 476 

477| Azione | Predefinito | Descrizione |477| Azione | Predefinito | Descrizione |

478| :- | :- | :- |478| :- | :- | :- |

479| `voice:pushToTalk` | Spazio | Dettare un prompt. Tieni premuto o tocca a seconda della modalità `/voice` |479| `voice:pushToTalk` | Space | Detta un prompt. Tieni premuto o tocca a seconda della modalità di `/voice` |

480 480 

481### Azioni di scorrimento481### Azioni di scorrimento

482 482 


484 484 

485| Azione | Predefinito | Descrizione |485| Azione | Predefinito | Descrizione |

486| :- | :- | :- |486| :- | :- | :- |

487| `scroll:lineUp` | `wheelup` | Scorri verso l'alto di una riga. Lo scorrimento della rotella del mouse attiva questa azione |487| `scroll:lineUp` | `wheelup` | Scorri in su di una riga. Lo scorrimento con la rotella del mouse attiva questa azione |

488| `scroll:lineDown` | `wheeldown` | Scorri verso il basso di una riga. Lo scorrimento della rotella del mouse attiva questa azione |488| `scroll:lineDown` | `wheeldown` | Scorri in giù di una riga. Lo scorrimento con la rotella del mouse attiva questa azione |

489| `scroll:pageUp` | PagSu | Scorri verso l'alto di mezza altezza della finestra |489| `scroll:pageUp` | PageUp | Scorri in su di metà dell'altezza dell'area visibile |

490| `scroll:pageDown` | PagGiù | Scorri verso il basso di mezza altezza della finestra |490| `scroll:pageDown` | PageDown | Scorri in giù di metà dell'altezza dell'area visibile |

491| `scroll:top` | Ctrl+Home | Salta all'inizio della conversazione |491| `scroll:top` | Ctrl+Home | Salta all'inizio della conversazione |

492| `scroll:bottom` | Ctrl+Fine | Salta al messaggio più recente e riabilita il follow automatico |492| `scroll:bottom` | Ctrl+End | Salta all'ultimo messaggio e riattiva lo scorrimento automatico |

493| `scroll:halfPageUp` | (non associato) | Scorri verso l'alto di mezza altezza della finestra. Stesso comportamento di `scroll:pageUp`, fornito per riassociazioni in stile vi |493| `scroll:halfPageUp` | (non assegnato) | Scorri in su di metà dell'altezza dell'area visibile. Stesso comportamento di `scroll:pageUp`, fornito per le riassegnazioni in stile vi |

494| `scroll:halfPageDown` | (non associato) | Scorri verso il basso di mezza altezza della finestra. Stesso comportamento di `scroll:pageDown`, fornito per riassociazioni in stile vi |494| `scroll:halfPageDown` | (non assegnato) | Scorri in giù di metà dell'altezza dell'area visibile. Stesso comportamento di `scroll:pageDown`, fornito per le riassegnazioni in stile vi |

495| `scroll:fullPageUp` | (non associato) | Scorri verso l'alto dell'intera altezza della finestra |495| `scroll:fullPageUp` | (non assegnato) | Scorri in su dell'intera altezza dell'area visibile |

496| `scroll:fullPageDown` | (non associato) | Scorri verso il basso dell'intera altezza della finestra |496| `scroll:fullPageDown` | (non assegnato) | Scorri in giù dell'intera altezza dell'area visibile |

497| `selection:copy` | Ctrl+Shift+C / Cmd+C | Copia il testo selezionato negli appunti |497| `selection:copy` | Ctrl+Shift+C / Cmd+C | Copia il testo selezionato negli appunti |

498| `selection:clear` | (non associato) | Cancella la selezione di testo attiva. Richiede v2.1.234 o successiva |498| `selection:clear` | (non assegnato) | Cancella la selezione di testo attiva. Richiede v2.1.234 o successiva |

499| `selection:extendLeft` | Shift+Sinistra | Estendi la selezione attiva di una colonna a sinistra |499| `selection:extendLeft` | Shift+Left | Estendi la selezione attiva di una colonna a sinistra |

500| `selection:extendRight` | Shift+Destra | Estendi la selezione attiva di una colonna a destra |500| `selection:extendRight` | Shift+Right | Estendi la selezione attiva di una colonna a destra |

501| `selection:extendUp` | Shift+Su | Estendi la selezione attiva di una riga verso l'alto. Scorri la finestra quando la selezione raggiunge il bordo superiore |501| `selection:extendUp` | Shift+Up | Estendi la selezione attiva di una riga verso l'alto. Scorre l'area visibile quando la selezione raggiunge il bordo superiore |

502| `selection:extendDown` | Shift+Giù | Estendi la selezione attiva di una riga verso il basso. Scorri la finestra quando la selezione raggiunge il bordo inferiore |502| `selection:extendDown` | Shift+Down | Estendi la selezione attiva di una riga verso il basso. Scorre l'area visibile quando la selezione raggiunge il bordo inferiore |

503| `selection:extendLineStart` | Shift+Home | Estendi la selezione attiva all'inizio della riga |503| `selection:extendLineStart` | Shift+Home | Estendi la selezione attiva fino all'inizio della riga |

504| `selection:extendLineEnd` | Shift+Fine | Estendi la selezione attiva alla fine della riga |504| `selection:extendLineEnd` | Shift+End | Estendi la selezione attiva fino alla fine della riga |

505 505 

506## Sintassi delle sequenze di tasti506## Sintassi delle sequenze di tasti

507 507 

Details

178* [`forceRemoteSettingsRefresh`](https://code.claude.com/docs/it/server-managed-settings)178* [`forceRemoteSettingsRefresh`](https://code.claude.com/docs/it/server-managed-settings)

179* `env`, sottoposto a merge per variabile attraverso le fonti di amministrazione: ogni variabile proviene dalla fonte con priorità più alta che la definisce, quindi le fonti inferiori riempiono le variabili che quelle superiori lasciano non impostate. Alcune variabili seguono le proprie regole; [Eccezioni per chiave attraverso le fonti gestite](https://code.claude.com/docs/it/server-managed-settings.md#per-key-exceptions-across-managed-sources) nomina ognuna. Richiede Claude Code v2.1.223 o successivo. Prima della v2.1.223, Claude Code applicava solo l'intero blocco `env` della fonte selezionata179* `env`, sottoposto a merge per variabile attraverso le fonti di amministrazione: ogni variabile proviene dalla fonte con priorità più alta che la definisce, quindi le fonti inferiori riempiono le variabili che quelle superiori lasciano non impostate. Alcune variabili seguono le proprie regole; [Eccezioni per chiave attraverso le fonti gestite](https://code.claude.com/docs/it/server-managed-settings.md#per-key-exceptions-across-managed-sources) nomina ognuna. Richiede Claude Code v2.1.223 o successivo. Prima della v2.1.223, Claude Code applicava solo l'intero blocco `env` della fonte selezionata

180 180 

181Le [chiavi di accesso al gateway](#choose-a-delivery-mechanism) seguono una regola separata. Claude Code non le legge mai dalle impostazioni gestite dal server, quindi mentre le impostazioni gestite dal server sono la fonte selezionata, la fonte di amministrazione con ranking più alto sulla macchina che porta una chiave di policy le fornisce comunque. Un valore in una fonte di amministrazione classificata al di sotto di quella, o nel registro HKCU, viene ignorato.

182 

183[`allowedProviders`](https://code.claude.com/docs/it/settings-reference#allowedproviders) ha la sua propria regola: la nota Scope della sua voce dice come un elenco impostato sulla macchina si combina con uno gestito dal server. Richiede Claude Code v2.1.285 o successivo.181[`allowedProviders`](https://code.claude.com/docs/it/settings-reference#allowedproviders) ha la sua propria regola: la nota Scope della sua voce dice come un elenco impostato sulla macchina si combina con uno gestito dal server. Richiede Claude Code v2.1.285 o successivo.

184 182 

185Quando una fonte di amministrazione imposta `allowManagedMcpServersOnly` o un elenco `allowedMcpServers` e quel valore non è quello in vigore, `/status` e `claude doctor` nominano quella fonte e chiave.183Quando una fonte di amministrazione imposta `allowManagedMcpServersOnly` o un elenco `allowedMcpServers` e quel valore non è quello in vigore, `/status` e `claude doctor` nominano quella fonte e chiave.

186 184 

185#### Quale fonte gestita fornisce le chiavi di accesso

186 

187Su una macchina con una policy MDM o un file di impostazioni gestite, Claude Code prende le chiavi di accesso da quella policy o da quel file, anche per una chiave che le [impostazioni remote](#how-claude-code-combines-managed-sources) impostano a loro volta. Le impostazioni della console di amministrazione di claude.ai sono impostazioni remote, quindi imposta le chiavi di accesso come [`forceLoginOrgUUID`](https://code.claude.com/docs/it/settings-reference#forceloginorguuid) nella policy MDM o nel file.

188 

189Se una macchina ha sia una policy MDM sia un file di impostazioni gestite, usa la policy MDM. Quando quella policy imposta una qualsiasi [chiave di policy](#how-claude-code-combines-managed-sources), Claude Code ignora le chiavi di accesso nel file, [anche con `managedSourcesBehavior: "merge"`](#compose-every-managed-source).

190 

191Le chiavi di accesso sono:

192 

193* `forceLoginOrgUUID` e `forceLoginMethod` impostata su `"claudeai"` o `"console"`: se la policy o il file omette una delle due chiavi, si applica il valore nelle impostazioni remote. Finché ogni client non esegue la v2.1.299 o successiva, imposta le chiavi anche nelle [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) da claude.ai

194* Le [chiavi di accesso al gateway](#choose-a-delivery-mechanism): Claude Code non utilizza un valore nelle impostazioni remote per l'accesso al gateway

195 

187### Componi ogni fonte gestita196### Componi ogni fonte gestita

188 197 

189Per fare in modo che Claude Code applichi ogni fonte di amministrazione che la tua organizzazione fornisce, imposta [`managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) su `"merge"` nella fonte con ranking più alto che distribuisci. Claude Code legge la chiave solo dalla fonte con ranking più alto che porta la chiave o una chiave di policy, quindi una fonte inferiore non può optare per il merge con la fonte sopra di essa, e una macchina che non riceve mai impostazioni gestite dal server ha bisogno della chiave anche nel suo profilo MDM. Il registro HKCU scrivibile dall'utente non esegue mai il merge con un'altra fonte. Richiede Claude Code v2.1.242 o successivo.198Per fare in modo che Claude Code applichi ogni fonte di amministrazione che la tua organizzazione fornisce, imposta [`managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) su `"merge"` nella fonte con ranking più alto che distribuisci. Claude Code legge la chiave solo dalla fonte con ranking più alto che porta la chiave o una chiave di policy, quindi una fonte inferiore non può optare per il merge con la fonte sopra di essa, e una macchina che non riceve mai impostazioni gestite dal server ha bisogno della chiave anche nel suo profilo MDM. Il registro HKCU scrivibile dall'utente non esegue mai il merge con un'altra fonte. Richiede Claude Code v2.1.242 o successivo.


199| Allowlist di restrizione | Prende l'elenco intero dalla fonte con ranking più alto che lo imposta, senza aggiungere voci da fonti inferiori | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins`, e la catena `fallbackModel` |208| Allowlist di restrizione | Prende l'elenco intero dalla fonte con ranking più alto che lo imposta, senza aggiungere voci da fonti inferiori | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins`, e la catena `fallbackModel` |

200| Valori presi interi | Prende il valore intero dalla fonte con ranking più alto che lo imposta, senza combinare voci o campi da fonti inferiori | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |209| Valori presi interi | Prende il valore intero dalla fonte con ranking più alto che lo imposta, senza combinare voci o campi da fonti inferiori | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |

201| Server MCP forniti | Combina i nomi dei server da ogni fonte; quando due fonti impostano lo stesso nome, applica la voce intera della fonte con ranking più alto | `managedMcpServers` |210| Server MCP forniti | Combina i nomi dei server da ogni fonte; quando due fonti impostano lo stesso nome, applica la voce intera della fonte con ranking più alto | `managedMcpServers` |

202| Chiavi lette solo dalla fonte con ranking più alto | Ignora la chiave in ogni fonte inferiore, anche quando la fonte con ranking più alto la lascia non impostata | Helper di credenziali come `apiKeyHelper`, pin di accesso come `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |211| Chiavi lette solo dalla fonte con ranking più alto | Ignora la chiave in ogni fonte inferiore, anche quando la fonte con ranking più alto la lascia non impostata | `modelPicker`, `permissions.defaultMode` e helper di credenziali come `apiKeyHelper` |

203| `env` | Esegue il merge per variabile attraverso le fonti di amministrazione in entrambe le impostazioni, come [Chiavi lette da ogni fonte di amministrazione](#keys-read-from-every-admin-source) descrive | |212| `env` | Esegue il merge per variabile attraverso le fonti di amministrazione in entrambe le impostazioni, come [Chiavi lette da ogni fonte di amministrazione](#keys-read-from-every-admin-source) descrive | |

213| Chiavi di accesso | In entrambe le impostazioni, le prende dalla policy MDM o dal file di impostazioni gestite, a seconda di quale sia quello con ranking più alto che porta una [chiave di policy](#how-claude-code-combines-managed-sources), [prima delle impostazioni remote](#which-managed-source-supplies-login-keys) | `forceLoginOrgUUID`, `forceLoginMethod` e le [chiavi di accesso al gateway](#choose-a-delivery-mechanism) |

204| Ogni altra chiave | Prende il valore dalla fonte con ranking più alto che lo imposta | `model`, `cleanupPeriodDays` |214| Ogni altra chiave | Prende il valore dalla fonte con ranking più alto che lo imposta | `model`, `cleanupPeriodDays` |

205 215 

206Per confermare quali fonti si sono combinate su una macchina, [leggi la riga `Setting sources` in `/status`](#read-the-source-in-/status); quella sezione dice cosa significa ogni etichetta.216Per confermare quali fonti si sono combinate su una macchina, [leggi la riga `Setting sources` in `/status`](#read-the-source-in-/status); quella sezione dice cosa significa ogni etichetta.


228Claude Code applica anche questi controlli ai valori forniti dal padre da soli:238Claude Code applica anche questi controlli ai valori forniti dal padre da soli:

229 239 

230* Quando qualsiasi fonte di amministrazione imposta `allowManagedPermissionRulesOnly`, Claude Code elimina le [regole di autorizzazione fornite dal padre](https://code.claude.com/docs/it/claude-apps-gateway#restrict-parent-settings) e `additionalDirectories` mentre le legge, anche quando una fonte con priorità più alta lascia la chiave non impostata. L'effetto della chiave sulle tue stesse regole di autorizzazione proviene dalle impostazioni gestite che Claude Code applica, o dalle impostazioni padre di cui hai scelto di fare il merge240* Quando qualsiasi fonte di amministrazione imposta `allowManagedPermissionRulesOnly`, Claude Code elimina le [regole di autorizzazione fornite dal padre](https://code.claude.com/docs/it/claude-apps-gateway#restrict-parent-settings) e `additionalDirectories` mentre le legge, anche quando una fonte con priorità più alta lascia la chiave non impostata. L'effetto della chiave sulle tue stesse regole di autorizzazione proviene dalle impostazioni gestite che Claude Code applica, o dalle impostazioni padre di cui hai scelto di fare il merge

231* Claude Code applica il valore `forceLoginOrgUUID` o `allowedMcpServers` nelle impostazioni gestite che applica e blocca uno fornito dal padre. Al di fuori del blocco dell'allowlist MCP, un valore in una fonte di amministrazione inferiore che Claude Code non applica né si applica né blocca quello del padre.241* Claude Code applica il valore `forceLoginOrgUUID` o `allowedMcpServers` nelle impostazioni gestite che applica e blocca uno fornito dal padre. Se fornisci più di una fonte gestita, vedi [quale fonte fornisce `forceLoginOrgUUID`](#which-managed-source-supplies-login-keys).

232 242 

233 Su Claude Code v2.1.273 o successivo, mentre `allowManagedMcpServersOnly` è attivo, l'elenco `allowedMcpServers` dalla fonte di amministrazione con ranking più alto che ne imposta uno si applica e blocca quello del padre, come una [chiave cross-source](#keys-read-from-every-admin-source). L'elenco del padre si applica solo quando nessuna fonte di amministrazione ne imposta uno. La voce [`managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) dice quale fonte fornisce ogni chiave sotto `"merge"`. Prima della v2.1.223, un valore in qualsiasi fonte di amministrazione bloccava quello del padre243 Su Claude Code v2.1.273 o successivo, mentre `allowManagedMcpServersOnly` è attivo, l'elenco `allowedMcpServers` dalla fonte di amministrazione con ranking più alto che ne imposta uno si applica e blocca quello del padre, come una [chiave cross-source](#keys-read-from-every-admin-source). L'elenco del padre si applica solo quando nessuna fonte di amministrazione ne imposta uno. La voce [`managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) dice quale fonte fornisce ogni chiave sotto `"merge"`. Prima della v2.1.223, un valore in qualsiasi fonte di amministrazione bloccava quello del padre

234* Per `availableModels`, Claude Code applica il valore nelle impostazioni gestite che applica e blocca un elenco fornito dal padre244* Per `availableModels`, Claude Code applica il valore nelle impostazioni gestite che applica e blocca un elenco fornito dal padre

mcp.md +45 −18

Details

242/mcp242/mcp

243```243```

244 244 

245Quando rimuovi un server remoto, Claude Code elimina anche i token OAuth e la registrazione del client che aveva memorizzato per quel server.245Quando rimuovi un server remoto, Claude Code elimina anche i token OAuth e la registrazione del client che aveva memorizzato per quel server. Claude Code non revoca i token presso il server di autorizzazione che li ha emessi. Per revocare i token dove il server di autorizzazione supporta la revoca, esegui [`claude mcp logout <name>`](#authenticate-from-the-command-line) nella tua shell prima di `claude mcp remove <name>`.

246 246 

247#### Stato del server247#### Stato del server

248 248 


255* ``⏸ Pending approval (run `claude` to approve)``: un server con ambito di progetto da `.mcp.json` che non hai ancora approvato. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Esegui `claude` in modo interattivo per esaminarlo e approvarlo.255* ``⏸ Pending approval (run `claude` to approve)``: un server con ambito di progetto da `.mcp.json` che non hai ancora approvato. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Esegui `claude` in modo interattivo per esaminarlo e approvarlo.

256* `✘ Rejected (see disabledMcpjsonServers in settings)`: un server `.mcp.json` rifiutato da una voce [`disabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#disabledmcpjsonservers). Claude Code lo mostra solo in `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)`: un server `.mcp.json` rifiutato da una voce [`disabledMcpjsonServers`](https://code.claude.com/docs/it/settings-reference#disabledmcpjsonservers). Claude Code lo mostra solo in `claude mcp get <name>`.

257* `⊘ Disabled for this project (re-enable via /mcp)`: un server indicato nell'elenco [`disabledMcpServers`](#disable-a-server-without-removing-it) del progetto. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Riattiva il server dal pannello `/mcp`.257* `⊘ Disabled for this project (re-enable via /mcp)`: un server indicato nell'elenco [`disabledMcpServers`](#disable-a-server-without-removing-it) del progetto. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Riattiva il server dal pannello `/mcp`.

258* `✘ Blocked by enterprise managed policy`: un server rifiutato da una delle policy della tua organizzazione. Claude Code lo mostra sia in `claude mcp list` sia in `claude mcp get <name>`. Un server bloccato da un'allowlist, una denylist o un'altra restrizione nella [configurazione MCP gestita](https://code.claude.com/docs/it/managed-mcp.md#how-restrictions-appear-to-users) viene nascosto da entrambi i comandi anziché essere mostrato con questo stato. Chiedi al tuo amministratore quale policy blocca il server.

258 259 

259#### Approvazioni dei server di progetto e attendibilità del workspace260#### Approvazioni dei server di progetto e attendibilità del workspace

260 261 


471Per modificare o disattivare lo spostamento automatico in background:472Per modificare o disattivare lo spostamento automatico in background:

472 473 

473* Imposta la variabile d'ambiente [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/it/env-vars) in millisecondi per modificare la soglia, oppure impostala su `0` per disattivare lo spostamento automatico in background. Con `0`, Claude [attende anche le attività MCP](#make-claude-wait-for-the-result-of-an-mcp-task) in una sessione interattiva474* Imposta la variabile d'ambiente [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](https://code.claude.com/docs/it/env-vars) in millisecondi per modificare la soglia, oppure impostala su `0` per disattivare lo spostamento automatico in background. Con `0`, Claude [attende anche le attività MCP](#make-claude-wait-for-the-result-of-an-mcp-task) in una sessione interattiva

474* Imposta [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars) su `1`, che lo disattiva insieme ai comandi in background e ai subagent in background475* Imposta [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars) su `1` per disattivare il passaggio automatico in background e i [comandi in background](https://code.claude.com/docs/it/tools-reference.md#background-commands)

475 476 

476Alcune chiamate non passano mai in background:477Alcune chiamate non passano mai in background:

477 478 


828 829 

829Claude Code supporta l'espansione delle variabili di ambiente nei file `.mcp.json`, consentendo ai team di condividere configurazioni mantenendo flessibilità per i percorsi specifici della macchina e i valori sensibili come le chiavi API.830Claude Code supporta l'espansione delle variabili di ambiente nei file `.mcp.json`, consentendo ai team di condividere configurazioni mantenendo flessibilità per i percorsi specifici della macchina e i valori sensibili come le chiavi API.

830 831 

831#### Sintassi supportata832Puoi fare riferimento a una variabile d'ambiente nel valore `command`, `args`, `env`, `url` o `headers` di un server, in una delle due forme seguenti:

832 833 

833* `${VAR}`: si espande al valore della variabile di ambiente `VAR`834* `${VAR}`: si espande al valore della variabile di ambiente `VAR`

834* `${VAR:-default}`: si espande a `VAR` se impostato, altrimenti utilizza `default`835* `${VAR:-default}`: si espande al valore di `VAR` se `VAR` è impostata, oppure a `default` se non è impostata

835 

836#### Posizioni di espansione

837 

838Le variabili di ambiente possono essere espanse in:

839 

840* `command`: il percorso dell'eseguibile del server

841* `args`: argomenti della riga di comando

842* `env`: variabili di ambiente passate al server

843* `url`: per i tipi di server HTTP

844* `headers`: per l'autenticazione del server HTTP

845 836 

846#### Esempio con espansione di variabili837#### Esempio con espansione di variabili

847 838 

839In questa voce di server, l'URL è il valore di `API_BASE_URL` seguito da `/mcp`, con `https://api.example.com` come valore predefinito, e la chiave API proviene da `API_KEY`:

840 

848```json theme={null}841```json theme={null}

849{842{

850 "mcpServers": {843 "mcpServers": {


863 856 

864Se una variabile di ambiente richiesta non è impostata e non ha un valore predefinito, la configurazione viene comunque caricata: Claude Code segnala un avviso di variabile mancante per quel server nell'output di `claude mcp list` e utilizza il testo `${VAR}` non espanso così com'è. Imposta la variabile o aggiungi un fallback `:-default` in modo che il server si avvii con il valore che intendi. Negli `url` e `headers` di un server remoto, alcune variabili di credenziali [leggono come vuote](#credential-variables-that-read-as-empty) invece, senza avviso.857Se una variabile di ambiente richiesta non è impostata e non ha un valore predefinito, la configurazione viene comunque caricata: Claude Code segnala un avviso di variabile mancante per quel server nell'output di `claude mcp list` e utilizza il testo `${VAR}` non espanso così com'è. Imposta la variabile o aggiungi un fallback `:-default` in modo che il server si avvii con il valore che intendi. Negli `url` e `headers` di un server remoto, alcune variabili di credenziali [leggono come vuote](#credential-variables-that-read-as-empty) invece, senza avviso.

865 858 

859#### Variabili impostate su una stringa vuota

860 

861Se imposti una variabile su una stringa vuota, conta come impostata, quindi un riferimento `${VAR:-default}` si espande alla stringa vuota anziché a `default`. Con il [server di esempio](#example-with-variable-expansion), se imposti `API_BASE_URL` su una stringa vuota, il suo `url` diventa `/mcp` e `claude mcp list` segnala `'url' is not a valid URL`. Per usare il valore predefinito, rimuovi la variabile anziché impostarla su una stringa vuota.

862 

866#### Variabili di credenziali che leggono come vuote863#### Variabili di credenziali che leggono come vuote

867 864 

868Negli `url` e `headers` di un server remoto, Claude Code legge le variabili di credenziali dal tuo ambiente come vuote piuttosto che espanderle. Questo impedisce che il `.mcp.json` di un progetto o un plugin invii le tue credenziali di Claude Code o del provider cloud a un server che nomina. Se scrivi `Bearer ${ANTHROPIC_AUTH_TOKEN}`, il server riceve `Bearer ` senza credenziale e rifiuta la richiesta, di solito con un `401`. Claude Code lo segnala come una connessione non riuscita.865Negli `url` e `headers` di un server remoto, Claude Code legge le variabili di credenziali dal tuo ambiente come vuote piuttosto che espanderle. Questo impedisce che il `.mcp.json` di un progetto o un plugin invii le tue credenziali di Claude Code o del provider cloud a un server che nomina. Se scrivi `Bearer ${ANTHROPIC_AUTH_TOKEN}`, il server riceve `Bearer ` senza credenziale e rifiuta la richiesta, di solito con un `401`. Claude Code lo segnala come una connessione non riuscita.


1146 1143 

1147Se 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.1144Se 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.

1148 1145 

1146### Utilizza OAuth con un server dietro un proxy che richiede autenticazione

1147 

1148Se il tuo server MCP utilizza OAuth dietro un proxy o un gateway che controlla un proprio header, l'accesso non riesce quando le richieste OAuth arrivano senza quell'header. L'accesso tramite il proxy richiede Claude Code v2.1.299 o successiva, con l'header e l'accesso entrambi configurati:

1149 

1150* **L'header del proxy**: passalo con [`--header`](#option-1-add-a-remote-http-server), con il campo `headers` o con un [`headersHelper`](#use-dynamic-headers-for-custom-authentication), con il nome che il proxy legge

1151* **L'accesso OAuth**: escludi `Authorization` dagli header configurati, quindi accedi con `claude mcp login <name>` nella tua shell. Se configuri un header `Authorization`, Claude Code lo utilizza come credenziale del server e non ricorre a OAuth per quel server.

1152 

1149### Utilizza intestazioni dinamiche per l'autenticazione personalizzata1153### Utilizza intestazioni dinamiche per l'autenticazione personalizzata

1150 1154 

1151Se 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.1155Quando un'autenticazione come Kerberos, token di breve durata o un SSO interno richiede intestazioni generate al momento della connessione, imposta il `headersHelper` del server su un comando. Claude Code lo esegue durante la connessione ed esegue il merge del suo output nelle intestazioni che invia. Questo esempio utilizza uno script:

1152 1156 

1153```json theme={null}1157```json theme={null}

1154{1158{


1552 1556 

1553## Strumenti con schemi di input non validi1557## Strumenti con schemi di input non validi

1554 1558 

1555L'API Claude controlla lo schema di input di ogni strumento in una richiesta e rifiuta l'intera richiesta quando uno schema non supera il controllo, quindi un singolo strumento MCP con uno schema malformato farebbe fallire ogni richiesta che lo include con un errore 400. Claude Code esegue due dei controlli dell'API da solo quando carica gli strumenti di un server ed esclude ogni strumento che non li supererebbe, in modo che gli altri strumenti del server continuino a funzionare:1559> [!NOTE]

1560>

1561> Se la tua sessione fallisce con un errore 400 che nomina uno strumento in base alla sua posizione, segui i passaggi in [Tool input schema is invalid](https://code.claude.com/docs/it/errors.md#tool-input-schema-is-invalid).

1562 

1563Se uno degli strumenti del tuo server MCP ha uno schema di input che viola una delle due regole imposte dall'API, Claude Code esclude quello strumento. Gli altri strumenti del server non ne risentono. Claude Code verifica entrambe le regole mentre carica gli strumenti del server:

1556 1564 

1557* I nomi delle proprietà di primo livello devono essere lunghi da 1 a 64 caratteri e utilizzare solo lettere ASCII e cifre, `_`, `.` e `-`1565* I nomi delle proprietà di primo livello devono essere lunghi da 1 a 64 caratteri e utilizzare solo lettere ASCII e cifre, `_`, `.` e `-`

1558* Lo schema deve essere valido rispetto al meta-schema JSON Schema draft 2020-12. Claude Code applica questo controllo agli schemi che non dichiarano alcun `$schema` e agli schemi che dichiarano draft 2020-12. Uno schema che dichiara qualsiasi altro dialetto salta questo controllo, anche se il controllo del nome della proprietà sopra indicato si applica comunque1566* Lo schema deve essere valido rispetto al meta-schema JSON Schema draft 2020-12. Claude Code applica questo controllo agli schemi che non dichiarano alcun `$schema` e agli schemi che dichiarano draft 2020-12. Uno schema che dichiara qualsiasi altro dialetto salta questo controllo, anche se il controllo del nome della proprietà sopra indicato si applica comunque

1559 1567 

1560Quando Claude Code esclude uno strumento, registra il motivo nel log del server e comunica a Claude quali strumenti ha escluso e perché, in modo che tu possa chiedere a Claude perché uno strumento manca. Se correggi lo schema sul server, lo strumento riappare la prossima volta che Claude Code carica gli strumenti del server.1568Quando Claude Code esclude uno strumento, registra il motivo nel log del server e comunica a Claude quali strumenti ha escluso e perché, in modo che tu possa chiedere a Claude perché uno strumento manca. Se correggi lo schema sul server, lo strumento riappare la prossima volta che Claude Code carica gli strumenti del server.

1561 1569 

1562Claude Code attiva l'esclusione tramite un feature flag che recupera da Anthropic. Su una [distribuzione in cui il recupero dei flag è disattivato](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), o su una macchina i cui flag non sono mai arrivati, come una macchina air-gapped, Claude Code esegue comunque i controlli e registra nel log del server quale strumento verrebbe rifiutato, ma invia comunque lo schema dello strumento all'API. L'API rifiuta una richiesta che include quello schema con [un errore 400 che nomina lo strumento in base alla sua posizione](https://code.claude.com/docs/it/errors.md#tool-input-schema-is-invalid). Prima della v2.1.216, nessuna distribuzione eseguiva questi controlli.1570Quando il [recupero dei feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching) è disattivato o i flag non sono mai arrivati, come su una macchina air-gapped, uno strumento che viola una regola non viene escluso:

1571 

1572* Claude riceve lo strumento invariato e il log del server registra `input schema would be rejected by the Anthropic API` per quello strumento

1573* Se poi l'API rifiuta lo schema, consulta [Strumenti il cui schema di input viene rifiutato dall'API](#tools-whose-input-schema-the-api-refuses)

1574 

1575Prima della v2.1.216, nessuna distribuzione eseguiva questi controlli.

1563 1576 

1564La [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.1577La [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.

1565 1578 

1579### Strumenti il cui schema di input viene rifiutato dall'API

1580 

1581Se una riga nel log di debug contiene `the API refused this tool's input schema`, nomina uno strumento il cui schema è stato rifiutato dall'API in una richiesta. Claude Code invia di nuovo quella richiesta con lo strumento dichiarato senza parametri.

1582 

1583* **Se la tua sessione fallisce con un errore 400 che nomina uno strumento in base alla sua posizione**: segui i passaggi in [Tool input schema is invalid](https://code.claude.com/docs/it/errors.md#tool-input-schema-is-invalid)

1584* **Se usi il server**: non devi fare nulla. Claude può comunque chiamare lo strumento, ma non ne vede i parametri

1585* **Se gestisci il server**: correggi lo schema di input dello strumento sul server. La riga del log termina con `The API said:` seguito dal motivo per cui l'API ha rifiutato lo schema. Convalida gli argomenti che il server riceve, perché Claude chiama lo strumento senza vederne i parametri

1586 

1587Prima della v2.1.300, ogni turno che includeva lo schema rifiutato falliva con [un errore 400 che nomina lo strumento in base alla sua posizione](https://code.claude.com/docs/it/errors.md#tool-input-schema-is-invalid).

1588 

1566## Strumenti con nomi più lunghi di 128 caratteri1589## Strumenti con nomi più lunghi di 128 caratteri

1567 1590 

1568Se `/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.1591Se `/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.


1709 1732 

1710Prima 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.1733Prima 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.

1711 1734 

1712Le descrizioni e le istruzioni di alcuni dei server MCP che Anthropic ospita su `api.anthropic.com` arrivano a Claude per intero. Per modificare i limiti per gli altri server MCP nella tua sessione, imposta [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](https://code.claude.com/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.1735#### Modificare i limiti di lunghezza delle descrizioni

1736 

1737Per modificare i [limiti predefiniti](#for-mcp-server-authors) di 4.096 e 16.384 caratteri per i server MCP nella tua sessione, imposta [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](https://code.claude.com/docs/it/env-vars#variables) a un numero di caratteri. Claude Code usa quel numero per entrambi i limiti. Con `8192`, ad esempio, alzi il limite di 4.096 caratteri sulle istruzioni del server e sulle descrizioni degli strumenti caricati in anticipo, e abbassi il limite di 16.384 caratteri sulle descrizioni degli strumenti caricati tramite la ricerca di strumenti. Questa variabile richiede Claude Code v2.1.280 o successivo.

1738 

1739Le descrizioni e le istruzioni di alcuni dei server MCP che Anthropic ospita su `api.anthropic.com` arrivano a Claude per intero, e impostare questa variabile non le tronca.

1713 1740 

1714#### Contrassegnare uno strumento da caricare in anticipo o da mantenere rimandato1741#### Contrassegnare uno strumento da caricare in anticipo o da mantenere rimandato

1715 1742 

mcp-quickstart.md +29 −28

Details

65| `✘ Connection error` | Il tentativo di connessione ha generato un errore. Vedere [Risoluzione dei problemi](#troubleshooting) |65| `✘ Connection error` | Il tentativo di connessione ha generato un errore. Vedere [Risoluzione dei problemi](#troubleshooting) |

66| ``⏸ Pending approval (run `claude` to approve)`` | Un server con ambito di progetto che non avete ancora approvato. Vedere [Modificare .mcp.json direttamente](#edit-mcp-json-directly) |66| ``⏸ Pending approval (run `claude` to approve)`` | Un server con ambito di progetto che non avete ancora approvato. Vedere [Modificare .mcp.json direttamente](#edit-mcp-json-directly) |

67| `⊘ Disabled for this project (re-enable via /mcp)` | Un server disattivato per questo progetto dall'elenco `disabledMcpServers` del progetto. Vedere [Disattivare un server senza rimuoverlo](https://code.claude.com/docs/it/mcp.md#disable-a-server-without-removing-it) |67| `⊘ Disabled for this project (re-enable via /mcp)` | Un server disattivato per questo progetto dall'elenco `disabledMcpServers` del progetto. Vedere [Disattivare un server senza rimuoverlo](https://code.claude.com/docs/it/mcp.md#disable-a-server-without-removing-it) |

68| `✘ Blocked by enterprise managed policy` | Una delle policy della tua organizzazione blocca questo server, quindi Claude Code non si connetterà. Chiedi al tuo amministratore quale policy. Consulta [Stato del server](https://code.claude.com/docs/it/mcp.md#server-status) |

68 69 

69Alcune console Windows legacy, come la console predefinita su Windows 10, non supportano questi glifi Unicode e mostrano `√` e `×` al posto di `✔` e `✘`.70Alcune console Windows legacy, come la console predefinita su Windows 10, non supportano questi glifi Unicode e mostrano `√` e `×` al posto di `✔` e `✘`.

70 71 


154 155 

155Eseguire il commit di `.mcp.json` al controllo della versione. I compagni di squadra che clonano il repository e avviano Claude Code vedono un prompt per approvare il server, quindi si connette anche per loro.156Eseguire il commit di `.mcp.json` al controllo della versione. I compagni di squadra che clonano il repository e avviano Claude Code vedono un prompt per approvare il server, quindi si connette anche per loro.

156 157 

157## Esempi di server MCP aggiuntivi158## Altri esempi di server MCP

158 159 

159La prima procedura dettagliata ha utilizzato un server ospitato che si connette senza alcun accesso. Gli esempi seguenti coprono le altre due forme comuni, con lo stesso flusso di aggiunta, controllo, utilizzo.160La prima procedura guidata ha usato un server ospitato che si connette senza alcun accesso. Gli esempi seguenti coprono le altre due forme comuni, con lo stesso flusso di aggiunta, verifica e utilizzo.

160 161 

161### Aggiungere un server locale162### Aggiungere un server locale

162 163 

163Un server stdio locale è un programma che Claude Code avvia come sottoprocesso sulla vostra macchina, piuttosto che un servizio che raggiunge tramite un URL. Utilizzatene uno per strumenti che necessitano accesso a risorse locali come un browser, il vostro filesystem o un socket di database.164Un server stdio locale è un programma che Claude Code avvia come sottoprocesso sulla tua macchina, anziché un servizio raggiunto tramite un URL. Usane uno per gli strumenti che necessitano di accedere a risorse locali come un browser, il tuo filesystem o un socket di database.

164 165 

165Il [server MCP Playwright](https://github.com/microsoft/playwright-mcp) è un buono da provare: dà a Claude un browser che può navigare, fare clic e leggere, e non necessita alcun account. Viene eseguito tramite `npx`, quindi richiede [Node.js](https://nodejs.org/en/download) 18 o successivo.166Il [server MCP di Playwright](https://github.com/microsoft/playwright-mcp) è un buon candidato da provare: fornisce a Claude un browser in cui può navigare, fare clic e leggere, e non richiede alcun account. Viene eseguito tramite `npx`, quindi richiede [Node.js](https://nodejs.org/en/download) 18 o successivo.

166 167 

167**1. Aggiungere il server Playwright**168**1. Aggiungi il server Playwright**

168 169 

169Registrare il server con il comando che Claude Code dovrebbe eseguire per avviarlo:170Registra il server con il comando che Claude Code deve eseguire per avviarlo:

170 171 

171```bash theme={null}172```bash theme={null}

172claude mcp add playwright -- npx -y @playwright/mcp@latest173claude mcp add playwright -- npx -y @playwright/mcp@latest


174 175 

175Questo comando differisce dall'esempio ospitato in tre modi:176Questo comando differisce dall'esempio ospitato in tre modi:

176 177 

177* Non c'è il flag `--transport`, perché i server locali utilizzano il trasporto predefinito `stdio`.178* Non c'è il flag `--transport`, perché i server locali usano il trasporto predefinito `stdio`.

178* Tutto dopo il separatore `--` è il comando che Claude Code esegue per avviare il server.179* Tutto ciò che segue il separatore `--` è il comando che Claude Code esegue per avviare il server.

179* `-y` dice a `npx` di installare il pacchetto senza chiedere.180* `-y` indica a `npx` di installare il pacchetto senza chiedere conferma.

180 181 

181Il comando stampa una conferma come `Added stdio MCP server playwright with command: npx -y @playwright/mcp@latest to local config`, seguita da una riga `File modified:` che mostra il file di configurazione che ha scritto.182Il comando stampa una conferma come `Added stdio MCP server playwright with command: npx -y @playwright/mcp@latest to local config`, seguita da una riga `File modified:` che mostra il file di configurazione che ha scritto.

182 183 

183Playwright guida qualsiasi Chrome già installato sulla vostra macchina. Per utilizzare un browser diverso, aggiungere `--browser` con il nome del browser, ad esempio `--browser firefox`, dopo `@playwright/mcp@latest`.184Playwright controlla il Chrome già installato sulla tua macchina. Per usare un browser diverso, aggiungi `--browser` con il nome del browser, ad esempio `--browser firefox`, dopo `@playwright/mcp@latest`.

184 185 

185**2. Controllare la connessione**186**2. Verifica la connessione**

186 187 

187La conferma `Added` significa che l'entry è stata salvata, non che il comando viene eseguito. Controllare la connessione:188La conferma `Added` significa che la voce è stata salvata, non che il comando venga eseguito. Verifica la connessione:

188 189 

189```bash theme={null}190```bash theme={null}

190claude mcp list191claude mcp list

191```192```

192 193 

193Il primo controllo può mostrare `✘ Failed to connect` mentre `npx` scarica il pacchetto, quindi attendere un momento ed eseguirlo di nuovo. Una volta che il download finisce, lo stato cambia a `✔ Connected`. Se mostra ancora `✘ Failed to connect` dopo un paio di tentativi, vedere [Risoluzione dei problemi](#troubleshooting).194Il primo controllo può mostrare `✘ Failed to connect` mentre `npx` scarica il pacchetto, quindi attendi un momento ed eseguilo di nuovo. Al termine del download, lo stato cambia in `✔ Connected`. Se mostra ancora `✘ Failed to connect` dopo un paio di nuovi tentativi, consulta [Risoluzione dei problemi](#troubleshooting).

194 195 

195**3. Utilizzare il browser**196**3. Usa il browser**

196 197 

197Dare a Claude un compito che necessita il browser:198Assegna a Claude un'attività che richiede il browser:

198 199 

199```text wrap theme={null}200```text wrap theme={null}

200Use playwright to open https://example.com and tell me the page title201Use playwright to open https://example.com and tell me the page title

201```202```

202 203 

203Una finestra del browser si apre in modo che possiate vederla funzionare, e le chiamate dello strumento nell'output di Claude sono etichettate con il nome del server `playwright` e l'azione, come `browser_navigate`.204Si apre una finestra del browser in modo che tu possa osservarlo lavorare, e le chiamate agli strumenti nell'output di Claude sono etichettate con il nome del server `playwright` e l'azione, come `browser_navigate`.

204 205 

205Provate a puntarlo al vostro server di sviluppo locale per controllare che una pagina ancora si renderizzi dopo una modifica, o fatelo camminare attraverso un rapporto di bug passo dopo passo.206Prova a indirizzarlo al tuo server di sviluppo locale per verificare che una pagina venga ancora visualizzata correttamente dopo una modifica, oppure fagli ripercorrere una segnalazione di bug passo dopo passo.

206 207 

207### Connettere un server che richiede l'accesso208### Connettere un server che richiede l'accesso

208 209 

209Servizi ospitati come Sentry, Linear e Notion eseguono i loro server MCP dietro OAuth: aggiungete l'URL del server, quindi accedete tramite il vostro browser.210I servizi ospitati come Sentry, Linear e Notion eseguono i loro server MCP dietro OAuth: aggiungi l'URL del server, quindi accedi tramite il browser.

210 211 

211I passaggi seguenti utilizzano Sentry come esempio. Per connettere un servizio diverso, sostituire il suo URL, che potete trovare nella [Directory Anthropic](https://code.claude.com/docs/it/mcp.md#find-and-build-mcp-servers) o nella documentazione del servizio.212I passaggi seguenti usano Sentry come esempio. Per connettere un servizio diverso, sostituisci il suo URL, che puoi trovare nella [Anthropic Directory](https://code.claude.com/docs/it/mcp.md#find-and-build-mcp-servers) o nella documentazione del servizio.

212 213 

213**1. Aggiungere il server**214**1. Aggiungi il server**

214 215 

215Il comando `add` è lo stesso che per il server docs, con l'URL di Sentry:216Il comando `add` è lo stesso usato per il server della documentazione, con l'URL di Sentry:

216 217 

217```bash theme={null}218```bash theme={null}

218claude mcp add --transport http sentry https://mcp.sentry.dev/mcp219claude mcp add --transport http sentry https://mcp.sentry.dev/mcp


220 221 

221Dopo l'aggiunta, `claude mcp list` mostra il server con `! Needs authentication`. È previsto: il passaggio successivo completa l'accesso.222Dopo l'aggiunta, `claude mcp list` mostra il server con `! Needs authentication`. È previsto: il passaggio successivo completa l'accesso.

222 223 

223**2. Autenticarsi nel vostro browser**224**2. Esegui l'autenticazione nel browser**

224 225 

225Avviare una sessione di Claude Code e aprire il pannello MCP:226Avvia una sessione di Claude Code e apri il pannello MCP:

226 227 

227```text wrap theme={null}228```text wrap theme={null}

228/mcp229/mcp

229```230```

230 231 

231Selezionare `sentry` dall'elenco, premere Invio e scegliere `Authenticate`. Il vostro browser si apre alla pagina di accesso di Sentry. Approvare la connessione lì.232Seleziona `sentry` dall'elenco, premi Enter e scegli `Authenticate`. Il browser si apre sulla pagina di accesso di Sentry. Approva lì la connessione.

232 233 

233Di nuovo in Claude Code, lo stato del server cambia a connesso. Se l'accesso fallisce o il browser non si apre, vedere [Risoluzione dei problemi](#troubleshooting).234Tornando in Claude Code, lo stato del server cambia in connesso. Se l'accesso non riesce o il browser non si apre, consulta [Risoluzione dei problemi](#troubleshooting).

234 235 

235**3. Utilizzare il server**236**3. Usa il server**

236 237 

237Chiedere a Claude qualcosa che necessita il servizio, come `What Sentry projects do I have access to?`, e cercare le chiamate dello strumento etichettate con il nome del server `sentry` nel suo output.238Chiedi a Claude qualcosa che richiede il servizio, come `What Sentry projects do I have access to?`, e cerca nel suo output le chiamate agli strumenti etichettate con il nome del server `sentry`.

238 239 

239I server che si autenticano con un token statico invece di OAuth prendono il token al momento dell'aggiunta con `--header "Authorization: Bearer <token>"`. Vedere l'[esempio GitHub](https://code.claude.com/docs/it/mcp.md#example-connect-to-github-for-code-reviews) per una versione elaborata.240I server che si autenticano con un token statico anziché con OAuth ricevono il token al momento dell'aggiunta con `--header "Authorization: Bearer <token>"`. Consulta l'[esempio di GitHub](https://code.claude.com/docs/it/mcp.md#example-connect-to-github-for-code-reviews) per una versione completa.

240 241 

241## Modificare .mcp.json direttamente242## Modificare .mcp.json direttamente

242 243 

model-config.md +18 −1

Details

689* **`/effort`**: esegui `/effort` senza argomenti per aprire un cursore interattivo, `/effort` seguito da un nome di livello per impostarlo direttamente, o `/effort auto` per cancellare il livello salvato per il modello attivo689* **`/effort`**: esegui `/effort` senza argomenti per aprire un cursore interattivo, `/effort` seguito da un nome di livello per impostarlo direttamente, o `/effort auto` per cancellare il livello salvato per il modello attivo

690* **In `/model`**: usa i tasti freccia sinistra/destra per regolare il cursore dello sforzo quando selezioni un modello690* **In `/model`**: usa i tasti freccia sinistra/destra per regolare il cursore dello sforzo quando selezioni un modello

691* **Flag `--effort`**: passa un nome di livello per impostarlo per una singola sessione quando avvii Claude Code691* **Flag `--effort`**: passa un nome di livello per impostarlo per una singola sessione quando avvii Claude Code

692* **Variabile d'ambiente**: imposta `CLAUDE_CODE_EFFORT_LEVEL` su un nome di livello o `auto`692* **Variabile d'ambiente**: imposta `CLAUDE_CODE_EFFORT_LEVEL` su un nome di livello. Per fare in modo che Claude Code [non invii alcun livello di sforzo](#send-no-effort-level), impostala invece su `auto` o `unset`

693* **Impostazioni**: imposta un livello per modello in [`modelSettings`](https://code.claude.com/docs/it/settings-reference#modelsettings), o imposta [`effortLevel`](https://code.claude.com/docs/it/settings-reference#effortlevel) su `low`, `medium`, `high` o `xhigh` come predefinito per i modelli che non ne hanno uno. `max` non è accettato come livello in nessuna delle due chiavi, e `ultracode` ha la sua chiave [`ultracode`](https://code.claude.com/docs/it/settings-reference#ultracode)693* **Impostazioni**: imposta un livello per modello in [`modelSettings`](https://code.claude.com/docs/it/settings-reference#modelsettings), o imposta [`effortLevel`](https://code.claude.com/docs/it/settings-reference#effortlevel) su `low`, `medium`, `high` o `xhigh` come predefinito per i modelli che non ne hanno uno. `max` non è accettato come livello in nessuna delle due chiavi, e `ultracode` ha la sua chiave [`ultracode`](https://code.claude.com/docs/it/settings-reference#ultracode)

694* **Da un dispositivo connesso**: in una sessione [Remote Control](https://code.claude.com/docs/it/remote-control.md#what-connected-devices-see), scegli un livello dal controllo dello sforzo sul tuo telefono o nel browser. Il livello si applica solo alla sessione corrente. Richiede Claude Code v2.1.234 o successiva694* **Da un dispositivo connesso**: in una sessione [Remote Control](https://code.claude.com/docs/it/remote-control.md#what-connected-devices-see), scegli un livello dal controllo dello sforzo sul tuo telefono o nel browser. Il livello si applica solo alla sessione corrente. Richiede Claude Code v2.1.234 o successiva

695* **Frontmatter di skill e subagent**: imposta `effort` nel file markdown di una [skill](https://code.claude.com/docs/it/skills.md#frontmatter-reference) o di un [subagent](https://code.claude.com/docs/it/sub-agents.md#supported-frontmatter-fields) per sovrascrivere il livello di sforzo quando quella skill o quel subagent viene eseguito695* **Frontmatter di skill e subagent**: imposta `effort` nel file markdown di una [skill](https://code.claude.com/docs/it/skills.md#frontmatter-reference) o di un [subagent](https://code.claude.com/docs/it/sub-agents.md#supported-frontmatter-fields) per sovrascrivere il livello di sforzo quando quella skill o quel subagent viene eseguito


711 711 

712Prima della v2.1.242, Claude Code poteva mettere in coda `/effort` stesso fino alla fine del turno, e lo faceva sempre in una sessione che non [recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), come su un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md).712Prima della v2.1.242, Claude Code poteva mettere in coda `/effort` stesso fino alla fine del turno, e lo faceva sempre in una sessione che non [recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), come su un [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md).

713 713 

714#### Non inviare alcun livello di sforzo

715 

716Quando Claude Code non invia alcun livello di sforzo a un [modello supportato](#adjust-effort-level), si applica il [valore predefinito dell'API](https://platform.claude.com/docs/en/build-with-claude/effort) invece di quello di Claude Code. Per fare in modo che Claude Code non ne invii nessuno, avvia `claude` da una shell che esporta `CLAUDE_CODE_EFFORT_LEVEL` con il valore `auto` o il valore `unset`, che hanno lo stesso effetto:

717 

718```bash theme={null}

719export CLAUDE_CODE_EFFORT_LEVEL=auto

720```

721 

722L'intestazione e il piè di pagina della sessione non mostrano alcun livello di sforzo finché non ne viene inviato nessuno. Per confermare che non ne venga inviato nessuno, esegui `/effort status` al prompt di Claude Code:

723 

724* **`Effort level: auto`**: non viene inviato alcun livello di sforzo.

725* **`Effort level: auto (currently <level>)`**: viene ancora inviato un livello. Se al modello attivo si applica un'impostazione [`maxEffortLevel`](https://code.claude.com/docs/it/settings-reference#maxeffortlevel) inferiore a `max`, Claude Code invia il proprio valore predefinito per il modello, abbassato a quel limite. Rimuovi l'impostazione o impostala su `max`.

726 

727> [!NOTE]

728>

729> Prima della v2.1.304, `/effort status` stampava `Effort level: auto (currently high)` anche quando non veniva inviato alcun livello.

730 

714#### Ragionamento adattivo e budget di ragionamento fissi731#### Ragionamento adattivo e budget di ragionamento fissi

715 732 

716Il ragionamento adattivo rende il ragionamento opzionale a ogni passo, quindi Claude può rispondere più velocemente ai prompt di routine e riservare un ragionamento più profondo ai passi che ne traggono beneficio. Se vuoi che Claude ragioni più o meno spesso di quanto produce il livello corrente, puoi dirlo direttamente nel tuo prompt o in `CLAUDE.md`; il modello segue quell'indicazione entro la sua impostazione di sforzo.733Il ragionamento adattivo rende il ragionamento opzionale a ogni passo, quindi Claude può rispondere più velocemente ai prompt di routine e riservare un ragionamento più profondo ai passi che ne traggono beneficio. Se vuoi che Claude ragioni più o meno spesso di quanto produce il livello corrente, puoi dirlo direttamente nel tuo prompt o in `CLAUDE.md`; il modello segue quell'indicazione entro la sua impostazione di sforzo.

Details

861* `output_tokens`: Numero di token di output861* `output_tokens`: Numero di token di output

862* `cache_read_tokens`: Numero di token letti dalla cache862* `cache_read_tokens`: Numero di token letti dalla cache

863* `cache_creation_tokens`: Numero di token utilizzati per la creazione della cache863* `cache_creation_tokens`: Numero di token utilizzati per la creazione della cache

864* `cache_creation_5m_tokens`, `cache_creation_1h_tokens`: il numero di token che la risposta API riporta come scritti nella cache con una [durata della cache](https://code.claude.com/docs/it/prompt-caching.md#cache-lifetime) di cinque minuti e il numero di quelli scritti con una durata di un'ora. Entrambi valgono `0` quando la risposta API non li riporta, anche quando `cache_creation_tokens` è maggiore di zero. Richiede Claude Code v2.1.300 o successiva

864* `request_id`: ID della richiesta API, ad esempio `"req_011..."`, descritto in [Attributi di correlazione degli eventi](#event-correlation-attributes).865* `request_id`: ID della richiesta API, ad esempio `"req_011..."`, descritto in [Attributi di correlazione degli eventi](#event-correlation-attributes).

865* `client_request_id`: UUID generato dal client e inviato come header di richiesta `x-client-request-id`; consulta la tabella degli [attributi di correlazione degli eventi](#event-correlation-attributes) per sapere quando è presente866* `client_request_id`: UUID generato dal client e inviato come header di richiesta `x-client-request-id`; consulta la tabella degli [attributi di correlazione degli eventi](#event-correlation-attributes) per sapere quando è presente

866* `speed`: `"fast"` o `"normal"`, a indicare se la modalità veloce era attiva867* `speed`: `"fast"` o `"normal"`, a indicare se la modalità veloce era attiva

Details

287claude --permission-mode acceptEdits287claude --permission-mode acceptEdits

288```288```

289 289 

290## Analizza prima di modificare con la modalità plan290## Analizza prima di modificare con il plan mode

291 291 

292La modalità plan dice a Claude di ricercare e proporre modifiche senza apportarle. Claude legge i file, esegue comandi shell per esplorare e scrive un piano, ma non modifica il tuo codice sorgente. Ad eccezione delle sessioni di terminale interattivo con [autorizzazioni di bypass disponibili](#skip-all-checks-with-bypasspermissions-mode), le modifiche rimangono bloccate finché non approvi il piano.292Il plan mode indica a Claude di fare ricerche e proporre modifiche senza applicarle. Claude legge i file, esegue comandi shell per esplorare e scrive un piano, ma non modifica il tuo codice sorgente. Tranne che nelle sessioni interattive del terminale con [bypass dei permessi disponibile](#skip-all-checks-with-bypasspermissions-mode), le modifiche restano bloccate finché non approvi il piano.

293 293 

294Cosa accade a un comando shell durante la pianificazione dipende dalla sessione, e il primo di questi casi che corrisponde si applica:294Cosa succede a un comando shell durante la pianificazione dipende dalla sessione, e si applica il primo dei seguenti casi che corrisponde:

295 295 

296* **Sessioni di terminale interattive con autorizzazioni di bypass disponibili**: né il classificatore né un prompt si applica ai comandi di pianificazione. [Ignora tutti i controlli con la modalità bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) copre le poche cose che richiedono comunque prompt lì.296* **Sessioni interattive del terminale con bypass dei permessi disponibile**: né il classificatore né una richiesta di permesso si applicano ai comandi di pianificazione. [Salta tutti i controlli con la modalità bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) descrive le poche cose per cui in quel caso viene ancora chiesta conferma.

297* **[Modalità auto](https://code.claude.com/docs/it/auto-mode-config.md) disponibile e l'impostazione `useAutoModeDuringPlan` attiva**, che è l'impostazione predefinita: il classificatore esamina i comandi shell diversi da [rimozioni critiche](#critical-paths) invece di richiedere conferma. I comandi approvati vengono eseguiti, e quelli rifiutati vengono bloccati.297* **[Modalità auto](https://code.claude.com/docs/it/auto-mode-config.md) disponibile e impostazione `useAutoModeDuringPlan` attiva**, come da impostazione predefinita: il classificatore esamina i comandi shell diversi dalle [rimozioni di percorsi critici](#critical-paths) invece di chiederti conferma. I comandi approvati vengono eseguiti, mentre quelli rifiutati vengono bloccati.

298* **Modalità auto non disponibile, o `useAutoModeDuringPlan` disattivata**: i comandi al di fuori del [set di sola lettura integrato](https://code.claude.com/docs/it/permissions.md#read-only-commands) richiedono approvazione, incluso quando la modalità [auto-allow](https://code.claude.com/docs/it/sandboxing.md#sandbox-modes) della sandbox è abilitata.298* **Modalità auto non disponibile, oppure `useAutoModeDuringPlan` disattivata**: i comandi al di fuori del [set integrato di comandi di sola lettura](https://code.claude.com/docs/it/permissions.md#read-only-commands) richiedono approvazione, anche quando la [modalità di auto-allow](https://code.claude.com/docs/it/sandboxing.md#sandbox-modes) della sandbox è abilitata.

299 299 

300Accedi alla modalità plan premendo `Shift+Tab` o anteponendo un singolo prompt con `/plan`. Puoi anche iniziare in modalità plan dalla CLI:300Entra nel plan mode premendo `Shift+Tab` oppure anteponendo `/plan` a un singolo prompt. Puoi anche avviare direttamente in plan mode dalla CLI:

301 301 

302```bash theme={null}302```bash theme={null}

303claude --permission-mode plan303claude --permission-mode plan

304```304```

305 305 

306Premi `Shift+Tab` di nuovo per uscire dalla modalità plan senza approvare un piano.306Premi di nuovo `Shift+Tab` per uscire dal plan mode senza approvare un piano.

307 307 

308### Rivedi e approva un piano308### Rivedi e approva un piano

309 309 

310Quando il piano è pronto, Claude lo presenta e chiede come procedere. Da quel prompt puoi scegliere:310Quando il piano è pronto, Claude lo presenta e ti chiede come procedere. Da questa richiesta puoi scegliere:

311 311 

312* **Sì, e utilizza la modalità auto**: approva e inizia in [modalità auto](#eliminate-prompts-with-auto-mode). Se la modalità auto non è [disponibile per la tua sessione](#eliminate-prompts-with-auto-mode), ad esempio perché la tua organizzazione l'ha disattivata, questa opzione legge **Sì, auto-accetta le modifiche**. Se hai avviato la sessione con le autorizzazioni di bypass abilitate, l'opzione legge **Sì, e passa a BYPASS PERMISSIONS (nessun ulteriore prompt) per questa sessione** invece.312* **Yes, and use auto mode**: approva e inizia in [modalità auto](#eliminate-prompts-with-auto-mode). Se la modalità auto non è [disponibile per la tua sessione](#eliminate-prompts-with-auto-mode), ad esempio perché la tua organizzazione l'ha disattivata, questa opzione diventa **Yes, auto-accept edits**. Se hai avviato la sessione con il bypass dei permessi abilitato, l'opzione diventa invece **Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session**.

313* **Sì, approva manualmente le modifiche**: approva e rivedi ogni modifica individualmente.313* **Yes, manually approve edits**: approva e rivedi ogni modifica singolarmente.

314* **No, continua a pianificare**: rimani in modalità plan e dì a Claude cosa cambiare.314* **No, keep planning**: resta nel plan mode e indica a Claude cosa cambiare.

315 315 

316Approvare un piano esce dalla modalità plan e passa la sessione alla modalità di autorizzazione che ogni opzione di approvazione descrive, quindi Claude inizia a modificare. Per pianificare di nuovo, cicla di nuovo alla modalità plan con `Shift+Tab`, o anteponi il tuo prossimo prompt con `/plan`.316Approvare un piano fa uscire dal plan mode e passa la sessione alla modalità di permesso descritta da ciascuna opzione di approvazione, così Claude inizia a modificare. Per pianificare di nuovo, torna al plan mode con `Shift+Tab`, oppure anteponi `/plan` al tuo prossimo prompt.

317 317 

318Premi `Ctrl+G` per aprire il piano proposto nel tuo editor di testo predefinito e modificarlo direttamente prima che Claude proceda. Quando [`showClearContextOnPlanAccept`](https://code.claude.com/docs/it/settings-reference#showclearcontextonplanaccept) è abilitato, l'elenco guadagna una prima opzione che approva il piano e cancella il contesto di pianificazione.318Premi `Ctrl+G` per aprire il piano proposto nel tuo editor di testo predefinito e modificarlo direttamente prima che Claude proceda. Quando [`showClearContextOnPlanAccept`](https://code.claude.com/docs/it/settings-reference#showclearcontextonplanaccept) è abilitata, l'elenco ottiene una prima opzione che approva il piano e cancella il contesto di pianificazione.

319 319 

320Approvare un piano dà anche alla sessione un [titolo generato](https://code.claude.com/docs/it/sessions.md#name-your-sessions) basato sul piano, a meno che tu non abbia già nominato la sessione.320Accettare un piano assegna anche alla sessione un [titolo generato](https://code.claude.com/docs/it/sessions.md#name-your-sessions) basato sul piano, a meno che tu non abbia già dato un nome alla sessione.

321 321 

322### Imposta la modalità plan come impostazione predefinita322### Imposta il plan mode come predefinito

323 323 

324Per rendere la modalità plan l'impostazione predefinita per le sessioni di terminale di un progetto, imposta `defaultMode` su `plan` in `.claude/settings.json`, posizionato come l'esempio sotto [Inizia in una modalità di autorizzazione diversa](#start-in-a-different-mode) mostra. Le conversazioni che l'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) avvia non leggono le impostazioni del progetto per la modalità di autorizzazione iniziale. Lì, imposta `claudeCode.initialPermissionMode` su `plan` nelle tue impostazioni utente di VS Code invece.324Per rendere il plan mode la modalità predefinita per le sessioni del terminale di un progetto, imposta `defaultMode` su `plan` in `.claude/settings.json`, posizionato come mostra l'esempio in [Avvia in una modalità di permesso diversa](#start-in-a-different-mode). Le conversazioni avviate dall'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) non leggono le impostazioni del progetto per la modalità di permesso iniziale. In quel caso, imposta invece `claudeCode.initialPermissionMode` su `plan` nelle impostazioni utente di VS Code.

325 325 

326## Elimina le richieste di permesso con la modalità auto326## Elimina le richieste di permesso con la modalità auto

327 327 

Details

4 4 

5# I marketplace di Anthropic5# I marketplace di Anthropic

6 6 

7> I marketplace di plugin ufficiale, della community e demo di Anthropic per Claude Code: i loro nomi, i repository, come aggiungere ciascuno e dove sfogliare i loro plugin.7> I marketplace di plugin ufficiale e della community di Anthropic per Claude Code: i loro nomi, i repository, come aggiungere ciascuno e dove sfogliare i loro plugin.

8 8 

9Anthropic pubblica tre marketplace di plugin di uso generale per Claude Code: [ufficiale](https://github.com/anthropics/claude-plugins-official), [community](https://github.com/anthropics/claude-plugins-community) e [demo](https://github.com/anthropics/claude-code). Ognuno è un catalogo di plugin nel proprio repository GitHub. Quando installi un plugin da uno di essi in una sessione di Claude Code, digiti il nome del marketplace dopo `@`, come in `/plugin install commit-commands@claude-plugins-official`.9Anthropic pubblica due marketplace di plugin di uso generale per Claude Code: [ufficiale](https://github.com/anthropics/claude-plugins-official) e [community](https://github.com/anthropics/claude-plugins-community). Ognuno è un catalogo di plugin nel proprio repository GitHub. Quando installi un plugin da uno di essi in una sessione di Claude Code, digiti il nome del marketplace dopo `@`, come in `/plugin install commit-commands@claude-plugins-official`.

10 10 

11Usa questa pagina per distinguere i tre marketplace e per scoprire dove verificare se quello ufficiale contiene un determinato plugin.11Usa questa pagina per distinguere i due marketplace e per scoprire dove verificare se quello ufficiale contiene un determinato plugin.

12 12 

13> [!NOTE]13> [!NOTE]

14>14>


19 19 

20Vai alla parte della pagina che ti serve:20Vai alla parte della pagina che ti serve:

21 21 

22* Per distinguere i tre marketplace in base a repository, nome del marketplace e modo in cui ottenerli, consulta [I marketplace di Anthropic](#anthropic’s-marketplaces).22* Per distinguere i due marketplace in base a repository, nome del marketplace e modo in cui ottenerli, consulta [I marketplace di Anthropic](#anthropic’s-marketplaces).

23* Per trovare un plugin nel marketplace ufficiale, consulta [Trovare plugin nel marketplace ufficiale](#find-plugins-in-the-official-marketplace).23* Per trovare un plugin nel marketplace ufficiale, consulta [Trovare plugin nel marketplace ufficiale](#find-plugins-in-the-official-marketplace).

24 24 

25## I marketplace di Anthropic25## I marketplace di Anthropic

26 26 

27Un marketplace è un catalogo di plugin che un repository definisce nel proprio file `.claude-plugin/marketplace.json`. I marketplace ufficiale, community e demo provengono ciascuno dal proprio repository GitHub. Anthropic pubblica anche marketplace dedicati a temi specifici, come `anthropics/skills` e `anthropics/knowledge-work-plugins`, che puoi aggiungere in una sessione di Claude Code con `/plugin marketplace add <owner>/<repo>`.27Un marketplace è un catalogo di plugin che un repository definisce nel proprio file `.claude-plugin/marketplace.json`. I marketplace ufficiale e community provengono ciascuno dal proprio repository GitHub. Anthropic pubblica anche marketplace dedicati a temi specifici, come `anthropics/skills` e `anthropics/knowledge-work-plugins`, che puoi aggiungere in una sessione di Claude Code con `/plugin marketplace add <owner>/<repo>`.

28 28 

29Questa tabella riporta per ogni marketplace il repository e il nome del marketplace, ovvero ciò che digiti dopo `@` quando installi un plugin da quel marketplace. Il nome del marketplace community è `claude-community`, non il nome del suo repository.29Questa tabella riporta per ogni marketplace il repository e il nome del marketplace, ovvero ciò che digiti dopo `@` quando installi un plugin da quel marketplace. Il nome del marketplace community è `claude-community`, non il nome del suo repository.

30 30 

31| | Ufficiale | Community | Demo |31| | Ufficiale | Community |

32| :- | :- | :- | :- |32| :- | :- | :- |

33| Repository | [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) | [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) | [`anthropics/claude-code`](https://github.com/anthropics/claude-code/tree/main/plugins) |33| Repository | [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official) | [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) |

34| Nome del marketplace | `claude-plugins-official` | `claude-community` | `claude-code-plugins` |34| Nome del marketplace | `claude-plugins-official` | `claude-community` |

35| Cosa contiene | Plugin gestiti da Anthropic, oltre a plugin di partner e altri autori | Plugin di terze parti che i loro autori hanno inviato ad Anthropic | Un piccolo insieme di plugin di esempio che mostrano cosa può contenere un plugin |35| Cosa contiene | Plugin gestiti da Anthropic, oltre a plugin di partner e altri autori | Plugin di terze parti che i loro autori hanno inviato ad Anthropic |

36| Come ottenerlo | Claude Code lo aggiunge la prima volta che avvii una sessione interattiva nel terminale, a meno che una [policy gestita](https://code.claude.com/docs/it/plugins/org.md#allow-the-official-marketplace-and-your-own) o `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` non lo blocchi. Consulta [Marketplace `claude-plugins-official` non trovato](https://code.claude.com/docs/it/plugins/troubleshooting#marketplace-claude-plugins-official-not-found) se manca | Lo aggiungi in una sessione di Claude Code con `/plugin marketplace add anthropics/claude-plugins-community` | Lo aggiungi in una sessione di Claude Code con `/plugin marketplace add anthropics/claude-code` |36| Come ottenerlo | Claude Code lo aggiunge la prima volta che avvii una sessione interattiva nel terminale, a meno che una [policy gestita](https://code.claude.com/docs/it/plugins/org.md#allow-the-official-marketplace-and-your-own) o `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` non lo blocchi. Consulta [Marketplace `claude-plugins-official` non trovato](https://code.claude.com/docs/it/plugins/troubleshooting#marketplace-claude-plugins-official-not-found) se manca | Lo aggiungi in una sessione di Claude Code con `/plugin marketplace add anthropics/claude-plugins-community` |

37 37 

38Se hai scritto un plugin e vuoi che altre persone lo installino, consulta [Pubblicare un plugin](https://code.claude.com/docs/it/plugins/publish.md), che tratta il tuo marketplace personale e l'invio alla directory di Anthropic.38Se hai scritto un plugin e vuoi che altre persone lo installino, consulta [Pubblicare un plugin](https://code.claude.com/docs/it/plugins/publish.md), che tratta il tuo marketplace personale e l'invio alla directory di Anthropic.

39 39 

40### Il marketplace demo in `anthropics/claude-code`40### Marketplace `claude-code-plugins` deprecato

41 41 

42Se un tutorial o un insieme di istruzioni meno recente ti dice di eseguire `/plugin marketplace add anthropics/claude-code`, questo aggiunge il marketplace demo, denominato `claude-code-plugins`. Non è il marketplace ufficiale.42> [!WARNING]

43>

44> Il marketplace `claude-code-plugins` in `anthropics/claude-code` è deprecato. Per aggiungere un plugin, esegui `claude plugin install <plugin>@claude-plugins-official` nella tua shell e salta qualsiasi passaggio di un tutorial che esegue `/plugin marketplace add anthropics/claude-code`.

45 

46A meno che tu non abbia uno dei due plugin elencati di seguito, puoi lasciare i tuoi plugin di `claude-code-plugins` e il marketplace così come sono. Vengono aggiornati dal repository `claude-plugins-official`.

43 47 

44La maggior parte dei plugin del marketplace demo si trova anche nel marketplace ufficiale con gli stessi nomi. Ad esempio, `code-review`, `feature-dev` e `commit-commands` sono presenti in entrambi. Installali da `claude-plugins-official` così da non avere due copie installate.48* **`ralph-wiggum`**: questo plugin ora si chiama `ralph-loop` e i suoi comandi iniziano con `/ralph-loop:`. Se questi comandi non sono disponibili, esegui `claude plugin install ralph-loop@claude-plugins-official` nella tua shell.

49* **`claude-opus-4-5-migration`**: questo plugin è stato ritirato, quindi rimuovilo eseguendo `claude plugin uninstall claude-opus-4-5-migration@claude-code-plugins` nella tua shell.

50 

51Se qualche altro plugin ha smesso di funzionare, consulta [Plugin installato ma non funzionante](https://code.claude.com/docs/it/plugins/troubleshooting.md#plugin-installed-but-not-working).

45 52 

46## Trovare plugin nel marketplace ufficiale53## Trovare plugin nel marketplace ufficiale

47 54 


62 69 

63Per installare dall'app desktop o da uno script, oppure per vedere cosa carica una sessione cloud, consulta [Installare i plugin](https://code.claude.com/docs/it/plugins/install.md).70Per installare dall'app desktop o da uno script, oppure per vedere cosa carica una sessione cloud, consulta [Installare i plugin](https://code.claude.com/docs/it/plugins/install.md).

64 71 

65### Aggiungere il marketplace community o demo72### Aggiungere il marketplace community

66 

67I marketplace community e demo non sono registrati finché non li aggiungi in una sessione di Claude Code:

68 73 

69* **Community**: esegui `/plugin marketplace add anthropics/claude-plugins-community`, poi installa con il suffisso `@claude-community`.74Il marketplace community non è registrato finché non lo aggiungi. In una sessione di Claude Code, esegui `/plugin marketplace add anthropics/claude-plugins-community`, poi installa con il suffisso `@claude-community`.

70* **Demo**: esegui `/plugin marketplace add anthropics/claude-code`, poi installa con il suffisso `@claude-code-plugins`.

71 75 

72Se `claude-plugins-official` non compare nella scheda **Marketplaces** di `/plugin`, aggiungilo allo stesso modo con `/plugin marketplace add anthropics/claude-plugins-official`.76Se `claude-plugins-official` non compare nella scheda **Marketplaces** di `/plugin`, aggiungilo allo stesso modo con `/plugin marketplace add anthropics/claude-plugins-official`.

73 77 

Details

638| Codice di uscita | Riga di verdetto | Significato |638| Codice di uscita | Riga di verdetto | Significato |

639| :- | :- | :- |639| :- | :- | :- |

640| `0` | `Validation passed` o `Validation passed with warnings` | Il manifest si carica. Con `--strict`, nemmeno avvertimenti |640| `0` | `Validation passed` o `Validation passed with warnings` | Il manifest si carica. Con `--strict`, nemmeno avvertimenti |

641| `1` | `Validation failed` o `Validation failed (--strict treats warnings as errors)` | Un errore, o un avvertimento sotto `--strict` |641| `1` | `Validation failed` o `Validation failed (--strict treats warnings as errors)` | Un errore, o un avvertimento sotto `--strict`. I [consigli](#advice-on-the-readme) non contano, con o senza `--strict` |

642| `2` | `Unexpected error during validation: <reason>` | Il validatore stesso ha fallito, come su un percorso illeggibile |642| `2` | `Unexpected error during validation: <reason>` | Il validatore stesso ha fallito, come su un percorso illeggibile |

643 643 

644Con `--json`, Claude Code scrive il rapporto su stdout come un oggetto JSON con questi campi di livello superiore:644Con `--json`, Claude Code scrive il rapporto su stdout come un oggetto JSON con questi campi di livello superiore:


647* `strict`: se l'esecuzione ha trattato gli avvertimenti come errori647* `strict`: se l'esecuzione ha trattato gli avvertimenti come errori

648* `target`: il percorso risolto che Claude Code ha convalidato648* `target`: il percorso risolto che Claude Code ha convalidato

649* `manifest`: il risultato del manifest stesso, o `null` per un'esecuzione senza manifest649* `manifest`: il risultato del manifest stesso, o `null` per un'esecuzione senza manifest

650* `contents`: risultati per file, ognuno nominando il suo `file` e portando array `errors`, `warnings` e `notes`650* `contents`: risultati per file, ognuno nominando il suo `file` e portando array `errors`, `warnings` e `notes`. I file senza errori, avvertimenti o note non hanno alcuna voce, quindi `contents` è vuoto quando non c'è nulla da segnalare. Per una [directory con `marketplace.json` e `plugin.json`](#validate-a-directory), `manifest` è il risultato di `marketplace.json` e i risultati di `plugin.json` finiscono in `contents`

651 * `gatingHooks`: se ogni hook del [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che può rifiutare un'azione, come un hook `tool.call`, ha un [gestore `.catch`](https://code.claude.com/docs/it/plugins/mods/events#handle-a-hook-that-fails). Ogni elemento fornisce `module`, `pattern`, `hook` e `hasCatch`. Richiede Claude Code v2.1.290 o successivo651 * `gatingHooks`: se ogni hook del [mod](https://code.claude.com/docs/it/plugins/mods/overview.md) che può rifiutare un'azione, come un hook `tool.call`, ha un [gestore `.catch`](https://code.claude.com/docs/it/plugins/mods/events#handle-a-hook-that-fails). Ogni elemento fornisce `module`, `pattern`, `hook` e `hasCatch`. Richiede Claude Code v2.1.290 o successivo

652* `advice`: i [consigli](#advice-on-the-readme) dell'esecuzione, ciascuno con il README indicato come `file` e con un `message` e l'`installLine` da incollare. Vuoto quando non ce ne sono. Richiede Claude Code v2.1.295 o successivo

652 653 

653All'uscita `2`, il comando non scrive nulla su stdout. Il messaggio di errore va su stderr.654All'uscita `2`, il comando non scrive nulla su stdout. Il messaggio di errore va su stderr.

654 655 

656#### Consigli sul README

657 

658Un blocco `Advice` nell'output di `claude plugin validate` significa che il README di un plugin non ha alcuna riga che installa il plugin da un marketplace, e ti fornisce una riga da aggiungere. Un consiglio non è un errore né un avvertimento. Non cambia la riga di verdetto né il codice di uscita, con o senza `--strict`. Richiede Claude Code v2.1.295 o successivo.

659 

660Ad esempio, convalidare la directory del marketplace `acme-tools` stampa questo consiglio per il suo plugin `deploy-helper`:

661 

662```text theme={null}

663Validating marketplace manifest: /path/to/acme-tools/.claude-plugin/marketplace.json

664 

665ℹ Advice (does not change the verdict):

666 

667 ❯ /path/to/acme-tools/plugins/deploy-helper/README.md: This README has no line that installs "deploy-helper" from a marketplace. Add the install line, which works in one step on Claude Code 2.1.275 or later.

668 /plugin install deploy-helper --marketplace acme/tools

669 

670✔ Validation passed

671```

672 

673Per eliminare il consiglio, incolla la riga suggerita nel README indicato, poi esegui di nuovo `claude plugin validate` nella tua shell. Il blocco `Advice` scompare.

674 

675Se la riga suggerita contiene il segnaposto `<owner>/<repo>`, incollarla senza modifiche non elimina il consiglio. Ottieni prima la source reale:

676 

677* **Hai convalidato la directory del plugin stesso**: quando il marketplace elenca il plugin da una directory al proprio interno, convalida invece quella directory. Quando lo elenca da un'altra posizione, come un repository GitHub, compila tu stesso `<owner>/<repo>`

678* **Hai convalidato la directory del marketplace**: Claude Code compila la source dal remote `origin` della directory `.git` in cima a quella directory. Quando non può usare quel remote, ad esempio quando non esiste, sostituisci tu stesso `<owner>/<repo>` con la source del tuo marketplace

679 

680Una riga di installazione che hai già scritto conta quando `plugin install`, o la sua forma breve `plugin i`, è seguito sulla stessa riga da uno di questi elementi. Contano sia la grafia `/plugin` sia `claude plugin`:

681 

682* `<plugin>@<marketplace>`, ad esempio `/plugin install deploy-helper@acme-tools`

683* Il nome del plugin e `--marketplace <source>`, ad esempio `/plugin install deploy-helper --marketplace acme/tools`

684 

655## Comandi claude plugin marketplace685## Comandi claude plugin marketplace

656 686 

657Esegui `claude plugin marketplace <subcommand>` dalla tua shell per aggiungere, elencare, aggiornare e rimuovere i marketplace da cui installi i plugin.687Esegui `claude plugin marketplace <subcommand>` dalla tua shell per aggiungere, elencare, aggiornare e rimuovere i marketplace da cui installi i plugin.

Details

376* [Struttura del plugin e test](https://claude.com/docs/plugins/build): la stessa cartella di plugin si installa su claude.ai e in Cowork. Alcuni componenti sono solo Claude Code e la [tabella di supporto dei componenti](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) elenca quali si caricano su ogni superficie376* [Struttura del plugin e test](https://claude.com/docs/plugins/build): la stessa cartella di plugin si installa su claude.ai e in Cowork. Alcuni componenti sono solo Claude Code e la [tabella di supporto dei componenti](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) elenca quali si caricano su ogni superficie

377* [Riferimento del manifest del plugin](https://code.claude.com/docs/it/plugins/manifest-reference.md): ogni campo `plugin.json`, regola di percorso e directory377* [Riferimento del manifest del plugin](https://code.claude.com/docs/it/plugins/manifest-reference.md): ogni campo `plugin.json`, regola di percorso e directory

378* [Skills](https://code.claude.com/docs/it/skills.md): scrivi le skills che il tuo plugin fornisce378* [Skills](https://code.claude.com/docs/it/skills.md): scrivi le skills che il tuo plugin fornisce

379* [Plugin di Anthropic nel repository claude-code](https://github.com/anthropics/claude-code/tree/main/plugins): esempi completi e funzionanti del layout su questa pagina, come `feature-dev` e `code-review`379* [Plugin di Anthropic nel repository claude-plugins-official](https://github.com/anthropics/claude-plugins-official/tree/main/plugins): esempi completi e funzionanti del layout su questa pagina, come `feature-dev` e `code-review`

Details

220 220 

221## Ospitare il tuo marketplace221## Ospitare il tuo marketplace

222 222 

223Una volta che puoi installare un plugin dal marketplace sulla tua macchina, come in [Creare un marketplace](#create-a-marketplace), spingi la directory del marketplace su un host git.223Una volta che puoi installare un plugin dal marketplace sulla tua macchina, come in [Creare un marketplace](#create-a-marketplace), spingi la directory del marketplace su un host git. Prima di eseguire il push, assegna al marketplace un `name` di primo livello che difficilmente altri autori sceglieranno, perché un utente [non può avere due marketplace con lo stesso nome](https://code.claude.com/docs/it/plugins/marketplace-reference.md#marketplace-file).

224 224 

225I tuoi colleghi quindi eseguono `claude plugin marketplace add <owner>/<repo>` nella loro shell per un repository GitHub, o lo stesso comando con l'URL del repository. Quindi installano un plugin per nome come nella [procedura dettagliata](#create-a-marketplace).225I tuoi colleghi quindi eseguono `claude plugin marketplace add <owner>/<repo>` nella loro shell per un repository GitHub, o lo stesso comando con l'URL del repository. Quindi installano un plugin per nome come nella [procedura dettagliata](#create-a-marketplace).

226 226 

Details

193 193 

194| Fonte | Cosa digiti | Esempio |194| Fonte | Cosa digiti | Esempio |

195| :- | :- | :- |195| :- | :- | :- |

196| Repository GitHub | `owner/repo`. Aggiungi `#ref` per fissare un ramo o un tag. | `/plugin marketplace add anthropics/claude-code`, o `/plugin marketplace add your-org/plugins#v1.2.0` per fissare il tag `v1.2.0` |196| Repository GitHub | `owner/repo`. Aggiungi `#ref` per fissare un branch o un tag. | `/plugin marketplace add anthropics/claude-plugins-official`, o `/plugin marketplace add your-org/plugins#v1.2.0` per fissare il tag `v1.2.0` |

197| Repository Git su qualsiasi host | L'URL di clonazione completo. Aggiungi `#ref` per fissare un ramo o un tag. | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |197| Repository Git su qualsiasi host | L'URL di clonazione completo. Aggiungi `#ref` per fissare un ramo o un tag. | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |

198| Directory o file locale | Un percorso relativo o assoluto a una directory che contiene `.claude-plugin/marketplace.json`, o al file JSON stesso. Inizia un percorso relativo con `./` o `../`, perché Claude Code legge un `name/name` nudo come un repository GitHub. | `/plugin marketplace add ./my-marketplace` |198| Directory o file locale | Un percorso relativo o assoluto a una directory che contiene `.claude-plugin/marketplace.json`, o al file JSON stesso. Inizia un percorso relativo con `./` o `../`, perché Claude Code legge un `name/name` nudo come un repository GitHub. | `/plugin marketplace add ./my-marketplace` |

199| `marketplace.json` ospitato | Il suo URL `https://` | `/plugin marketplace add https://example.com/marketplace.json` |199| `marketplace.json` ospitato | Il suo URL `https://` | `/plugin marketplace add https://example.com/marketplace.json` |


383 383 

384## Passaggi successivi384## Passaggi successivi

385 385 

386* [Marketplace di Anthropic](https://code.claude.com/docs/it/plugins/anthropic-marketplaces.md): come differiscono i marketplace ufficiale, della comunità e demo e dove sfogliare ognuno386* [Marketplace di Anthropic](https://code.claude.com/docs/it/plugins/anthropic-marketplaces.md): come differiscono i marketplace ufficiale e della comunità e dove sfogliare ognuno

387* [Plugin loading reference](https://code.claude.com/docs/it/plugins/loading.md): perché un plugin si è caricato, non si è caricato o non è cambiato dopo un aggiornamento387* [Plugin loading reference](https://code.claude.com/docs/it/plugins/loading.md): perché un plugin si è caricato, non si è caricato o non è cambiato dopo un aggiornamento

388* [Plugin security and trust](https://code.claude.com/docs/it/plugins/security.md): cosa rivedere prima di installare un plugin da un marketplace che non conosci388* [Plugin security and trust](https://code.claude.com/docs/it/plugins/security.md): cosa rivedere prima di installare un plugin da un marketplace che non conosci

389* [Troubleshoot plugins](https://code.claude.com/docs/it/plugins/troubleshooting.md): messaggi di errore di installazione e marketplace con le loro correzioni389* [Troubleshoot plugins](https://code.claude.com/docs/it/plugins/troubleshooting.md): messaggi di errore di installazione e marketplace con le loro correzioni

Details

106 106 

107**2. Scrivi il manifest**107**2. Scrivi il manifest**

108 108 

109Un mod è un plugin, e un mod ha bisogno di un [manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md). Il manifest di questo mod non ha campi speciali. Salva questo come `first-mod/.claude-plugin/plugin.json`:109Un mod è un plugin, e un mod ha bisogno di un [manifest](https://code.claude.com/docs/it/plugins/manifest-reference.md). Il manifest di questo mod non ha campi speciali. Salvalo come `first-mod/.claude-plugin/plugin.json`:

110 110 

111```json first-mod/.claude-plugin/plugin.json theme={null}111```json first-mod/.claude-plugin/plugin.json theme={null}

112{112{


121 121 

122Quando Claude Code carica un plugin, legge il file `hooks/hooks.json` del plugin. La chiave `modules` in quel file fornisce il percorso del tuo codice, ed è la sua presenza a rendere il plugin un mod. Elenca un percorso, relativo a `hooks.json`. Qui punta a `register.js`, che scrivi nel passaggio successivo.122Quando Claude Code carica un plugin, legge il file `hooks/hooks.json` del plugin. La chiave `modules` in quel file fornisce il percorso del tuo codice, ed è la sua presenza a rendere il plugin un mod. Elenca un percorso, relativo a `hooks.json`. Qui punta a `register.js`, che scrivi nel passaggio successivo.

123 123 

124Salva questo come `first-mod/hooks/hooks.json`:124Salvalo come `first-mod/hooks/hooks.json`:

125 125 

126```json first-mod/hooks/hooks.json theme={null}126```json first-mod/hooks/hooks.json theme={null}

127{127{


132 132 

133**4. Scrivi il codice**133**4. Scrivi il codice**

134 134 

135Questo file è il codice del mod, chiamato modulo degli hook. Quando il mod viene caricato, Claude Code chiama la funzione `register` esportata dal file e le passa una funzione chiamata [`on`](https://code.claude.com/docs/it/plugins/mods/reference#the-hook-function). Ogni chiamata a `on` registra un gestore di eventi, chiamato hook, per l'evento che nomina.135Questo file è il codice del mod, chiamato modulo degli hook. Quando il mod viene caricato, Claude Code chiama la funzione `register` esportata dal file e le passa una funzione chiamata [`on`](https://code.claude.com/docs/it/plugins/mods/reference#the-hook-function). Ogni chiamata a `on` registra un gestore di eventi, chiamato hook, per l'evento che indica.

136 136 

137Salva questo come `first-mod/hooks/register.js`:137Salvalo come `first-mod/hooks/register.js`:

138 138 

139```javascript first-mod/hooks/register.js theme={null}139```javascript first-mod/hooks/register.js theme={null}

140// The count, shared by the hooks below140// The count, shared by the hooks below


176}176}

177```177```

178 178 

179Il file tiene un conteggio in `calls` e registra quattro hook:179Il file mantiene un conteggio in `calls` e registra quattro hook:

180 180 

181* **[`session.start`](https://code.claude.com/docs/it/plugins/mods/reference#session)** viene eseguito all'avvio della sessione, prima del tuo primo prompt, e di nuovo ogni volta che il mod viene ricaricato. Aggiunge il comando `/tally` a Claude Code.181* **[`session.start`](https://code.claude.com/docs/it/plugins/mods/reference#session)** viene eseguito all'avvio della sessione, prima del tuo primo prompt, e di nuovo ogni volta che il mod viene ricaricato. Aggiunge il comando `/tally` a Claude Code.

182* **[`tool.call`](https://code.claude.com/docs/it/plugins/mods/reference#tools)** viene eseguito ogni volta che Claude sta per usare uno strumento. Aggiunge uno a `calls` e chiede a Claude Code di ridisegnare l'interfaccia.182* **[`tool.call`](https://code.claude.com/docs/it/plugins/mods/reference#tools)** viene eseguito ogni volta che Claude sta per usare uno strumento. Aggiunge uno a `calls` e chiede a Claude Code di ridisegnare l'interfaccia.


195 195 

196**6. Prova il mod**196**6. Prova il mod**

197 197 

198Chiedi a Claude di fare qualcosa che richieda alcune chiamate agli strumenti, come `list the files here and read the README`. Mentre Claude lavora, la parola dello spinner è seguita da un conteggio che aumenta, come in `Thinking · tool calls: 2…`. Quando Claude finisce, digita `/tally` e premi Invio. La trascrizione mostra `first-mod: Claude has made 2 tool calls since this mod loaded`, con il tuo conteggio. Claude Code antepone il nome del plugin al testo del comando.198Chiedi a Claude di fare qualcosa che richieda alcune chiamate agli strumenti, come `list the files here and read the README`. Mentre Claude lavora, la parola dello spinner è seguita da un conteggio che aumenta, come in `Thinking · tool calls: 2…`. Quando Claude ha finito, digita `/tally` e premi Enter. La trascrizione mostra `first-mod: Claude has made 2 tool calls since this mod loaded`, con il tuo conteggio. Claude Code antepone il nome del plugin al testo del comando.

199 199 

200Per verificare il comando senza una sessione interattiva, eseguilo in modalità non interattiva:200Per verificare il comando senza una sessione interattiva, eseguilo in modalità non interattiva:

201 201 


207first-mod: Claude has made 0 tool calls since this mod loaded207first-mod: Claude has made 0 tool calls since this mod loaded

208```208```

209 209 

210Se `/tally` non è nell'elenco dei comandi, il modulo non è stato caricato. Consulta [Scopri perché un mod non fa nulla](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing).210Se `/tally` non compare nell'elenco dei comandi, il modulo non è stato caricato. Consulta [Scopri perché un mod non fa nulla](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing).

211 211 

212**7. Modifica il codice mentre la sessione è in esecuzione**212**7. Modifica il codice mentre la sessione è in esecuzione**

213 213 

214Lascia aperta la sessione. In `register.js`, cambia `' · tool calls: '` in `' · tools used: '` nell'hook `ui.render` e salva. La riga evidenziata è quella che cambia:214Lascia la sessione aperta. In `register.js`, cambia `' · tool calls: '` in `' · tools used: '` nell'hook `ui.render` e salva. La riga evidenziata è quella che cambia:

215 215 

216```javascript first-mod/hooks/register.js {4} theme={null}216```javascript first-mod/hooks/register.js {4} theme={null}

217 // Runs each time Claude Code draws the spinner217 // Runs each time Claude Code draws the spinner


225 225 

226### Come funziona il mod di esempio226### Come funziona il mod di esempio

227 227 

228Ogni funzione che passi a `on` è un hook, ovvero un gestore di eventi. Claude Code passa a ogni hook gli stessi tre argomenti:228Ogni funzione che passi a `on` è un hook, cioè un gestore di eventi. Claude Code passa a ogni hook gli stessi tre argomenti:

229 229 

230* **L'API dei mod**, chiamata `$`: ogni metodo che un mod può chiamare per raggiungere l'esterno, organizzato in [namespace](https://code.claude.com/docs/it/plugins/mods/reference.md#mods-api-methods) come `$.ui` e `$.command`230* **L'API dei mod**, chiamata `$`: ogni metodo che un mod può chiamare per raggiungere l'esterno, in [namespace](https://code.claude.com/docs/it/plugins/mods/reference.md#mods-api-methods) come `$.ui` e `$.command`

231* **L'evento**, chiamato `e`: l'[input dell'evento](https://code.claude.com/docs/it/plugins/mods/reference.md#events) come dati semplici, ad esempio il nome e gli argomenti di una chiamata a uno strumento231* **L'evento**, chiamato `e`: l'[input dell'evento](https://code.claude.com/docs/it/plugins/mods/reference.md#events) come dati semplici, ad esempio il nome e gli argomenti di una chiamata a uno strumento

232* **Il gestore successivo**, chiamato [`next`](https://code.claude.com/docs/it/plugins/mods/events#how-a-hook-handles-an-event): una funzione che passa l'evento agli altri mod e poi al comportamento proprio di Claude Code, e restituisce il risultato232* **Il gestore successivo**, chiamato [`next`](https://code.claude.com/docs/it/plugins/mods/events#how-a-hook-handles-an-event): una funzione che passa l'evento agli altri mod e poi al comportamento proprio di Claude Code, e restituisce il risultato

233 233 

234Gli hook in `first-mod` gestiscono i loro eventi in questi modi:234Gli hook in `first-mod` gestiscono i loro eventi in questi modi:

235 235 

236* **Osservare**: l'hook `session.start` registra il comando e l'hook `tool.call` conta la chiamata e richiede un ridisegno. Entrambi restituiscono `next(e)`, quindi la sessione si avvia e lo strumento viene eseguito come di consueto.236* **Osservare**: l'hook `session.start` registra il comando, e l'hook `tool.call` conta la chiamata e chiede un nuovo disegno. Entrambi restituiscono `next(e)`, quindi la sessione si avvia e lo strumento viene eseguito come al solito.

237* **Rispondere**: l'hook `command.run` restituisce il proprio risultato e non chiama mai `next`. Il secondo argomento di `on`, `{ command: 'tally' }`, è un filtro, chiamato [matcher](https://code.claude.com/docs/it/plugins/mods/events.md#filter-which-events-a-hook-handles), quindi l'hook viene eseguito solo per `/tally`.237* **Rispondere**: l'hook `command.run` restituisce il proprio risultato e non chiama mai `next`. Il secondo argomento di `on`, `{ command: 'tally' }`, è un filtro, chiamato [matcher](https://code.claude.com/docs/it/plugins/mods/events.md#filter-which-events-a-hook-handles), quindi l'hook viene eseguito solo per `/tally`.

238* **Riscrivere**: l'hook `ui.render` chiama `next` con una copia di `e` il cui `suffix` contiene il conteggio, così Claude Code disegna il suo consueto spinner con il tuo testo dopo la parola238* **Riscrivere**: l'hook `ui.render` chiama `next` con una copia di `e` il cui `suffix` contiene il conteggio, così Claude Code disegna il suo consueto spinner con il tuo testo dopo la parola

239 239 

240Claude Code osserva una directory caricata con `--plugin-dir` e ricarica a caldo il modulo degli hook quando un file al suo interno cambia. Ogni ricaricamento esegue di nuovo `register`, quindi `calls` si azzera a `0` e `/tally` ricomincia a contare. Per mantenere un valore tra i ricaricamenti, consulta [Mantieni lo stato](https://code.claude.com/docs/it/plugins/mods/interface.md#keep-state).240Claude Code monitora una directory caricata con `--plugin-dir` e ricarica a caldo il modulo degli hook quando un file al suo interno cambia. Ogni ricaricamento esegue di nuovo `register`, quindi `calls` torna a `0` e `/tally` ricomincia a contare. Per mantenere un valore tra un ricaricamento e l'altro, consulta [Mantieni lo stato](https://code.claude.com/docs/it/plugins/mods/interface.md#keep-state).

241 241 

242## Continua a lavorare su un mod242## Continua a lavorare su un mod

243 243 

Details

179 179 

180Un hook `ui.render` viene eseguito per ogni punto di rendering, a meno che tu non lo limiti a quello in cui vuoi disegnare. Per scegliere il punto di rendering, passa un filtro, chiamato [matcher](https://code.claude.com/docs/it/plugins/mods/events.md#filter-which-events-a-hook-handles), come secondo argomento di `on`. `{ component: 'Pane' }` esegue l'hook solo per i pannelli. Nell'hook, `e.component` indica il punto, `e.surface` indica quale app sta disegnando e `e.props` contiene i dati propri del punto. Per un pannello, `e.requestId` è l'`id` con cui lo hai aperto.180Un hook `ui.render` viene eseguito per ogni punto di rendering, a meno che tu non lo limiti a quello in cui vuoi disegnare. Per scegliere il punto di rendering, passa un filtro, chiamato [matcher](https://code.claude.com/docs/it/plugins/mods/events.md#filter-which-events-a-hook-handles), come secondo argomento di `on`. `{ component: 'Pane' }` esegue l'hook solo per i pannelli. Nell'hook, `e.component` indica il punto, `e.surface` indica quale app sta disegnando e `e.props` contiene i dati propri del punto. Per un pannello, `e.requestId` è l'`id` con cui lo hai aperto.

181 181 

182Il pannello e la banda sono vuoti finché un mod non li riempie. Seleziona una scheda per vedere cos'è ciascuno e come disegnarci:182Il pannello e la fascia sono vuoti finché un mod non li riempie. Seleziona una scheda per vedere che cos'è ciascuno e come disegnarci dentro:

183 183 

184**Pannello**184**Pannello**

185 185 

186Un pannello è una barra laterale accanto alla trascrizione in un terminale a schermo intero ampio, oppure, negli altri casi, un'area incorniciata sopra il prompt. Con più pannelli aperti, ognuno ha una scheda che ne mostra il titolo.186Un pannello è una barra laterale accanto alla trascrizione in un terminale a schermo intero ampio, oppure, negli altri casi, un'area incorniciata sopra il prompt. Con più pannelli aperti, ognuno ha una scheda che ne mostra il titolo.

187 187 

188Un pannello compare quando il tuo mod chiama `$.ui.open` con un `id` a tua scelta, come in `$.ui.open({ id: 'hello-tabs' })`. [Apri un pannello al momento giusto](#open-a-pane-at-the-right-time) descrive gli altri campi e quando un pannello attende un terminale più ampio.188Un pannello appare quando il tuo mod chiama `$.ui.open` con un `id` che scegli tu, come in `$.ui.open({ id: 'hello-tabs' })`. [Apri un pannello al momento giusto](#open-a-pane-at-the-right-time) descrive gli altri campi e quando un pannello attende un terminale più ampio.

189 189 

190Per disegnare nel tuo pannello, filtra su `{ component: 'Pane' }` e verifica che `e.requestId` sia il tuo `id`.190Per disegnare nel tuo pannello, filtra su `{ component: 'Pane' }` e verifica che `e.requestId` sia il tuo `id`.

191 191 

192**Banda sopra il prompt**192**Fascia sopra il prompt**

193 193 

194La banda è una striscia direttamente sopra l'input del prompt. È sempre presente e tutti i mod la condividono.194La fascia è una striscia direttamente sopra il campo di input del prompt. È sempre presente e tutti i mod la condividono.

195 195 

196Il tuo hook restituisce un albero per mostrare qualcosa nella banda, oppure `next(e)` per non mostrare nulla. Un albero sostituisce ciò che i mod [eseguiti dopo il tuo](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) disegnano lì. Per mantenere il loro contenuto, inserisci il risultato di `await next(e)` tra i figli di un [`Box`](#build-a-tree-from-elements) nel tuo albero.196Il tuo hook restituisce un albero per mostrare qualcosa nella fascia, oppure `next(e)` per non mostrare nulla. Un albero sostituisce ciò che i mod [dopo il tuo](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) disegnano lì. Per mantenere ciò che disegnano loro, inserisci il risultato di `await next(e)` tra i figli di un [`Box`](#build-a-tree-from-elements) nel tuo albero.

197 197 

198Per disegnare nella banda, filtra su `{ component: 'AbovePrompt' }`.198Per disegnare nella fascia, filtra su `{ component: 'AbovePrompt' }`.

199 199 

200### Modifica ciò che Claude Code già disegna200### Modifica ciò che Claude Code disegna già

201 201 

202Claude Code disegna da sé la maggior parte della propria interfaccia: messaggi, righe delle chiamate agli strumenti, lo spinner e altro. Ognuna di queste parti è anch'essa un punto di rendering, quindi un mod può cambiarne lo stile o sostituirla. Per modificarne una, filtra il tuo hook `ui.render` sul suo nome preso da questa tabella:202Claude Code disegna da sé la maggior parte della propria interfaccia: i messaggi, le righe delle chiamate agli strumenti, lo spinner e altro ancora. Anche ciascuna di queste parti è un punto di rendering, quindi un mod può cambiarne lo stile o sostituirla. Per modificarne una, filtra il tuo hook `ui.render` sul suo nome preso da questa tabella:

203 203 

204| Punto | Cos'è |204| Punto | Che cos'è |

205| :- | :- |205| :- | :- |

206| `UserMessage`, `AssistantMessage` | Un messaggio nella trascrizione |206| `UserMessage`, `AssistantMessage` | Un messaggio nella trascrizione |

207| `ToolUse`, `ToolResult`, `ToolGroup` | La riga di una chiamata a uno strumento, il suo risultato e un gruppo compresso di chiamate |207| `ToolUse`, `ToolResult`, `ToolGroup` | La riga di una chiamata a uno strumento, il suo risultato e un gruppo compresso di chiamate |

208| `CommandOutput` | La riga stampata da un comando |208| `CommandOutput` | La riga stampata da un comando |

209| `AskUserQuestion` | La finestra di dialogo che Claude apre per farti una domanda |209| `AskUserQuestion` | La finestra di dialogo che Claude apre per farti una domanda |

210| `Spinner`, `ToolProgress`, `TurnDuration` | Righe di stato di un turno: la riga animata mentre Claude lavora, la riga di avanzamento in tempo reale di uno strumento in esecuzione e la riga che chiude un turno |210| `Spinner`, `ToolProgress`, `TurnDuration` | Le righe di stato di un turno: la riga animata mentre Claude lavora, la riga di avanzamento in tempo reale di uno strumento in esecuzione e la riga che chiude un turno |

211| `InfoNotice`, `SessionMode`, `PromptHint` | Le righe di stato sotto il logo, le etichette della modalità nel piè di pagina e la riga di suggerimento sotto il prompt |211| `InfoNotice`, `SessionMode`, `PromptHint` | Le righe di stato sotto il logo, le etichette della modalità nel piè di pagina e la riga di suggerimento sotto il prompt |

212 212 

213`Pane`, `AskUserQuestion`, `Spinner`, `UserMessage`, `AssistantMessage` e i punti delle chiamate agli strumenti funzionano nel terminale, nell'app Desktop e nell'estensione VS Code. La [tabella dei punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) indica dove viene generato ciascuno degli altri.213`Pane`, `AskUserQuestion`, `Spinner`, `UserMessage`, `AssistantMessage` e i punti delle chiamate agli strumenti funzionano nel terminale, nell'app Desktop e nell'estensione VS Code. La [tabella dei punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) indica dove viene generato ciascuno degli altri.

214 214 

215In un punto che Claude Code già disegna, il tuo hook può modificare un dettaglio, sostituire il disegno o lasciarlo com'è. Seleziona una scheda per vedere ciascuna opzione applicata allo spinner. Gli esempi leggono una variabile `calls` che un altro hook incrementa, come nel [mod del tutorial](https://code.claude.com/docs/it/plugins/mods/create.md#write-a-mod-yourself).215In un punto che Claude Code disegna già, il tuo hook può modificare un dettaglio, sostituire il disegno o lasciarlo invariato. Seleziona una scheda per vedere ciascuna opzione applicata allo spinner. Gli esempi leggono una variabile `calls` conteggiata da un altro hook, come nel [mod del tutorial](https://code.claude.com/docs/it/plugins/mods/create.md#write-a-mod-yourself).

216 216 

217**Modifica un dettaglio**217**Modifica un dettaglio**

218 218 


249Claude has made 2 tool calls249Claude has made 2 tool calls

250```250```

251 251 

252**Lascialo com'è**252**Lascialo invariato**

253 253 

254Per lasciare il punto così come lo disegna Claude Code, restituisci `next(e)`. Spesso un hook lo fa per alcuni eventi e non per altri. Questo hook lascia lo spinner com'è finché non c'è una chiamata da contare:254Per lasciare il punto così come lo disegna Claude Code, restituisci `next(e)`. Spesso un hook lo fa per alcuni eventi e non per altri. Questo hook lascia invariato lo spinner finché non c'è una chiamata da contare:

255 255 

256```javascript theme={null}256```javascript theme={null}

257on('ui.render', { component: 'Spinner' }, async ($, e, next) => {257on('ui.render', { component: 'Spinner' }, async ($, e, next) => {


277})277})

278```278```

279 279 

280Mentre Claude lavora, lo spinner si anima come prima e `under the spinner` compare sotto di esso.280Mentre Claude lavora, lo spinner si anima come prima e `under the spinner` appare sotto di esso.

281 281 

282La richiesta di permesso non è un punto di rendering, quindi un mod non può modificare ciò che mostra. La finestra di dialogo delle domande, `AskUserQuestion`, lo è, quindi un mod può modificarla. Un albero per la finestra di dialogo deve contenere il riferimento esattamente una volta, con i tuoi elementi sopra di esso. In caso contrario, Claude Code disegna la propria finestra di dialogo.282La richiesta di permesso non è un punto di rendering, quindi un mod non può modificare ciò che mostra. La finestra di dialogo delle domande, `AskUserQuestion`, lo è, quindi un mod può modificarla. Un albero per la finestra di dialogo deve contenere il riferimento esattamente una volta, con i tuoi elementi sopra di esso. In caso contrario, Claude Code disegna la propria finestra di dialogo.

283 283 

284### Apri un pannello al momento giusto284### Apri un pannello al momento giusto

285 285 

286Un pannello compare solo quando il tuo mod lo apre. Come e quando lo apri determina se riceve il focus della tastiera, quanto spazio richiede e se viene mostrato o meno in un terminale stretto.286Un pannello appare solo quando il tuo mod lo apre. Il modo e il momento in cui lo apri determinano se riceve il focus della tastiera, quanto spazio richiede e se viene mostrato o meno in un terminale stretto.

287 287 

288Per aprire un pannello, chiama [`$.ui.open`](https://code.claude.com/docs/it/plugins/mods/reference#mods-api-methods) con un `id` a tua scelta. L'`id` è il nome del pannello: il tuo hook `ui.render` lo verifica, e lo passi di nuovo per chiudere il pannello.288Per aprire un pannello, chiama [`$.ui.open`](https://code.claude.com/docs/it/plugins/mods/reference#mods-api-methods) con un `id` che scegli tu. L'`id` è il nome del pannello: il tuo hook `ui.render` lo verifica e lo passi di nuovo per chiudere il pannello.

289 289 

290```javascript theme={null}290```javascript theme={null}

291await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })291await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })


299 299 

300Oltre a `id`, `$.ui.open` accetta questi campi facoltativi:300Oltre a `id`, `$.ui.open` accetta questi campi facoltativi:

301 301 

302| Campo | Cosa fa |302| Campo | Che cosa fa |

303| :- | :- |303| :- | :- |

304| `title` | L'etichetta della scheda del pannello quando è aperto più di un pannello |304| `title` | L'etichetta della scheda del pannello quando sono aperti più pannelli |

305| `focus` | Richiede il [focus della tastiera](#know-which-keys-your-mod-can-receive) |305| `focus` | Richiede il [focus della tastiera](#know-which-keys-your-mod-can-receive) |

306| `closeOnEscape` | Fa sì che Esc chiuda il pannello |306| `closeOnEscape` | Fa sì che Esc chiuda il pannello |

307| `holdToasts` | Nel terminale, trattiene i toast finché è questo il pannello mostrato. Vedi [Trattieni i toast dietro una finestra di dialogo](#hold-toasts-behind-a-dialog). |307| `holdToasts` | Nel terminale, trattiene i toast finché è questo il pannello visualizzato. Consulta [Trattieni i toast dietro una finestra di dialogo](#hold-toasts-behind-a-dialog). |

308| `rows` | L'altezza da richiedere quando il pannello si trova sopra il prompt. Il valore predefinito è un terzo dello spazio. |308| `rows` | L'altezza da richiedere quando il pannello si trova sopra il prompt. Il valore predefinito è un terzo dello spazio. |

309| `columns` | La larghezza da richiedere quando il pannello si trova accanto alla trascrizione, al massimo il 45% della larghezza del terminale. Una volta che l'utente ha ridimensionato un pannello accanto alla trascrizione, in questa sessione o in una precedente, i pannelli si aprono lì con la larghezza che ha impostato. Lo stesso limite del 45% si applica a quella larghezza. |309| `columns` | La larghezza da richiedere quando il pannello si trova accanto alla trascrizione, al massimo il 45% della larghezza del terminale. Dopo che l'utente ha ridimensionato un pannello accanto alla trascrizione, in questa sessione o in una precedente, i pannelli si aprono lì con la larghezza da lui impostata. Lo stesso limite del 45% si applica a quella larghezza. |

310 310 

311L'[estensione VS Code](#draw-in-the-vs-code-extension) ignora `rows` e `columns` e dimensiona il pannello da sé.311L'[estensione VS Code](#draw-in-the-vs-code-extension) ignora `rows` e `columns` e dimensiona il pannello da sé.

312 312 


317await $.ui.open(items.length > 0 ? { ...pane, focus: true } : pane)317await $.ui.open(items.length > 0 ? { ...pane, focus: true } : pane)

318```318```

319 319 

320Per consentire a un comando di aprire il pannello mentre Claude sta lavorando, aggiungi `immediate: true` quando [registri il comando](https://code.claude.com/docs/it/plugins/mods/api.md#add-a-command). Senza di esso, un comando digitato durante un turno attende la fine del turno.320Per consentire a un comando di aprire il pannello mentre Claude sta lavorando, aggiungi `immediate: true` quando [registri il comando](https://code.claude.com/docs/it/plugins/mods/api.md#add-a-command). Senza questo campo, un comando digitato durante un turno attende la fine del turno.

321 321 

322#### Trattieni i toast dietro una finestra di dialogo322#### Trattieni i toast dietro una finestra di dialogo

323 323 

324Passa `holdToasts: true` a `$.ui.open` quando il pannello è una finestra di dialogo a cui l'utente risponde e che poi lascia, così i toast non compaiono mentre decide. Nel terminale, la trattenuta dura finché è quel pannello a essere mostrato, e un toast generato in quel lasso di tempo attende la fine della trattenuta.324Passa `holdToasts: true` a `$.ui.open` quando il pannello è una finestra di dialogo a cui l'utente risponde e che poi lascia, in modo che i toast non appaiano mentre decide. Nel terminale, la sospensione dura finché è quel pannello a essere visualizzato, e un toast generato in quel lasso di tempo attende la fine della sospensione.

325 325 

326Claude Code trattiene i toast degli altri mod e le proprie notifiche di breve durata, oltre a quelli che il tuo mod genera con [`$.ui.toast`](https://code.claude.com/docs/it/plugins/mods/api#show-something-without-starting-a-turn). Ometti il campo in un pannello che resta aperto, così l'utente continua a vederli.326Claude Code trattiene i toast degli altri mod e le proprie notifiche di breve durata, oltre a quelli che il tuo mod genera con [`$.ui.toast`](https://code.claude.com/docs/it/plugins/mods/api#show-something-without-starting-a-turn). Ometti il campo in un pannello che resta aperto, così l'utente continua a vederli.

327 327 

328#### Quando un pannello attende un terminale più ampio328#### Quando un pannello attende un terminale più ampio

329 329 

330Un pannello che il tuo mod apre senza che gli sia stato chiesto non compare in un terminale stretto, così non può occupare uno schermo piccolo. Se compare o meno dipende da cosa lo ha aperto:330Un pannello che il tuo mod apre senza che gli venga chiesto non appare in un terminale stretto, così non può occupare uno schermo piccolo. Se appare o meno dipende da che cosa lo ha aperto:

331 331 

332* **Aperto da un'azione dell'utente**, come un comando eseguito o un pulsante premuto, il pannello compare a qualsiasi larghezza332* **Aperto da un'azione dell'utente**, come un comando che ha eseguito o un pulsante che ha premuto, il pannello appare a qualsiasi larghezza

333* **Aperto dal tuo mod di propria iniziativa**, ad esempio da un timer o da un hook [`turn.start`](https://code.claude.com/docs/it/plugins/mods/events#follow-a-turn), il pannello compare solo in un terminale largo almeno 144 colonne. Dopo che l'utente ha aperto quel pannello almeno una volta di persona, bastano 110 colonne.333* **Aperto dal tuo mod di sua iniziativa**, ad esempio da un timer o da un hook [`turn.start`](https://code.claude.com/docs/it/plugins/mods/events#follow-a-turn), il pannello appare solo in un terminale largo almeno 144 colonne. Dopo che l'utente ha aperto quel pannello una volta da sé, bastano 110 colonne.

334 334 

335Quando il pannello compare, `$.ui.open` si risolve in `{ isPlaced: true }`. Quando il pannello è in attesa, `isPlaced` è `false` e `reason` è una stringa che ne spiega il motivo. Un pannello in attesa compare quando l'utente lo apre o allarga il terminale. Per segnalare che qualcosa è disponibile senza aprire un pannello, chiama `$.ui.toast('Your message')`, che mostra una notifica toast.335Quando il pannello appare, `$.ui.open` si risolve in `{ isPlaced: true }`. Quando il pannello è in attesa, `isPlaced` è `false` e `reason` è una stringa che ne indica il motivo. Un pannello in attesa appare quando l'utente lo apre o allarga il terminale. Per segnalare che qualcosa è disponibile senza aprire un pannello, chiama `$.ui.toast('Your message')`, che mostra una notifica toast.

336 336 

337### Disegna nell'estensione VS Code337### Disegna nell'estensione VS Code

338 338 

339Nell'estensione VS Code, ciò che un mod disegna compare nel pannello della chat con la versione dell'estensione 2.1.299 o successiva. Una sessione che [non recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), come una su Amazon Bedrock, richiede la versione 2.1.304 o successiva. In un hook `ui.render` per il pannello della chat, `e.surface` è `vscode`. Per verificare quali punti ed elementi disegna il pannello della chat e quali prop ignora, consulta le tabelle dei [punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) e degli [elementi](https://code.claude.com/docs/it/plugins/mods/reference.md#elements).339Nell'estensione VS Code, ciò che un mod disegna appare nel pannello della chat con l'estensione alla versione 2.1.299 o successiva. Una sessione che [non recupera i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), come una su Amazon Bedrock, richiede la versione 2.1.304 o successiva. In un hook `ui.render` per il pannello, `e.surface` è `vscode`. Per verificare quali punti ed elementi il pannello disegna e quali prop ignora, consulta le tabelle dei [punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) e degli [elementi](https://code.claude.com/docs/it/plugins/mods/reference.md#elements).

340 340 

341Per far funzionare un mod nel pannello della chat oltre che nel terminale, tieni conto di queste differenze:341Per far funzionare un mod nel pannello oltre che nel terminale, tieni conto di queste differenze:

342 342 

343* **Pannelli**: in un pannello della chat largo 800 pixel o più, i pannelli si agganciano accanto alla conversazione, `e.props.placement` è `'dock'` ed `e.viewport.isFullscreen` è `true`. In un pannello della chat più stretto, i pannelli vengono disegnati sopra la casella del prompt, `placement` è `'inline'` e un pannello mostra 12 righe prima di scorrere.343* **Pannelli**: in un pannello largo 800 pixel o più, i pannelli si agganciano accanto alla conversazione, `e.props.placement` è `'dock'` ed `e.viewport.isFullscreen` è `true`. In un pannello più stretto, i pannelli vengono disegnati sopra la casella del prompt, `placement` è `'inline'` e un pannello mostra 12 righe prima di scorrere.

344* **Toast e righe di stato**: si trovano in un'unica pila direttamente sopra la casella del prompt, insieme ai pannelli quando il pannello della chat è stretto, con una riga di stato per mod. La pila è nascosta mentre viene mostrata una richiesta di permesso o una finestra di dialogo.344* **Toast e righe di stato**: si trovano in un'unica pila direttamente sopra la casella del prompt, insieme ai pannelli quando il pannello della chat è stretto, con una riga di stato per mod. La pila è nascosta mentre è visualizzata una richiesta di permesso o una finestra di dialogo.

345* **Etichette**: il pannello della chat incornicia ciò che un mod disegna o riscrive e lo etichetta con il nome del plugin, come in **From the token-chart plugin** o **Edited by the token-chart plugin**.345* **Etichette**: il pannello incornicia ciò che un mod disegna o riscrive e lo etichetta con il nome del plugin, come in **From the token-chart plugin** o **Edited by the token-chart plugin**.

346* **Tastiera**: i pulsanti non hanno tasti di scelta rapida, quindi l'utente fa clic su un pulsante o preme Invio su di esso quando ha il focus.346* **Tastiera**: i pulsanti non hanno tasti di scelta rapida, quindi l'utente fa clic su un pulsante o preme Enter su di esso quando ha il focus.

347* **Focus della tastiera**: il pannello della chat accoglie la richiesta `focus: true` di un pannello solo quando il pannello della chat ha il focus, Claude è inattivo senza domande in attesa e la casella del prompt è vuota.347* **Focus della tastiera**: il pannello concede la richiesta `focus: true` di un pannello solo quando il pannello della chat ha il focus, Claude è inattivo senza domande in attesa e la casella del prompt è vuota.

348* **La finestra di dialogo delle domande**: in `AskUserQuestion`, il pannello della chat mantiene la propria scheda della domanda e disegna i tuoi elementi sopra di essa. Le prop che passi a `next` non modificano la scheda.348* **La finestra di dialogo delle domande**: in `AskUserQuestion`, il pannello mantiene la propria scheda della domanda e disegna i tuoi elementi sopra di essa. Le prop che passi a `next` non modificano la scheda.

349* **Suggerimenti per il prompt**: `$.prompt.suggest` si risolve con `isShown: false` e non mostra nulla, perché il pannello della chat riserva il testo di suggerimento attenuato della casella del prompt ai suggerimenti di Claude.349* **Suggerimenti per il prompt**: `$.prompt.suggest` si risolve con `isShown: false` e non mostra nulla, perché il pannello riserva il testo di suggerimento attenuato della casella del prompt ai suggerimenti di Claude.

350* **Limiti del testo**: il pannello della chat tronca una riga di stato a 200 caratteri o due righe, e un toast a 500 caratteri.350* **Limiti del testo**: il pannello tronca una riga di stato a 200 caratteri o due righe, e un toast a 500 caratteri.

351 351 

352## Creare un albero a partire dagli elementi352## Costruire un albero di elementi

353 353 

354Ciò che un hook `ui.render` restituisce è un albero di elementi: una descrizione di cosa disegnare, composta da box, testo e controlli annidati l'uno nell'altro. Tu descrivi il disegno e Claude Code lo renderizza in qualunque app l'utente abbia aperta: il terminale, l'app Desktop o l'estensione VS Code.354Ciò che un hook `ui.render` restituisce è un albero di elementi: una descrizione di cosa disegnare, composta da box, testo e controlli annidati l'uno dentro l'altro. Tu descrivi il disegno e Claude Code lo esegue nell'app che l'utente ha aperto: il terminale, l'app Desktop o l'estensione VS Code.

355 355 

356Per ottenere gli elementi, chiama `$.ui.resolve(e)` nel tuo hook, come in `const { Box, Text, Button } = $.ui.resolve(e)`. Ogni elemento è una funzione. Le passi delle prop e inserisci in `children` gli elementi e le stringhe che vanno al suo interno.356Per ottenere gli elementi, chiama `$.ui.resolve(e)` nel tuo hook, come in `const { Box, Text, Button } = $.ui.resolve(e)`. Ogni elemento è una funzione. Le passi delle prop e inserisci in `children` gli elementi e le stringhe che vanno al suo interno.

357 357 


390 390 

391**Button**391**Button**

392 392 

393`Button` è un controllo che l'utente può premere. Esegue la tua callback `onPress`. Con `plain: true` non ha parentesi quadre e mostra il suo tasto di scelta rapida:393`Button` è un controllo che l'utente può premere. Esegue la tua callback `onPress`. Con `plain: true` non ha parentesi e mostra il suo tasto di scelta rapida:

394 394 

395```javascript theme={null}395```javascript theme={null}

396Button({ key: 'more', label: 'Add one', onPress: addOne })396Button({ key: 'more', label: 'Add one', onPress: addOne })


404 404 

405**Input**405**Input**

406 406 

407`Input` è un campo di testo. Esegue la tua callback `onSubmit` con il testo quando l'utente preme Invio:407`Input` è un campo di testo. Esegue la tua callback `onSubmit` con il testo quando l'utente preme Enter:

408 408 

409```javascript theme={null}409```javascript theme={null}

410Input({410Input({


430| `Box` | Un contenitore flex che accetta prop di layout come `flexDirection`, [`borderStyle`](https://code.claude.com/docs/it/plugins/mods/reference#box-border-styles) e `width`. Le prop di spaziatura come `columnGap` e `padding` accettano un numero o un [nome di step](https://code.claude.com/docs/it/plugins/mods/reference.md#box-spacing-steps) da `'xs'` a `'xl'`. | Ovunque |430| `Box` | Un contenitore flex che accetta prop di layout come `flexDirection`, [`borderStyle`](https://code.claude.com/docs/it/plugins/mods/reference#box-border-styles) e `width`. Le prop di spaziatura come `columnGap` e `padding` accettano un numero o un [nome di step](https://code.claude.com/docs/it/plugins/mods/reference.md#box-spacing-steps) da `'xs'` a `'xl'`. | Ovunque |

431| `Text` | Testo con stile. Accetta `color`, `bold`, `dimColor`, `italic`, `wrap` e altre come [`weight`](https://code.claude.com/docs/it/plugins/mods/reference#text-typography). Un `color` è una chiave del tema o un colore come `'red'`. Un `wrap` è `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` o `'truncate-end'`. | Ovunque |431| `Text` | Testo con stile. Accetta `color`, `bold`, `dimColor`, `italic`, `wrap` e altre come [`weight`](https://code.claude.com/docs/it/plugins/mods/reference#text-typography). Un `color` è una chiave del tema o un colore come `'red'`. Un `wrap` è `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` o `'truncate-end'`. | Ovunque |

432| `Button` | Un controllo che chiama `onPress` | Ovunque |432| `Button` | Un controllo che chiama `onPress` | Ovunque |

433| `Link`, `Code`, `Markdown` | Un link con `href` e un `label` facoltativo, un blocco di codice e testo formattato come le risposte di Claude. `Markdown` riceve il suo contenuto nella prop `text`, non in `children`, e richiede una `key` quando passi `onLinkPress`. | Ovunque |433| `Link`, `Code`, `Markdown` | Un link con `href` e una `label` facoltativa, un blocco di codice e testo formattato come le risposte di Claude. `Markdown` riceve il suo contenuto in una prop `text`, non in `children`, e richiede una `key` quando passi `onLinkPress`. | Ovunque |

434| `Input`, `Select` | Un campo di testo e un menu a discesa | Terminale, Desktop, VS Code |434| `Input`, `Select` | Un campo di testo e un menu a discesa | Terminale, Desktop, VS Code |

435| `Svg` | Un documento SVG | Desktop, VS Code |435| `Svg` | Un documento SVG | Desktop, VS Code |

436| `Client` | Un'area disegnata da un secondo file tuo, per animazioni e input del puntatore. Quel file non riceve alcuna API dei mod. Raggiunge i tuoi hook inviando dati, che arrivano come evento `ui.message`. Se non riesce a caricarsi, a disegnare o a essere eseguito, i tuoi hook ricevono un evento [`ui.fault`](https://code.claude.com/docs/it/plugins/mods/reference#interface). | Terminale, Desktop |436| `Client` | Un'area disegnata da un tuo secondo file, per animazioni e input del puntatore. Quel file non riceve l'API dei mod. Raggiunge i tuoi hook inviando dati, che arrivano come evento `ui.message`. Se non riesce a caricarsi, a disegnare o a essere eseguito, i tuoi hook ricevono un evento [`ui.fault`](https://code.claude.com/docs/it/plugins/mods/reference#interface). | Terminale, Desktop |

437| `Raster`, `Image` | Una [griglia di celle colorate](#draw-a-grid-of-colored-cells) e un'immagine | Terminale |437| `Raster`, `Image` | Una [griglia di celle colorate](#draw-a-grid-of-colored-cells) e un'immagine | Terminale |

438 438 

439Se il tuo modulo è un file `.tsx` o `.jsx`, puoi scrivere l'albero in JSX. Prima destruttura gli elementi da `$.ui.resolve(e)`.439Se il tuo modulo è un file `.tsx` o `.jsx`, puoi scrivere l'albero in JSX. Destruttura prima gli elementi da `$.ui.resolve(e)`.

440 440 

441Se il tuo disegno non viene visualizzato, controlla se il suo albero contiene una prop che un elemento non accetta o un figlio dove non è previsto. Un hook che restituisce un albero del genere [non riesce](https://code.claude.com/docs/it/plugins/mods/events.md#handle-a-hook-that-fails), e una [riga `hook skipped`](https://code.claude.com/docs/it/plugins/mods/troubleshoot#a-pane-or-band-is-empty) indica il tuo mod e la regola che l'albero ha violato. Per un `Text` in un pannello con una prop chiamata `bogusProp`, quella riga è:441Se il tuo disegno non compare, controlla nel suo albero se c'è una prop che un elemento non accetta o un figlio dove non ne sono previsti. Un hook che restituisce un albero del genere [fallisce](https://code.claude.com/docs/it/plugins/mods/events.md#handle-a-hook-that-fails), e una [riga `hook skipped`](https://code.claude.com/docs/it/plugins/mods/troubleshoot#a-pane-or-band-is-empty) indica il tuo mod e la regola violata dall'albero. Per un `Text` in un pannello con una prop chiamata `bogusProp`, quella riga è:

442 442 

443```text theme={null}443```text theme={null}

444my-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Text prop "bogusProp" is not allowed)444my-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Text prop "bogusProp" is not allowed)


450 450 

451* **Schema e host**: un URL `https:` o un URL `http://localhost` come `http://localhost:3000`451* **Schema e host**: un URL `https:` o un URL `http://localhost` come `http://localhost:3000`

452* **Nessuna `@`**: scrivi una `@` nel percorso o nella query come `%40`452* **Nessuna `@`**: scrivi una `@` nel percorso o nella query come `%40`

453* **Grafia**: ciò che restituisce `new URL(href).href`, a parte una `/` mancante dopo l'host. Questo esclude un host in maiuscolo, uno spazio e `:443` in un URL `https:`.453* **Grafia**: quella restituita da `new URL(href).href`, a parte una `/` mancante dopo l'host. Questo esclude un host in maiuscolo, uno spazio e `:443` in un URL `https:`.

454 454 

455Nel terminale, questi requisiti non si applicano.455Nel terminale questi requisiti non si applicano.

456 456 

457### Quando un `Client` non riesce457### Quando un `Client` fallisce

458 458 

459Nel terminale, quando il file eseguito da un `Client` non riesce, una riga attenuata come `my-mod: Client client/spinner.js: boom` prende il posto del `Client`, e il resto del tuo disegno continua a essere visualizzato.459Nel terminale, quando il file eseguito da un `Client` fallisce, una riga attenuata come `my-mod: Client client/spinner.js: boom` prende il posto del `Client`, e il resto del tuo disegno viene comunque mostrato.

460 460 

461Se il tuo mod gestisce [`ui.fault`](https://code.claude.com/docs/it/plugins/mods/reference#interface), Claude Code quindi [disegna di nuovo quel punto](#when-claude-code-redraws-without-being-asked).461Se il tuo mod gestisce [`ui.fault`](https://code.claude.com/docs/it/plugins/mods/reference#interface), Claude Code allora [disegna di nuovo il punto](#when-claude-code-redraws-without-being-asked).

462 462 

463### Disegnare una griglia di celle colorate463### Disegnare una griglia di celle colorate

464 464 

465Per una mappa di calore, una sparkline o un tabellone di gioco nel terminale, disegna un unico `Raster` e non un `Box` per ogni cella. Un `Raster` accetta una `key`, le sue dimensioni in `columns` e `rows`, e `cells`, una stringa base64 che racchiude tutte le celle. Ogni cella è composta da tre numeri: il code point del carattere, il suo colore e il suo colore di sfondo. Un colore è un valore RGB a 24 bit in esadecimale, come `0xc62828` per un rosso. Il valore `0x01000000`, uno sopra quell'intervallo, indica il colore predefinito del terminale.465Per una mappa di calore, una sparkline o un tabellone di gioco nel terminale, disegna un solo `Raster` e non un `Box` per ogni cella. Un `Raster` accetta una `key`, le sue dimensioni in `columns` e `rows`, e `cells`, una stringa base64 che contiene tutte le celle. Ogni cella è composta da tre numeri: il code point del carattere, il suo colore e il suo colore di sfondo. Un colore è un valore RGB a 24 bit in esadecimale, come `0xc62828` per un rosso. Il valore `0x01000000`, uno sopra quell'intervallo, indica il colore predefinito del terminale.

466 466 

467Le app diverse dal terminale non hanno `Raster`, quindi controlla `e.surface` e lì disegna del testo. Questo corpo del pannello disegna una mappa di calore tre per due:467Le app diverse dal terminale non hanno `Raster`, quindi controlla `e.surface` e disegna del testo in quei casi. Questo corpo del pannello disegna una mappa di calore tre per due:

468 468 

469```javascript theme={null}469```javascript theme={null}

470// The value that means "use the terminal's default color"470// The value that means "use the terminal's default color"


500 500 

501![Un pannello nel terminale che contiene una piccola griglia di blocchi colorati, due righe da tre. La riga superiore è verde, ambra e rossa. La riga inferiore è verde, verde e ambra.](https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-heat-map.svg?fit=max\&auto=format\&n=dgiVO_Od1X1faduV\&q=85\&s=b91bcce3bad74bc851149133d4acc5d5)501![Un pannello nel terminale che contiene una piccola griglia di blocchi colorati, due righe da tre. La riga superiore è verde, ambra e rossa. La riga inferiore è verde, verde e ambra.](https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-heat-map.svg?fit=max\&auto=format\&n=dgiVO_Od1X1faduV\&q=85\&s=b91bcce3bad74bc851149133d4acc5d5)

502 502 

503L'array `rows` è la parte da modificare, e `cellsOf` lo trasforma nella stringa compatta. L'hook disegna solo in un pannello il cui `id` è `heat`, quindi aprine uno con `$.ui.open({ id: 'heat' })` da un comando, come l'[esempio `hello-tabs`](#build-a-pane-with-tabs) apre il suo pannello.503L'array `rows` è la parte che modificheresti, e `cellsOf` lo trasforma nella stringa compatta. L'hook disegna solo in un pannello il cui `id` è `heat`, quindi aprine uno con `$.ui.open({ id: 'heat' })` da un comando, come l'[esempio `hello-tabs`](#build-a-pane-with-tabs) apre il suo pannello.

504 504 

505Ogni carattere deve essere largo una cella. Per animare un `Raster` già presente sullo schermo, chiama `$.ui.blit` con l'`id` del pannello come `requestId`, la `key` del `Raster`, le stesse dimensioni e le nuove celle. Per questo esempio, è `$.ui.blit({ requestId: 'heat', key: 'grid', columns: 3, rows: 2, cells: cellsOf(newRows) })`. Ridisegna solo quell'elemento senza eseguire di nuovo il tuo hook `ui.render`.505Ogni carattere deve essere largo una cella. Per animare un `Raster` già sullo schermo, chiama `$.ui.blit` con l'`id` del pannello come `requestId`, la `key` del `Raster`, le stesse dimensioni e le nuove celle. Per questo esempio, è `$.ui.blit({ requestId: 'heat', key: 'grid', columns: 3, rows: 2, cells: cellsOf(newRows) })`. Ridisegna quel singolo elemento senza eseguire di nuovo il tuo hook `ui.render`.

506 506 

507## Rispondere a pressioni e digitazione507## Rispondere alle pressioni e alla digitazione

508 508 

509Quando l'utente preme un pulsante, digita in un campo o sceglie da un elenco disegnato dal tuo mod, Claude Code chiama la callback di quel controllo, che viene eseguita nel tuo modulo. Ogni controllo accetta le proprie callback:509Quando l'utente preme un pulsante, digita in un campo o sceglie da un elenco disegnato dal tuo mod, Claude Code chiama la callback di quel controllo, che viene eseguita nel tuo modulo. Ogni controllo accetta le proprie callback:

510 510 


514 514 

515### Quali controlli richiedono una `key`515### Quali controlli richiedono una `key`

516 516 

517Assegna a ogni `Input` e `Select` una prop `key`, come `key: 'size'`. Un `Button` può fare a meno di una `key` quando ha una prop `label` o un singolo figlio di tipo stringa. In quel caso la sua key è il valore di `label` o quella stringa.517Assegna a ogni `Input` e `Select` una prop `key`, come `key: 'size'`. Un `Button` può fare a meno di una `key` quando ha una prop `label` o un singolo figlio di tipo stringa. La sua chiave è allora il valore di `label` o quella stringa.

518 518 

519I test e gli altri mod identificano un controllo tramite la sua key:519I test e gli altri mod identificano un controllo tramite la sua chiave:

520 520 

521* **Test**: un [test](https://code.claude.com/docs/it/plugins/mods/test.md#test-a-drawing) preme o digita in un controllo tramite la sua key.521* **Test**: un [test](https://code.claude.com/docs/it/plugins/mods/test.md#test-a-drawing) preme un controllo o vi digita tramite la sua chiave.

522* **Altri mod**: Claude Code attiva [`ui.press`, `ui.input` o `ui.select`](https://code.claude.com/docs/it/plugins/mods/reference#interface) con la key del controllo in `e.element` prima di eseguire la callback del controllo. L'hook di un altro mod per quell'evento vede ciò che l'utente ha digitato nel tuo `Input` e può modificare quel testo o impedire l'esecuzione della tua callback. L'API dei mod non fornisce a quel mod alcun metodo per premere i tuoi pulsanti.522* **Altri mod**: Claude Code attiva [`ui.press`, `ui.input` o `ui.select`](https://code.claude.com/docs/it/plugins/mods/reference#interface) con la chiave del controllo in `e.element` prima di eseguire la callback del controllo. L'hook di un altro mod per quell'evento vede ciò che l'utente ha digitato nel tuo `Input` e può modificare quel testo o impedire l'esecuzione della tua callback. L'API dei mod non fornisce a quel mod alcun metodo per premere i tuoi pulsanti.

523 523 

524Se un messaggio indica `needs a key` o `is drawn twice`, [trova la causa in base a quel messaggio](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#needs-a-key).524Se un messaggio dice `needs a key` o `is drawn twice`, [trova la causa in base a quel messaggio](https://code.claude.com/docs/it/plugins/mods/troubleshoot.md#needs-a-key).

525 525 

526### Focus della tastiera e tasti di scelta rapida526### Focus della tastiera e tasti di scelta rapida

527 527 

528Il tuo mod non legge mai direttamente la tastiera. L'utente preme un tasto, Claude Code decide a quale dei tuoi controlli è destinato e viene eseguita la callback di quel controllo. A parte un [tasto di scelta rapida numerico sulla banda o un'associazione `action`](https://code.claude.com/docs/it/plugins/mods/reference#elements), questo accade solo mentre il tuo pannello o la tua banda ha il focus della tastiera. Il resto del tempo, i tasti vanno al prompt.528Il tuo mod non legge mai direttamente la tastiera. L'utente preme un tasto, Claude Code decide a quale dei tuoi controlli è destinato e viene eseguita la callback di quel controllo. A parte un [tasto di scelta rapida numerico sulla banda o un'associazione `action`](https://code.claude.com/docs/it/plugins/mods/reference#elements), questo avviene solo mentre il tuo riquadro o la tua banda ha il focus della tastiera. Il resto del tempo, i tasti vanno al prompt.

529 529 

530Nell'[estensione VS Code](#draw-in-the-vs-code-extension), i pulsanti non hanno tasti di scelta rapida: l'utente fa clic su un pulsante o preme Invio su di esso, e digita nei campi.530Nell'[estensione VS Code](#draw-in-the-vs-code-extension), i pulsanti non hanno tasti di scelta rapida: l'utente fa clic su un pulsante o preme Enter su di esso, e digita nei campi.

531 531 

532#### Come un pannello ottiene il focus della tastiera532#### Come un riquadro ottiene il focus della tastiera

533 533 

534Un pannello ottiene il focus della tastiera quando:534Un riquadro ottiene il focus della tastiera quando:

535 535 

536* Il tuo mod lo apre con `focus: true` da un comando o da una pressione536* Il tuo mod lo apre con `focus: true` da un comando o da una pressione

537* L'utente preme Ctrl+X e poi Tab537* L'utente preme Ctrl+X e poi Tab

538* L'utente ci fa clic sopra, il che nel terminale richiede il [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md)538* L'utente vi fa clic, cosa che nel terminale richiede il [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md)

539 539 

540Claude Code concede `focus: true` solo mentre il prompt è vuoto e nient'altro ha il focus della tastiera. Un pannello che si apre mentre l'utente sta digitando non ne intercetta i tasti premuti.540Claude Code concede `focus: true` solo mentre il prompt è vuoto e nient'altro ha il focus della tastiera. Un riquadro che si apre mentre l'utente sta digitando non ne intercetta i tasti premuti.

541 541 

542#### Cosa fa ogni tasto542#### Cosa fa ciascun tasto

543 543 

544Questa tabella elenca cosa fa un tasto mentre il tuo pannello o la tua banda ha il focus della tastiera:544Questa tabella elenca cosa fa un tasto mentre il tuo riquadro o la tua banda ha il focus della tastiera:

545 545 

546| Tasto | Cosa fa |546| Tasto | Cosa fa |

547| :- | :- |547| :- | :- |

548| Tab | Passa al controllo successivo |548| Tab | Passa al controllo successivo |

549| Su e Giù | Spostano tra i controlli finché il tuo disegno entra nello spazio disponibile. Quando il pannello o la banda ha più righe di quante ne possa mostrare, lo fanno scorrere. In un `Input` nel terminale, [si spostano tra le righe del campo](https://code.claude.com/docs/it/plugins/mods/gallery.md#input), e dalla sua prima o ultima riga passano al controllo precedente o successivo. |549| Su e Giù | Spostano tra i controlli finché il tuo disegno ci sta. Quando il riquadro o la banda ha più righe di quante ne possa mostrare, lo scorrono. In un `Input` nel terminale, [spostano tra le righe del campo](https://code.claude.com/docs/it/plugins/mods/gallery.md#input), e dalla sua prima o ultima riga passano al controllo precedente o successivo. |

550| Invio | Preme il `Button` con il focus, invia l'`Input` con il focus o effettua la scelta in un `Select` |550| Enter | Preme il `Button` con il focus, invia l'`Input` con il focus o effettua la scelta in un `Select` |

551| Il tasto di scelta rapida di un pulsante | Preme quel pulsante. Mentre un `Input` ha il focus, ogni tasto stampabile va al campo. |551| Il tasto di scelta rapida di un pulsante | Preme quel pulsante. Mentre un `Input` ha il focus, ogni tasto stampabile va al campo. |

552| Pagina su, Pagina giù, Home e Fine | Fanno scorrere il tuo pannello o la tua banda quando ha più righe di quante ne possa mostrare |552| Pagina su, Pagina giù, Home e Fine | Scorrono il tuo riquadro o la tua banda quando ha più righe di quante ne possa mostrare |

553| Ctrl+X e poi un tasto freccia | Ridimensiona il tuo pannello. Sinistra o Su gli dà più spazio, e Destra o Giù restituisce lo spazio. Un pannello accanto alla trascrizione smette di allargarsi al 45% della larghezza del terminale. |553| Ctrl+X e poi un tasto freccia | Ridimensiona il tuo riquadro. Sinistra o Su gli dà più spazio, e Destra o Giù restituisce lo spazio. Un riquadro accanto alla trascrizione smette di allargarsi al 45% della larghezza del terminale. |

554| Ctrl+X e poi X | Chiude il tuo pannello, anche mentre uno dei suoi campi ha il focus |554| Ctrl+X e poi X | Chiude il tuo riquadro, anche mentre uno dei suoi campi ha il focus |

555| Ctrl+X e poi Ctrl+A | [Comprime la banda](#when-the-user-collapses-the-band) a una sola riga mentre un mod vi disegna, oppure la espande di nuovo. Questi tasti funzionano anche mentre il prompt ha il focus. |555| Ctrl+X e poi Ctrl+A | [Comprime la banda](#when-the-user-collapses-the-band) a una riga mentre un mod vi disegna, o la espande di nuovo. Questi tasti funzionano anche mentre il prompt ha il focus. |

556| Esc | Restituisce il focus della tastiera al prompt. Con `closeOnEscape: true`, chiude anche il pannello. |556| Esc | Restituisce il focus della tastiera al prompt. Con `closeOnEscape: true`, chiude anche il riquadro. |

557 557 

558Un mod non può associare Tab o i tasti freccia a nient'altro, quindi un gioco si controlla con `w`, `a`, `s` e `d`.558Un mod non può associare Tab o i tasti freccia ad altro, quindi un gioco si comanda con `w`, `a`, `s` e `d`.

559 559 

560#### Impostare un tasto di scelta rapida e il focus iniziale560#### Impostare un tasto di scelta rapida e il focus iniziale

561 561 

562* **`hotkey`**: per consentire all'utente di premere un `Button` con un solo tasto, assegnagli una `hotkey` composta da una cifra o da una lettera minuscola, come in `hotkey: 'a'`562* **`hotkey`**: per permettere all'utente di premere un `Button` con un solo tasto, assegnagli un `hotkey` di una cifra o di una lettera minuscola, come in `hotkey: 'a'`

563* **`autoFocus`**: per scegliere quale controllo ha il focus all'apertura del pannello, aggiungi `autoFocus: true` a quel controllo. Nell'[estensione VS Code](#draw-in-the-vs-code-extension), `autoFocus` non ha alcun effetto: il controllo viene disegnato come se lo avessi omesso, e non devi modificare nulla. La prop accetta solo `true`, quindi omettila sugli altri controlli.563* **`autoFocus`**: per scegliere quale controllo ha il focus quando il riquadro si apre, aggiungi `autoFocus: true` a quel controllo. Nell'[estensione VS Code](#draw-in-the-vs-code-extension), `autoFocus` non fa nulla: il controllo viene disegnato come se l'avessi omesso, e non devi modificare nulla. La prop accetta solo `true`, quindi omettila negli altri controlli.

564 564 

565Il modo in cui viene mostrato un tasto di scelta rapida dipende dal pulsante e dall'app:565Il modo in cui viene mostrato un tasto di scelta rapida dipende dal pulsante e dall'app:

566 566 

567| Pulsante | Nel terminale | Nell'app Desktop | Nell'estensione VS Code |567| Pulsante | Nel terminale | Nell'app Desktop | Nell'estensione VS Code |

568| :- | :- | :- | :- |568| :- | :- | :- | :- |

569| Con parentesi quadre, l'impostazione predefinita | `[ Add one ]`, senza alcun tasto di scelta rapida mostrato | L'etichetta con un piccolo tasto accanto | L'etichetta, e il tasto di scelta rapida non ha alcun effetto |569| Con parentesi quadre, il valore predefinito | `[ Add one ]`, senza alcun tasto di scelta rapida mostrato | L'etichetta con un piccolo tasto accanto | L'etichetta, e il tasto di scelta rapida non fa nulla |

570| Con `plain: true` | `1: One` | L'etichetta con un piccolo tasto accanto | L'etichetta, e il tasto di scelta rapida non ha alcun effetto |570| Con `plain: true` | `1: One` | L'etichetta con un piccolo tasto accanto | L'etichetta, e il tasto di scelta rapida non fa nulla |

571 571 

572Nel terminale, indica il tasto nell'etichetta di un pulsante con parentesi quadre, oppure usa `plain: true`, in modo che l'utente possa vedere cosa premere. Il [riferimento degli elementi](https://code.claude.com/docs/it/plugins/mods/reference.md#elements) contiene le altre regole di `Button`: `action`, i tasti di scelta rapida numerici sulla banda e due pulsanti sullo stesso tasto di scelta rapida.572Nel terminale, indica il tasto nell'etichetta di un pulsante con parentesi quadre, oppure usa `plain: true`, in modo che l'utente veda cosa premere. Il [riferimento degli elementi](https://code.claude.com/docs/it/plugins/mods/reference.md#elements) contiene le altre regole di `Button`: `action`, i tasti di scelta rapida numerici sulla banda e due pulsanti sullo stesso tasto di scelta rapida.

573 573 

574#### Quando l'utente comprime la banda574#### Quando l'utente comprime la banda

575 575 

576Nel terminale, mentre un mod disegna nella banda, l'utente può comprimere la banda a una sola riga per toglierla di mezzo:576Nel terminale, mentre un mod disegna nella banda, l'utente può comprimere la banda a una riga per toglierla di mezzo:

577 577 

578* **Fare clic su `[-]`**: mentre la banda è espansa, Claude Code disegna questo segno all'estremità destra della sua prima riga. Nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), l'utente ci fa clic sopra per comprimere la banda.578* **Fai clic su `[-]`**: mentre la banda è espansa, Claude Code disegna questo segno all'estremità destra della sua prima riga. Nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), l'utente vi fa clic per comprimere la banda.

579* **Premere Ctrl+X e poi Ctrl+A**: funziona sia che il focus della tastiera sia sul prompt, sulla banda o su un pannello. L'utente può [associarvi altri tasti](https://code.claude.com/docs/it/keybindings.md#above-prompt-actions) tramite l'azione `abovePrompt:toggle`.579* **Premi Ctrl+X e poi Ctrl+A**: funziona sia che il focus della tastiera sia sul prompt, sulla banda o su un riquadro. L'utente può [associarvi altri tasti](https://code.claude.com/docs/it/keybindings.md#above-prompt-actions) tramite l'azione `abovePrompt:toggle`.

580 580 

581Una banda compressa nasconde tutto ciò che i mod vi disegnano e mostra invece una sola riga attenuata, che indica i tasti che la espandono così come l'utente li ha associati:581Una banda compressa nasconde tutto ciò che i mod vi disegnano e mostra invece una riga attenuata, che indica i tasti che la espandono secondo le associazioni dell'utente:

582 582 

583```text theme={null}583```text theme={null}

584▸ plugin panel hidden · ctrl+x ctrl+a or click to show584▸ plugin panel hidden · ctrl+x ctrl+a or click to show

585```585```

586 586 

587Gli stessi tasti, oppure nel rendering a schermo intero un clic sulla riga, espandono di nuovo la banda. Fino ad allora, nulla preme un pulsante al suo interno: nessun tasto di scelta rapida, nessuna cifra digitata in un prompt vuoto e nessuna scorciatoia da tastiera per l'[`action`](https://code.claude.com/docs/it/plugins/mods/reference#elements) di un pulsante. Se la banda ha il focus della tastiera quando l'utente la comprime, il focus torna al prompt, e Ctrl+X e poi Tab salta la banda finché è compressa.587Gli stessi tasti o, nel rendering a schermo intero, un clic sulla riga espandono di nuovo la banda. Fino ad allora, nulla preme un pulsante al suo interno: nessun tasto di scelta rapida, nessuna cifra digitata in un prompt vuoto e nessuna scorciatoia da tastiera per l'[`action`](https://code.claude.com/docs/it/plugins/mods/reference#elements) di un pulsante. Se la banda ha il focus della tastiera quando l'utente la comprime, il focus torna al prompt, e Ctrl+X e poi Tab salta la banda finché è compressa.

588 588 

589La banda resta compressa finché l'utente non la espande, anche dopo `/clear`, e torna espansa al successivo avvio di Claude Code. Il tuo mod non può espanderla né sapere che è compressa: l'hook `ui.render` continua a essere eseguito, e nulla in `e.props` lo indica. Non fare della banda l'unico posto in cui il tuo mod mostra qualcosa a cui l'utente deve rispondere.589La banda rimane compressa finché l'utente non la espande, anche dopo `/clear`, e torna espansa al successivo avvio di Claude Code. Il tuo mod non può espanderla né sapere che è compressa: l'hook `ui.render` continua a essere eseguito, e nulla in `e.props` lo indica. Non fare della banda l'unico posto in cui il tuo mod mostra qualcosa a cui l'utente deve rispondere.

590 590 

591### Ricevere input digitato e disegnare una riga per ogni elemento591### Ricevere input digitato e disegnare una riga per ogni elemento

592 592 

593Molti pannelli sono un campo di testo con un elenco sotto. L'esempio in questa sezione è un pannello di note: digiti una nota e premi Invio per aggiungerla, e ogni nota ha un pulsante `x` che la elimina. Con due note aggiunte, il terminale disegna il pannello in questo modo:593Molti riquadri sono un campo di testo con un elenco sotto. L'esempio in questa sezione è un riquadro di note: digiti una nota e premi Enter per aggiungerla, e ogni nota ha un pulsante `x` che la elimina. Con due note aggiunte, il terminale disegna il riquadro in questo modo:

594 594 

595```text theme={null}595```text theme={null}

596╭────────────────────────────────────────────────────────✕─╮596╭────────────────────────────────────────────────────────✕─╮


600╰──────────────────────────────────────────────────────────╯600╰──────────────────────────────────────────────────────────╯

601```601```

602 602 

603Il simbolo `✕` sul bordo superiore è il segno proprio di Claude Code per chiudere il pannello.603La `✕` sul bordo superiore è il segno proprio di Claude Code per chiudere il riquadro.

604 604 

605L'esempio usa queste tecniche:605L'esempio usa queste tecniche:

606 606 

607* **Ricevere input digitato**: un `Input` chiama `onSubmit(value)` con il testo del campo quando l'utente preme Invio, e `onInput(value)` a ogni modifica607* **Ricevere input digitato**: un `Input` chiama `onSubmit(value)` con il testo del campo quando l'utente preme Enter, e `onInput(value)` a ogni modifica

608* **Disegnare un elenco**: mappa i tuoi dati su una riga ciascuno e assegna al pulsante di ogni riga una propria `key`608* **Disegnare un elenco**: mappa i tuoi dati a una riga ciascuno, e assegna al pulsante di ogni riga la propria `key`

609 609 

610Questo hook disegna il contenuto del pannello:610Questo hook disegna il contenuto del riquadro:

611 611 

612```javascript theme={null}612```javascript theme={null}

613// The list the pane draws613// The list the pane draws


665})665})

666```666```

667 667 

668Per provare il pannello:668Per provare il riquadro:

669 669 

670* **Aggiungi una nota**: digita una riga e premi Invio. La riga appare come una nuova riga dell'elenco e il campo si svuota.670* **Aggiungere una nota**: digita una riga e premi Enter. La riga appare come una nuova riga dell'elenco, e il campo si svuota.

671* **Elimina una nota**: premi Tab finché il pulsante `x` della nota non ha il focus, poi premi Invio. La `x` è l'etichetta del pulsante e non un tasto di scelta rapida, quindi digitare la lettera non lo preme.671* **Eliminare una nota**: premi Tab finché il pulsante `x` della nota non ha il focus, poi premi Enter. La `x` è l'etichetta del pulsante e non un tasto di scelta rapida, quindi digitare la lettera non lo preme.

672 672 

673Ogni modifica segue lo stesso ciclo di rendering di `hello-tabs`: la callback modifica `notes`, chiama `redraw` e salva l'elenco in `$.store`. Se il tuo hook disegna di nuovo il pannello mentre l'utente sta digitando una nota, il campo conserva il testo dell'utente purché l'hook passi ogni volta lo stesso `value`. Per sostituire il testo dell'utente con il tuo, passa un `value` diverso.673Ogni modifica segue lo stesso ciclo di rendering di `hello-tabs`: la callback modifica `notes`, chiama `redraw` e salva l'elenco in `$.store`. Se il tuo hook ridisegna il riquadro mentre l'utente sta digitando una nota, il campo mantiene il suo testo purché l'hook passi ogni volta lo stesso `value`. Per sostituire il suo testo con il tuo, passa un `value` diverso.

674 674 

675L'esempio salva le note ma non le carica. Per ripristinarle nella sessione successiva, leggile in un hook `session.start`, nello stesso modo in cui `hello-tabs` legge `count`.675L'esempio salva le note ma non le carica. Per ripristinarle nella sessione successiva, leggile in un hook `session.start`, nello stesso modo in cui `hello-tabs` legge `count`.

676 676 


680| :- | :- | :- |680| :- | :- | :- |

681| `label` | `Note` | Il testo prima del campo. Il terminale disegna `: ` dopo di esso. |681| `label` | `Note` | Il testo prima del campo. Il terminale disegna `: ` dopo di esso. |

682| `placeholder` | `Type a note and press Enter` | Testo attenuato che viene mostrato mentre il campo è vuoto |682| `placeholder` | `Type a note and press Enter` | Testo attenuato che viene mostrato mentre il campo è vuoto |

683| `value` | `''` | Il testo con cui il campo inizia. Qui è vuoto, quindi viene mostrato il placeholder. |683| `value` | `''` | Il testo con cui inizia il campo. Qui è vuoto, quindi viene mostrato il placeholder. |

684| `submitLabel` | `add` | La parola dopo `⏎` che indica cosa fa Invio |684| `submitLabel` | `add` | La parola dopo `⏎` che indica cosa fa Enter |

685 685 

686L'invio di un `Input` non avvia un turno a meno che la tua callback non chiami [`$.prompt.submit`](https://code.claude.com/docs/it/plugins/mods/api#start-a-turn-from-a-background-job).686L'invio di un `Input` non avvia un turno a meno che la tua callback non chiami [`$.prompt.submit`](https://code.claude.com/docs/it/plugins/mods/api#start-a-turn-from-a-background-job).

687 687 

Details

259 259 

260## Testare un disegno260## Testare un disegno

261 261 

262Un test può disegnare uno dei [punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) del tuo mod, quindi premere, digitare e trovare gli elementi che ha disegnato. `$.ui.mount` disegna il punto tramite l'hook `ui.render` del tuo mod e restituisce un handle con un metodo per ciascuna di queste azioni. Per coprire più app in un solo test, imposta `surface` sull'app per cui disegnare. Questo test apre il pannello di [Creare un pannello con schede](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-pane-with-tabs), cambia scheda, preme il pulsante e controlla il conteggio nel terminale e nell'app Desktop:262Un test può disegnare uno dei [punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) del tuo mod, quindi premere, digitare e trovare gli elementi che ha disegnato. `$.ui.mount` disegna il punto di rendering tramite l'hook `ui.render` del tuo mod e restituisce un handle con un metodo per ciascuna di queste azioni. Per coprire più app in un solo test, imposta `surface` sull'app per cui disegnare. Questo test apre il pannello di [Creare un pannello con schede](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-pane-with-tabs), cambia scheda, preme il pulsante e controlla il conteggio nel terminale e nell'app Desktop:

263 263 

264```typescript hello-tabs/tests/hello-tabs.test.ts theme={null}264```typescript hello-tabs/tests/hello-tabs.test.ts theme={null}

265import { expect, test } from 'claude-code/testing'265import { expect, test } from 'claude-code/testing'


305})305})

306```306```

307 307 

308Nella tua shell, esegui `claude plugin test` dalla directory `hello-tabs`. Il test ha esito positivo quando entrambe le app disegnano la riga del conteggio e il mod ha salvato `2`. Il conteggio passa dalla prima app alla seconda perché entrambi i mount usano lo stesso modulo caricato.308Nella tua shell, esegui `claude plugin test` dalla directory `hello-tabs`. Il test viene superato quando entrambe le app disegnano la riga del conteggio e il mod ha salvato `2`. Il conteggio si mantiene dalla prima app alla seconda perché entrambi i mount usano lo stesso modulo caricato.

309 309 

310L'handle restituito da `$.ui.mount` ha questi metodi, che individuano gli elementi tramite la `key` che hai assegnato loro:310L'handle restituito da `$.ui.mount` ha questi metodi, che individuano gli elementi tramite la `key` che hai assegnato loro:

311 311 

312| Metodo | Cosa fa |312| Metodo | Cosa fa |

313| :- | :- |313| :- | :- |

314| `press({ key: 'more' })` | Preme il `Button` con quella key |314| `press({ key: 'more' })` | Preme il `Button` con quella key |

315| `input({ key: 'new-note', text: 'buy milk' })` | Digita il testo nell'`Input` con quella key e preme Invio. Aggiungi `kind: 'change'` per digitare senza inviare. Per un campo con `rows`, il testo può contenere `\n`. |315| `input({ key: 'new-note', text: 'buy milk' })` | Digita il testo nell'`Input` con quella key e preme Enter. Aggiungi `kind: 'change'` per digitare senza inviare. Per un campo con `rows`, il testo può contenere `\n`. |

316| `select({ key: 'size', value: 'large' })` | Sceglie l'opzione con quel valore nel `Select` con quella key |316| `select({ key: 'size', value: 'large' })` | Sceglie l'opzione con quel valore nel `Select` con quella key |

317| `find({ key: 'more' })` o `find({ type: 'Text', text: 'Count: 2' })` | Restituisce il primo elemento corrispondente come `{ type, props, children }`, oppure `undefined`. `text` può essere una stringa o un'espressione regolare. |317| `find({ key: 'more' })` o `find({ type: 'Text', text: 'Count: 2' })` | Restituisce il primo elemento corrispondente come `{ type, props, children }`, oppure `undefined`. `text` può essere una stringa o un'espressione regolare. |

318| `unmount()` | Rimuove il disegno |318| `unmount()` | Rimuove il disegno |

319 319 

320Ogni metodo si risolve dopo che il tuo handler ha terminato, quindi puoi controllare il risultato nella riga successiva. Imposta `props` su ciò che Claude Code passerebbe per quel punto. La [tabella dei punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) elenca le prop di ciascun punto, e [i tipi per la tua build](https://code.claude.com/docs/it/plugins/mods/create.md#get-the-types-for-your-build) ne contengono i tipi.320Ogni metodo si risolve dopo che il tuo handler ha terminato, quindi puoi controllare il risultato nella riga successiva. Imposta `props` su ciò che Claude Code passerebbe per quel punto di rendering. La [tabella dei punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) elenca le prop di ciascun punto di rendering e [i tipi per la tua build](https://code.claude.com/docs/it/plugins/mods/create.md#get-the-types-for-your-build) ne contengono i tipi.

321 321 

322Per individuare un [albero di elementi](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-tree-from-elements) non valido per l'app indicata in `surface`, usa `find` per verificare la presenza di un elemento aggiunto dal tuo hook. Il test non controlla come l'app visualizza un albero, quindi verifica un nuovo layout anche in una sessione reale.322Per individuare un [albero di elementi](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-tree-from-elements) non valido per l'app indicata in `surface`, controlla con `find` un elemento aggiunto dal tuo hook. Il test non verifica come l'app disegna un albero, quindi controlla un nuovo layout anche in una sessione reale.

323 323 

324### Testare un disegno dopo `/clear`324### Testare un disegno dopo `/clear`

325 325 

326Ogni test inizia con ogni valore di `$.state` impostato al suo default, che è lo stato in cui li lascia `/clear`. Per testare cosa fa il tuo mod dopo, salta `session.start`, attiva `classic.SessionStart` con `source: 'clear'` e controlla cosa disegna il tuo mod.326Ogni test parte con ogni valore di `$.state` al suo default, che è come li lascia `/clear`. Per testare cosa fa il tuo mod in seguito, salta `session.start`, attiva `classic.SessionStart` con `source: 'clear'` e controlla cosa disegna il tuo mod.

327 327 

328Questo test controlla il modulo di [Caricare di nuovo un valore salvato dopo `/clear`](https://code.claude.com/docs/it/plugins/mods/interface#load-a-saved-value-again-after-clear). Aggiungilo al file di [Testare un disegno](#test-a-drawing), dove è definito `PANE`. Il primo test di quel file si aspetta che il pulsante salvi il conteggio, come fa il pulsante in [Salvare da più di una sessione](https://code.claude.com/docs/it/plugins/mods/interface.md#save-from-more-than-one-session):328Questo test verifica il modulo di [Caricare di nuovo un valore salvato dopo `/clear`](https://code.claude.com/docs/it/plugins/mods/interface#load-a-saved-value-again-after-clear). Aggiungilo al file di [Testare un disegno](#test-a-drawing), dove è definito `PANE`. Il primo test di quel file si aspetta che il pulsante salvi il conteggio, come fa il pulsante in [Salvare da più di una sessione](https://code.claude.com/docs/it/plugins/mods/interface.md#save-from-more-than-one-session):

329 329 

330```typescript hello-tabs/tests/hello-tabs.test.ts theme={null}330```typescript hello-tabs/tests/hello-tabs.test.ts theme={null}

331test('the saved count comes back after /clear', async ($, on) => {331test('the saved count comes back after /clear', async ($, on) => {


344})344})

345```345```

346 346 

347Il test ha esito positivo quando il tuo hook `classic.SessionStart` ha copiato il `7` memorizzato in `$.state` prima che il pannello venga disegnato. Senza quell'hook nel tuo modulo, il pannello disegna `Count: 0`, `find` restituisce `undefined` e il test fallisce su `toBeDefined`.347Il test viene superato quando il tuo hook `classic.SessionStart` ha copiato il `7` memorizzato in `$.state` prima che il pannello venga disegnato. Senza quell'hook nel tuo modulo, il pannello disegna `Count: 0`, `find` restituisce `undefined` e il test fallisce su `toBeDefined`.

348 348 

349## Testare un mod di criteri349## Testare un mod di criteri

350 350 

Details

217 217 

218Il mod è stato caricato, ma il suo riquadro, la sua banda, il suo toast o i suoi controlli non si comportano come ti aspetti.218Il mod è stato caricato, ma il suo riquadro, la sua banda, il suo toast o i suoi controlli non si comportano come ti aspetti.

219 219 

220### La banda di un altro mod appare e la tua no220### La banda di un altro mod è visibile e la tua no

221 221 

222C'è un'unica banda sopra il prompt, e tutti i mod la condividono. Un mod eseguito [prima del tuo](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) sostituisce la tua banda quando restituisce un albero che non contiene il risultato di `next(e)`. Per mostrare entrambe le bande, modifica l'hook di quel mod, oppure chiedi al suo autore di farlo:222C'è una sola banda sopra il prompt, e tutti i mod la condividono. Un mod che viene eseguito [prima del tuo](https://code.claude.com/docs/it/plugins/mods/events.md#the-order-mods-run-in) sostituisce la tua banda quando restituisce un albero che non contiene il risultato di `next(e)`. Per mostrare entrambe le bande, modifica l'hook di quel mod, oppure chiedi al suo autore di farlo:

223 223 

224* **Mantieni le bande successive**: inserisci il risultato di `await next(e)` tra i figli di un `Box` nel suo albero, come nella scheda Banda sopra il prompt di [Scegliere dove disegnare](https://code.claude.com/docs/it/plugins/mods/interface.md#pick-where-to-draw)224* **Mantieni le bande successive**: inserisci il risultato di `await next(e)` tra i figli di un `Box` nel suo albero, come nella scheda Banda sopra il prompt di [Scegli dove disegnare](https://code.claude.com/docs/it/plugins/mods/interface.md#pick-where-to-draw)

225* **Mantieni l'albero valido**: non assegnare a quel `Box`, né a qualsiasi `Box` che lo contiene, una prop `width`, `height`, `minWidth`, `minHeight`, `position`, `top`, `left`, `right`, `bottom`, `display` o `overflow`225* **Mantieni l'albero valido**: non assegnare a quel `Box`, né a nessun `Box` che lo contiene, una prop `width`, `height`, `minWidth`, `minHeight`, `position`, `top`, `left`, `right`, `bottom`, `display` o `overflow`

226 226 

227Per trovare quel mod, [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno `answered ui.render without next()`. Una riga come `other-mod (user) answered ui.render without next()` indica un mod che ha restituito il proprio albero senza chiamare `next(e)`. Non indica il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites), quindi può comparire anche un mod che disegna solo un riquadro. Un mod che chiama `next(e)` e scarta il risultato non genera alcuna riga, quindi controlla anche gli hook eseguiti prima del tuo.227Per trovare quel mod, [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno `answered ui.render without next()`. Una riga come `other-mod (user) answered ui.render without next()` indica un mod che ha restituito il suo albero senza chiamare `next(e)`. La riga non indica il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites), quindi può comparire anche un mod che disegna solo in un riquadro. Un mod che chiama `next(e)` e scarta il risultato non produce alcuna riga, quindi controlla anche gli hook che precedono il tuo.

228 228 

229La banda di un mod manca anche quando l'albero restituito dal suo hook non supera la convalida, mentre le bande degli altri mod restano. Per scoprire quale mod e perché, [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno [`ui.render hook skipped`](#a-pane-or-band-is-empty).229La banda di un mod manca anche quando l'albero restituito dal suo hook non supera la validazione, mentre le bande degli altri mod restano. Per scoprire quale mod e perché, [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno [`ui.render hook skipped`](#a-pane-or-band-is-empty).

230 230 

231### Un riquadro o una banda è vuota o mostra il contenuto abituale di Claude Code231### Un riquadro o una banda è vuoto o mostra il contenuto abituale di Claude Code

232 232 

233L'[albero](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-tree-from-elements) restituito dal tuo hook non ha superato la convalida. Una riga [`hook skipped`](#hook-skipped) [nella trascrizione o nel log di debug](#find-out-why-a-mod-does-nothing) indica il tuo mod e il motivo, come in questa per un `Box` in un riquadro:233L'[albero](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-tree-from-elements) restituito dal tuo hook non ha superato la validazione. Una riga [`hook skipped`](#hook-skipped) [nella trascrizione o nel log di debug](#find-out-why-a-mod-does-nothing) indica il tuo mod e il motivo, come in questa per un `Box` in un riquadro:

234 234 

235```text theme={null}235```text theme={null}

236first-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse)236first-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse)

237```237```

238 238 

239Correggi ciò che indica il motivo. Se il motivo è troncato, [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno `a hook returned a tree that does not validate` per leggere il resto.239Correggi ciò che il motivo indica. Se il motivo è troncato, [scrivi un log di debug](#read-the-debug-log) e cerca al suo interno `a hook returned a tree that does not validate` per leggere il resto.

240 240 

241Se invece la riga riporta `refused:` subito dopo il nome del punto di rendering, come in `ui.render (Pane) refused:`, consulta [Una riga `ui.render` riporta `refused`](#ui-render-refused).241Se invece la riga riporta `refused:` subito dopo il nome del punto, come in `ui.render (Pane) refused:`, consulta [Una riga `ui.render` riporta `refused`](#ui-render-refused).

242 242 

243### Una riga `ui.render` riporta `refused`243### Una riga `ui.render` riporta `refused`

244 244 

245`ui.render (<site>) refused:`, oppure `ui.render (<site>): the chain settled on a tree that does not validate` nel [log di debug](#read-the-debug-log), significa che l'[albero](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-tree-from-elements) in quel punto di rendering supera un [limite di dimensione](https://code.claude.com/docs/it/plugins/mods/reference.md#limits). Entrambe le righe indicano il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) e poi il motivo, e il motivo indica il limite.245`ui.render (<site>) refused:`, oppure `ui.render (<site>): the chain settled on a tree that does not validate` nel [log di debug](#read-the-debug-log), significa che l'[albero](https://code.claude.com/docs/it/plugins/mods/interface.md#build-a-tree-from-elements) in quel punto supera un [limite di dimensione](https://code.claude.com/docs/it/plugins/mods/reference.md#limits). Entrambe le righe indicano il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) e poi il motivo, e il motivo indica il limite.

246 246 

247Modifica i mod che disegnano in quel punto di rendering in modo che i loro hook [`ui.render`](https://code.claude.com/docs/it/plugins/mods/reference#interface) restituiscano alberi più piccoli, oppure chiedi ai loro autori di farlo. Se la riga della trascrizione inizia con `hooks`, più di un mod caricato ha un hook `ui.render` per quel punto di rendering, quindi controlla gli alberi di ciascuno di quei mod. Per più mod le cui bande sopra il prompt si annidano in un albero profondo più di 32 livelli, la riga riporta:247Modifica i mod che disegnano in quel punto in modo che i loro hook [`ui.render`](https://code.claude.com/docs/it/plugins/mods/reference#interface) restituiscano alberi più piccoli, oppure chiedi ai loro autori di farlo. Se la riga nella trascrizione inizia con `hooks`, più di un mod caricato ha un hook `ui.render` per quel punto, quindi controlla gli alberi di ciascuno di quei mod. Nel caso di più mod le cui bande sopra il prompt si annidano in un albero profondo più di 32 livelli, la riga è:

248 248 

249```text theme={null}249```text theme={null}

250hooks: ui.render (AbovePrompt) refused: deeper than 32; nothing was drawn250hooks: ui.render (AbovePrompt) refused: deeper than 32; nothing was drawn

251```251```

252 252 

253Prima della v2.1.307, una riga `refused:` per qualsiasi punto di rendering segnalava qualsiasi albero che non superava la convalida, e per `Pane` e `AbovePrompt` terminava con `; the engine drew its own`. In quelle versioni, correggi ciò che indica il motivo.253Prima della v2.1.307, una riga `refused:` per qualsiasi punto segnalava qualsiasi albero che non superava la validazione, e per `Pane` e `AbovePrompt` terminava con `; the engine drew its own`. Su quelle release, correggi ciò che il motivo indica.

254 254 

255### `needs a key`, `is drawn twice` o `key each once`255### `needs a key`, `is drawn twice` o `key each once`

256 256 


258 258 

259* **`<Input> needs a key` o `<Select> needs a key`**: l'elemento non ha la prop `key`, oppure la sua `key` è vuota o non è una stringa, come in `key: 3`. Assegnagli come `key` una stringa non vuota.259* **`<Input> needs a key` o `<Select> needs a key`**: l'elemento non ha la prop `key`, oppure la sua `key` è vuota o non è una stringa, come in `key: 3`. Assegnagli come `key` una stringa non vuota.

260* **`<Button> needs a key`**: assegna al pulsante come `key` una stringa non vuota260* **`<Button> needs a key`**: assegna al pulsante come `key` una stringa non vuota

261* **`is drawn twice; each takes its own key`**: due elementi del tipo indicato dal messaggio hanno la stessa `key`, come in `Input "size" is drawn twice; each takes its own key`. Assegna a ciascun elemento la propria `key`.261* **`is drawn twice; each takes its own key`**: due elementi del tipo indicato dal messaggio hanno la stessa `key`, come in `Input "size" is drawn twice; each takes its own key`. Assegna a ciascun elemento una `key` propria.

262* **`key each once` da `press` in un [test](https://code.claude.com/docs/it/plugins/mods/test.md#test-a-drawing)**: il disegno contiene più di un pulsante con la key che hai passato. I pulsanti con la stessa etichetta e senza prop `key` condividono quell'etichetta come key. Assegna a ciascun pulsante la propria `key`.262* **`key each once` da `press` in un [test](https://code.claude.com/docs/it/plugins/mods/test.md#test-a-drawing)**: il disegno contiene più di un pulsante con la key che hai passato. I pulsanti con la stessa etichetta e senza prop `key` condividono quell'etichetta come key. Assegna a ciascun pulsante una `key` propria.

263 263 

264### Una riga `ui.render` riporta `threw while drawn`264### Una riga `ui.render` riporta `threw while drawn`

265 265 

266La riga indica il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites), poi riporta `threw while drawn:` e l'errore, come in `first-mod: ui.render (ToolUse) threw while drawn: <error>; the engine drew its own`. Claude Code ha riscontrato quell'errore durante il disegno dell'albero restituito dal tuo hook [`ui.render`](https://code.claude.com/docs/it/plugins/mods/reference#interface), oppure durante il disegno del punto di rendering a partire dalle [`props` che il tuo hook ha passato a `next`](https://code.claude.com/docs/it/plugins/mods/interface#change-what-claude-code-already-draws). La parte finale `the engine drew its own` significa che il punto di rendering mostra il contenuto abituale di Claude Code.266La riga indica il [punto di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites), poi riporta `threw while drawn:` e l'errore, come in `first-mod: ui.render (ToolUse) threw while drawn: <error>; the engine drew its own`. Claude Code ha incontrato quell'errore mentre disegnava l'albero restituito dal tuo hook [`ui.render`](https://code.claude.com/docs/it/plugins/mods/reference#interface), oppure mentre disegnava il punto a partire dalle [`props` che il tuo hook ha passato a `next`](https://code.claude.com/docs/it/plugins/mods/interface#change-what-claude-code-already-draws). La parte finale `the engine drew its own` significa che il punto mostra il contenuto abituale di Claude Code.

267 267 

268Leggi l'errore e correggi il valore nel tuo hook che lo ha causato.268Leggi l'errore e correggi il valore nel tuo hook che lo ha causato.

269 269 


271 271 

272### `the module failed without a message`272### `the module failed without a message`

273 273 

274Un [`Client`](https://code.claude.com/docs/it/plugins/mods/interface#when-a-client-fails) non è riuscito a causa di un errore privo di messaggio, come `throw new Error()`. La riga al suo posto appare come `my-mod: Client client/spinner.js: the module failed without a message`.274Un [`Client`](https://code.claude.com/docs/it/plugins/mods/interface#when-a-client-fails) è fallito con un errore privo di messaggio, come `throw new Error()`. La riga al suo posto è simile a `my-mod: Client client/spinner.js: the module failed without a message`.

275 275 

276Trova il throw nel codice del tuo `Client` e assegna un messaggio all'errore. La riga mostrerà quindi quel messaggio.276Trova il throw nel codice del tuo `Client` e assegna un messaggio all'errore. La riga mostrerà quindi quel messaggio.

277 277 

278Prima della v2.1.289, la riga mostrava invece `Error` come motivo.278Prima della v2.1.289, la riga mostrava invece `Error` come motivo.

279 279 

280### `$.ui.open` viene eseguito e nessun riquadro appare280### `$.ui.open` viene eseguito e non appare alcun riquadro

281 281 

282La chiamata non è partita da un'azione dell'utente e il terminale è più stretto della [larghezza richiesta da quel riquadro](https://code.claude.com/docs/it/plugins/mods/interface.md#when-a-pane-waits-for-a-wider-terminal).282La chiamata non è stata originata da un'azione dell'utente, e il terminale è più stretto della [larghezza necessaria a quel riquadro](https://code.claude.com/docs/it/plugins/mods/interface.md#when-a-pane-waits-for-a-wider-terminal).

283 283 

284Apri il riquadro da un comando o da un pulsante, oppure controlla il risultato `isPlaced` della chiamata. Consulta [Aprire un riquadro al momento giusto](https://code.claude.com/docs/it/plugins/mods/interface.md#open-a-pane-at-the-right-time).284Apri il riquadro da un comando o da un pulsante, oppure controlla il risultato `isPlaced` della chiamata. Consulta [Apri un riquadro al momento giusto](https://code.claude.com/docs/it/plugins/mods/interface.md#open-a-pane-at-the-right-time).

285 285 

286### Un toast non appare286### Un toast non appare

287 287 

288Il tuo mod chiama [`$.ui.toast`](https://code.claude.com/docs/it/plugins/mods/api#show-something-without-starting-a-turn) in una sessione interattiva del terminale e non vedi il toast. Per confermare che la chiamata sia stata eseguita, cerca nel [log di debug](#read-the-debug-log) una riga con il nome del tuo mod e il testo del toast, come in `$.ui.toast (first-mod): build finished`. Poi verifica cause come queste:288Il tuo mod chiama [`$.ui.toast`](https://code.claude.com/docs/it/plugins/mods/api#show-something-without-starting-a-turn) in una sessione interattiva del terminale e non vedi il toast. Per verificare che la chiamata sia stata eseguita, cerca nel [log di debug](#read-the-debug-log) una riga con il nome del tuo mod e il testo del toast, come in `$.ui.toast (first-mod): build finished`. Poi controlla cause come queste:

289 289 

290* **La riga relativa alla chiamata manca**: cerca una riga che spieghi perché Claude Code ha rifiutato la chiamata, come in `first-mod: $.ui.toast dropped: timeoutMs is a whole number of ms, 1 to 60000`.290* **Manca la riga per la chiamata**: cerca una riga che spieghi perché Claude Code ha rifiutato la chiamata, come in `first-mod: $.ui.toast dropped: timeoutMs is a whole number of ms, 1 to 60000`.

291* **Un riquadro sta trattenendo i toast**: il tuo mod o un altro ha passato [`holdToasts`](https://code.claude.com/docs/it/plugins/mods/interface#hold-toasts-behind-a-dialog) quando ha aperto il riquadro visualizzato. Chiudi il riquadro per terminare la trattenuta. Se il riquadro è tuo ed è pensato per restare aperto, rimuovi `holdToasts` dalla sua chiamata `$.ui.open` e apri di nuovo il riquadro.291* **Un riquadro sta trattenendo i toast**: il tuo mod o un altro ha passato [`holdToasts`](https://code.claude.com/docs/it/plugins/mods/interface#hold-toasts-behind-a-dialog) quando ha aperto il riquadro visualizzato. Chiudi il riquadro per terminare la trattenuta. Se il riquadro è tuo ed è pensato per restare aperto, rimuovi `holdToasts` dalla sua chiamata `$.ui.open` e apri di nuovo il riquadro.

292* **Il toast è sotto il prompt**: nel [renderer classico](https://code.claude.com/docs/it/fullscreen.md#enable-fullscreen-rendering), guarda a destra sotto il prompt. Lì un toast è una singola riga che inizia con il nome del mod, anziché una casella in alto a destra.292* **Il toast è sotto il prompt**: nel [renderer classico](https://code.claude.com/docs/it/fullscreen.md#enable-fullscreen-rendering), guarda a destra sotto il prompt. Lì un toast è una riga che inizia con il nome del mod, anziché un riquadro in alto a destra.

293* **Il tuo mod ha generato un toast più recente**: nel renderer classico, un toast più recente del tuo mod può prendere il posto di uno visualizzato o in attesa di essere visualizzato. Il log di debug contiene un'altra riga per il toast più vecchio, che termina con `gave way, cut short` se era visualizzato, oppure con `gave way, unseen` se non è mai apparso. Per mostrare entrambi i messaggi, inseriscili in un unico toast.293* **Il tuo mod ha generato un toast più recente**: nel renderer classico, un toast più recente del tuo mod può prendere il posto di uno visualizzato o in attesa di essere visualizzato. Il log di debug contiene un'altra riga per il toast più vecchio, che termina con `gave way, cut short` se era visualizzato, oppure con `gave way, unseen` se non è mai apparso. Per mostrare entrambi i messaggi, inseriscili in un unico toast.

294* **Il tempo del toast è scaduto prima che venisse disegnato**: nel rendering a schermo intero, Claude Code disegna al massimo tre toast alla volta, quindi il tempo di un toast può scadere prima che venga disegnato. Il log di debug contiene un'altra riga per quel toast, che termina con `left the stack, never drawn`. Quando il tuo mod ne genera diversi contemporaneamente, inserisci i messaggi in un unico toast.294* **Il tempo del toast è scaduto prima che venisse disegnato**: nel rendering a schermo intero, Claude Code disegna al massimo tre toast alla volta, quindi il tempo di un toast può scadere prima che venga disegnato. Il log di debug contiene un'altra riga per quel toast, che termina con `left the stack, never drawn`. Quando il tuo mod ne genera diversi contemporaneamente, inserisci i messaggi in un unico toast.

295 295 

296Prima della v2.1.290, Claude Code scartava un toast generato entro due secondi dall'ultimo mostrato per il tuo mod, e la riga del log di debug relativa al toast scartato riportava `within 2000ms of the last; dropped`.296Prima della v2.1.290, Claude Code scartava un toast generato entro due secondi dall'ultimo che aveva mostrato per il tuo mod, e la riga del log di debug per il toast scartato riportava `within 2000ms of the last; dropped`.

297 297 

298### La banda mostra `plugin panel hidden`298### La banda mostra `plugin panel hidden`

299 299 

300La banda è [compressa](https://code.claude.com/docs/it/plugins/mods/interface.md#when-the-user-collapses-the-band). Si comprime quando premi Ctrl+X e poi Ctrl+A, o i tasti che hai associato al loro posto, e nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md) quando fai clic su `[-]` nella sua prima riga. Resta compressa finché non la espandi o non avvii di nuovo Claude Code, e nel frattempo nessun tasto di scelta rapida o binding `action` preme un pulsante al suo interno.300La banda è [compressa](https://code.claude.com/docs/it/plugins/mods/interface.md#when-the-user-collapses-the-band). Si comprime quando premi Ctrl+X e poi Ctrl+A, o i tasti che hai associato al loro posto, e nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md) quando fai clic su `[-]` nella sua prima riga. Resta compressa finché non la espandi o non avvii di nuovo Claude Code, e nel frattempo nessun tasto di scelta rapida né associazione `action` preme un pulsante al suo interno.

301 301 

302Per espandere la banda, premi i tasti indicati dalla riga, Ctrl+X e poi Ctrl+A per impostazione predefinita, oppure nel rendering a schermo intero fai clic sulla riga.302Per espandere la banda, premi i tasti indicati dalla riga, per impostazione predefinita Ctrl+X e poi Ctrl+A, oppure nel rendering a schermo intero fai clic sulla riga.

303 303 

304### I tasti di scelta rapida non fanno nulla304### I tasti di scelta rapida non fanno nulla

305 305 

306Il tuo riquadro o la tua banda non ha il focus della tastiera, il tuo pulsante si trova in una banda compressa, oppure il disegno si trova nell'estensione VS Code, dove i pulsanti non hanno tasti di scelta rapida. Fai ciò che corrisponde al tuo caso:306Il tuo riquadro o la tua banda non ha il focus della tastiera, il tuo pulsante si trova in una banda compressa, oppure il disegno è nell'estensione VS Code, dove i pulsanti non hanno tasti di scelta rapida. Esegui l'azione corrispondente:

307 307 

308* **Nessun focus della tastiera**: premi Ctrl+X e poi Tab oppure, nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), fai clic sul riquadro o sulla banda. Per fare in modo che il riquadro prenda il focus quando si apre, aprilo con `focus: true` da un comando.308* **Nessun focus della tastiera**: premi Ctrl+X e poi Tab oppure, nel [rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md), fai clic sul riquadro o sulla banda. Per fare in modo che il riquadro prenda il focus quando si apre, aprilo con `focus: true` da un comando.

309* **Il pulsante si trova in una banda compressa**: la banda mostra una riga attenuata che inizia con `▸ plugin panel hidden`. Premi i tasti indicati dalla riga, Ctrl+X e poi Ctrl+A per impostazione predefinita, per [espanderla](#plugin-panel-hidden).309* **Il pulsante si trova in una banda compressa**: la banda mostra una riga attenuata che inizia con `▸ plugin panel hidden`. Premi i tasti indicati dalla riga, per impostazione predefinita Ctrl+X e poi Ctrl+A, per [espanderla](#plugin-panel-hidden).

310* **Nell'estensione VS Code**: fai clic sul pulsante, oppure premi Invio su di esso quando ha il focus310* **Nell'estensione VS Code**: fai clic sul pulsante, oppure premi Enter su di esso quando ha il focus

311 311 

312### Un disegno funziona nel terminale ma non nell'app Desktop o in VS Code312### Un disegno funziona nel terminale ma non nell'app Desktop o in VS Code

313 313 

314L'app non disegna il punto di rendering o l'elemento, oppure la sessione è una di quelle in cui l'estensione VS Code non disegna nulla per i mod. Gli altri hook del mod vengono comunque eseguiti. Verifica queste cause:314Quell'app non disegna il punto o l'elemento, oppure la sessione è di un tipo in cui l'estensione VS Code non disegna nulla per i mod. Gli altri hook del mod vengono comunque eseguiti. Controlla queste cause:

315 315 

316* **Il punto di rendering o l'elemento non viene disegnato in quell'app**: cerca il tuo punto di rendering nella tabella dei [punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) e i tuoi elementi nella tabella degli [elementi](https://code.claude.com/docs/it/plugins/mods/reference.md#elements). Per un elemento che l'app non possiede, controlla `e.surface` nell'hook e restituisci un albero che l'app può disegnare.316* **Il punto o l'elemento non viene disegnato in quell'app**: cerca il tuo punto nella tabella dei [punti di rendering](https://code.claude.com/docs/it/plugins/mods/reference.md#render-sites) e i tuoi elementi nella tabella degli [elementi](https://code.claude.com/docs/it/plugins/mods/reference.md#elements). Per un elemento che l'app non supporta, controlla `e.surface` nell'hook e restituisci un albero che l'app può disegnare.

317* **L'estensione VS Code è precedente alla 2.1.299**: il pannello della chat disegna per i mod a partire dalla [versione dell'estensione](https://code.claude.com/docs/it/vs-code.md#install-the-extension) 2.1.299. Controlla la versione nella vista Estensioni di VS Code e aggiorna l'estensione da lì.317* **L'estensione VS Code è precedente alla 2.1.299**: il pannello della chat disegna per i mod a partire dalla [versione dell'estensione](https://code.claude.com/docs/it/vs-code.md#install-the-extension) 2.1.299. Controlla la versione nella vista Estensioni di VS Code e aggiorna l'estensione da lì.

318* **L'estensione è precedente alla 2.1.304 e la sessione non recupera i feature flag**: aggiorna l'estensione, oppure esegui invece `claude` nel terminale integrato di VS Code. Le sessioni su Amazon Bedrock, Agent Platform di Google Cloud o Microsoft Foundry saltano il recupero. Per le altre che lo saltano, come una sessione tramite un [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway), consulta [Funzionalità che richiedono il recupero dei feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching).318* **L'estensione è precedente alla 2.1.304 e la sessione non recupera i feature flag**: aggiorna l'estensione, oppure esegui `claude` nel terminale integrato di VS Code. Le sessioni su Amazon Bedrock, Agent Platform di Google Cloud o Microsoft Foundry saltano il recupero. Per le altre che lo saltano, come una sessione con [gateway delle app Claude](https://code.claude.com/docs/it/claude-apps-gateway), consulta [Funzionalità che richiedono il recupero dei feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching).

319 319 

320## Una modifica o un valore va perso320## Una modifica o un valore va perso

321 321 

Details

66>66>

67> Un marketplace di plugin non è [Claude Marketplace](https://claude.com/marketplace). Claude Marketplace è il sito web su claude.com/marketplace dove puoi sfogliare plugin, connettori, prodotti partner e partner di servizi. Non è un marketplace che aggiungi con `/plugin marketplace add`.67> Un marketplace di plugin non è [Claude Marketplace](https://claude.com/marketplace). Claude Marketplace è il sito web su claude.com/marketplace dove puoi sfogliare plugin, connettori, prodotti partner e partner di servizi. Non è un marketplace che aggiungi con `/plugin marketplace add`.

68 68 

69Claude Code aggiunge il marketplace ufficiale di Anthropic la prima volta che avvii una sessione di terminale interattiva, a meno che una [politica gestita](https://code.claude.com/docs/it/plugins/org.md#allow-the-official-marketplace-and-your-own) non lo blocchi. Claude Code non aggiunge i marketplace community e demo di Anthropic da solo. Per distinguere i tre marketplace di Anthropic, leggi [Marketplace di Anthropic](https://code.claude.com/docs/it/plugins/anthropic-marketplaces.md). Per vedere cosa elenca quello ufficiale, apri la scheda **Discover** di `/plugin` in una sessione o sfoglia [Claude Marketplace](https://claude.com/marketplace/plugins).69Claude Code aggiunge il marketplace ufficiale di Anthropic la prima volta che avvii una sessione di terminale interattiva, a meno che una [politica gestita](https://code.claude.com/docs/it/plugins/org.md#allow-the-official-marketplace-and-your-own) non lo blocchi. Claude Code non aggiunge il marketplace community di Anthropic da solo. Per distinguere i marketplace di Anthropic, leggi [Marketplace di Anthropic](https://code.claude.com/docs/it/plugins/anthropic-marketplaces.md). Per vedere cosa elenca quello ufficiale, apri la scheda **Discover** di `/plugin` in una sessione o sfoglia [Claude Marketplace](https://claude.com/marketplace/plugins).

70 70 

71Questo diagramma mostra il percorso da un marketplace alla tua sessione. Un marketplace elenca un plugin, installi quel plugin e Claude Code carica i suoi componenti.71Questo diagramma mostra il percorso da un marketplace alla tua sessione. Un marketplace elenca un plugin, installi quel plugin e Claude Code carica i suoi componenti.

72 72 


88 88 

89Il nome di un marketplace lo colloca in uno di tre livelli. Claude Code accetta i nomi ufficiali e community solo per i marketplace provenienti da repository `github.com/anthropics/`:89Il nome di un marketplace lo colloca in uno di tre livelli. Claude Code accetta i nomi ufficiali e community solo per i marketplace provenienti da repository `github.com/anthropics/`:

90 90 

91* **Ufficiale**: marketplace con uno dei [nomi ufficiali del marketplace](https://code.claude.com/docs/it/plugins/security.md#official-marketplace-names) di Anthropic, incluso `claude-plugins-official` e il marketplace demo `claude-code-plugins`.91* **Ufficiale**: marketplace con uno dei [nomi ufficiali del marketplace](https://code.claude.com/docs/it/plugins/security.md#official-marketplace-names) di Anthropic, inclusi `claude-plugins-official` e `claude-code-plugins`.

92* **Community**: marketplace con uno dei nomi community di Anthropic, come `claude-community`. [Identifica i marketplace di Anthropic per nome](https://code.claude.com/docs/it/plugins/security.md#marketplace-tiers) li elenca.92* **Community**: marketplace con uno dei nomi community di Anthropic, come `claude-community`. [Identifica i marketplace di Anthropic per nome](https://code.claude.com/docs/it/plugins/security.md#marketplace-tiers) li elenca.

93* **Terze parti**: ogni altro marketplace. Un marketplace che il tuo collega o la tua organizzazione pubblica è di terze parti.93* **Terze parti**: ogni altro marketplace. Un marketplace che il tuo collega o la tua organizzazione pubblica è di terze parti.

94 94 

Details

96}96}

97```97```

98 98 

99Nella tua shell, esegui `claude plugin validate .` nel repository prima di eseguire il push. Per sapere cosa controlla l'esecuzione, vedi [Convalida una directory](https://code.claude.com/docs/it/plugins/cli-reference.md#validate-a-directory).99Sostituisci `your-marketplace` con un nome che difficilmente altri autori sceglierebbero, perché un utente [non può avere due marketplace con lo stesso nome](https://code.claude.com/docs/it/plugins/marketplace-reference.md#marketplace-file). Nella tua shell, esegui `claude plugin validate .` nel repository prima di eseguire il push. Per sapere cosa controlla l'esecuzione, vedi [Convalida una directory](https://code.claude.com/docs/it/plugins/cli-reference.md#validate-a-directory).

100 100 

101[Crea un marketplace](https://code.claude.com/docs/it/plugins/create-marketplace.md) copre il layout con diversi plugin in un repository.101[Crea un marketplace](https://code.claude.com/docs/it/plugins/create-marketplace.md) copre il layout con diversi plugin in un repository.

102 102 

Details

76* `first-party-plugins`76* `first-party-plugins`

77* `claude-tag-plugins`77* `claude-tag-plugins`

78 78 

79Per come i marketplace ufficiali, community e demo differiscono e dove sfogliare cosa elenca ognuno, vedi [Anthropic's marketplaces](https://code.claude.com/docs/it/plugins/anthropic-marketplaces.md).79Per come differiscono i marketplace ufficiali e community e dove sfogliare cosa elenca ognuno, vedi [Marketplace di Anthropic](https://code.claude.com/docs/it/plugins/anthropic-marketplaces.md).

80 80 

81## Esamina un plugin prima di installarlo81## Esamina un plugin prima di installarlo

82 82 

Details

18 18 

19Usa uno script wrapper quando ogni sessione ha bisogno di una configurazione che il runner non può fare da solo: provisioning di credenziali di breve durata limitate al creatore della sessione, esportazione di segreti specifici dell'ambiente, preparazione di toolchain di linguaggio o applicazione di limiti di risorse attorno al processo figlio. Il runner avvia il tuo wrapper al posto del binario Claude Code, una volta per sessione. Termina il wrapper con `exec` in `$CLAUDE_RUNNER_CLAUDE_BIN`, il binario del runner stesso, in modo che i segnali e i codici di uscita si propaghino correttamente.19Usa uno script wrapper quando ogni sessione ha bisogno di una configurazione che il runner non può fare da solo: provisioning di credenziali di breve durata limitate al creatore della sessione, esportazione di segreti specifici dell'ambiente, preparazione di toolchain di linguaggio o applicazione di limiti di risorse attorno al processo figlio. Il runner avvia il tuo wrapper al posto del binario Claude Code, una volta per sessione. Termina il wrapper con `exec` in `$CLAUDE_RUNNER_CLAUDE_BIN`, il binario del runner stesso, in modo che i segnali e i codici di uscita si propaghino correttamente.

20 20 

21Punta `--exec-path`, o `SELF_HOSTED_RUNNER_EXEC_PATH`, al wrapper quando avvii il runner:21Punta `--exec-path`, o `SELF_HOSTED_RUNNER_EXEC_PATH`, al wrapper quando avvii il runner, sostituendo `<writable-dir>` come descritto nella [guida rapida](https://code.claude.com/docs/it/self-hosted-environments-quickstart.md#set-up-manually):

22 22 

23```bash theme={null}23```bash theme={null}

24claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret --exec-path /etc/claude/session-wrapper.sh24claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret --base-dir '<writable-dir>' --exec-path /etc/claude/session-wrapper.sh

25```25```

26 26 

27Il runner imposta quanto segue nell'ambiente del wrapper:27Il runner imposta quanto segue nell'ambiente del wrapper:


457 457 

458Per verificare che il trap funzioni, aggiungi subito sotto la riga `trap` una riga che chiama un comando inesistente, come `no-such-command`. Esegui il file dell'hook dalla tua shell e verifica che `echo $?` stampi `1`, quindi rimuovi la riga.458Per verificare che il trap funzioni, aggiungi subito sotto la riga `trap` una riga che chiama un comando inesistente, come `no-such-command`. Esegui il file dell'hook dalla tua shell e verifica che `echo $?` stampi `1`, quindi rimuovi la riga.

459 459 

460### Arresta o riavvia l'orchestratore

461 

462Per arrestare o riavviare l'orchestratore senza interrompere gli hook `spawn-runner` in esecuzione, avvialo con [`--shutdown-drain-sec`](https://code.claude.com/docs/it/self-hosted-environments-reference#orchestrator-cli-flags). Alla ricezione di `SIGTERM`, concede quindi agli hook in esecuzione fino al numero di secondi che hai impostato per terminare. Per scegliere il valore e configurare di conseguenza il tuo supervisore di processi, consulta [Dimensiona `--shutdown-drain-sec` e il timeout di arresto dell'orchestratore](#size-shutdown-drain-sec-and-the-supervisors-stop-timeout-for-the-orchestrator).

463 

464Questo comando di avvio concede 70 secondi:

465 

466```bash theme={null}

467claude self-hosted-runner orchestrator \

468 --environment-secret-file /etc/claude/environment-secret \

469 --hooks-dir /etc/claude/hooks \

470 --shutdown-drain-sec 70

471```

472 

473L'orchestratore esce una volta terminati l'interrogazione già inviata e tutti gli hook. Allo scadere dei secondi di `--shutdown-drain-sec`, gli hook ancora in esecuzione ricevono `SIGTERM` e l'orchestratore esce. Un secondo `SIGTERM` o qualsiasi `SIGINT` fa lo stesso senza attendere. La riga di log contenente `[runner:orchestrator] stop summary:` conteggia gli hook e le richieste di spawn in base a come è terminato ciascuno.

474 

475Senza `--shutdown-drain-sec`, l'orchestratore si arresta immediatamente alla ricezione di `SIGTERM` o `SIGINT`. Ogni hook in esecuzione riceve `SIGTERM`, e ad Anthropic non viene comunicato nulla. Una sessione il cui runner non è mai stato avviato può quindi restare in coda finché Anthropic non [la richiede di nuovo](#the-spawn-runner-hook), cosa che avviene una volta trascorso `--expected-spawn-seconds`, 120 secondi per impostazione predefinita.

476 

477> [!NOTE]

478>

479> `--shutdown-drain-sec` richiede Claude Code v2.1.299 o successiva. Una versione precedente esce all'avvio con `error: unknown flag --shutdown-drain-sec`.

480 

481#### Dimensiona `--shutdown-drain-sec` e il timeout di arresto dell'orchestratore

482 

483Con le impostazioni predefinite, usa [`--shutdown-drain-sec 70`](https://code.claude.com/docs/it/self-hosted-environments-reference#orchestrator-cli-flags) con un timeout di arresto di 85 secondi, ovvero `terminationGracePeriodSeconds: 85` su Kubernetes o `TimeoutStopSec=85` con systemd. Se hai modificato `--hook-timeout`, scala entrambi i valori:

484 

485* **`--shutdown-drain-sec`**: almeno `--hook-timeout` più 10 secondi, in modo che un hook avviato subito prima di `SIGTERM` possa comunque terminare

486* **Timeout di arresto**: almeno `--shutdown-drain-sec` più 15 secondi. L'orchestratore registra questo valore all'avvio: cerca la riga che contiene `shutdown drain:`.

487 

488Fai in modo che il tuo supervisore di processi invii un solo `SIGTERM`, al solo processo dell'orchestratore, perché un secondo segnale interrompe anticipatamente l'attesa di `--shutdown-drain-sec`. Se lasci invariato il valore predefinito di systemd [`KillMode=control-group`](https://code.claude.com/docs/it/self-hosted-environments-deploy#what-reaches-a-running-post-session-hook), anche gli hook ricevono `SIGTERM`, e un hook può terminare prima di inviare il suo carico di lavoro. Prima di modificare `KillMode`, controlla come il tuo hook `spawn-runner` avvia i runner:

489 

490* **Se il tuo hook invia il carico di lavoro a una piattaforma ed esce**: esegui l'orchestratore come processo principale della unit e imposta `KillMode=mixed`, che invia `SIGTERM` solo a quel processo.

491* **Se il tuo hook avvia i runner come processi nella unit stessa dell'orchestratore**: `KillMode=mixed` non invia `SIGTERM` a quei runner. Systemd invia loro invece `SIGKILL` in un secondo momento, quindi escono senza svuotare le loro sessioni né eseguire il loro hook `post-session`.

492 

460## Inviare le richieste al modello a Bedrock o ad Agent Platform493## Inviare le richieste al modello a Bedrock o ad Agent Platform

461 494 

462Se la tua organizzazione ha bisogno che le richieste al modello passino attraverso il proprio account AWS o Google Cloud, configura il runner per [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) o per [Agent Platform di Google Cloud, in precedenza Vertex AI](https://code.claude.com/docs/it/google-vertex-ai.md). Ogni sessione avviata da quel runner chiamerà quindi il modello nel tuo account cloud, con le tue credenziali cloud. Senza questa configurazione, le sessioni inviano le richieste al modello all'API di Anthropic.495Se la tua organizzazione ha bisogno che le richieste al modello passino attraverso il proprio account AWS o Google Cloud, configura il runner per [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) o per [Agent Platform di Google Cloud, in precedenza Vertex AI](https://code.claude.com/docs/it/google-vertex-ai.md). Ogni sessione avviata da quel runner chiamerà quindi il modello nel tuo account cloud, con le tue credenziali cloud. Senza questa configurazione, le sessioni inviano le richieste al modello all'API di Anthropic.

Details

483 483 

484## Kubernetes484## Kubernetes

485 485 

486Il runner serve `GET /healthz` sulla porta 8080 per impostazione predefinita, configurabile con `--health-port`, quindi i probe di Kubernetes funzionano senza configurazione extra. L'endpoint restituisce `200` ogni volta che il processo è vivo, quindi i probe di seguito rilevano un processo morto, non uno bloccato; per catturare un runner che ha smesso di eseguire il polling, avvisa sulla serie `last_poll_age_seconds` da [`/metrics`](https://code.claude.com/docs/it/self-hosted-environments-reference#prometheus-metrics). Il Deployment di seguito monta il segreto dell'ambiente da un Kubernetes Secret, punta i probe di liveness e readiness a `/healthz`, e imposta un periodo di grazia di terminazione di 90 secondi. Vedi [Shutdown timing](#shutdown-timing) per il motivo per cui il periodo di grazia è importante.486Il runner espone `GET /healthz` sulla porta 8080 per impostazione predefinita, configurabile con `--health-port`, quindi le probe di Kubernetes funzionano senza alcuna configurazione aggiuntiva. L'endpoint restituisce `200` ogni volta che il processo è attivo, quindi le probe seguenti rilevano un processo terminato, non uno bloccato; per individuare un runner che ha smesso di eseguire il polling, imposta un avviso sulla serie `last_poll_age_seconds` da [`/metrics`](https://code.claude.com/docs/it/self-hosted-environments-reference#prometheus-metrics). Il Deployment seguente monta il secret dell'ambiente da un Secret di Kubernetes, punta le probe di liveness e readiness a `/healthz` e imposta un periodo di tolleranza per la terminazione di 90 secondi. Consulta [Tempistiche di arresto](#shutdown-timing) per capire perché il periodo di tolleranza è importante.

487 487 

488Il manifesto non imposta `resources` di CPU o memoria sul container runner. Aggiungi un blocco dimensionato per la capacità che esegui, come [Dimensiona CPU e memoria per le sessioni](#size-cpu-and-memory-for-sessions) descrive.488Il manifest non imposta `resources` di CPU o memoria sul container del runner. Aggiungi un blocco dimensionato per la capacità che esegui, come descritto in [Dimensionare CPU e memoria per le sessioni](#size-cpu-and-memory-for-sessions).

489 489 

490```yaml theme={null}490```yaml theme={null}

491apiVersion: apps/v1491apiVersion: apps/v1


541 secretName: claude-runner-environment-secret541 secretName: claude-runner-environment-secret

542```542```

543 543 

544Il Deployment di sopra vive in uno spazio dei nomi `claude-runners`. Crea prima lo spazio dei nomi:544Il Deployment precedente si trova in un namespace `claude-runners`. Crea prima il namespace:

545 545 

546```bash theme={null}546```bash theme={null}

547kubectl create namespace claude-runners547kubectl create namespace claude-runners

548```548```

549 549 

550Crea il Secret di supporto da un file locale che contiene il valore che hai copiato nel passaggio [**Copy environment key**](https://code.claude.com/docs/it/self-hosted-environments-quickstart.md#set-up-manually) dell'interfaccia utente di amministrazione, in modo che il segreto non appaia mai nella tua cronologia della shell. Esegui `(umask 077 && cat > ./environment-secret)`, incolla il segreto, premi Invio, quindi Ctrl-D. Quindi crea il Secret e cancella il file:550Crea il Secret sottostante a partire da un file locale contenente il valore che hai copiato nel [passaggio **Copy environment key**](https://code.claude.com/docs/it/self-hosted-environments-quickstart.md#set-up-manually) dell'interfaccia di amministrazione, in modo che il secret non compaia mai nella cronologia della shell. Esegui `(umask 077 && cat > ./environment-secret)`, incolla il secret, premi Enter, poi Ctrl-D. Quindi crea il Secret ed elimina il file:

551 551 

552```bash theme={null}552```bash theme={null}

553kubectl create secret generic claude-runner-environment-secret -n claude-runners --from-file=environment-secret=./environment-secret553kubectl create secret generic claude-runner-environment-secret -n claude-runners --from-file=environment-secret=./environment-secret


583 583 

584## Shutdown timing584## Shutdown timing

585 585 

586Dopo `SIGTERM`, un runner ha bisogno di tempo per chiudere le sue sessioni in modo pulito prima che il tuo orchestrator lo termini. All'avvio registra nei log quanto tempo gli serve, in una riga che contiene `This runner needs up to 80s` con le impostazioni predefinite. Imposta il timeout di arresto del tuo orchestrator ad almeno quel numero di secondi: `terminationGracePeriodSeconds` su Kubernetes, `stop_grace_period` su Docker Compose, o l'equivalente della tua piattaforma. Il valore predefinito di Kubernetes è 30 secondi, quindi senza questa impostazione può fermare il pod prima che il runner finisca.586> [!NOTE]

587>

588> Questi tempi si applicano ai runner. Il processo `claude self-hosted-runner orchestrator` ha i propri: consulta [Size `--shutdown-drain-sec` and the orchestrator's stop timeout](https://code.claude.com/docs/it/self-hosted-environments-configuration#size-shutdown-drain-sec-and-the-supervisors-stop-timeout-for-the-orchestrator).

589 

590All'avvio, ogni runner registra nei log quanto tempo può servirgli dopo `SIGTERM` per chiudere le sue sessioni in modo pulito, ad esempio `This runner needs up to 80s` con le impostazioni predefinite. Il timeout di arresto è il tempo che il tuo supervisore dei processi attende dopo `SIGTERM` prima di terminare il runner. Impostalo ad almeno il tempo registrato nei log:

591 

592* **Kubernetes**: `terminationGracePeriodSeconds`. Il valore predefinito di Kubernetes è 30 secondi, quindi senza questa impostazione può fermare il pod prima che il runner finisca.

593* **Docker Compose**: `stop_grace_period`

587 594 

588Su `SIGTERM`, il runner smette di accettare nuove sessioni. Poi avvia un arresto controllato, chiamato drenaggio, a meno che tu non imposti [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal) per ritardarlo. Il drenaggio ha tre passaggi:595Su `SIGTERM`, il runner smette di accettare nuove sessioni. Poi avvia un arresto controllato, chiamato drenaggio, a meno che tu non imposti [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal) per ritardarlo. Il drenaggio ha tre passaggi:

589 596 


744 751 

745**2. Avvia il runner**752**2. Avvia il runner**

746 753 

747Dalla tua shell, avvia il runner con `--hold-idle-file`, `--release-idle-session-min` e [`--max-hold-min`](https://code.claude.com/docs/it/self-hosted-environments-reference#runner-cli-flags), il limite massimo di un trattenimento, calcolato da quando una sessione diventa inattiva. Senza questa opzione, il limite è di un giorno. Impostalo su un valore superiore a `--release-idle-session-min`, altrimenti nulla viene trattenuto. Questo esempio rilascia le sessioni inattive dopo 30 minuti e rilascia una sessione trattenuta al massimo 4 ore dopo che è diventata inattiva:754Dalla tua shell, avvia il runner con `--hold-idle-file`, `--release-idle-session-min` e [`--max-hold-min`](https://code.claude.com/docs/it/self-hosted-environments-reference#runner-cli-flags), il limite massimo di un trattenimento, calcolato da quando una sessione diventa inattiva. Senza questa opzione, il limite è di un giorno. Impostalo su un valore superiore a `--release-idle-session-min`, altrimenti nulla viene trattenuto. Sostituisci `<writable-dir>` come descritto nella [guida rapida](https://code.claude.com/docs/it/self-hosted-environments-quickstart.md#set-up-manually). Questo esempio rilascia le sessioni inattive dopo 30 minuti e rilascia una sessione trattenuta al massimo 4 ore dopo che è diventata inattiva:

748 755 

749```bash theme={null}756```bash theme={null}

750claude self-hosted-runner \757claude self-hosted-runner \

751 --environment-secret-file /etc/claude/environment-secret \758 --environment-secret-file /etc/claude/environment-secret \

759 --base-dir '<writable-dir>' \

752 --release-idle-session-min 30 \760 --release-idle-session-min 30 \

753 --hold-idle-file /var/lib/claude-hold/hold-idle \761 --hold-idle-file /var/lib/claude-hold/hold-idle \

754 --max-hold-min 240762 --max-hold-min 240


816 * **Le modifiche senza commit vengono comunque perse**: per chiedere a Claude di fare il commit e il push quando finisce di rispondere, vedi [Chiedere alle sessioni di eseguire il push del proprio lavoro](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#prompt-sessions-to-push-their-work)824 * **Le modifiche senza commit vengono comunque perse**: per chiedere a Claude di fare il commit e il push quando finisce di rispondere, vedi [Chiedere alle sessioni di eseguire il push del proprio lavoro](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#prompt-sessions-to-push-their-work)

817* **Un comando interrotto dalla perdita di un runner può essere eseguito di nuovo**: quando la sessione riprende su un altro runner, Claude vede la chiamata allo strumento interrotta con un risultato che indica che il suo esito è sconosciuto.825* **Un comando interrotto dalla perdita di un runner può essere eseguito di nuovo**: quando la sessione riprende su un altro runner, Claude vede la chiamata allo strumento interrotta con un risultato che indica che il suo esito è sconosciuto.

818* **Un repository aggiunto a metà sessione può non riuscire a essere clonato**: Claude lo clona con `git clone` tramite HTTPS. Su un runner senza [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), il clone fallisce con un errore di autenticazione git se nulla sull'host può leggere il repository. Quando possibile, seleziona ogni repository di cui la sessione ha bisogno quando la crei.826* **Un repository aggiunto a metà sessione può non riuscire a essere clonato**: Claude lo clona con `git clone` tramite HTTPS. Su un runner senza [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), il clone fallisce con un errore di autenticazione git se nulla sull'host può leggere il repository. Quando possibile, seleziona ogni repository di cui la sessione ha bisogno quando la crei.

827 * **Quando la sessione riprende**: un [hook `checkout`](https://code.claude.com/docs/it/self-hosted-environments-configuration#checkout) viene eseguito anche per il repository aggiunto, con [`CLAUDE_RUNNER_REPO_REF`](https://code.claude.com/docs/it/self-hosted-environments-configuration#checkout) vuoto, quindi fai in modo che il tuo hook gestisca questo caso.

819* **Alcuni connettori non appaiono nelle sessioni self-hosted**: un connettore che non hai ancora connesso nelle Impostazioni di claude.ai non è elencato in una sessione self-hosted, e la sessione non ti chiederà di connettarlo. Connettilo prima nelle Impostazioni, quindi avvia una sessione fresca. L'aggiunta di un connettore a una sessione già in esecuzione non rende i suoi strumenti disponibili a Claude; avvia una sessione fresca per raccogliere un connettore appena aggiunto.828* **Alcuni connettori non appaiono nelle sessioni self-hosted**: un connettore che non hai ancora connesso nelle Impostazioni di claude.ai non è elencato in una sessione self-hosted, e la sessione non ti chiederà di connettarlo. Connettilo prima nelle Impostazioni, quindi avvia una sessione fresca. L'aggiunta di un connettore a una sessione già in esecuzione non rende i suoi strumenti disponibili a Claude; avvia una sessione fresca per raccogliere un connettore appena aggiunto.

820* **Quando qualcuno archivia o elimina una sessione, o rilascia il suo runner dal menu della sessione**: non fare affidamento sul push di [`--push-outcome-on-release`](https://code.claude.com/docs/it/self-hosted-environments-reference#runner-cli-flags). Per salvare i commit in questi casi, esegui il push di `HEAD` su un branch di recupero da un [hook `post-session`](https://code.claude.com/docs/it/self-hosted-environments-configuration#post-session). Se parti dall'esempio presente lì, fai in modo che esegua il push anche quando non ci sono modifiche senza commit, perché esegue il push solo dopo un commit di snapshot.829* **Quando qualcuno archivia o elimina una sessione, o rilascia il suo runner dal menu della sessione**: non fare affidamento sul push di [`--push-outcome-on-release`](https://code.claude.com/docs/it/self-hosted-environments-reference#runner-cli-flags). Per salvare i commit in questi casi, esegui il push di `HEAD` su un branch di recupero da un [hook `post-session`](https://code.claude.com/docs/it/self-hosted-environments-configuration#post-session). Se parti dall'esempio presente lì, fai in modo che esegua il push anche quando non ci sono modifiche senza commit, perché esegue il push solo dopo un commit di snapshot.

821 830 


833 842 

834Problemi comuni:843Problemi comuni:

835 844 

836* **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.845* **Il runner non appare nell'ambiente**: verifica che l'host possa raggiungere `api.anthropic.com` tramite HTTPS e che il segreto dell'ambiente sia attuale. In caso di errore di autenticazione, il runner registra `[runner:fatal]` con il motivo del rifiuto.

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

838* **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`](https://code.claude.com/docs/it/network-config#custom-ca-certificates) nell'ambiente del runner su un file PEM con la CA radice del proxy.847* **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`](https://code.claude.com/docs/it/network-config#custom-ca-certificates) nell'ambiente del runner su un file PEM con la CA radice del proxy.

839 848 

840 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).849 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).

841* **Il tuo script di avvio stampa un errore di scrittura contenente `Resource temporarily unavailable` ed esce**: il tuo script condivide il proprio stdout o stderr con il processo `claude self-hosted-runner` o [orchestrator](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#on-demand-runners) che avvia, il quale ha impostato quella pipe o quel socket condiviso in modalità non bloccante. Quando la pipe è piena, una scrittura dal tuo script fallisce con questo errore del sistema operativo invece di attendere, e con `set -e` lo script esce.850* **Il tuo script di avvio stampa un errore di scrittura contenente `Resource temporarily unavailable` ed esce**: il tuo script condivide il proprio stdout o stderr con il processo `claude self-hosted-runner` o [orchestrator](https://code.claude.com/docs/it/self-hosted-environments-configuration.md#on-demand-runners) che avvia, il quale ha impostato quella pipe o quel socket condiviso in modalità non bloccante. Quando la pipe è piena, una scrittura dal tuo script fallisce con questo errore del sistema operativo invece di attendere, e con `set -e` lo script esce.

842 851 

843 Per eliminare l'errore, invia l'output del runner o dell'orchestrator a un file che l'utente del tuo script può creare. Aggiungi `>> "$HOME/claude-runner.log" 2>&1` al comando che lo avvia, prima di qualsiasi `&` che lo mette in background:852 Per eliminare l'errore, invia l'output del runner o dell'orchestrator a un file che l'utente del tuo script può creare. Aggiungi `>> "$HOME/claude-runner.log" 2>&1` al comando che lo avvia, prima di qualsiasi `&` che lo mette in background, e sostituisci `<writable-dir>` come descritto nella [guida rapida](https://code.claude.com/docs/it/self-hosted-environments-quickstart.md#set-up-manually):

844 853 

845 ```bash theme={null}854 ```bash theme={null}

846 claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret >> "$HOME/claude-runner.log" 2>&1855 claude self-hosted-runner --environment-secret-file /etc/claude/environment-secret --base-dir '<writable-dir>' >> "$HOME/claude-runner.log" 2>&1

847 ```856 ```

848 857 

849 L'output del tuo script continua ad andare dove andava prima, mentre ciò che il runner scrive su stdout e stderr, inclusi i suoi errori di avvio, va in quel file. Usa questo reindirizzamento della shell anziché il solo [`--log-file`](https://code.claude.com/docs/it/self-hosted-environments-reference#runner-cli-flags), che replica il log in un file mentre il runner continua a scrivere su stdout e stderr. Se passi già `--log-file`, mantienilo comunque, perché il reindirizzamento non cambia ciò che quel file riceve.858 L'output del tuo script continua ad andare dove andava prima, mentre ciò che il runner scrive su stdout e stderr, inclusi i suoi errori di avvio, va in quel file. Usa questo reindirizzamento della shell anziché il solo [`--log-file`](https://code.claude.com/docs/it/self-hosted-environments-reference#runner-cli-flags), che replica il log in un file mentre il runner continua a scrivere su stdout e stderr. Se passi già `--log-file`, mantienilo comunque, perché il reindirizzamento non cambia ciò che quel file riceve.


901 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.910 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.

902* **Un turno fallisce in claude.ai/code con `This model needs a newer version of Claude Code`**: la versione di Claude Code con cui i tuoi runner avviano le sessioni è più vecchia di quella richiesta dal modello della sessione, quindi l'API [rifiuta la richiesta](https://code.claude.com/docs/it/errors.md#claude-code-does-not-support-this-model). Aggiorna i runner alla versione indicata dal messaggio, o a una successiva, come descritto in [Fissa la versione](#pin-the-version). Nel frattempo, gli utenti possono scegliere un modello diverso nella sessione.911* **Un turno fallisce in claude.ai/code con `This model needs a newer version of Claude Code`**: la versione di Claude Code con cui i tuoi runner avviano le sessioni è più vecchia di quella richiesta dal modello della sessione, quindi l'API [rifiuta la richiesta](https://code.claude.com/docs/it/errors.md#claude-code-does-not-support-this-model). Aggiorna i runner alla versione indicata dal messaggio, o a una successiva, come descritto in [Fissa la versione](#pin-the-version). Nel frattempo, gli utenti possono scegliere un modello diverso nella sessione.

903* **Il pod viene terminato durante lo scarico**: aumentare `terminationGracePeriodSeconds` ad almeno il valore che il runner registra all'avvio. Vedere [Shutdown timing](#shutdown-timing).912* **Il pod viene terminato durante lo scarico**: aumentare `terminationGracePeriodSeconds` ad almeno il valore che il runner registra all'avvio. Vedere [Shutdown timing](#shutdown-timing).

913* **Il runner registra una riga `[runner:log]` che termina con `was paused or too slow`**: il runner ha continuato a funzionare e non ha bisogno di essere riavviato. Finché il flusso stdout o stderr indicato nella riga non è stato letto di nuovo, il runner ha scartato tutte le righe di quel flusso tranne gli ultimi 256 KiB. Se hai passato [`--log-file`](https://code.claude.com/docs/it/self-hosted-environments-reference#runner-cli-flags), cerca lì le righe scartate.

914* **Il runner registra `Nobody can read this process's stdout anymore`**: ciò che leggeva lo stdout del runner non c'è più, quindi il runner smette di scrivere lì per il resto della sua esecuzione e continua a funzionare. Finché stderr è ancora aperto, questa riga e le successive righe di stato del runner, incluse le righe `[runner:fatal]`, vanno su stderr, quindi leggile lì.

904 915 

905Una 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.916Una 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.

906 917 

Details

29 29 

30* 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](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#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.30* 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](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#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.

31* 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](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks).31* 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](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks).

32* Un orologio sincronizzato all'ora reale, ad esempio con NTP. L'autenticazione fallisce quando l'orologio è più di cinque minuti indietro; vedi [Troubleshooting](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#troubleshooting).32* Un orologio sincronizzato all'ora reale, ad esempio con NTP.

33 33 

34### Software sull'host del runner34### Software sull'host del runner

35 35 


48 48 

49## Configura un ambiente e un runner49## Configura un ambiente e un runner

50 50 

51Usa la [configurazione guidata](#run-the-guided-setup) oppure i [passaggi manuali](#set-up-manually). La configurazione guidata è un singolo comando che avvia una sessione Claude Code interattiva e ti guida attraverso il resto. Usa invece i passaggi manuali su un host dove una sessione interattiva non è possibile. Usali anche quando qualcuno che detiene il ruolo Owner ha creato l'ambiente e ti ha consegnato il suo secret, poiché la configurazione guidata richiede un accesso come Owner.51Usa la [configurazione guidata](#run-the-guided-setup) oppure i [passaggi manuali](#set-up-manually). La configurazione guidata è un singolo comando che avvia una sessione interattiva di Claude Code e ti guida attraverso il resto. Usa invece i passaggi manuali su un host in cui non è possibile una sessione interattiva. Usali anche quando qualcuno con il ruolo Owner ha creato l'ambiente e ti ha consegnato il suo secret, poiché la configurazione guidata richiede un accesso come Owner.

52 52 

53### Esegui la configurazione guidata53### Esegui la configurazione guidata

54 54 

55La configurazione guidata ti guida attraverso la creazione dell'ambiente nell'interfaccia di amministrazione, avvia un runner locale con il file secret che salvi, conferma che il runner si registra e scrive un foglio di aiuto in `./runner-setup/CHEAT-SHEET.md`. Prima di eseguirla, verifica l'accesso e la versione:55La configurazione guidata ti accompagna nella creazione dell'ambiente nell'interfaccia di amministrazione, avvia un runner locale con il file del secret che salvi, conferma che il runner si registri e scrive un promemoria in `./runner-setup/CHEAT-SHEET.md`. Prima di eseguirla, verifica l'accesso e la versione:

56 56 

57* **Accesso**: eseguila su una macchina dove hai effettuato l'accesso con `claude auth login` usando un account che detiene un ruolo Owner. Con solo una chiave API o un provider di modelli di terze parti, la sessione si avvia ma i suoi controlli sull'organizzazione falliscono.57* **Accesso**: eseguila su una macchina in cui hai effettuato l'accesso con `claude auth login` usando un account con il ruolo Owner. Con solo una chiave API o un provider di modelli di terze parti, la sessione si avvia ma i controlli sull'organizzazione falliscono.

58* **Versione**: conferma che il [controllo della versione](#software-on-the-runner-host) è passato. Sulle versioni precedenti a 2.1.224, il comando setup avvia una sessione Claude con le parole come prompt invece della configurazione guidata.58* **Versione**: verifica che il [controllo della versione](#software-on-the-runner-host) sia stato superato. Sulle versioni precedenti alla 2.1.224, il comando di configurazione avvia una sessione di Claude usando le parole come prompt invece della configurazione guidata.

59 59 

60Per avviare la configurazione guidata, esegui il subcommand setup nella tua shell e segui le istruzioni:60Per avviare la configurazione guidata, esegui il sottocomando setup nella tua shell e segui le istruzioni:

61 61 

62```bash theme={null}62```bash theme={null}

63claude self-hosted-runner setup63claude self-hosted-runner setup

64```64```

65 65 

66La configurazione non avvia da sola una sessione di test: ti dice di avviarne una su claude.ai/code. L'ultimo passaggio della configurazione arresta il runner che ha avviato. Se esci dalla configurazione prima di quel passaggio, il runner continua a essere in esecuzione. Per proseguire dopo l'ultimo passaggio, avvia di nuovo il runner nella tua shell con il comando presente in `./runner-setup/CHEAT-SHEET.md`, quindi [indirizza una sessione all'ambiente](#route-a-session).66La configurazione non avvia da sola una sessione di test: ti dice di avviarne una su claude.ai/code. L'ultimo passaggio della configurazione arresta il runner che ha avviato. Se esci dalla configurazione prima di quel passaggio, il runner continua a funzionare. Per proseguire dopo l'ultimo passaggio, avvia di nuovo il runner nella tua shell con il comando presente in `./runner-setup/CHEAT-SHEET.md`, quindi [instrada una sessione verso l'ambiente](#route-a-session).

67 67 

68### Configura manualmente68### Configura manualmente

69 69 

70Crea l'ambiente su claude.ai, avvia il runner da un terminale sull'host, quindi torna su claude.ai per confermare che il runner appare e indirizzare una sessione verso di esso. Se qualcuno che detiene il ruolo Owner ha già creato l'ambiente e ti ha consegnato il suo secret, inizia dal passaggio 2.70Crea l'ambiente su claude.ai, avvia il runner da un terminale sull'host, quindi torna su claude.ai per verificare che il runner compaia e instradarvi una sessione. Se qualcuno con il ruolo Owner ha già creato l'ambiente e ti ha consegnato il suo secret, inizia dal passaggio 2.

71 71 

72**1. Crea un ambiente**72**1. Crea un ambiente**

73 73 

74Vai alla [pagina **Cloud environments**](https://claude.ai/admin-settings/cloud-environments) nelle impostazioni di amministrazione. Sotto **Self-hosted environments**, seleziona **New**, nomina l'ambiente, e seleziona **Create**. Nel secondo passaggio della procedura guidata, seleziona **Copy environment key** per copiare il secret dell'ambiente, che l'interfaccia di amministrazione etichetta come environment key. claude.ai mostra il secret una volta, e non puoi recuperarlo in seguito; scade 365 giorni dopo la creazione. L'ID `ccpool_...` dell'ambiente rimane visibile nella sua finestra di dialogo dei dettagli; ne avrai bisogno per il controllo `aud` nella [verifica del token](https://code.claude.com/docs/it/self-hosted-environments-identity.md) e per l'invio di [sessioni di test da CI](https://code.claude.com/docs/it/self-hosted-environments-testing.md#run-the-test-loop).74Vai alla [pagina **Cloud environments**](https://claude.ai/admin-settings/cloud-environments) nelle impostazioni di amministrazione. In **Self-hosted environments**, seleziona **New**, assegna un nome all'ambiente e seleziona **Create**. Nel secondo passaggio della procedura guidata, seleziona **Copy environment key** per copiare il secret dell'ambiente, che l'interfaccia di amministrazione chiama environment key. claude.ai mostra il secret una sola volta e non puoi recuperarlo in seguito; scade 365 giorni dopo la creazione. L'ID `ccpool_...` dell'ambiente resta visibile nella sua finestra di dettaglio; ti servirà per il controllo `aud` nella [verifica dei token](https://code.claude.com/docs/it/self-hosted-environments-identity.md) e per inviare [sessioni di test dalla CI](https://code.claude.com/docs/it/self-hosted-environments-testing.md#run-the-test-loop).

75 75 

76Se perdi il secret o hai bisogno di ruotarlo, crea un nuovo secret dalla scheda **Configuration** dell'ambiente, distribuisci il nuovo secret ai tuoi runner, quindi revoca quello vecchio. I runner che detengono un secret revocato falliscono il loro prossimo poll autenticato ed escono, registrando `poll auth failed`, e il tuo orchestrator li riavvia con il nuovo secret.76Se perdi il secret o devi ruotarlo, crea un nuovo secret dalla scheda **Configuration** dell'ambiente, distribuisci il nuovo secret ai tuoi runner, quindi revoca quello vecchio. I runner che usano un secret revocato falliscono il successivo polling autenticato ed escono, registrando `poll auth failed`, e il tuo orchestratore li riavvia con il nuovo secret.

77 77 

78**2. Avvia un runner**78**2. Avvia un runner**

79 79 

80Crea la directory del secret. Questo comando e il successivo usano `/etc/claude`, che richiede root, e il file secret che creano è leggibile solo dall'utente che li esegue. Se il runner verrà eseguito come un altro utente, esce con `error: Failed to read environment secret file <path> (EACCES: permission denied, open '<path>')`. In tal caso, esegui entrambi i comandi come utente del runner con una directory in cui quell'utente può scrivere al posto di `/etc/claude`, e passa lo stesso percorso a `--environment-secret-file`. Qualsiasi percorso che il processo runner può leggere funziona.80Crea la directory del secret. Questo comando e il successivo usano `/etc/claude`, che richiede i privilegi di root, e il file del secret che creano è leggibile solo dall'utente che li esegue. Se il runner verrà eseguito come un altro utente, esce con `error: Failed to read environment secret file <path> (EACCES: permission denied, open '<path>')`. In tal caso, esegui entrambi i comandi come utente del runner, usando al posto di `/etc/claude` una directory in cui quell'utente possa scrivere, e passa lo stesso percorso a `--environment-secret-file`. Va bene qualsiasi percorso che il processo del runner possa leggere.

81 81 

82```bash theme={null}82```bash theme={null}

83mkdir -p /etc/claude83mkdir -p /etc/claude

84```84```

85 85 

86Scrivi il secret dell'ambiente in un file. Il comando sottostante legge dal tuo terminale in modo che il secret rimanga fuori dalla cronologia della shell: incolla il valore che hai copiato, premi Invio, quindi Ctrl-D, e l'`umask` della subshell rende il file leggibile solo dal suo proprietario.86Scrivi il secret dell'ambiente in un file. Il comando seguente legge dal tuo terminale, così il secret resta fuori dalla cronologia della shell: incolla il valore che hai copiato, premi Enter, poi Ctrl-D, e l'`umask` della subshell rende il file leggibile solo dal suo proprietario.

87 87 

88```bash theme={null}88```bash theme={null}

89(umask 077 && cat > /etc/claude/environment-secret)89(umask 077 && cat > /etc/claude/environment-secret)

90```90```

91 91 

92Scegli 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.92Scegli una directory di base, sostituendo `<writable-dir>` nel comando del runner qui sotto con un percorso assoluto in cui il runner possa scrivere o che possa creare. Il runner crea la directory all'avvio, quindi vi esegue il checkout dei repository e crea al suo interno le directory per ogni sessione. Senza `--base-dir` usa `/workspace`, che funziona solo se quella directory esiste già ed è scrivibile oppure se avvii il runner come root.

93 93 

94> [!WARNING]94> [!WARNING]

95>95>

96> 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.96> Usa una directory dedicata al runner, non la tua directory home né una directory con i tuoi cloni. Il runner considera come proprio clone qualunque cosa trovi in `<writable-dir>/<repo-owner>/<repo>` e può reimpostarla e sovrascrivere o eliminare file al suo interno.

97 97 

98Se 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](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#troubleshooting).98Se il runner non riesce a creare la directory di base o a scriverci, esce all'avvio con un errore che indica la directory invece di registrarsi. Consulta [Risoluzione dei problemi](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#troubleshooting).

99 99 

100Quindi avvia il runner con `--environment-secret-file` e `--base-dir`:100Quindi avvia il runner con `--environment-secret-file` e `--base-dir`:

101 101 


103claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'103claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'

104```104```

105 105 

106Il 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.106Il runner registra `Registered: runner_id=<runner-id>` una volta che si è registrato presso il tuo ambiente, quindi inizia a fare polling in attesa di 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. Consulta [Se il runner esce](#if-the-runner-exits) per sapere quando succede e cosa registra il runner.

107 107 

108**3. Verifica che il runner appaia**108**3. Verifica che il runner compaia**

109 109 

110Ritorna alla [pagina **Cloud environments**](https://claude.ai/admin-settings/cloud-environments). Lo stato del tuo ambiente cambia da **No runners deployed** a **Healthy** entro pochi secondi dall'avvio del runner; apri l'ambiente e seleziona **Activity** per vedere il runner stesso. Se non hai accesso alla pagina di amministrazione, la riga `Registered: runner_id=<runner-id>` nel log del runner del passaggio precedente ti fornisce lo stesso segnale.110Torna alla [pagina **Cloud environments**](https://claude.ai/admin-settings/cloud-environments). Lo stato del tuo ambiente passa da **No runners deployed** a **Healthy** entro pochi secondi dall'avvio del runner; apri l'ambiente e seleziona **Activity** per vedere il runner stesso. Se non hai accesso alla pagina di amministrazione, la riga `Registered: runner_id=<runner-id>` nel log del runner del passaggio precedente ti fornisce la stessa indicazione.

111 111 

112**4. Indirizza una sessione all'ambiente**112**4. Instrada una sessione verso l'ambiente**

113 113 

114Avvia 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.114Avvia una sessione su claude.ai/code e seleziona il tuo ambiente dal selettore degli ambienti, dove gli ambienti self-hosted compaiono accanto a quelli ospitati da Anthropic. Come repository, scegli quello indicato nei [prerequisiti](#host-and-network): un repository pubblico, oppure uno che questo host può già clonare tramite il suo URL HTTPS senza che vengano richieste credenziali.

115 115 

116Il 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).116Il successivo runner disponibile prende in carico la sessione in coda e registra `Picked up session <session-id>` insieme al numero di sessioni attive e alla capacità, così puoi verificare dall'output del runner stesso quale host ha preso la sessione. Osserva la sessione al lavoro e leggi le risposte di Claude su [claude.ai/code](https://claude.ai/code).

117 117 

118Se la sessione non inizia a lavorare, individua il caso che corrisponde a ciò che vedi:118Se la sessione non inizia a lavorare, individua il caso corrispondente a ciò che vedi:

119 119 

120* **La sessione rimane in coda**: vedi [Risoluzione dei problemi](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#troubleshooting).120* **La sessione resta in coda**: consulta [Risoluzione dei problemi](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#troubleshooting).

121* **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.121* **La sessione non si avvia e mostra un errore di 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.

122 * **Fornisci credenziali HTTPS**: vedi [Configura git](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#configure-git)122 * **Fornisci credenziali HTTPS**: consulta [Configura git](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#configure-git)

123 * **Clona invece tramite SSH**: se l'host del runner ha già una chiave SSH, vedi [Riscrivi gli URL git per le reti private](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks)123 * **Clona invece tramite SSH**: se l'host del runner ha già una chiave SSH, consulta [Riscrivi gli URL di git per le reti private](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#rewrite-git-urls-for-private-networks)

124 * **Dopo una delle due correzioni**: avvia di nuovo il runner e osserva la sessione non riuscita invece di avviarne una nuova. Se non è riuscita più volte, attendi diversi minuti che il runner registri `Picked up session`.124 * **Dopo una delle due correzioni**: avvia di nuovo il runner e osserva la sessione non riuscita invece di avviarne una nuova. Se è fallita diverse volte, attendi alcuni minuti finché il runner non registra `Picked up session`.

125 * **Per usare invece un repository diverso**: [archivia](https://code.claude.com/docs/it/claude-code-on-the-web.md#archive-sessions) o [elimina](https://code.claude.com/docs/it/claude-code-on-the-web.md#delete-sessions) la sessione non riuscita, quindi avvia di nuovo il runner e avvia una nuova sessione. Altrimenti, il runner può raccogliere la sessione non riuscita invece di quella nuova.125 * **Per usare invece un repository diverso**: [archivia](https://code.claude.com/docs/it/claude-code-on-the-web.md#archive-sessions) o [elimina](https://code.claude.com/docs/it/claude-code-on-the-web.md#delete-sessions) la sessione non riuscita, quindi avvia di nuovo il runner e avvia una nuova sessione. Altrimenti, il runner potrebbe prendere in carico la sessione non riuscita invece di quella nuova.

126 126 

127### Se il runner esce127### Se il runner esce

128 128 

129Se il runner esce durante questa guida rapida, avvialo di nuovo. Il runner può uscire da solo:129Se il runner esce durante questa guida rapida, avvialo di nuovo. Il runner può uscire da solo:

130 130 

131* **Nulla rimasto in esecuzione**: il log mostra `[runner:exit] account workload drained — exiting`. Il runner [esce per progettazione](https://code.claude.com/docs/it/self-hosted-environments#runner-lifecycle) quando non sta più eseguendo alcuna sessione, ad esempio:131* **Nulla in esecuzione**: il log mostra `[runner:exit] account workload drained — exiting`. Il runner [esce per progettazione](https://code.claude.com/docs/it/self-hosted-environments#runner-lifecycle) quando non sta più eseguendo alcuna sessione, ad esempio:

132 * **Hai archiviato o eliminato la sessione**: avvia di nuovo il runner132 * **Hai archiviato o eliminato la sessione**: avvia di nuovo il runner

133 * **La sessione non è riuscita ad avviarsi**: [correggi la causa](#session-doesnt-start), quindi avvia di nuovo il runner133 * **La sessione non è riuscita ad avviarsi**: [correggi la causa](#session-doesnt-start), quindi avvia di nuovo il runner

134* **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.134* **Contatto perso**: il log mostra una riga `[runner:fatal]` con `runner record gone server-side` oppure con `poll auth failed`. Se il runner perde il contatto con Anthropic per un po', ad esempio perché l'host va in sospensione, può uscire la volta successiva in cui raggiunge Anthropic.

135 135 

136Un 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.136Un turno completato non termina 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 dover prima riavviare il runner.

137 137 

138Per la produzione, distribuisci il runner sotto un orchestrator che lo riavvia all'uscita e attende più a lungo tra i riavvii quando il runner continua a uscire subito dopo l'avvio. Vedi [Distribuisci in produzione](https://code.claude.com/docs/it/self-hosted-environments-deploy.md) e [Quando il runner esce](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#when-the-runner-exits).138In produzione, distribuisci il runner sotto un orchestratore che lo riavvii quando esce e che attenda più a lungo tra un riavvio e l'altro quando il runner continua a uscire subito dopo l'avvio. Consulta [Distribuisci in produzione](https://code.claude.com/docs/it/self-hosted-environments-deploy.md) e [Quando il runner esce](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#when-the-runner-exits).

139 139 

140## Inviare un messaggio di follow-up a una sessione in esecuzione140## Inviare un messaggio di follow-up a una sessione in esecuzione

141 141 

Details

48| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | Budget per l'hook [`post-session`](https://code.claude.com/docs/it/self-hosted-environments-configuration#post-session) alla fine di ogni sessione, incluso l'arresto del runner |48| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | Budget per l'hook [`post-session`](https://code.claude.com/docs/it/self-hosted-environments-configuration#post-session) alla fine di ogni sessione, incluso l'arresto del runner |

49| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | unset | Comando shell che il runner esegue per ogni connessione al tuo proxy di uscita, usando il suo stdout ritagliato come valore dell'intestazione `Proxy-Authorization`. Richiede `HTTPS_PROXY` o `HTTP_PROXY`, e non può essere combinato con `--proxy-authorization-file`. Vedi [Authenticate to an egress proxy](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy). Richiede Claude Code v2.1.238 o successivo. |49| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | unset | Comando shell che il runner esegue per ogni connessione al tuo proxy di uscita, usando il suo stdout ritagliato come valore dell'intestazione `Proxy-Authorization`. Richiede `HTTPS_PROXY` o `HTTP_PROXY`, e non può essere combinato con `--proxy-authorization-file`. Vedi [Authenticate to an egress proxy](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy). Richiede Claude Code v2.1.238 o successivo. |

50| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | unset | File che il runner legge per ogni connessione al tuo proxy di uscita, usando i suoi contenuti ritagliati come valore dell'intestazione `Proxy-Authorization`. Usa questo flag per un token che un altro processo ruota in posizione. Porta gli stessi requisiti di `--proxy-authorization-command`, e non può essere combinato con esso. Vedi [Authenticate to an egress proxy](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy). Richiede Claude Code v2.1.238 o successivo. |50| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | unset | File che il runner legge per ogni connessione al tuo proxy di uscita, usando i suoi contenuti ritagliati come valore dell'intestazione `Proxy-Authorization`. Usa questo flag per un token che un altro processo ruota in posizione. Porta gli stessi requisiti di `--proxy-authorization-command`, e non può essere combinato con esso. Vedi [Authenticate to an egress proxy](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy). Richiede Claude Code v2.1.238 o successivo. |

51| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | off | Alla fine di una sessione avviata dal runner come un drenaggio o una versione inattiva, esegui il push dei rami di risultato tracciati a `origin` prima di eliminare lo spazio di lavoro, in modo che i commit in volo sopravvivano a un riavvio. Best-effort; aggiunge 30 secondi al budget di arresto, e richiede git 2.29 o più recente per riprendere dal ramo sottoposto a push. Limita l'accesso push ai ref `claude/*` prima di abilitare; vedi [Resumed sessions lose unpushed work](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#additional-limitations). I repository estratti tramite un hook del ciclo di vita `checkout` non vengono sottoposti a push; fai uno snapshot di quelli dall'hook [`post-session`](https://code.claude.com/docs/it/self-hosted-environments-configuration#post-session) invece. |51| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | off | Quando è il runner a terminare una sessione, ad esempio con un drenaggio o un rilascio per inattività, esegui il push dei rami di risultato tracciati a `origin` prima di eliminare lo spazio di lavoro, in modo che i commit in volo sopravvivano a un riavvio. Best-effort; aggiunge 30 secondi al budget di arresto, e richiede git 2.29 o più recente per riprendere dal ramo sottoposto a push. Limita l'accesso push ai ref `claude/*` prima di abilitare; vedi [Resumed sessions lose unpushed work](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#additional-limitations). I repository estratti tramite un hook del ciclo di vita `checkout` non vengono sottoposti a push; fai uno snapshot di quelli dall'hook [`post-session`](https://code.claude.com/docs/it/self-hosted-environments-configuration#post-session) invece. |

52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Rilascia uno slot di sessione dopo N minuti di inattività una volta che un turno finisce o la sessione attende l'azione dell'utente. [Alcune sessioni non contano come inattive](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle), quindi abbinalo a `--kill-session-after-min`. Un'attività in background terminata mantiene la sessione occupata al massimo per la finestra [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Per ritardare un rilascio, imposta [`--hold-idle-file`](https://code.claude.com/docs/it/self-hosted-environments-deploy#keep-an-idle-session-while-its-processes-run). `0` disabilita. |52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Rilascia uno slot di sessione dopo N minuti di inattività una volta che un turno finisce o la sessione attende l'azione dell'utente. [Alcune sessioni non contano come inattive](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle), quindi abbinalo a `--kill-session-after-min`. Un'attività in background terminata mantiene la sessione occupata al massimo per la finestra [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Per ritardare un rilascio, imposta [`--hold-idle-file`](https://code.claude.com/docs/it/self-hosted-environments-deploy#keep-an-idle-session-while-its-processes-run). `0` disabilita. |

53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | off | Rimuovi le directory per sessione di una sessione sotto `<base-dir>/_sessions/` quando la sessione termina su questo runner, indipendentemente dall'esito. [Reuse a pre-warmed checkout](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout) descrive cosa contengono e chi può leggerli quando rimangono. La rimozione è best-effort: le directory per sessione rimangono in posizione quando il runner viene ucciso o raggiunge la scadenza di drenaggio prima che la pulizia venga eseguita. Con il flag attivo, il log di debug di una sessione fallita o interrotta non viene mantenuto su disco. Richiede Claude Code v2.1.268 o successivo. |53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | off | Rimuovi le directory per sessione di una sessione sotto `<base-dir>/_sessions/` quando la sessione termina su questo runner, indipendentemente dall'esito. [Reuse a pre-warmed checkout](https://code.claude.com/docs/it/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout) descrive cosa contengono e chi può leggerli quando rimangono. La rimozione è best-effort: le directory per sessione rimangono in posizione quando il runner viene ucciso o raggiunge la scadenza di drenaggio prima che la pulizia venga eseguita. Con il flag attivo, il log di debug di una sessione fallita o interrotta non viene mantenuto su disco. Richiede Claude Code v2.1.268 o successivo. |

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](https://code.claude.com/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](https://code.claude.com/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. |


95| `--hook-timeout <sec>` | `60` | Termina l'albero dei processi dell'hook dopo questo numero di secondi. Il timeout più la sua grazia di 5 secondi deve rimanere al di sotto di `--expected-spawn-seconds`; l'orchestrator lo applica all'avvio. |95| `--hook-timeout <sec>` | `60` | Termina l'albero dei processi dell'hook dopo questo numero di secondi. Il timeout più la sua grazia di 5 secondi deve rimanere al di sotto di `--expected-spawn-seconds`; l'orchestrator lo applica all'avvio. |

96| `--expected-spawn-seconds <sec>` | `120` | Tempo p99 previsto tra il momento in cui l'orchestrator riceve una richiesta di spawn e quello in cui il runner si registra, inclusa qualsiasi attesa di capacità sulla tua piattaforma. Il server applica un intervallo da 10 a 3600. Inviato ad ogni polling come lease lato server: se nessun runner si registra prima che trascorra, la sessione viene ri-offerta con un ID ordine nuovo. Tutte le repliche devono condividere questo valore. |96| `--expected-spawn-seconds <sec>` | `120` | Tempo p99 previsto tra il momento in cui l'orchestrator riceve una richiesta di spawn e quello in cui il runner si registra, inclusa qualsiasi attesa di capacità sulla tua piattaforma. Il server applica un intervallo da 10 a 3600. Inviato ad ogni polling come lease lato server: se nessun runner si registra prima che trascorra, la sessione viene ri-offerta con un ID ordine nuovo. Tutte le repliche devono condividere questo valore. |

97| `--min-idle <n>` | `0` | Mantieni almeno N slot di sessione inattivi liberi generando proattivamente runner di standby. `0` disabilita il pre-riscaldamento. Abbina con il `--exit-if-unused-min` del runner in modo che i runner di standby in eccesso si riprendano. |97| `--min-idle <n>` | `0` | Mantieni almeno N slot di sessione inattivi liberi generando proattivamente runner di standby. `0` disabilita il pre-riscaldamento. Abbina con il `--exit-if-unused-min` del runner in modo che i runner di standby in eccesso si riprendano. |

98| `--shutdown-drain-sec <n>` | `0` | Alla ricezione di `SIGTERM`, interrompi il polling delle richieste di spawn e concedi agli hook `spawn-runner` in esecuzione e a qualsiasi polling senza risposta fino a questo numero di secondi per terminare, prima di arrestare ciò che resta. Con `0`, si arresta immediatamente. Massimo `3600`, che l'orchestrator applica all'avvio. Per scegliere un valore, consulta [Dimensionare `--shutdown-drain-sec` e il timeout di arresto dell'orchestrator](https://code.claude.com/docs/it/self-hosted-environments-configuration#size-shutdown-drain-sec-and-the-supervisors-stop-timeout-for-the-orchestrator). Richiede Claude Code v2.1.299 o successivo. |

98| `--debug-dir <path>` | unset | Scrivi il work order e lo stderr dell'hook di ogni richiesta di spawn su disco. Solo debug; non impostare mai in produzione. |99| `--debug-dir <path>` | unset | Scrivi il work order e lo stderr dell'hook di ogni richiesta di spawn su disco. Solo debug; non impostare mai in produzione. |

99 100 

100### Flag del connettore SCM101### Flag del connettore SCM

Details

154 * **Unità di telemetria**: le chiavi dell'exporter `OTEL_EXPORTER_OTLP_*`, gli interruttori di acquisizione dei contenuti `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER` e le variabili di tracing beta `ENABLE_BETA_TRACING_DETAILED` e `BETA_TRACING_ENDPOINT` seguono come unità l'origine più alta che ne imposta una qualsiasi. Anche un'origine che fornisce la chiave di credenziali `otelHeadersHelper` rivendica l'unità, ma applica queste variabili solo quando è l'origine selezionata: un'origine non selezionata che fornisce la chiave non ne contribuisce nessuna e impedisce comunque alle origini inferiori di completarle. In entrambi i casi, un endpoint dell'exporter proveniente da un'origine non può mai essere associato a credenziali provenienti da un'altra.154 * **Unità di telemetria**: le chiavi dell'exporter `OTEL_EXPORTER_OTLP_*`, gli interruttori di acquisizione dei contenuti `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER` e le variabili di tracing beta `ENABLE_BETA_TRACING_DETAILED` e `BETA_TRACING_ENDPOINT` seguono come unità l'origine più alta che ne imposta una qualsiasi. Anche un'origine che fornisce la chiave di credenziali `otelHeadersHelper` rivendica l'unità, ma applica queste variabili solo quando è l'origine selezionata: un'origine non selezionata che fornisce la chiave non ne contribuisce nessuna e impedisce comunque alle origini inferiori di completarle. In entrambi i casi, un endpoint dell'exporter proveniente da un'origine non può mai essere associato a credenziali provenienti da un'altra.

155 * **Routing associato alle credenziali**: un'origine che associa variabili di routing a una chiave di credenziali valida solo per l'origine selezionata, come `apiKeyHelper` o `otelHeadersHelper`, contribuisce con quelle variabili di routing solo quando si aggiudica lo slot.155 * **Routing associato alle credenziali**: un'origine che associa variabili di routing a una chiave di credenziali valida solo per l'origine selezionata, come `apiKeyHelper` o `otelHeadersHelper`, contribuisce con quelle variabili di routing solo quando si aggiudica lo slot.

156* **`allowedProviders`**: un elenco impostato sulla macchina e un elenco gestito dal server si combinano come indicato nella [nota sull'ambito della sua voce](https://code.claude.com/docs/it/settings-reference.md#allowedproviders). Richiede Claude Code v2.1.285 o successivo156* **`allowedProviders`**: un elenco impostato sulla macchina e un elenco gestito dal server si combinano come indicato nella [nota sull'ambito della sua voce](https://code.claude.com/docs/it/settings-reference.md#allowedproviders). Richiede Claude Code v2.1.285 o successivo

157* **Chiavi di accesso di prima parte**: [`forceLoginOrgUUID`](https://code.claude.com/docs/it/settings-reference#forceloginorguuid) e i valori `"claudeai"` e `"console"` di [`forceLoginMethod`](https://code.claude.com/docs/it/settings-reference#forceloginmethod). Se distribuisci anche una policy MDM o un file di impostazioni gestite, impostale lì e nelle impostazioni gestite dal server da claude.ai finché tutti i client non eseguono la v2.1.299 o successiva. Per sapere dove impostare le chiavi in seguito, e quale valore di origine si applica, consulta [Quale origine gestita fornisce le chiavi di accesso](https://code.claude.com/docs/it/managed-settings.md#which-managed-source-supplies-login-keys).

157* **Chiavi di accesso al gateway**: Claude Code non legge mai [`forceLoginGatewayUrl`](https://code.claude.com/docs/it/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](https://code.claude.com/docs/it/settings-reference#gatewayinternalnetworks) o il valore `"gateway"` di [`forceLoginMethod`](https://code.claude.com/docs/it/settings-reference#forceloginmethod) dalle impostazioni gestite dal server, quindi un valore lì né si applica né nasconde un valore impostato in una policy MDM o in un file di impostazioni gestite. La [voce `managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) indica quale origine dell'amministratore sulla macchina li fornisce.158* **Chiavi di accesso al gateway**: Claude Code non legge mai [`forceLoginGatewayUrl`](https://code.claude.com/docs/it/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](https://code.claude.com/docs/it/settings-reference#gatewayinternalnetworks) o il valore `"gateway"` di [`forceLoginMethod`](https://code.claude.com/docs/it/settings-reference#forceloginmethod) dalle impostazioni gestite dal server, quindi un valore lì né si applica né nasconde un valore impostato in una policy MDM o in un file di impostazioni gestite. La [voce `managedSourcesBehavior`](https://code.claude.com/docs/it/settings-reference#managedsourcesbehavior) indica quale origine dell'amministratore sulla macchina li fornisce.

158 159 

159### Comportamento di recupero e della cache160### Comportamento di recupero e della cache

settings.md +60 −60

Details

205 205 

206## Precedenza delle impostazioni206## Precedenza delle impostazioni

207 207 

208Quando la stessa chiave appare in più di un posto, Claude Code utilizza il valore dal livello più alto che la imposta. Lo stack sottostante mostra i livelli, il più alto in alto; una chiave a un livello più alto sostituisce la stessa chiave ovunque al di sotto.208Quando la stessa chiave compare in più di un punto, Claude Code usa il valore del livello più alto che la imposta. Lo stack qui sotto mostra i livelli, con il più alto in cima; una chiave a un livello superiore sovrascrive la stessa chiave in qualsiasi livello sottostante.

209 209 

210Settings precedence, highest first: managed settings, command line, project local, shared project, user. A key set at a higher level overrides the same key set lower down.210Settings precedence, highest first: managed settings, command line, project local, shared project, user. A key set at a higher level overrides the same key set lower down.

211 211 

212In ordine, dalla precedenza più alta in primo luogo:212In ordine, dalla precedenza più alta:

213 213 

2141. **Impostazioni gestite**: impostazioni che la tua organizzazione distribuisce, tramite un file `managed-settings.json`, una policy MDM, o [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) dalla console claude.ai. Nulla nei tuoi file di impostazioni o in `--settings` sovrascrive una chiave gestita, e un flag come `--model` sceglie solo tra i modelli che la tua organizzazione consente. Un [`model`](https://code.claude.com/docs/it/settings-reference#model) gestito è un valore predefinito iniziale, non un blocco; i blocchi sono [`availableModels`](https://code.claude.com/docs/it/settings-reference#availablemodels) e [`deniedModels`](https://code.claude.com/docs/it/settings-reference#deniedmodels). Quando la tua organizzazione fornisce più di una fonte gestita, le regole per la [precedenza all'interno del livello gestito](https://code.claude.com/docs/it/managed-settings.md#precedence-within-the-managed-tier) dicono cosa Claude Code legge da ciascuna.2141. **Impostazioni gestite**: impostazioni che la tua organizzazione distribuisce tramite un file `managed-settings.json`, una policy MDM o le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md) dalla console di claude.ai. Niente nei tuoi file di impostazioni o in `--settings` sovrascrive una chiave gestita, e un flag come `--model` sceglie solo tra i modelli che la tua organizzazione consente. Un [`model`](https://code.claude.com/docs/it/settings-reference#model) gestito è un valore predefinito iniziale, non un blocco; i blocchi sono [`availableModels`](https://code.claude.com/docs/it/settings-reference#availablemodels) e [`deniedModels`](https://code.claude.com/docs/it/settings-reference#deniedmodels). Quando la tua organizzazione fornisce più di una fonte gestita, le regole sulla [precedenza all'interno del livello gestito](https://code.claude.com/docs/it/managed-settings.md#precedence-within-the-managed-tier) indicano cosa legge Claude Code da ciascuna.

2152. **Riga di comando**: JSON che passi con `--settings <file-or-json>` quando avvii `claude`, solo per quella sessione; vedi [Cambia un'impostazione per una sessione](#change-a-setting-for-one-session). Una chiave che imposti lì sovrascrive la stessa chiave nei tuoi file di impostazioni di progetto e utente, e una chiave che ometti mantiene il suo valore da quei file. Altri flag, come `--model`, impostano una singola cosa per la sessione e non fanno parte di questo stack; la voce di una chiave nel [riferimento delle impostazioni](https://code.claude.com/docs/it/settings-reference.md) dice quali flag la sovrascrivono.2152. **Riga di comando**: JSON che passi con `--settings <file-or-json>` quando avvii `claude`, solo per quella sessione; consulta [Modificare un'impostazione per una sola sessione](#change-a-setting-for-one-session). Una chiave impostata lì sovrascrive la stessa chiave nei file di impostazioni di progetto e utente, e una chiave che ometti mantiene il valore di quei file. Altri flag, come `--model`, impostano una sola cosa per la sessione e non fanno parte di questo stack; la voce di una chiave nel [riferimento delle impostazioni](https://code.claude.com/docs/it/settings-reference.md) indica quali flag la sovrascrivono.

2163. **Impostazioni locali del progetto** (`.claude/settings.local.json`): le tue impostazioni personali per questo progetto.2163. **Impostazioni locali di progetto** (`.claude/settings.local.json`): le tue impostazioni personali per questo progetto.

2174. **Impostazioni di progetto condivise** (`.claude/settings.json`): impostazioni che il tuo team inserisce nel controllo del codice sorgente.2174. **Impostazioni di progetto condivise** (`.claude/settings.json`): impostazioni che il tuo team inserisce nel controllo del codice sorgente.

2185. **Impostazioni utente** (`~/.claude/settings.json`): le tue impostazioni personali per ogni progetto.2185. **Impostazioni utente** (`~/.claude/settings.json`): le tue impostazioni personali per ogni progetto.

219 219 

220Le variabili d'ambiente non sono un livello in questo stack. Quando un comportamento ha sia una variabile di shell che una chiave di impostazione, quale si applica è deciso per coppia, non per livello: `ANTHROPIC_MODEL` esportato nella tua shell si applica rispetto alla chiave `model` da qualsiasi file, mentre `ANTHROPIC_DEFAULT_MODEL` si applica solo quando nessun file imposta `model`. Il [riferimento delle variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md#precedence) dice quali chiavi hanno una coppia e quale Claude Code legge per primo. Un blocco `env` all'interno di un file di impostazioni è una chiave ordinaria e segue i livelli sopra.220Le variabili d'ambiente non sono un livello di questo stack. Quando un comportamento ha sia una variabile di shell sia una chiave di impostazione, quale delle due si applica viene deciso coppia per coppia, non per livello: `ANTHROPIC_MODEL` esportata nella tua shell ha la precedenza sulla chiave `model` di qualsiasi file, mentre `ANTHROPIC_DEFAULT_MODEL` si applica solo quando nessun file imposta `model`. Il [riferimento delle variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md#precedence) indica quali chiavi hanno una coppia e quale legge per prima Claude Code. Un blocco `env` all'interno di un file di impostazioni è una chiave ordinaria e segue i livelli sopra descritti.

221 221 

222Per alcune chiavi sensibili alla sicurezza, Claude Code onora un valore più restrittivo da un livello inferiore rispetto a un valore gestito; [Eccezioni alla precedenza delle impostazioni gestite](#exceptions-to-managed-settings-precedence) le elenca.222Per alcune chiavi sensibili per la sicurezza, Claude Code rispetta un valore più restrittivo proveniente da un livello inferiore rispetto a un valore gestito; [Eccezioni alla precedenza delle impostazioni gestite](#exceptions-to-managed-settings-precedence) le elenca.

223 223 

224### Per gli elenchi si esegue il merge invece di sovrascriverli224### Per le liste si esegue il merge invece della sovrascrittura

225 225 

226Quando imposti la stessa chiave di elenco, come `permissions.allow`, in più di un file, Claude Code combina gli elenchi invece di sceglierne uno, così ogni file può aggiungere voci senza rimuovere quelle di un altro file. Quattro chiavi che contengono elenchi di modelli o voci per modello seguono le loro proprie regole:226Quando imposti la stessa chiave di tipo lista, come `permissions.allow`, in più di un file, Claude Code combina le liste invece di sceglierne una, così ogni file può aggiungere voci senza rimuovere quelle di un altro file. Quattro chiavi che contengono liste di modelli o voci per modello seguono regole proprie:

227 227 

228* [`fallbackModel`](https://code.claude.com/docs/it/settings-reference#fallbackmodel) è una catena ordinata in cui la posizione ha significato, quindi Claude Code prende l'intero valore dal file con la precedenza più alta che lo definisce.228* [`fallbackModel`](https://code.claude.com/docs/it/settings-reference#fallbackmodel) è una catena ordinata in cui la posizione ha un significato, quindi Claude Code prende l'intero valore dal file con la precedenza più alta che lo definisce.

229* [`modelPicker`](https://code.claude.com/docs/it/settings-reference#modelpicker) contiene un elenco ordinato di righe più un flag di sostituzione, quindi Claude Code non esegue mai il merge di righe da due fonti. Prende l'intero valore dal più alto tra impostazioni gestite, `--settings`, e impostazioni utente che lo definisce, e ignora la chiave nelle impostazioni di progetto e locali. Richiede Claude Code v2.1.242 o successivo.229* [`modelPicker`](https://code.claude.com/docs/it/settings-reference#modelpicker) contiene un'unica lista ordinata di righe più un flag di sostituzione, quindi Claude Code non esegue mai il merge di righe provenienti da due fonti. Prende l'intero valore dalla fonte più alta che lo definisce tra impostazioni gestite, `--settings` e impostazioni utente, e ignora la chiave nelle impostazioni di progetto e locali. Richiede Claude Code v2.1.242 o successiva.

230* [`availableModels`](https://code.claude.com/docs/it/settings-reference#availablemodels): quando le impostazioni gestite che Claude Code applica lo definiscono, Claude Code applica quell'elenco così com'è e ignora le voci che aggiungi nelle impostazioni utente, di progetto o locali, a meno che un'app che incorpora Claude Code non fornisca il suo elenco di modelli; vedi [Eccezioni alla precedenza delle impostazioni gestite](#exceptions-to-managed-settings-precedence). Nemmeno tra le fonti gestite si esegue mai il merge dell'elenco; [come Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) dice quale elenco della fonte si applica. Tra gli ambiti non gestiti Claude Code esegue il merge degli array come al solito.230* [`availableModels`](https://code.claude.com/docs/it/settings-reference#availablemodels): quando le impostazioni gestite applicate da Claude Code la definiscono, Claude Code applica quella lista così com'è e ignora le voci che aggiungi nelle impostazioni utente, di progetto o locali, a meno che un'app che incorpora Claude Code fornisca la propria lista di modelli; consulta [Eccezioni alla precedenza delle impostazioni gestite](#exceptions-to-managed-settings-precedence). Nemmeno tra fonti gestite si esegue mai il merge della lista; [come Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) indica quale lista di fonte si applica. Tra ambiti non gestiti Claude Code esegue il merge degli array come di consueto.

231* [`modelSettings`](https://code.claude.com/docs/it/settings-reference#modelsettings): Claude Code lo risolve un modello alla volta, insieme a [`effortLevel`](https://code.claude.com/docs/it/settings-reference#effortlevel). La voce `modelSettings` indica quale valore del file si applica a un modello.231* [`modelSettings`](https://code.claude.com/docs/it/settings-reference#modelsettings): Claude Code la risolve un modello alla volta, insieme a [`effortLevel`](https://code.claude.com/docs/it/settings-reference#effortlevel). La voce `modelSettings` indica quale valore di file si applica a un modello.

232 232 

233### Esempi di precedenza233### Esempi di precedenza

234 234 

235Mentre Claude lavora, Claude Code mostra un suggerimento di una riga sotto lo spinner, come "Usa /config per cambiare la tua modalità di permesso predefinita (incluso il plan mode)". Supponiamo che tu voglia disattivare questi suggerimenti, quindi imposti [`spinnerTipsEnabled`](https://code.claude.com/docs/it/settings-reference#spinnertipsenabled) a `false` in `~/.claude/settings.json`. Ogni scenario sottostante è qualcosa che può riattivarli, e cosa puoi fare al riguardo.235Mentre Claude lavora, Claude Code mostra un suggerimento di una riga sotto lo spinner, come "Use /config to change your default permission mode (including Plan Mode)". Supponi di voler disattivare questi suggerimenti, quindi imposti [`spinnerTipsEnabled`](https://code.claude.com/docs/it/settings-reference#spinnertipsenabled) su `false` in `~/.claude/settings.json`. Ciascuno scenario qui sotto è qualcosa che può riattivarli, insieme a cosa puoi fare al riguardo.

236 236 

237#### Le impostazioni del team sostituiscono le impostazioni personali237#### Le impostazioni del team sovrascrivono quelle personali

238 238 

239Il `.claude/settings.json` del tuo team lo imposta a `true`. Claude Code utilizza il valore del progetto perché il progetto condiviso si trova sopra l'utente, quindi vedi i suggerimenti in quel progetto e da nessun'altra parte.239Il file `.claude/settings.json` del tuo team la imposta su `true`. Claude Code usa il valore di progetto perché il livello di progetto condiviso sta sopra quello utente, quindi vedi i suggerimenti in quel progetto e in nessun altro.

240 240 

241Puoi recuperare il tuo valore: aggiungi `"spinnerTipsEnabled": false` a `.claude/settings.local.json` in quel progetto. Il progetto locale si trova sopra il progetto condiviso, quindi le tue sessioni lì smettono di mostrare suggerimenti e le sessioni dei tuoi compagni di squadra non cambiano.241Puoi ripristinare il tuo valore: aggiungi `"spinnerTipsEnabled": false` a `.claude/settings.local.json` in quel progetto. Il livello locale di progetto sta sopra quello di progetto condiviso, quindi le tue sessioni lì smettono di mostrare suggerimenti e le sessioni dei tuoi colleghi non cambiano.

242 242 

243#### Le impostazioni dell'organizzazione sostituiscono tutto243#### Le impostazioni dell'organizzazione sovrascrivono tutto

244 244 

245Le impostazioni gestite della tua organizzazione lo impostano a `true`. Nulla di quello che metti nelle impostazioni utente, di progetto o locali disattiva i suggerimenti, e nemmeno `--settings`. Gestito è il livello più alto.245Le impostazioni gestite della tua organizzazione la impostano su `true`. Niente di ciò che inserisci nelle impostazioni utente, di progetto o locali disattiva i suggerimenti, e nemmeno `--settings`. Il livello gestito è quello più alto.

246 246 

247Non puoi recuperare il tuo valore. Esegui `/status` per vedere quale fonte gestita si applica, e chiedi al tuo amministratore se la policy dovrebbe cambiare.247Non puoi ripristinare il tuo valore. Esegui `/status` per vedere quale fonte gestita si applica e chiedi al tuo amministratore se la policy debba cambiare.

248 248 

249#### La riga di comando sostituisce i tuoi file per una sessione249#### La riga di comando sovrascrive i tuoi file per una sessione

250 250 

251Hai avviato la sessione con `claude --settings '{"spinnerTipsEnabled": true}'`. La riga di comando si trova sopra ogni file tranne gestito, quindi quella sessione mostra suggerimenti anche se i tuoi file dicono `false`.251Hai avviato la sessione con `claude --settings '{"spinnerTipsEnabled": true}'`. La riga di comando sta sopra ogni file tranne quello gestito, quindi quella sessione mostra i suggerimenti anche se i tuoi file indicano `false`.

252 252 

253Recuperi il tuo valore nella sessione successiva; `--settings` dura una sessione e non scrive in nessun file.253Riottieni il tuo valore nella sessione successiva; `--settings` dura una sola sessione e non scrive in alcun file.

254 254 

255#### Un flag o una variabile d'ambiente imposta la stessa cosa255#### Un flag o una variabile d'ambiente imposta la stessa cosa

256 256 

257Alcune chiavi hanno un flag della riga di comando o una variabile d'ambiente che sovrascrive il valore delle impostazioni indipendentemente da quale file lo ha impostato: `ANTHROPIC_MODEL` sovrascrive l'impostazione [`model`](https://code.claude.com/docs/it/settings-reference#model), e `--model` sovrascrive entrambi per una sessione.257Alcune chiavi hanno un flag della riga di comando o una variabile d'ambiente che sovrascrive il valore dell'impostazione indipendentemente dal file che l'ha impostata: `ANTHROPIC_MODEL` sovrascrive l'impostazione [`model`](https://code.claude.com/docs/it/settings-reference#model), e `--model` sovrascrive entrambe per una sessione.

258 258 

259Se puoi recuperare il tuo valore dipende dalla chiave: annulla l'impostazione della variabile o elimina il flag, e controlla la voce della chiave nel [riferimento delle impostazioni](https://code.claude.com/docs/it/settings-reference.md) e la riga della variabile nel [riferimento delle variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md) per sapere quale Claude Code utilizza.259Se puoi ripristinare il tuo valore dipende dalla chiave: rimuovi la variabile o togli il flag, e controlla la voce della chiave nel [riferimento delle impostazioni](https://code.claude.com/docs/it/settings-reference.md) e la riga della variabile nel [riferimento delle variabili d'ambiente](https://code.claude.com/docs/it/env-vars.md) per sapere quale usa Claude Code.

260 260 

261### Risolvi i problemi di un'impostazione che non si applica261### Risolvere i problemi di un'impostazione che non si applica

262 262 

263Quando imposti una chiave e Claude Code non si comporta come se l'avessi fatto, inizia con `/status` per vedere quali file ha caricato, quindi trova il tuo sintomo di seguito. [Debug della tua configurazione](https://code.claude.com/docs/it/debug-your-config.md) copre i controlli più ampi, incluso un test di configurazione pulita.263Quando imposti una chiave e Claude Code non si comporta di conseguenza, inizia con `/status` per vedere quali file ha caricato, poi trova il tuo sintomo qui sotto. [Eseguire il debug della configurazione](https://code.claude.com/docs/it/debug-your-config.md) copre i controlli più ampi, incluso un test con configurazione pulita.

264 264 

265#### Un valore che hai impostato viene ignorato265#### Un valore che hai impostato viene ignorato

266 266 

267Qualcos'altro sta impostando la stessa chiave, il file non può impostare quel valore, o il file non è stato caricato:267Qualcos'altro imposta la stessa chiave, il file non può impostare quel valore oppure il file non è stato caricato:

268 268 

269* **Un livello più alto lo imposta.** Un altro file di impostazioni, un flag `--settings`, o una fonte gestita imposta la chiave sopra la tua; lo [stack](#settings-precedence) dice quale. Un flag o una variabile d'ambiente può anche sovrascrivere la chiave di per sé, deciso chiave per chiave; la voce della chiave nel [riferimento delle impostazioni](https://code.claude.com/docs/it/settings-reference.md) dice quale Claude Code utilizza, e la [voce `env`](https://code.claude.com/docs/it/settings-reference#env) copre un valore `env` gestito rispetto a un'esportazione di shell.269* **Un livello superiore la imposta.** Un altro file di impostazioni, un flag `--settings` o una fonte gestita imposta la chiave sopra la tua; lo [stack](#settings-precedence) indica quale. Anche un flag o una variabile d'ambiente può sovrascrivere la chiave da solo, secondo una decisione presa chiave per chiave; la voce della chiave nel [riferimento delle impostazioni](https://code.claude.com/docs/it/settings-reference.md) indica quale usa Claude Code, e la [voce `env`](https://code.claude.com/docs/it/settings-reference#env) tratta il caso di un valore `env` gestito rispetto a un'esportazione della shell.

270* **Una chiave di sicurezza mantiene il suo valore restrittivo.** Per alcune chiavi Claude Code onora il valore restrittivo da qualsiasi file, quindi un `true` di progetto per [`disableClaudeAiConnectors`](https://code.claude.com/docs/it/settings-reference#disableclaudeaiconnectors) rimane attivo; vedi [Eccezioni alla precedenza delle impostazioni gestite](#exceptions-to-managed-settings-precedence).270* **Una chiave di sicurezza mantiene il suo valore restrittivo.** Per alcune chiavi Claude Code rispetta il valore restrittivo proveniente da qualsiasi file, quindi un `true` di progetto per [`disableClaudeAiConnectors`](https://code.claude.com/docs/it/settings-reference#disableclaudeaiconnectors) resta attivo; consulta [Eccezioni alla precedenza delle impostazioni gestite](#exceptions-to-managed-settings-precedence).

271* **Il file non può impostare quel valore.** I valori [`permissions.defaultMode`](https://code.claude.com/docs/it/settings-reference#permissions-defaultmode) `auto` e `bypassPermissions` non hanno effetto dalle impostazioni di progetto o locali; impostali invece nelle impostazioni utente o gestite, o passa `--permission-mode` per una sessione. Prima della v2.1.257, `bypassPermissions` aveva effetto da qualsiasi file.271* **Il file non può impostare quel valore.** I valori `auto` e `bypassPermissions` di [`permissions.defaultMode`](https://code.claude.com/docs/it/settings-reference#permissions-defaultmode) non hanno effetto dalle impostazioni di progetto o locali; impostali invece nelle impostazioni utente o gestite, oppure passa `--permission-mode` per una sessione. Prima della v2.1.257, `bypassPermissions` aveva effetto da qualsiasi file.

272 272 

273 Nemmeno una variabile di esportazione della telemetria in un blocco [`env`](https://code.claude.com/docs/it/settings-reference#env) ha effetto dalle impostazioni di progetto o locali, a parte alcuni valori di disattivazione. [Variabili che Claude Code ignora in `env`](https://code.claude.com/docs/it/settings-reference#variables-claude-code-ignores-in-env) elenca le variabili e quei valori.273 Nemmeno una variabile di esportazione della telemetria in un blocco [`env`](https://code.claude.com/docs/it/settings-reference#env) ha effetto dalle impostazioni di progetto o locali, fatta eccezione per alcuni valori di disattivazione. [Variabili che Claude Code ignora in `env`](https://code.claude.com/docs/it/settings-reference#variables-claude-code-ignores-in-env) elenca le variabili e quei valori.

274* **Il file è rotto.** JSON non valido o un valore rifiutato fa sì che Claude Code salti il file o la voce; vedi [Ripara un file di impostazioni rotto](#fix-a-broken-settings-file).274* **Il file è danneggiato.** Un JSON non valido o un valore rifiutato fa sì che Claude Code salti il file o la voce; consulta [Correggere un file di impostazioni danneggiato](#fix-a-broken-settings-file).

275 275 

276#### Una modifica che hai fatto in Claude Code viene persa nelle nuove sessioni276#### Una modifica fatta in Claude Code va persa nelle nuove sessioni

277 277 

278Quando salvi una scelta per le nuove sessioni dall'interno di Claude Code, come un modello predefinito con `/model`, Claude Code la scrive nel tuo file di impostazioni utente, `~/.claude/settings.json`. Se non puoi scrivere in quel file, ad esempio perché un altro strumento lo genera o lo collega a una copia di sola lettura, la modifica si applica alla sessione corrente e scompare nella successiva. Imposta la chiave nello strumento che genera il file, o sostituisci il file con uno in cui puoi scrivere.278Quando salvi una scelta per le nuove sessioni dall'interno di Claude Code, come un modello predefinito con `/model`, Claude Code la scrive nel tuo file di impostazioni utente, `~/.claude/settings.json`. Se non puoi scrivere in quel file, ad esempio perché un altro strumento lo genera o lo collega a una copia di sola lettura, la modifica si applica alla sessione corrente e scompare in quella successiva. Imposta la chiave nello strumento che genera il file, oppure sostituisci il file con uno in cui puoi scrivere.

279 279 

280Se puoi scrivere nel file e la modifica comunque non dura, controlla se la modifica era [solo per una sessione](#change-a-setting-for-one-session) o [un livello più alto imposta la stessa chiave](#a-value-you-set-is-ignored). Per la chiave `model`, [Una nuova sessione inizia su un modello diverso da quello che hai scelto](https://code.claude.com/docs/it/model-config.md#a-new-session-starts-on-a-different-model-than-you-picked) elenca più cause.280Se puoi scrivere nel file e la modifica continua a non persistere, verifica se la modifica era [solo per una sessione](#change-a-setting-for-one-session) o se [un livello superiore imposta la stessa chiave](#a-value-you-set-is-ignored). Per la chiave `model`, [Una nuova sessione si avvia su un modello diverso da quello scelto](https://code.claude.com/docs/it/model-config.md#a-new-session-starts-on-a-different-model-than-you-picked) elenca altre cause.

281 281 

282#### Una modifica gestita non ti ha raggiunto282#### Una modifica gestita non ti ha raggiunto

283 283 

284Le fonti gestite raggiungono una sessione in esecuzione secondo la pianificazione nella [tabella di consegna](https://code.claude.com/docs/it/managed-settings.md#choose-a-delivery-mechanism), quindi riavvia prima la sessione. Se `/status` quindi nomina una fonte diversa da quella che il tuo amministratore ha modificato, una fonte con priorità più alta si applica; [Come Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) fornisce l'ordine.284Le fonti gestite raggiungono una sessione in esecuzione secondo la pianificazione indicata nella [tabella di distribuzione](https://code.claude.com/docs/it/managed-settings.md#choose-a-delivery-mechanism), quindi riavvia prima la sessione. Se poi `/status` indica una fonte diversa da quella modificata dal tuo amministratore, si applica una fonte con priorità più alta; [Come Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources) riporta l'ordine.

285 285 

286#### Una chiave impegnata non raggiunge i compagni di squadra286#### Una chiave inserita nel repository non raggiunge i colleghi

287 287 

288Due cose impediscono a una chiave in `.claude/settings.json` di applicarsi per tutti coloro che la clonano:288Due cose impediscono a una chiave in `.claude/settings.json` di applicarsi a chiunque cloni il repository:

289 289 

290* **Claude Code ignora la chiave in un file di repository.** Cerca `User, local, or managed`, `User or managed`, `User`, `Managed`, o `Global config` nella colonna Scope dell'[indice delle impostazioni](https://code.claude.com/docs/it/settings-reference.md#settings-index). Quelle chiavi non si applicano mai dal file condiviso, a parte alcune che un file di repository può comunque disattivare. Ciascuna di quelle voci lo dice sulla sua riga Scope. Le chiavi `Global config` si applicano solo da `~/.claude.json`.290* **Claude Code ignora la chiave in un file del repository.** Cerca `User, local, or managed`, `User or managed`, `User`, `Managed` o `Global config` nella colonna Scope dell'[indice delle impostazioni](https://code.claude.com/docs/it/settings-reference.md#settings-index). Queste chiavi non si applicano mai dal file condiviso, fatta eccezione per alcune che un file del repository può comunque disattivare. Ciascuna di queste voci lo indica nella propria riga Scope. Le chiavi `Global config` si applicano solo da `~/.claude.json`.

291 291 

292 All'interno della chiave `env`, nemmeno le variabili di esportazione della telemetria si applicano mai dal file condiviso, a parte alcuni valori di disattivazione; vedi [Variabili che Claude Code ignora in `env`](https://code.claude.com/docs/it/settings-reference#variables-claude-code-ignores-in-env).292 Anche all'interno della chiave `env`, le variabili di esportazione della telemetria non si applicano mai dal file condiviso, fatta eccezione per alcuni valori di disattivazione; consulta [Variabili che Claude Code ignora in `env`](https://code.claude.com/docs/it/settings-reference#variables-claude-code-ignores-in-env).

293* **La chiave attende la fiducia.** Le regole `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces`, e la maggior parte dei valori [`env`](https://code.claude.com/docs/it/settings-reference#env) si applicano solo dopo che ogni compagno di squadra [considera attendibile la cartella](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust). Fino ad allora vedono ancora le richieste di permesso e non ottengono plugin da un marketplace che il file dichiara. Le regole `deny` e `ask` si applicano subito.293* **La chiave attende l'attendibilità.** Le regole `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces` e la maggior parte dei valori [`env`](https://code.claude.com/docs/it/settings-reference#env) si applicano solo dopo che ogni collega [considera attendibile la cartella](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust). Fino ad allora continuano a vedere richieste di permesso e non ricevono plugin da un marketplace dichiarato dal file. Le regole `deny` e `ask` si applicano immediatamente.

294 294 

295#### Le regole di permesso si combinano diversamente da quanto ti aspettavi295#### Le regole di permesso si combinano diversamente da come ti aspettavi

296 296 

297* **Hai scelto "Sì, e non chiedere di nuovo" su una richiesta di permesso ma ti viene comunque chiesto per lo stesso strumento.** Quella scelta ha salvato una regola `allow` nel tuo file locale, e una regola `allow` lì non ha la precedenza su una regola `ask` da un file di progetto o gestito; [come si combinano le regole di permesso](https://code.claude.com/docs/it/permissions.md#settings-precedence) spiega l'ordine. Nell'estensione VS Code la scheda di approvazione ti permette di scegliere il file di destinazione, incluso il file condiviso del progetto, che cambia la regola per tutti; nella CLI, Claude Code scrive solo nel tuo file locale.297* **Hai scelto "Yes, and don't ask again" in una richiesta di permesso ma ricevi ancora richieste per lo stesso strumento.** Quella scelta ha salvato una regola `allow` nel tuo file locale, e una regola `allow` lì non ha la precedenza su una regola `ask` proveniente da un file di progetto o gestito; [come si combinano le regole di permesso](https://code.claude.com/docs/it/permissions.md#settings-precedence) spiega l'ordine. Nell'estensione VS Code la scheda di approvazione ti permette di scegliere il file di destinazione, incluso il file condiviso del progetto, il che modifica la regola per tutti; nella CLI, Claude Code scrive solo nel tuo file locale.

298* **Le regole allow della tua organizzazione si applicano ancora insieme alle tue.** È previsto: Claude Code esegue il merge di [`permissions.allow`](https://code.claude.com/docs/it/settings-reference#permissions-allow) tra gli ambiti, a meno che la tua organizzazione non imposti [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedpermissionrulesonly).298* **Le regole allow della tua organizzazione si applicano ancora insieme alle tue.** È il comportamento previsto: Claude Code esegue il merge di [`permissions.allow`](https://code.claude.com/docs/it/settings-reference#permissions-allow) tra gli ambiti, a meno che la tua organizzazione imposti [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/it/settings-reference#allowmanagedpermissionrulesonly).

299 299 

300### Eccezioni alla precedenza delle impostazioni gestite300### Eccezioni alla precedenza delle impostazioni gestite

301 301 

302Per alcune chiavi i cui valori limitano una sessione, Claude Code onora un valore restrittivo da un ambito che altrimenti non potrebbe sovrascrivere le impostazioni gestite. Trova la chiave in questa tabella per vedere quale valore onora e da dove.302Per alcune chiavi i cui valori limitano una sessione, Claude Code rispetta un valore restrittivo proveniente da un ambito che altrimenti non potrebbe sovrascrivere le impostazioni gestite. Trova la chiave in questa tabella per vedere quale valore rispetta e da dove.

303 303 

304| Chiave | Valore che Claude Code onora | Note |304| Chiave | Valore rispettato da Claude Code | Note |

305| :- | :- | :- |305| :- | :- | :- |

306| [`disableClaudeAiConnectors`](https://code.claude.com/docs/it/settings-reference#disableclaudeaiconnectors) | `true` da qualsiasi ambito | Onorato anche quando una fonte gestita imposta `false` |306| [`disableClaudeAiConnectors`](https://code.claude.com/docs/it/settings-reference#disableclaudeaiconnectors) | `true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `false` |

307| [`enableArtifact`](https://code.claude.com/docs/it/settings-reference#enableartifact) | `false` da qualsiasi ambito, e `disableArtifact: true` da qualsiasi ambito | Onorato anche quando una fonte gestita imposta `true`; nulla riattiva lo [strumento Artifact](https://code.claude.com/docs/it/artifacts.md#disable-artifacts). Richiede Claude Code v2.1.242 o successivo |307| [`enableArtifact`](https://code.claude.com/docs/it/settings-reference#enableartifact) | `false` da qualsiasi ambito, e `disableArtifact: true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `true`; niente riattiva lo [strumento Artifact](https://code.claude.com/docs/it/artifacts.md#disable-artifacts). Richiede Claude Code v2.1.242 o successiva |

308| [`isolatePeerMachines`](https://code.claude.com/docs/it/settings-reference#isolatepeermachines) | `true` da qualsiasi ambito | Onorato anche quando una fonte gestita imposta `false` |308| [`isolatePeerMachines`](https://code.claude.com/docs/it/settings-reference#isolatepeermachines) | `true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `false` |

309| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` da qualsiasi ambito | Onorato anche quando una fonte gestita imposta `false`. Richiede Claude Code v2.1.257 o successivo |309| [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) | `true` da qualsiasi ambito | Rispettato anche quando una fonte gestita imposta `false`. Richiede Claude Code v2.1.257 o successiva |

310| [`autoMode.classifyAllShell`](https://code.claude.com/docs/it/settings-reference#automode-classifyallshell) | `true` da `~/.claude/settings.json` o `--settings` | Onorato anche quando una fonte gestita imposta `false` |310| [`autoMode.classifyAllShell`](https://code.claude.com/docs/it/settings-reference#automode-classifyallshell) | `true` da `~/.claude/settings.json` o `--settings` | Rispettato anche quando una fonte gestita imposta `false` |

311| [`remoteControlAtStartup`](https://code.claude.com/docs/it/settings-reference#remotecontrolatstartup) | `false` da `.claude/settings.json` o `.claude/settings.local.json` | Onorato anche quando una fonte gestita imposta `true`; un `true` di progetto o locale viene ignorato |311| [`remoteControlAtStartup`](https://code.claude.com/docs/it/settings-reference#remotecontrolatstartup) | `false` da `.claude/settings.json` o `.claude/settings.local.json` | Rispettato anche quando una fonte gestita imposta `true`; un `true` di progetto o locale viene ignorato |

312| [`crossSessionInbound`](https://code.claude.com/docs/it/settings-reference#crosssessioninbound) | Un valore più restrittivo da `.claude/settings.json` o `.claude/settings.local.json`, sulla scala `accept` \< `hold` \< `refuse` | Onorato rispetto ai valori gestiti, `--settings`, e utente; un valore di progetto o locale che non è più restrittivo viene ignorato |312| [`crossSessionInbound`](https://code.claude.com/docs/it/settings-reference#crosssessioninbound) | Un valore più restrittivo da `.claude/settings.json` o `.claude/settings.local.json`, sulla scala `accept` \< `hold` \< `refuse` | Rispettato rispetto ai valori gestiti, di `--settings` e utente; un valore di progetto o locale che non sia più restrittivo viene ignorato |

313| [`useAutoModeDuringPlan`](https://code.claude.com/docs/it/settings-reference#useautomodeduringplan) | `false` da qualsiasi fonte gestita, `--settings`, `~/.claude/settings.json`, o `.claude/settings.local.json` | Onorato anche quando la fonte gestita che ha la precedenza imposta `true`; un `false` in `.claude/settings.json` viene ignorato |313| [`useAutoModeDuringPlan`](https://code.claude.com/docs/it/settings-reference#useautomodeduringplan) | `false` da qualsiasi fonte gestita, `--settings`, `~/.claude/settings.json` o `.claude/settings.local.json` | Rispettato anche quando la fonte gestita prevalente imposta `true`; un `false` in `.claude/settings.json` viene ignorato |

314| [`syncClaudeAiSkills`](https://code.claude.com/docs/it/settings-reference#syncclaudeaiskills) | `false` da qualsiasi fonte gestita, `--settings`, `~/.claude/settings.json`, o `.claude/settings.local.json` | Onorato anche quando la fonte gestita che ha la precedenza imposta `true`; un `false` in `.claude/settings.json` viene ignorato |314| [`syncClaudeAiSkills`](https://code.claude.com/docs/it/settings-reference#syncclaudeaiskills) | `false` da qualsiasi fonte gestita, `--settings`, `~/.claude/settings.json` o `.claude/settings.local.json` | Rispettato anche quando la fonte gestita prevalente imposta `true`; un `false` in `.claude/settings.json` viene ignorato |

315| [`syncClaudeAiPlugins`](https://code.claude.com/docs/it/settings-reference#syncclaudeaiplugins) | `false` da qualsiasi fonte gestita, `--settings`, `~/.claude/settings.json`, o `.claude/settings.local.json` | Onorato anche quando la fonte gestita che ha la precedenza imposta `true`; un `false` in `.claude/settings.json` viene ignorato |315| [`syncClaudeAiPlugins`](https://code.claude.com/docs/it/settings-reference#syncclaudeaiplugins) | `false` da qualsiasi fonte gestita, `--settings`, `~/.claude/settings.json` o `.claude/settings.local.json` | Rispettato anche quando la fonte gestita prevalente imposta `true`; un `false` in `.claude/settings.json` viene ignorato |

316| [`maxEffortLevel`](https://code.claude.com/docs/it/settings-reference#maxeffortlevel) | Un limite inferiore da qualsiasi ambito, incluso `--settings` | Onorato anche quando le impostazioni gestite che Claude Code applica impostano un limite superiore; si applica il limite più basso. Richiede Claude Code v2.1.267 o successivo |316| [`maxEffortLevel`](https://code.claude.com/docs/it/settings-reference#maxeffortlevel) | Un limite più basso da qualsiasi ambito, incluso `--settings` | Rispettato anche quando le impostazioni gestite applicate da Claude Code impostano un limite più alto; si applica il limite più basso. Richiede Claude Code v2.1.267 o successiva |

317 317 

318Un'app che esegue Claude Code al suo interno e imposta [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/it/env-vars) è anche un'eccezione. Claude Code prende la configurazione del modello di quell'app rispetto alle chiavi `model`, `fallbackModel`, `modelPicker`, e `modelOverrides` da ogni fonte gestita, e rispetto alle variabili di selezione del modello in un blocco `env` gestito, come `ANTHROPIC_MODEL` e la famiglia `ANTHROPIC_DEFAULT_*_MODEL`. Claude Code mantiene in vigore un'allowlist [`availableModels`](https://code.claude.com/docs/it/settings-reference#availablemodels) gestita a meno che l'app non fornisca la sua.318Anche un'app che esegue Claude Code al proprio interno e imposta [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/it/env-vars) costituisce un'eccezione. Claude Code dà alla configurazione dei modelli di quell'app la precedenza sulle chiavi `model`, `fallbackModel`, `modelPicker` e `modelOverrides` di ogni fonte gestita, e sulle variabili di selezione del modello in un blocco `env` gestito, come `ANTHROPIC_MODEL` e la famiglia `ANTHROPIC_DEFAULT_*_MODEL`. Claude Code mantiene in vigore un'allowlist [`availableModels`](https://code.claude.com/docs/it/settings-reference#availablemodels) gestita, a meno che l'app ne fornisca una propria.

319 319 

320## Impostazioni nelle sessioni cloud320## Impostazioni nelle sessioni cloud

321 321 

settings-reference.md +287 −286

Details

266 266 

267## Modello e risposte267## Modello e risposte

268 268 

269Scegli quali modelli Claude Code utilizza e come risponde. Per come queste impostazioni interagiscono con il comando `/model` e le variabili di ambiente, vedi [Configurazione del modello](https://code.claude.com/docs/it/model-config.md).269Scegli quali modelli usa Claude Code e come risponde. Per sapere come queste impostazioni interagiscono con il comando `/model` e con le variabili d'ambiente, consulta [Configurazione del modello](https://code.claude.com/docs/it/model-config.md).

270 270 

271### `advisorModel`271### `advisorModel`

272 272 

273Scegli quale modello risponde quando Claude chiama lo [strumento advisor](https://code.claude.com/docs/it/advisor.md) lato server. Lascialo non impostato per disattivare l'advisor. L'advisor deve essere almeno altrettanto capace del tuo modello principale. Vedi [Scegli un modello advisor](https://code.claude.com/docs/it/advisor.md#choose-an-advisor-model) per gli accoppiamenti accettati e cosa succede quando ne scegli uno non accettato.273Scegli quale modello risponde quando Claude chiama lo [strumento advisor](https://code.claude.com/docs/it/advisor.md) lato server. Rimuovi l'impostazione per disattivare l'advisor. L'advisor deve essere almeno altrettanto capace del tuo modello principale. Consulta [Scegliere un modello advisor](https://code.claude.com/docs/it/advisor.md#choose-an-advisor-model) per gli abbinamenti accettati e per cosa succede quando ne scegli uno non accettato.

274 274 

275Di solito non modifichi questa chiave manualmente. Esegui `/advisor` per aprire un selettore che mostra la scelta attuale, i modelli che possono fornire consulenza e **Nessun advisor**. Claude Code salva la tua scelta in questa chiave in `~/.claude/settings.json`. Se scegli da un client [Remote Control](https://code.claude.com/docs/it/remote-control.md) o in una sessione collegata a un worker remoto, la scelta si applica solo a quella sessione e non modifica questa chiave.275Di solito non modifichi questa chiave a mano. Esegui `/advisor` per aprire un selettore che mostra la scelta attuale, i modelli che possono fare da advisor e **No advisor**. Claude Code salva la tua scelta in questa chiave in `~/.claude/settings.json`. Se scegli da un client [Remote Control](https://code.claude.com/docs/it/remote-control.md) o in una sessione collegata a un worker remoto, la scelta si applica solo a quella sessione e non modifica questa chiave.

276 276 

277Se il tuo account richiede il [consenso usage-credits](https://code.claude.com/docs/it/advisor.md#fable-advisor-and-usage-credits), accettalo prima eseguendo `/model fable`. Fino a quando non lo fai, scegliere Fable in `/advisor` non salva nulla e Claude Code ti dice di eseguire `/model fable` prima.277Se il tuo account richiede il [consenso ai crediti di utilizzo](https://code.claude.com/docs/it/advisor.md#fable-advisor-and-usage-credits), accettalo prima eseguendo `/model fable`. Finché non lo fai, scegliere Fable in `/advisor` non salva nulla e Claude Code ti dice di eseguire prima `/model fable`.

278 278 

279* **Scope**: [`Any file`](#scopes)279* **Ambito**: [`Any file`](#scopes)

280* **Type**: string, uno degli alias `"fable"`, `"opus"`, o `"sonnet"`, che si risolvono nella versione predefinita corrente di Claude Code di quella famiglia di modelli, o un ID modello completo come `"claude-opus-5-5"`280* **Tipo**: stringa, uno degli alias `"fable"`, `"opus"` o `"sonnet"`, che si risolvono nella versione predefinita attuale di Claude Code per quella famiglia di modelli, oppure un ID di modello completo come `"claude-opus-5-5"`

281* **Default**: non impostato, quindi l'advisor è disattivato281* **Predefinito**: non impostato, quindi l'advisor è disattivato

282* **Per-session overrides**: `--advisor` ha la precedenza su questa chiave per una sessione. [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](https://code.claude.com/docs/it/env-vars) disattiva l'advisor, e questa chiave non può riattivarlo282* **Override per sessione**: `--advisor` ha la precedenza su questa chiave per una sessione. [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](https://code.claude.com/docs/it/env-vars) disattiva l'advisor, e questa chiave non può riattivarlo

283 283 

284```json settings.json theme={null}284```json settings.json theme={null}

285{285{


287}287}

288```288```

289 289 

290La chiave non ha effetto su provider dove l'advisor [non è disponibile](https://code.claude.com/docs/it/advisor.md#requirements), come Amazon Bedrock e Claude Platform su AWS. `"fable"` richiede [accesso a Fable](https://code.claude.com/docs/it/advisor.md#choose-an-advisor-model).290La chiave non ha effetto sui provider in cui l'advisor [non è disponibile](https://code.claude.com/docs/it/advisor.md#requirements), come Amazon Bedrock e Claude Platform on AWS. `"fable"` richiede [l'accesso a Fable](https://code.claude.com/docs/it/advisor.md#choose-an-advisor-model).

291 291 

292### `alwaysThinkingEnabled`292### `alwaysThinkingEnabled`

293 293 

294Disattiva il [pensiero esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) per ogni sessione impostando questo a `false`. Il pensiero è attivo per impostazione predefinita, quindi `true` non cambia nulla. La maggior parte delle persone imposta questo tramite `/config` piuttosto che modificando il file.294Disattiva il [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) per ogni sessione impostando questa chiave su `false`. Il ragionamento è attivo per impostazione predefinita, quindi `true` non cambia nulla. La maggior parte delle persone la imposta tramite `/config` invece di modificare il file.

295 295 

296Sui modelli che ragionano sempre, come Opus 5.5, Sonnet 5.5, Haiku 5.5 e i modelli Fable, `false` non ha effetto. Sui [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) Claude Code omette il parametro `thinking` invece di disattivare il ragionamento, quindi i modelli a ragionamento adattivo potrebbero comunque ragionare. Con il ragionamento disattivato sull'API Anthropic, Claude Code invia effort `high` invece di un livello superiore ai modelli che sa [non accettano quella combinazione](https://code.claude.com/docs/it/errors.md#effort-isnt-available-with-thinking-turned-off), come Opus 5.296Sui modelli che ragionano sempre, come Opus 5.5, Sonnet 5.5, Haiku 5.5 e i modelli Fable, `false` non ha effetto. Sui [provider di terze parti](https://code.claude.com/docs/it/third-party-integrations.md) Claude Code omette il parametro `thinking` invece di disattivare il ragionamento, quindi i modelli con ragionamento adattivo potrebbero comunque ragionare. Con il ragionamento disattivato sull'API Anthropic, Claude Code invia lo sforzo `high` invece di un livello superiore ai modelli che sa [non accettare quella combinazione](https://code.claude.com/docs/it/errors.md#effort-isnt-available-with-thinking-turned-off), come Opus 5.

297 297 

298* **Scope**: [`Any file`](#scopes)298* **Ambito**: [`Any file`](#scopes)

299* **Type**: Boolean299* **Tipo**: Boolean

300 * `true`: nessun effetto; il pensiero è già attivo300 * `true`: nessun effetto; il ragionamento è già attivo

301 * `false`: Claude Code disattiva il pensiero esteso per ogni sessione301 * `false`: Claude Code disattiva il ragionamento esteso per ogni sessione

302* **Default**: non impostato, quindi il pensiero è attivo per i modelli che lo supportano302* **Predefinito**: non impostato, quindi il ragionamento è attivo per i modelli che lo supportano

303* **Per-session overrides**: [`MAX_THINKING_TOKENS`](https://code.claude.com/docs/it/env-vars) ha la precedenza su questa chiave per una sessione: `0` disattiva il pensiero, sotto gli stessi limiti di modello e provider di `false`, e un valore positivo attiva il pensiero anche quando questa chiave è `false`. Su modelli di ragionamento adattivo il numero stesso viene ignorato303* **Override per sessione**: [`MAX_THINKING_TOKENS`](https://code.claude.com/docs/it/env-vars) ha la precedenza su questa chiave per una sessione: `0` disattiva il ragionamento, con gli stessi limiti di modello e provider di `false`, e un valore positivo attiva il ragionamento anche quando questa chiave è `false`. Sui modelli con ragionamento adattivo il numero in sé viene ignorato

304 304 

305```json settings.json theme={null}305```json settings.json theme={null}

306{306{


310 310 

311### `availableModels`311### `availableModels`

312 312 

313Limita quali modelli le persone possono selezionare per la sessione principale, [subagenti](https://code.claude.com/docs/it/sub-agents.md), [skills](https://code.claude.com/docs/it/skills.md), e l'[advisor](https://code.claude.com/docs/it/advisor.md). Un elenco gestito vincola `/model`, `--model`, e la chiave `model` nei file propri dello sviluppatore; un modello al di fuori di esso non può essere selezionato. Con la corrispondenza di prefisso predefinita, questo non tocca l'opzione Default da sola; abbinala con [`enforceAvailableModels`](#enforceavailablemodels) per quello.313Limita quali modelli le persone possono selezionare per la sessione principale, i [subagent](https://code.claude.com/docs/it/sub-agents.md), le [skill](https://code.claude.com/docs/it/skills.md) e l'[advisor](https://code.claude.com/docs/it/advisor.md). Un elenco gestito vincola `/model`, `--model` e la chiave `model` nei file dello sviluppatore; un modello al di fuori dell'elenco non può essere selezionato. Con la corrispondenza per prefisso predefinita, questa chiave da sola non interviene sull'opzione Default; per questo abbinala a [`enforceAvailableModels`](#enforceavailablemodels).

314 314 

315* **Scope**: [`Any file`](#scopes). Distribuiscilo nelle impostazioni gestite per applicarlo a un'organizzazione.315* **Ambito**: [`Any file`](#scopes). Distribuiscila nelle impostazioni gestite per applicarla a un'organizzazione.

316* **Type**: array di alias di modelli o ID316* **Tipo**: array di alias o ID di modello

317* **Default**: non impostato, quindi ogni modello è disponibile317* **Predefinito**: non impostato, quindi ogni modello è disponibile

318 318 

319Questo esempio consente alle persone di selezionare solo modelli Sonnet e Haiku:319Questo esempio consente alle persone di selezionare solo i modelli Sonnet e Haiku:

320 320 

321```json settings.json theme={null}321```json settings.json theme={null}

322{322{


324}324}

325```325```

326 326 

327Una voce ID modello come `"claude-opus-5"` consente anche versioni successive che la estendono, come Opus 5.5. Per bloccare una di quelle versioni, usa [`deniedModels`](#deniedmodels). Per fare in modo che ogni voce ID modello consenta solo la versione che nomina, usa [`availableModelsMatch`](#availablemodelsmatch). Vedi [Limita la selezione del modello](https://code.claude.com/docs/it/model-config.md#restrict-model-selection). Per gli ID dei provider di terze parti, vedi [Fissa i modelli per i deploy di terze parti](https://code.claude.com/docs/it/model-config.md#pin-models-for-third-party-deployments).327Una voce con un ID di modello come `"claude-opus-5"` consente anche le versioni successive che lo estendono, come Opus 5.5. Per bloccare una di queste versioni, usa [`deniedModels`](#deniedmodels). Per fare in modo che ogni voce con un ID di modello consenta solo la versione che nomina, usa [`availableModelsMatch`](#availablemodelsmatch). Consulta [Limitare la selezione del modello](https://code.claude.com/docs/it/model-config.md#restrict-model-selection). Per gli ID dei provider di terze parti, consulta [Fissare i modelli per i deploy di terze parti](https://code.claude.com/docs/it/model-config.md#pin-models-for-third-party-deployments).

328 328 

329### `availableModelsMatch`329### `availableModelsMatch`

330 330 

331Scegli come le voci [`availableModels`](#availablemodels) corrispondono agli ID modello. Per impostazione predefinita una voce ID modello consente anche versioni successive che la estendono, quindi `"claude-opus-5"` consente Opus 5.5. Con `"exact"`, ogni voce ID modello consente solo la versione che nomina, quindi una versione più recente di quel modello rimane bloccata finché non la elenchi. Richiede Claude Code v2.1.283 o successivo.331Scegli come le voci di [`availableModels`](#availablemodels) corrispondono agli ID di modello. Per impostazione predefinita una voce con un ID di modello consente anche le versioni successive che lo estendono, quindi `"claude-opus-5"` consente Opus 5.5. Con `"exact"`, ogni voce con un ID di modello consente solo la versione che nomina, quindi una versione più recente di quel modello resta bloccata finché non la aggiungi all'elenco. Richiede Claude Code v2.1.283 o successivo.

332 332 

333* **Scope**: [`Managed`](#scopes). Claude Code ignora la chiave nelle impostazioni utente, progetto e locale e in `--settings`, con un avviso333* **Ambito**: [`Managed`](#scopes). Claude Code ignora la chiave nelle impostazioni utente, di progetto e locali e in `--settings`, mostrando un avviso

334* **Type**: string, uno di:334* **Tipo**: stringa, uno tra:

335 * `"prefix"`: una voce ID modello consente la sua versione e qualsiasi ID modello che la estende con un altro segmento335 * `"prefix"`: una voce con un ID di modello consente la sua versione e qualsiasi ID di modello che la estende con un altro segmento

336 * `"exact"`: una voce ID modello consente solo la versione che nomina, quindi `"claude-opus-5"` consente Opus 5 ma non `claude-opus-5-5`. Una voce come `"claude-opus-4-5"` consente anche il relativo ID modello Anthropic datato `claude-opus-4-5-20251101`. Un alias di famiglia come `"opus"` consente comunque l'intera famiglia, e le voci `best`, `opusplan`, e `default` vengono ignorate336 * `"exact"`: una voce con un ID di modello consente solo la versione che nomina, quindi `"claude-opus-5"` consente Opus 5 ma non `claude-opus-5-5`. Una voce come `"claude-opus-4-5"` consente anche il relativo ID di modello Anthropic con data `claude-opus-4-5-20251101`. Un alias di famiglia come `"opus"` consente comunque l'intera famiglia, e le voci `best`, `opusplan` e `default` vengono ignorate

337* **Default**: `"prefix"`337* **Predefinito**: `"prefix"`

338 338 

339Questo esempio consente Opus 5 e Sonnet 5 e nessuna versione successiva di entrambi:339Questo esempio consente Opus 5 e Sonnet 5 e nessuna versione successiva di nessuno dei due:

340 340 

341```json managed-settings.json theme={null}341```json managed-settings.json theme={null}

342{342{


345}345}

346```346```

347 347 

348Con `"exact"`, l'opzione Default è anche limitata ai modelli elencati ogni volta che l'elenco nomina almeno un modello o una famiglia. Vedi [Blocca modelli o versioni specifiche](https://code.claude.com/docs/it/model-config.md#block-specific-models-or-versions).348Con `"exact"`, anche l'opzione Default è limitata ai modelli elencati ogni volta che l'elenco nomina almeno un modello o una famiglia. Consulta [Bloccare modelli o versioni specifici](https://code.claude.com/docs/it/model-config.md#block-specific-models-or-versions).

349 349 

350### `deniedModels`350### `deniedModels`

351 351 

352Blocca modelli specifici, con o senza un elenco [`availableModels`](#availablemodels) e anche quando quell'elenco li consente. Claude Code nasconde un modello bloccato dal selettore `/model`, e il modello non può essere selezionato ovunque `availableModels` sia applicato. Una sessione sull'opzione Default non esegue nemmeno un modello bloccato, come [Blocca modelli o versioni specifiche](https://code.claude.com/docs/it/model-config.md#block-specific-models-or-versions) descrive. Richiede Claude Code v2.1.283 o successivo.352Blocca modelli specifici, con o senza un'allowlist [`availableModels`](#availablemodels) e anche quando quell'elenco li consente. Claude Code nasconde un modello bloccato dal selettore `/model`, e il modello non può essere selezionato ovunque `availableModels` venga applicato. Nemmeno una sessione sull'opzione Default esegue un modello bloccato, come descritto in [Bloccare modelli o versioni specifici](https://code.claude.com/docs/it/model-config.md#block-specific-models-or-versions). Richiede Claude Code v2.1.283 o successivo.

353 353 

354* **Scope**: [`Managed`](#scopes). Claude Code ignora la chiave nelle impostazioni utente, progetto e locale e in `--settings`, con un avviso354* **Ambito**: [`Managed`](#scopes). Claude Code ignora la chiave nelle impostazioni utente, di progetto e locali e in `--settings`, mostrando un avviso

355* **Type**: array di alias di modelli o ID355* **Tipo**: array di alias o ID di modello

356 * Un alias di famiglia come `"opus"` blocca ogni modello in quella famiglia356 * Un alias di famiglia come `"opus"` blocca ogni modello di quella famiglia

357 * Un ID modello come `"claude-opus-5-5"` blocca quella versione in ogni ortografia, inclusi gli ID datati e specifici del provider357 * Un ID di modello come `"claude-opus-5-5"` blocca quella versione in ogni forma, inclusi gli ID con data e quelli specifici del provider

358 * Un ID modello senza versione minore, come `"claude-opus-5"`, blocca anche versioni minori successive come Opus 5.5. Scrivi `"claude-opus-5-0"` per bloccare solo Opus 5358 * Un ID di modello senza versione minore, come `"claude-opus-5"`, blocca anche le versioni minori successive come Opus 5.5. Scrivi `"claude-opus-5-0"` per bloccare solo Opus 5

359 * Le voci `best`, `opusplan`, e `default` vengono ignorate359 * Le voci `best`, `opusplan` e `default` vengono ignorate

360* **Default**: non impostato, quindi nessun modello è bloccato360* **Predefinito**: non impostato, quindi nessun modello è bloccato

361 361 

362Questo esempio consente modelli Opus e Sonnet e blocca Opus 5.5:362Questo esempio consente i modelli Opus e Sonnet e blocca Opus 5.5:

363 363 

364```json managed-settings.json theme={null}364```json managed-settings.json theme={null}

365{365{


368}368}

369```369```

370 370 

371Vedi [Blocca modelli o versioni specifiche](https://code.claude.com/docs/it/model-config.md#block-specific-models-or-versions).371Consulta [Bloccare modelli o versioni specifici](https://code.claude.com/docs/it/model-config.md#block-specific-models-or-versions).

372 372 

373### `effortLevel`373### `effortLevel`

374 374 

375Imposta un [livello di effort](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) predefinito per i modelli per i quali non hai salvato un livello. I livelli inferiori sono più veloci e più economici su compiti semplici, e i livelli superiori ragionano più profondamente su problemi complessi.375Imposta un [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) predefinito per i modelli per cui non hai salvato un livello. I livelli più bassi sono più veloci ed economici sulle attività semplici, mentre quelli più alti ragionano più a fondo sui problemi complessi.

376 376 

377Quando esegui `/effort low`, `medium`, `high`, o `xhigh` in una sessione interattiva sulla tua macchina, Claude Code salva il livello per il modello attivo sotto [`modelSettings`](#modelsettings) piuttosto che scrivere questa chiave. Prima della v2.1.251, `/effort` scriveva questa chiave.377Quando esegui `/effort low`, `medium`, `high` o `xhigh` in una sessione interattiva sulla tua macchina, Claude Code salva il livello per il modello attivo in [`modelSettings`](#modelsettings) invece di scrivere questa chiave. Prima della v2.1.251, `/effort` scriveva questa chiave.

378 378 

379All'interno dello stesso file di impostazioni, Claude Code utilizza il livello salvato di un modello piuttosto che questa chiave. [`modelSettings`](#modelsettings) indica la precedenza tra file.379All'interno dello stesso file di impostazioni, Claude Code usa il livello salvato di un modello invece di questa chiave. [`modelSettings`](#modelsettings) indica la precedenza tra file diversi.

380 380 

381In una sessione collegata a un worker remoto, in un'esecuzione `-p`, e in Agent SDK, `/effort` si applica solo a quella sessione. [Regola il livello di effort](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) elenca le scelte interattive che si applicano anche solo a quella sessione. Il messaggio che `/effort` stampa dice quale è accaduto.381In una sessione collegata a un worker remoto, in un'esecuzione `-p` e nell'Agent SDK, `/effort` si applica solo a quella sessione. [Regolare il livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) elenca le scelte interattive che si applicano anch'esse solo a quella sessione. Il messaggio stampato da `/effort` indica cosa è successo.

382 382 

383* **Scope**: [`Any file`](#scopes)383* **Ambito**: [`Any file`](#scopes)

384* **Type**: string, uno di:384* **Tipo**: stringa, uno tra:

385 * `"low"`: il ragionamento minimo, per compiti brevi, limitati e sensibili alla latenza che non sono sensibili all'intelligenza385 * `"low"`: il ragionamento minimo, per attività brevi, circoscritte e sensibili alla latenza che non richiedono molta intelligenza

386 * `"medium"`: riduce l'utilizzo di token per il lavoro sensibile ai costi che può scambiare un po' di intelligenza386 * `"medium"`: riduce l'uso di token per lavori attenti ai costi che possono rinunciare a un po' di intelligenza

387 * `"high"`: bilancia l'utilizzo di token e l'intelligenza387 * `"high"`: bilancia uso di token e intelligenza

388 * `"xhigh"`: ragionamento più profondo con spesa di token più elevata388 * `"xhigh"`: ragionamento più approfondito con una maggiore spesa di token

389* **Default**: non impostato389* **Predefinito**: non impostato

390* **Per-session overrides**: `--effort` ha la precedenza su questa chiave per una sessione, e [`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/it/env-vars) ha la precedenza su entrambi390* **Override per sessione**: `--effort` ha la precedenza su questa chiave per una sessione, e [`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/it/env-vars) ha la precedenza su entrambi

391 391 

392```json settings.json theme={null}392```json settings.json theme={null}

393{393{


395}395}

396```396```

397 397 

398Nel tuo file di impostazioni utente, `~/.claude/settings.json`, questa chiave è la forma più vecchia che `/effort` scriveva prima di salvare i livelli per modello, e continua ad applicarsi dove si applicava prima, su Opus 5, Fable 5.1, e modelli precedenti. Opus 5.5 e i modelli rilasciati dopo di esso lo ignorano e iniziano al loro default fino a quando non salvi un livello per loro, che `/effort` scrive sotto [`modelSettings`](#modelsettings). Nelle impostazioni di progetto, locale e gestite, e con `--settings`, questa chiave si applica a ogni modello.398Nel tuo file di impostazioni utente, `~/.claude/settings.json`, questa chiave è la forma precedente che `/effort` scriveva prima di salvare i livelli per modello, e continua ad applicarsi dove si applicava prima, su Opus 5, Fable 5.1 e i modelli precedenti. Opus 5.5 e i modelli rilasciati dopo di esso la ignorano e partono dal proprio valore predefinito finché non salvi un livello per loro, che `/effort` scrive in [`modelSettings`](#modelsettings). Nelle impostazioni di progetto, locali e gestite, e con `--settings`, questa chiave si applica a ogni modello.

399 399 

400### `enforceAvailableModels`400### `enforceAvailableModels`

401 401 

402Il selettore `/model` ha un'opzione **Default**, e [`default` model setting](https://code.claude.com/docs/it/model-config#default-model-setting) descrive il modello a cui si risolve. Un elenco [`availableModels`](#availablemodels) limita i modelli che puoi nominare, ma con la [corrispondenza di prefisso](#availablemodelsmatch) predefinita non rimappa il default del tuo tipo di account, quindi **Default** può comunque risolversi a un modello al di fuori dell'elenco. Questa chiave chiude quella lacuna. Richiede Claude Code v2.1.175 o successivo.402Il selettore `/model` ha un'opzione **Default**, e [impostazione del modello `default`](https://code.claude.com/docs/it/model-config#default-model-setting) descrive il modello in cui si risolve. Un'allowlist [`availableModels`](#availablemodels) limita i modelli che puoi nominare, ma con la [corrispondenza per prefisso](#availablemodelsmatch) predefinita non rimappa il modello predefinito del tuo tipo di account, quindi **Default** può ancora risolversi in un modello al di fuori dell'elenco. Questa chiave colma questa lacuna. Richiede Claude Code v2.1.175 o successivo.

403 403 

404Quando la tua organizzazione distribuisce qualsiasi impostazione gestita, Claude Code legge questa chiave solo dalla fonte gestita e la ignora negli altri tuoi file.404Quando la tua organizzazione distribuisce impostazioni gestite, Claude Code legge questa chiave solo dalla fonte gestita e la ignora negli altri tuoi file.

405 405 

406Per come questa chiave si applica ai controlli del modello all'avvio, vedi [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md#when-your-organization-enforces-a-model-allowlist) e [Agent Platform di Google Cloud](https://code.claude.com/docs/it/google-vertex-ai.md#when-your-organization-enforces-a-model-allowlist).406Per sapere come questa chiave si applica ai controlli del modello all'avvio, consulta [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md#when-your-organization-enforces-a-model-allowlist) e [Agent Platform di Google Cloud](https://code.claude.com/docs/it/google-vertex-ai.md#when-your-organization-enforces-a-model-allowlist).

407 407 

408* **Scope**: [`Any file`](#scopes)408* **Ambito**: [`Any file`](#scopes)

409* **Type**: Boolean409* **Tipo**: Boolean

410 * `true`: quando **Default** si risolverebbe a un modello al di fuori di `availableModels`, Claude Code lo risolve al primo modello disponibile nell'elenco410 * `true`: quando **Default** si risolverebbe in un modello al di fuori di `availableModels`, Claude Code lo risolve nel primo modello disponibile dell'elenco

411 * `false`: questa chiave non cambia come **Default** si risolve411 * `false`: questa chiave non cambia il modo in cui **Default** si risolve

412* **Default**: `false`412* **Predefinito**: `false`

413 413 

414Questo esempio limita le selezioni nominate ai modelli Sonnet e Haiku e fa sì che **Default** si risolva al primo di essi disponibile:414Questo esempio limita le selezioni nominate ai modelli Sonnet e Haiku e fa sì che **Default** si risolva nel primo di essi disponibile:

415 415 

416```json settings.json theme={null}416```json settings.json theme={null}

417{417{


420}420}

421```421```

422 422 

423Questa chiave non ha effetto quando `availableModels` non è impostato o è vuoto. Vedi [Applica l'elenco consentito al modello Default](https://code.claude.com/docs/it/model-config.md#enforce-the-allowlist-for-the-default-model). Richiede Claude Code v2.1.175 o successivo.423Questa chiave non ha effetto quando `availableModels` non è impostato o è vuoto. Consulta [Applicare l'allowlist al modello Default](https://code.claude.com/docs/it/model-config.md#enforce-the-allowlist-for-the-default-model). Richiede Claude Code v2.1.175 o successivo.

424 424 

425### `fallbackModel`425### `fallbackModel`

426 426 

427Nomina modelli di backup per Claude Code da provare, in ordine, quando il tuo modello principale è sovraccarico o non disponibile. Claude Code passa al prossimo modello disponibile nella catena per il resto del turno e mostra un avviso. Senza una catena, Claude Code riprova lo stesso modello e poi mostra l'errore del server, e tu riprovi o cambi modelli tu stesso.427Indica i modelli di riserva che Claude Code deve provare, in ordine, quando il tuo modello principale è sovraccarico o non disponibile. Claude Code passa al modello disponibile successivo della catena per il resto del turno e mostra un avviso. Senza una catena, Claude Code riprova con lo stesso modello e poi mostra l'errore del server, e sei tu a riprovare o a cambiare modello.

428 428 

429Un cambio significa un turno con una [cache prompt](https://code.claude.com/docs/it/prompt-caching.md#switching-models) fredda sul modello di fallback; il tuo prossimo messaggio riprova il modello principale per primo di nuovo.429Un cambio comporta un turno con la [cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#switching-models) fredda sul modello di fallback; il tuo messaggio successivo prova di nuovo prima il modello principale.

430 430 

431* **Scope**: [`Any file`](#scopes)431* **Ambito**: [`Any file`](#scopes)

432* **Type**: array di alias di modelli o ID; `"default"` si espande al modello predefinito432* **Tipo**: array di alias o ID di modello; `"default"` si espande nel modello predefinito

433* **Default**: non impostato, quindi una richiesta fallita non viene ritentata su un altro modello433* **Predefinito**: non impostato, quindi una richiesta non riuscita non viene ritentata su un altro modello

434* **Per-session overrides**: `--fallback-model` ha la precedenza su questa chiave per una sessione434* **Override per sessione**: `--fallback-model` ha la precedenza su questa chiave per una sessione

435 435 

436Questo esempio prova Sonnet 5 per primo, poi Haiku 4.5, quando il tuo modello principale fallisce:436Questo esempio prova prima Sonnet 5, poi Haiku 4.5, quando il tuo modello principale non riesce:

437 437 

438```json settings.json theme={null}438```json settings.json theme={null}

439{439{


441}441}

442```442```

443 443 

444A differenza della maggior parte delle impostazioni di array, questa chiave non si unisce tra file di impostazioni: il file con la precedenza più alta che la definisce fornisce l'intera catena. Se il tuo file di progetto imposta `["claude-sonnet-5"]` e il tuo file utente imposta `["claude-haiku-4-5"]`, la catena è `["claude-sonnet-5"]` solo. Claude Code mantiene al massimo tre modelli consentiti distinti dall'elenco e ignora il resto. Vedi [Catene di modelli di fallback](https://code.claude.com/docs/it/model-config.md#fallback-model-chains).444A differenza della maggior parte delle impostazioni di tipo array, questa chiave non esegue il merge tra i file di impostazioni: il file con la precedenza più alta che la definisce fornisce l'intera catena. Se il tuo file di progetto imposta `["claude-sonnet-5"]` e il tuo file utente imposta `["claude-haiku-4-5"]`, la catena è solo `["claude-sonnet-5"]`. Claude Code mantiene al massimo tre modelli consentiti distinti dall'elenco e ignora il resto. Consulta [Catene di modelli di fallback](https://code.claude.com/docs/it/model-config.md#fallback-model-chains).

445 445 

446### `fastMode`446### `fastMode`

447 447 

448Attiva la [modalità veloce](https://code.claude.com/docs/it/fast-mode.md) per sessioni dove è disponibile, per il lavoro interattivo come l'iterazione rapida o il debug dal vivo dove vuoi velocità a un costo più elevato per token. Di solito non modifichi questa chiave manualmente: eseguire `/fast` scrive `fastMode: true` in `~/.claude/settings.json`, e eseguirlo di nuovo per disattivare la modalità veloce rimuove la chiave. La modalità veloce funziona solo su Opus 5.5, Opus 5, e Opus 4.8: attivarla da un altro modello ti passa a Opus, e passare a un modello non supportato la disattiva. Vedi [Cambia modelli mentre la modalità veloce è attiva](https://code.claude.com/docs/it/fast-mode.md#switch-models-while-fast-mode-is-on).448Attiva la [modalità veloce](https://code.claude.com/docs/it/fast-mode.md) per le sessioni in cui è disponibile, per il lavoro interattivo come l'iterazione rapida o il debug dal vivo in cui vuoi velocità a un costo per token più alto. Di solito non modifichi questa chiave a mano: eseguire `/fast` scrive `fastMode: true` in `~/.claude/settings.json`, ed eseguirlo di nuovo per disattivare la modalità veloce rimuove la chiave. La modalità veloce funziona solo su Opus 5.5, Opus 5 e Opus 4.8: attivarla da un altro modello ti fa passare a Opus, e passare a un modello non supportato la disattiva. Consulta [Cambiare modello con la modalità veloce attiva](https://code.claude.com/docs/it/fast-mode.md#switch-models-while-fast-mode-is-on).

449 449 

450* **Scope**: [`Any file`](#scopes)450* **Ambito**: [`Any file`](#scopes)

451* **Type**: Boolean451* **Tipo**: Boolean

452 * `true`: Claude Code attiva la modalità veloce per sessioni dove è disponibile452 * `true`: Claude Code attiva la modalità veloce per le sessioni in cui è disponibile

453 * `false`: la modalità veloce rimane disattivata453 * `false`: la modalità veloce resta disattivata

454* **Default**: non impostato, quindi la modalità veloce è disattivata454* **Predefinito**: non impostato, quindi la modalità veloce è disattivata

455* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/it/env-vars) disattiva la modalità veloce per una sessione, e questa chiave non può riattivarlo455* **Override per sessione**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](https://code.claude.com/docs/it/env-vars) disattiva la modalità veloce per una sessione, e questa chiave non può riattivarla

456 456 

457```json settings.json theme={null}457```json settings.json theme={null}

458{458{


462 462 

463### `fastModePerSessionOptIn`463### `fastModePerSessionOptIn`

464 464 

465Normalmente, eseguire `/fast` salva [`fastMode`](#fastmode) nelle impostazioni utente di una persona, quindi la modalità veloce è attiva all'inizio di ogni sessione successiva. Imposta questa chiave a `true` per fermare quello: un `fastMode: true` salvato non attiva più la modalità veloce all'inizio della sessione, e ogni persona deve eseguire `/fast` in ogni sessione in cui la vuole. Claude Code lascia la chiave `fastMode` nel loro file, quindi disattivare questa chiave ripristina il comportamento vecchio.465Normalmente, eseguire `/fast` salva [`fastMode`](#fastmode) nelle impostazioni utente di una persona, quindi la modalità veloce è attiva all'inizio di ogni sessione successiva. Imposta questa chiave su `true` per impedirlo: un `fastMode: true` salvato non attiva più la modalità veloce all'avvio della sessione, e ogni persona deve eseguire `/fast` in ogni sessione in cui la vuole. Claude Code lascia la chiave `fastMode` nel loro file, quindi disattivare questa chiave ripristina il comportamento precedente.

466 466 

467I proprietari su piani Team o Enterprise possono distribuirla a livello di organizzazione tramite [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md). Quando le impostazioni gestite impostano la chiave, `/fast on` viene rifiutato al di fuori delle sessioni di terminale interattive e segnala che la tua organizzazione ha disabilitato la modalità veloce. Questo copre la [modalità non interattiva](https://code.claude.com/docs/it/headless.md), l'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md), e le [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md).467Gli Owner dei piani Team o Enterprise possono distribuirla in tutta l'organizzazione tramite le [impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md). Quando le impostazioni gestite impostano la chiave, `/fast on` viene rifiutato al di fuori delle sessioni interattive nel terminale e segnala che la tua organizzazione ha disabilitato la modalità veloce. Questo riguarda la [modalità non interattiva](https://code.claude.com/docs/it/headless.md), l'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md) e le [sessioni cloud](https://code.claude.com/docs/it/claude-code-on-the-web.md).

468 468 

469* **Scope**: [`Any file`](#scopes)469* **Ambito**: [`Any file`](#scopes)

470* **Type**: Boolean470* **Tipo**: Boolean

471 * `true`: un `fastMode: true` salvato non attiva più la modalità veloce all'inizio della sessione, quindi ogni persona esegue `/fast` in ogni sessione in cui la vuole; un `fastMode: true` passato con `--settings` conta comunque per quella sessione a meno che le impostazioni gestite non impostino questa chiave471 * `true`: un `fastMode: true` salvato non attiva più la modalità veloce all'avvio della sessione, quindi ogni persona esegue `/fast` in ogni sessione in cui la vuole; un `fastMode: true` passato con `--settings` vale comunque per quella sessione, a meno che le impostazioni gestite non impostino questa chiave

472 * `false`: un `fastMode: true` salvato attiva la modalità veloce all'inizio di ogni sessione successiva472 * `false`: un `fastMode: true` salvato attiva la modalità veloce all'inizio di ogni sessione successiva

473* **Default**: `false`473* **Predefinito**: `false`

474 474 

475```json settings.json theme={null}475```json settings.json theme={null}

476{476{


478}478}

479```479```

480 480 

481Vedi [Richiedi opt-in per sessione](https://code.claude.com/docs/it/fast-mode.md#require-per-session-opt-in).481Consulta [Richiedere l'attivazione per sessione](https://code.claude.com/docs/it/fast-mode.md#require-per-session-opt-in).

482 482 

483### `language`483### `language`

484 484 

485Fai rispondere Claude in una lingua diversa dall'inglese per impostazione predefinita. Non c'è un elenco fisso per le risposte: Claude Code passa il valore verbatim a Claude come istruzione per rispondere sempre in quella lingua, quindi qualsiasi nome di lingua che Claude può leggere funziona. Claude Code non controlla il valore, quindi un nome scritto male raggiunge Claude come scritto piuttosto che produrre un errore. Lo stesso valore imposta la lingua per la [dettatura vocale](https://code.claude.com/docs/it/voice-dictation.md#change-the-dictation-language), che ha un elenco fisso di [lingue di dettatura supportate](https://code.claude.com/docs/it/voice-dictation.md#change-the-dictation-language), e per i titoli di sessione generati automaticamente.485Fai rispondere Claude in una lingua diversa dall'inglese per impostazione predefinita. Non esiste un elenco fisso per le risposte: Claude Code passa il valore così com'è a Claude come istruzione di rispondere sempre in quella lingua, quindi funziona qualsiasi nome di lingua che Claude sia in grado di leggere. Claude Code non controlla il valore, quindi un nome scritto in modo errato arriva a Claude così com'è invece di produrre un errore. Lo stesso valore imposta la lingua per la [dettatura vocale](https://code.claude.com/docs/it/voice-dictation.md#change-the-dictation-language), che invece ha un elenco fisso di [lingue di dettatura supportate](https://code.claude.com/docs/it/voice-dictation.md#change-the-dictation-language), e per i titoli delle sessioni generati automaticamente.

486 486 

487* **Scope**: [`Any file`](#scopes)487* **Ambito**: [`Any file`](#scopes)

488* **Type**: string, qualsiasi nome di lingua, come `"japanese"`, `"spanish"`, o `"french"`; Claude Code non lo convalida488* **Tipo**: stringa, qualsiasi nome di lingua, come `"japanese"`, `"spanish"` o `"french"`; Claude Code non la convalida

489* **Default**: non impostato; i titoli di sessione corrispondono quindi alla lingua della tua conversazione489* **Predefinito**: non impostato; i titoli delle sessioni seguono quindi la lingua della tua conversazione

490 490 

491```json settings.json theme={null}491```json settings.json theme={null}

492{492{


496 496 

497### `maxEffortLevel`497### `maxEffortLevel`

498 498 

499Limita il [livello di effort](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) che una sessione può utilizzare, lasciando disponibili i livelli inferiori. Qualsiasi livello superiore funziona al limite invece, incluso uno da `/effort`, il selettore `/model`, `--effort`, [`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/it/env-vars), il frontmatter `effort` di una skill o subagente, o il default del modello stesso. Claude Code applica il limite stesso prima di ogni richiesta, quindi vale su ogni provider, inclusi Amazon Bedrock, Agent Platform di Google Cloud, e Microsoft Foundry. Richiede Claude Code v2.1.267 o successivo.499Imposta un limite al [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) che una sessione può usare, lasciando disponibili i livelli inferiori. Qualsiasi livello superiore viene invece eseguito al limite, incluso uno proveniente da `/effort`, dal selettore `/model`, da `--effort`, da [`CLAUDE_CODE_EFFORT_LEVEL`](https://code.claude.com/docs/it/env-vars), dal frontmatter `effort` di una skill o di un subagent, o dal valore predefinito del modello stesso. Claude Code applica il limite autonomamente prima di ogni richiesta, quindi vale su ogni provider, inclusi Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry. Richiede Claude Code v2.1.267 o successivo.

500 500 

501* **Scope**: [`Any file`](#scopes). Distribuiscilo nelle impostazioni gestite per applicarlo a un'organizzazione. Quando più scope impostano un limite, si applica il più basso, quindi un limite impostato in uno scope non può essere aumentato da un altro501* **Ambito**: [`Any file`](#scopes). Distribuiscila nelle impostazioni gestite per applicarla a un'organizzazione. Quando più ambiti impostano un limite, si applica il più basso, quindi un limite impostato in un ambito non può essere alzato da un altro

502* **Type**: string, uno di `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Un valore `"max"` non imposta alcun limite502* **Tipo**: stringa, uno tra `"low"`, `"medium"`, `"high"`, `"xhigh"` o `"max"`. Un valore `"max"` non imposta alcun limite

503* **Default**: non impostato, quindi non si applica alcun limite503* **Predefinito**: non impostato, quindi non si applica alcun limite

504* **Per-model caps**: aggiungi `maxEffortLevel` alla voce [`modelSettings`](#modelsettings) di un modello. Quella voce sostituisce questa chiave solo per il modello all'interno della fonte di impostazioni che imposta entrambi, come le tue impostazioni utente o una [fonte gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Imposta `"max"` lì per esentare il modello dal limite di quella fonte; Claude Code applica comunque i limiti da altre fonti504* **Limiti per modello**: aggiungi `maxEffortLevel` alla voce [`modelSettings`](#modelsettings) di un modello. Quella voce sostituisce questa chiave per il modello solo all'interno della fonte di impostazioni che imposta entrambe, come le tue impostazioni utente o una [fonte gestita](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Imposta lì `"max"` per esentare il modello dal limite di quella fonte; Claude Code applica comunque i limiti delle altre fonti

505 505 

506Questo esempio limita ogni modello a `medium` ed esenenta Sonnet 4.6:506Questo esempio limita ogni modello a `medium` ed esenta Sonnet 4.6:

507 507 

508```json settings.json theme={null}508```json settings.json theme={null}

509{509{


516}516}

517```517```

518 518 

519Quando la tua organizzazione imposta anche un [limite di effort](https://code.claude.com/docs/it/model-config.md#organization-effort-limits) per un modello, si applica il limite inferiore dei due.519Quando la tua organizzazione imposta anche un [limite di sforzo](https://code.claude.com/docs/it/model-config.md#organization-effort-limits) per un modello, si applica il più basso dei due limiti.

520 520 

521### `model`521### `model`

522 522 

523Imposta il modello che ogni nuova sessione utilizza, quindi non devi sceglierne uno con `/model` ogni volta. Impostarlo qui non ti impedisce di cambiare a metà sessione. Se il tuo amministratore ha impostato un [modello predefinito dell'organizzazione](https://code.claude.com/docs/it/model-config.md#organization-default-model) per ignorare la selezione dell'utente, ottieni quel modello anche quando imposti questa chiave nelle impostazioni utente, progetto o locale.523Imposta il modello usato da ogni nuova sessione, così non devi sceglierne uno con `/model` ogni volta. Impostarlo qui non ti impedisce di cambiare modello durante la sessione. Se il tuo amministratore ha impostato un [modello predefinito dell'organizzazione](https://code.claude.com/docs/it/model-config.md#organization-default-model) che sovrascrive la selezione dell'utente, ottieni quel modello anche quando imposti questa chiave nelle impostazioni utente, di progetto o locali.

524 524 

525* **Scope**: [`Any file`](#scopes)525* **Ambito**: [`Any file`](#scopes)

526* **Type**: string, un alias di modello o ID modello completo526* **Tipo**: stringa, un alias di modello o un ID di modello completo

527* **Default**: non impostato, quindi Claude Code utilizza il modello predefinito del tuo account527* **Predefinito**: non impostato, quindi Claude Code usa il modello predefinito del tuo account

528* **Per-session overrides**: `--model` ha la precedenza su [`ANTHROPIC_MODEL`](https://code.claude.com/docs/it/env-vars), e entrambi hanno la precedenza su questa chiave per una sessione, incluso su un `model` gestito; un elenco [`availableModels`](#availablemodels) si applica comunque alla scelta528* **Override per sessione**: `--model` ha la precedenza su [`ANTHROPIC_MODEL`](https://code.claude.com/docs/it/env-vars), ed entrambi hanno la precedenza su questa chiave per una sessione, anche su un `model` gestito; un elenco [`availableModels`](#availablemodels) si applica comunque alla scelta

529 529 

530```json settings.json theme={null}530```json settings.json theme={null}

531{531{


533}533}

534```534```

535 535 

536Un valore qui supera [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/it/model-config#set-a-default-model-for-new-sessions), che Claude Code utilizza solo quando nient'altro seleziona un modello.536Un valore qui ha la precedenza su [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/it/model-config#set-a-default-model-for-new-sessions), che Claude Code usa solo quando nient'altro seleziona un modello.

537 537 

538### `modelOverrides`538### `modelOverrides`

539 539 

540Mappa gli ID modello Anthropic agli ID modello specifici del provider, come i profili di inferenza ARN di Amazon Bedrock. Ogni voce del selettore di modelli utilizza quindi il suo valore mappato quando chiama l'API del provider. Gli amministratori lo utilizzano su [Amazon Bedrock, Agent Platform di Google Cloud, e Microsoft Foundry](https://code.claude.com/docs/it/model-config.md#override-model-ids-per-version) per instradare ogni versione di modello a un profilo di inferenza specifico, nome di versione, o distribuzione per governance, allocazione dei costi, o instradamento regionale.540Mappa gli ID di modello Anthropic su ID di modello specifici del provider, come gli ARN dei profili di inferenza di Amazon Bedrock. Ogni voce del selettore di modello usa quindi il valore mappato quando chiama l'API del provider. Gli amministratori la usano su [Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry](https://code.claude.com/docs/it/model-config.md#override-model-ids-per-version) per instradare ogni versione del modello verso uno specifico profilo di inferenza, nome di versione o deploy, per governance, ripartizione dei costi o instradamento regionale.

541 541 

542* **Scope**: [`Any file`](#scopes)542* **Ambito**: [`Any file`](#scopes)

543* **Type**: object che mappa ID modello a ID modello del provider543* **Tipo**: oggetto che mappa un ID di modello su un ID di modello del provider

544* **Default**: non impostato544* **Predefinito**: non impostato

545 545 

546Questo esempio instrada ogni chiamata per Opus 4.6 al profilo di inferenza Bedrock denominato:546Questo esempio instrada ogni chiamata per Opus 4.6 verso il profilo di inferenza Bedrock indicato:

547 547 

548```json settings.json theme={null}548```json settings.json theme={null}

549{549{


553}553}

554```554```

555 555 

556Vedi [Ignora gli ID modello per versione](https://code.claude.com/docs/it/model-config.md#override-model-ids-per-version).556Consulta [Sovrascrivere gli ID di modello per versione](https://code.claude.com/docs/it/model-config.md#override-model-ids-per-version).

557 557 

558### `modelPicker`558### `modelPicker`

559 559 

560Elenca i modelli che il selettore `/model` offre, nell'ordine in cui li scrivi e sotto le etichette che scegli, quindi il selettore elenca i modelli che la tua organizzazione esegue, dopo la lineup integrata o al suo posto. L'`model` di ogni riga viene preso verbatim, quindi accetta qualsiasi cosa che `--model` accetta: un alias come `opus`, un ID modello Anthropic, o un ID in formato provider per Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry, o un gateway LLM. Richiede Claude Code v2.1.242 o successivo.560Elenca i modelli offerti dal selettore `/model`, nell'ordine in cui li scrivi e con le etichette che scegli, così il selettore elenca i modelli che la tua organizzazione utilizza, dopo la selezione integrata o al suo posto. Il `model` di ogni riga viene preso così com'è, quindi accetta tutto ciò che accetta `--model`: un alias come `opus`, un ID di modello Anthropic o un ID nel formato del provider per Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry o un gateway LLM. Richiede Claude Code v2.1.242 o successivo.

561 561 

562* **Scope**: [`User or managed`](#scopes). Claude Code legge la chiave dalle impostazioni gestite, `--settings`, e impostazioni utente, e la ignora nelle impostazioni di progetto e locale quindi un repository che cloni non può rietichettare il selettore. Il più alto di quei tre che imposta la chiave fornisce l'intera lineup, e Claude Code non combina mai lineup da due fonti.562* **Ambito**: [`User or managed`](#scopes). Claude Code legge la chiave dalle impostazioni gestite, da `--settings` e dalle impostazioni utente, e la ignora nelle impostazioni di progetto e locali, così un repository che cloni non può rinominare le voci del selettore. La fonte con la precedenza più alta tra queste tre che imposta la chiave fornisce l'intera selezione, e Claude Code non combina mai le selezioni di due fonti.

563* **Type**: object con un array `options` di righe e un Boolean `replaceBuiltInOptions` opzionale563* **Tipo**: oggetto con un array `options` di righe e un Boolean opzionale `replaceBuiltInOptions`

564* **Default**: non impostato, quindi il selettore mostra la lineup integrata564* **Predefinito**: non impostato, quindi il selettore mostra la selezione integrata

565 565 

566Questo esempio aggiunge due distribuzioni Bedrock dopo la lineup integrata, sotto nomi che il tuo team riconosce:566Questo esempio aggiunge due deploy Bedrock dopo la selezione integrata, con nomi che il tuo team riconosce:

567 567 

568```json managed-settings.json theme={null}568```json managed-settings.json theme={null}

569{569{


582 582 

583#### Campi per `modelPicker`583#### Campi per `modelPicker`

584 584 

585La chiave accetta due campi, uno per le righe stesse e uno per se sostituiscono la lineup integrata o la aggiungono.585La chiave accetta due campi, uno per le righe stesse e uno per stabilire se sostituiscono la selezione integrata o si aggiungono a essa.

586 586 

587| Field | Type | What it does |587| Campo | Tipo | Cosa fa |

588| :- | :- | :- |588| :- | :- | :- |

589| `options` | array di righe, ognuna con un `model` richiesto e `label`, `description`, e `behavesAs` opzionali | Le righe che il selettore mostra, in questo ordine, tranne che una riga disattivata si sposta in fondo. Senza un `label`, Claude Code intitola la riga con il nome integrato per un modello che conosce, o l'ID modello altrimenti, e senza una `description` scrive una seconda riga generica |589| `options` | array di righe, ciascuna con un `model` obbligatorio e `label`, `description` e `behavesAs` opzionali | Le righe mostrate dal selettore, in questo ordine, tranne che una riga disattivata viene spostata in fondo. Senza una `label`, Claude Code intitola la riga con il nome integrato per un modello che conosce, o altrimenti con l'ID del modello, e senza una `description` scrive una seconda riga generica |

590| `replaceBuiltInOptions` | Boolean, default `false` | Impostalo a `true` per mostrare solo queste righe, **Default**, e una riga per il modello che la sessione sta già utilizzando. Lascialo non impostato per aggiungere queste righe dopo la lineup integrata |590| `replaceBuiltInOptions` | Boolean, predefinito `false` | Impostalo su `true` per mostrare solo queste righe, **Default** e una riga per il modello che la sessione sta già usando. Lascialo non impostato per aggiungere queste righe dopo la selezione integrata |

591 591 

592Una voce in `options` può anche portare un `behavesAs` string opzionale accanto al suo `model`, che richiede v2.1.257 o successivo. Impostalo all'ID di un modello che la tua versione di Claude Code già conosce, come `claude-opus-4-8`, su una voce il cui `model` è più recente della tua versione. Claude Code applica quindi le capacità di quel modello conosciuto e i default di effort alla voce invece di trattare il suo modello come sconosciuto. L'etichetta della voce e l'ID modello che Claude Code invia nelle richieste non cambiano.592Una voce in `options` può anche avere una stringa opzionale `behavesAs` accanto al suo `model`, che richiede la v2.1.257 o successiva. Impostala sull'ID di un modello che la tua versione di Claude Code conosce già, come `claude-opus-4-8`, su una voce il cui `model` è più recente della tua versione. Claude Code applica quindi alla voce le capacità e i valori di sforzo predefiniti di quel modello noto invece di trattare il suo modello come sconosciuto. L'etichetta della voce e l'ID del modello che Claude Code invia nelle richieste non cambiano.

593 593 

594Con `replaceBuiltInOptions` attivo, Claude Code nasconde ogni altra riga: la lineup integrata, le righe che aggiunge per le voci [`availableModels`](#availablemodels), i modelli che la [scoperta del gateway](https://code.claude.com/docs/it/llm-gateway-protocol.md#model-discovery) ha trovato, e [`ANTHROPIC_CUSTOM_MODEL_OPTION`](https://code.claude.com/docs/it/model-config#add-a-custom-model-option). Con esso disattivato, Claude Code salta un modello elencato che la lineup integrata già copre. Un'etichetta cambia quello che il selettore mostra, non quale modello Claude Code esegue.594Con `replaceBuiltInOptions` attivo, Claude Code nasconde ogni altra riga: la selezione integrata, le righe che aggiunge per le voci di [`availableModels`](#availablemodels), i modelli trovati dalla [scoperta del gateway](https://code.claude.com/docs/it/llm-gateway-protocol.md#model-discovery) e [`ANTHROPIC_CUSTOM_MODEL_OPTION`](https://code.claude.com/docs/it/model-config#add-a-custom-model-option). Con l'opzione disattivata, Claude Code salta un modello elencato che la selezione integrata copre già. Un'etichetta cambia ciò che mostra il selettore, non il modello che Claude Code esegue.

595 595 

596Un elenco [`availableModels`](#availablemodels) si applica comunque a queste righe. Prima di aggiungere un modello elencato all'elenco consentito, leggi [Comportamento di unione](https://code.claude.com/docs/it/model-config.md#merge-behavior): un ID modello specifico restringe la voce wildcard della sua famiglia. Claude Code controlla anche ogni riga rispetto alla sessione prima di mostrare il selettore:596Un'allowlist [`availableModels`](#availablemodels) si applica comunque a queste righe. Prima di aggiungere un modello elencato all'allowlist, leggi [Comportamento del merge](https://code.claude.com/docs/it/model-config.md#merge-behavior): un ID di modello specifico restringe la voce jolly della sua famiglia. Claude Code controlla anche ogni riga rispetto alla sessione prima di mostrare il selettore:

597 597 

598* **Dropped**: una riga che Claude Code non può servire, come un modello ritirato o un modello a cui la tua organizzazione non ha accesso598* **Scartata**: una riga che Claude Code non può servire, come un modello ritirato o un modello a cui la tua organizzazione non ha accesso

599* **Grayed out**: una riga che non puoi ancora selezionare, mostrata con il motivo599* **Disattivata**: una riga che non puoi ancora selezionare, mostrata con il motivo

600* **No row survives**: Claude Code mantiene la lineup integrata, filtrata dall'elenco consentito come al solito600* **Nessuna riga rimane**: Claude Code mantiene la selezione integrata, filtrata dall'allowlist come di consueto

601 601 

602Claude Code elimina una riga che non può analizzare e mantiene il resto. Vedi [Ripara un file di impostazioni rotto](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).602Claude Code scarta una riga che non riesce ad analizzare e mantiene il resto. Consulta [Correggere un file di impostazioni danneggiato](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).

603 603 

604### `modelPricing`604### `modelPricing`

605 605 

606Segnala la spesa alle tariffe che la tua organizzazione paga invece del prezzo di listino. Impostalo quando la tua organizzazione ha tariffe contrattuali, quindi le cifre in dollari che gli sviluppatori vedono corrispondono alla tua fattura. Claude Code applica le tariffe in `/usage`, la [riga di stato](https://code.claude.com/docs/it/statusline.md), l'`total_cost_usd` di Agent SDK, il limite [`--max-budget-usd`](https://code.claude.com/docs/it/cli-reference), e la metrica di costo [OpenTelemetry](https://code.claude.com/docs/it/monitoring-usage.md) e gli eventi. Fornisci le tariffe: Claude Code non le legge dal tuo contratto o dalla Claude Console. Richiede Claude Code v2.1.242 o successivo.606Riporta la spesa alle tariffe che la tua organizzazione paga invece che al prezzo di listino. Impostala quando la tua organizzazione ha tariffe contrattuali, così gli importi in dollari che vedono gli sviluppatori corrispondono alla tua fattura. Claude Code applica le tariffe in `/usage`, nella [riga di stato](https://code.claude.com/docs/it/statusline.md), nel `total_cost_usd` dell'Agent SDK, nel limite [`--max-budget-usd`](https://code.claude.com/docs/it/cli-reference) e nella metrica e negli eventi di costo [OpenTelemetry](https://code.claude.com/docs/it/monitoring-usage.md). Sei tu a fornire le tariffe: Claude Code non le legge dal tuo contratto né dalla Claude Console. Richiede Claude Code v2.1.242 o successivo.

607 607 

608* **Scope**: [`Managed`](#scopes). Distribuisci la chiave tramite impostazioni gestite dal server, una politica MDM, un file `managed-settings.json`, o un [helper di politica](https://code.claude.com/docs/it/managed-settings.md#compute-the-policy-with-a-helper-program). Claude Code la ignora nelle impostazioni utente, progetto e locale, in `--settings`, e su Windows nel [registro HKCU](https://code.claude.com/docs/it/managed-settings.md#where-each-mechanism-stores-the-policy) scrivibile dall'utente. Con impostazioni gestite dal server, ogni sessione segnala i costi al prezzo di listino fino a quando il [fetch di impostazioni](https://code.claude.com/docs/it/server-managed-settings.md#fetch-and-caching-behavior) di quella sessione ha confermato l'impostazione. Un'applicazione host che incorpora Claude Code e imposta [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/it/env-vars) può fornire una tabella propria tramite l'opzione SDK [`managedSettings`](https://code.claude.com/docs/it/agent-sdk/typescript#options), che Claude Code utilizza solo quando nessuna fonte gestita imposta la chiave e solo in Claude Code v2.1.246 o successivo.608* **Ambito**: [`Managed`](#scopes). Distribuisci la chiave tramite le impostazioni gestite dal server, una policy MDM, un file `managed-settings.json` o un [helper di policy](https://code.claude.com/docs/it/managed-settings.md#compute-the-policy-with-a-helper-program). Claude Code la ignora nelle impostazioni utente, di progetto e locali, in `--settings` e, su Windows, nel [registro HKCU](https://code.claude.com/docs/it/managed-settings.md#where-each-mechanism-stores-the-policy) scrivibile dall'utente. Con le impostazioni gestite dal server, ogni sessione riporta i costi al prezzo di listino finché il [recupero delle impostazioni](https://code.claude.com/docs/it/server-managed-settings.md#fetch-and-caching-behavior) di quella sessione non ha confermato l'impostazione. Un'applicazione host che incorpora Claude Code e imposta [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](https://code.claude.com/docs/it/env-vars) può fornire una propria tabella tramite l'opzione [`managedSettings`](https://code.claude.com/docs/it/agent-sdk/typescript#options) dell'SDK, che Claude Code usa solo quando nessuna fonte gestita imposta la chiave e solo in Claude Code v2.1.246 o successivo.

609* **Type**: object con un `multiplier` opzionale e una mappa `overrides` opzionale609* **Tipo**: oggetto con un `multiplier` opzionale e una mappa `overrides` opzionale

610* **Default**: non impostato, quindi Claude Code segnala il prezzo di listino a meno che un'applicazione host non fornisca una tabella610* **Predefinito**: non impostato, quindi Claude Code riporta il prezzo di listino, a meno che un'applicazione host non fornisca una tabella

611 611 

612Imposta `multiplier` da solo per uno sconto o markup fisso, `overrides` da solo per tariffe per modello, o entrambi.612Imposta solo `multiplier` per uno sconto o un ricarico fisso, solo `overrides` per tariffe per modello, oppure entrambi.

613 613 

614Questo esempio imposta tariffe contrattuali per Sonnet 4.6 e poi riduce ogni cifra, la riga Sonnet inclusa, del 15%:614Questo esempio imposta tariffe contrattuali per Sonnet 4.6 e poi riduce ogni importo, inclusa la riga Sonnet, del 15%:

615 615 

616```json managed-settings.json theme={null}616```json managed-settings.json theme={null}

617{617{


629}629}

630```630```

631 631 

632Imposta `multiplier` sopra 1, fino a 10, per aumentare ogni cifra. Un markup richiede Claude Code v2.1.271 o successivo. Le versioni precedenti ignorano un `multiplier` sopra 1 con un avviso e mantengono il resto dell'impostazione.632Imposta `multiplier` sopra 1, fino a 10, per applicare un ricarico a ogni importo. Un ricarico richiede Claude Code v2.1.271 o successivo. Le versioni precedenti ignorano un `multiplier` superiore a 1 mostrando un avviso e mantengono il resto dell'impostazione.

633 633 

634Per i passaggi, incluso come confermare che le tariffe sono in vigore, vedi [Segnala la spesa alle tue tariffe contrattuali](https://code.claude.com/docs/it/costs.md#report-spend-at-your-contracted-rates).634Per i passaggi, incluso come verificare che le tariffe siano in vigore, consulta [Riportare la spesa alle tariffe contrattuali](https://code.claude.com/docs/it/costs.md#report-spend-at-your-contracted-rates).

635 635 

636#### Campi per `modelPricing`636#### Campi per `modelPricing`

637 637 

638| Field | Type | What it does |638| Campo | Tipo | Cosa fa |

639| :- | :- | :- |639| :- | :- | :- |

640| `multiplier` | number maggiore di 0 e al massimo 10 | Scala ogni costo che Claude Code calcola, indipendentemente dal fatto che una riga `overrides` la copra. Sotto 1 è uno sconto, sopra 1 un markup |640| `multiplier` | numero maggiore di 0 e al massimo 10 | Scala ogni costo calcolato da Claude Code, che sia coperto o meno da una riga `overrides`. Sotto 1 è uno sconto, sopra 1 un ricarico |

641| `overrides` | mappa di ID modello a un oggetto di tariffa con `input`, `output`, `cacheRead`, e `cacheWrite`, ognuno da 0 a 10000 | Le tariffe USD-per-milione-token per quel modello, tutti e quattro richiesti. `cacheWrite` copre sia le scritture di cache di cinque minuti che di un'ora. Vedi [Quali modelli si applica una riga modelPricing](#which-models-a-modelpricing-row-applies-to) |641| `overrides` | mappa da ID di modello a un oggetto di tariffe con `input`, `output`, `cacheRead` e `cacheWrite`, ciascuno da 0 a 10000 | Le tariffe in USD per milione di token per quel modello, tutte e quattro obbligatorie. `cacheWrite` copre sia le scritture in cache da cinque minuti sia quelle da un'ora. Consulta [A quali modelli si applica una riga](#which-models-a-modelpricing-row-applies-to) |

642 642 

643Claude Code utilizza le tariffe di una riga esattamente come le hai scritte, senza aggiungere il markup di modalità veloce o la [tariffa di inferenza solo negli USA](https://platform.claude.com/docs/en/about-claude/pricing). Se imposti anche `multiplier`, Claude Code lo applica in cima alle tariffe della riga. Claude Code elimina una riga con una tariffa che non può analizzare, o un `multiplier` che non può analizzare, e mantiene il resto; vedi [Ripara un file di impostazioni rotto](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).643Claude Code usa le tariffe di una riga esattamente come le hai scritte, senza aggiungere il supplemento della modalità veloce o la [tariffa per l'inferenza solo negli Stati Uniti](https://platform.claude.com/docs/en/about-claude/pricing). Se imposti anche `multiplier`, Claude Code lo applica sopra le tariffe della riga. Claude Code scarta una riga con una tariffa che non riesce ad analizzare, o un `multiplier` che non riesce ad analizzare, e mantiene il resto; consulta [Correggere un file di impostazioni danneggiato](https://code.claude.com/docs/it/settings.md#fix-a-broken-settings-file).

644 644 

645#### Quali modelli si applica una riga `modelPricing`645#### A quali modelli si applica una riga di `modelPricing`

646 646 

647Claude Code decide quali modelli si applica una riga da chiave della riga:647Claude Code decide a quali modelli si applica una riga in base alla chiave della riga:

648 648 

649* **L'ID di un modello integrato**: una chiave che Claude Code stesso utilizza per un modello integrato, indipendentemente dal fatto che quella chiave sia l'ID del modello stesso, come `claude-sonnet-4-6`, o il suo ID Bedrock, Agent Platform, o Foundry. Claude Code applica la riga a ogni ID snapshot datato e ID specifico del provider di quel modello.649* **L'ID di un modello integrato**: una chiave che Claude Code stesso usa per un modello integrato, che si tratti dell'ID del modello stesso, come `claude-sonnet-4-6`, o del suo ID Bedrock, Agent Platform o Foundry. Claude Code applica la riga a ogni ID di snapshot con data e a ogni ID specifico del provider di quel modello.

650* **Qualsiasi altra chiave**: una chiave che non è l'ID di un modello integrato, come un alias di modello gateway. Claude Code applica la riga a quell'ID solo. Quando un ID modello corrisponde a una delle tue chiavi esattamente e cade anche sotto una riga con chiave dall'ID di un modello integrato, Claude Code utilizza la corrispondenza esatta.650* **Qualsiasi altra chiave**: una chiave che non è l'ID di un modello integrato, come l'alias di un modello del gateway. Claude Code applica la riga solo a quell'ID. Quando un ID di modello corrisponde esattamente a una delle tue chiavi e rientra anche in una riga con chiave l'ID di un modello integrato, Claude Code usa la corrispondenza esatta.

651* **Un profilo di inferenza dell'applicazione Bedrock**: una volta che Claude Code ha risolto il profilo al modello a cui instrada, tramite la tua mappa [`modelOverrides`](#modeloverrides) o la ricerca [`bedrock:GetInferenceProfile`](https://code.claude.com/docs/it/amazon-bedrock#iam-configuration), Claude Code applica la riga di quel modello al profilo.651* **Un profilo di inferenza applicativo di Bedrock**: una volta che Claude Code ha risolto il profilo nel modello verso cui instrada, tramite la tua mappa [`modelOverrides`](#modeloverrides) o la [ricerca `bedrock:GetInferenceProfile`](https://code.claude.com/docs/it/amazon-bedrock#iam-configuration), Claude Code applica al profilo la riga di quel modello.

652 652 

653### `modelSettings`653### `modelSettings`

654 654 

655Salva un [livello di effort](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) per ogni modello che utilizzi. Richiede Claude Code v2.1.251 o successivo.655Salva un [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) per ogni modello che usi. Richiede Claude Code v2.1.251 o successivo.

656 656 

657In una sessione interattiva sulla tua macchina, quando salvi `low`, `medium`, `high`, o `xhigh` come tuo default con `/effort` o il cursore di effort del selettore `/model`, Claude Code scrive quel livello qui sotto il modello che stai utilizzando, quindi raramente modifichi questa chiave tu stesso. Quando scegli uno di quei livelli nel [selettore di modelli dell'estensione VS Code](https://code.claude.com/docs/it/vs-code.md#use-the-prompt-box), Claude Code lo salva qui allo stesso modo. La voce [`effortLevel`](#effortlevel) elenca le sessioni dove `/effort` si applica solo a quella sessione.657In una sessione interattiva sulla tua macchina, quando salvi `low`, `medium`, `high` o `xhigh` come predefinito con `/effort` o con il cursore dello sforzo del selettore `/model`, Claude Code scrive qui quel livello sotto il modello che stai usando, quindi raramente modifichi questa chiave tu stesso. Quando scegli uno di questi livelli nel [selettore di modello dell'estensione VS Code](https://code.claude.com/docs/it/vs-code.md#use-the-prompt-box), Claude Code lo salva qui allo stesso modo. La voce [`effortLevel`](#effortlevel) elenca le sessioni in cui `/effort` si applica solo a quella sessione.

658 658 

659Modifica la chiave manualmente per cambiare o rimuovere un livello che hai salvato.659Modifica la chiave a mano per cambiare o rimuovere un livello che hai salvato.

660 660 

661Un `effortLevel` di un modello qui ha la precedenza sul [`effortLevel`](#effortlevel) di livello superiore nello stesso file di impostazioni. Tra file, Claude Code risolve ogni modello separatamente: il [file di impostazioni](https://code.claude.com/docs/it/settings.md#settings-precedence) con la precedenza più alta che imposta un `effortLevel` per quel modello o un `effortLevel` di livello superiore che [si applica a quel modello](#effortlevel) decide, quindi un `effortLevel` nelle impostazioni gestite supera un livello che hai salvato nelle impostazioni utente. [Regola il livello di effort](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) elenca cos'altro può ignorare un livello salvato, come `--effort` al lancio.661L'`effortLevel` di un modello qui ha la precedenza sull'[`effortLevel`](#effortlevel) di primo livello nello stesso file di impostazioni. Tra file diversi, Claude Code risolve ogni modello separatamente: decide il [file di impostazioni](https://code.claude.com/docs/it/settings.md#settings-precedence) con la precedenza più alta che imposta un `effortLevel` per quel modello o un `effortLevel` di primo livello che [si applica a quel modello](#effortlevel), quindi un `effortLevel` nelle impostazioni gestite ha la precedenza su un livello che hai salvato nelle impostazioni utente. [Regolare il livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) elenca cos'altro può sovrascrivere un livello salvato, come `--effort` all'avvio.

662 662 

663Per limitare l'effort di un modello piuttosto che impostare il suo livello, aggiungi un campo [`maxEffortLevel`](#maxeffortlevel) alla voce di quel modello. Il campo richiede Claude Code v2.1.267 o successivo.663Per limitare lo sforzo di un modello invece di impostarne il livello, aggiungi un campo [`maxEffortLevel`](#maxeffortlevel) alla voce di quel modello. Il campo richiede Claude Code v2.1.267 o successivo.

664 664 

665* **Scope**: [`Any file`](#scopes)665* **Ambito**: [`Any file`](#scopes)

666* **Type**: object che mappa un nome di modello a un object con uno qualsiasi di questi campi:666* **Tipo**: oggetto che mappa il nome di un modello su un oggetto con uno qualsiasi di questi campi:

667 * `effortLevel`: uno di `"low"`, `"medium"`, `"high"`, o `"xhigh"`667 * `effortLevel`: uno tra `"low"`, `"medium"`, `"high"` o `"xhigh"`

668 * [`maxEffortLevel`](#maxeffortlevel): il livello di sforzo più alto a cui il modello può funzionare668 * [`maxEffortLevel`](#maxeffortlevel): il livello di sforzo più alto a cui il modello può essere eseguito

669 * `autoCompactWindow`: un numero di token da `100000` a `1000000`, o `"auto"` per la finestra ottimizzata per il modello. [`/autocompact`](https://code.claude.com/docs/it/model-config#set-the-auto-compact-window) salva qui. Per quel modello, il valore ha la precedenza su un [`autoCompactWindow`](#autocompactwindow) di livello superiore nello stesso file di impostazioni. Richiede Claude Code v2.1.288 o successivo669 * `autoCompactWindow`: un numero di token da `100000` a `1000000`, oppure `"auto"` per la finestra ottimizzata per il modello. [`/autocompact`](https://code.claude.com/docs/it/model-config#set-the-auto-compact-window) salva qui. Per quel modello, il valore ha la precedenza su un [`autoCompactWindow`](#autocompactwindow) di primo livello nello stesso file di impostazioni. Richiede Claude Code v2.1.288 o successivo

670* **Default**: non impostato670* **Predefinito**: non impostato

671 671 

672Claude Code scrive ogni voce sotto il nome canonico del modello, come `claude-opus-5-5`, e corrisponde all'alias di quel modello, datato, `[1m]`, e ID specifici del provider riconosciuti alla stessa voce.672Claude Code scrive ogni voce sotto il nome canonico del modello, come `claude-opus-5-5`, e fa corrispondere alla stessa voce l'alias di quel modello, gli ID con suffisso di data, quelli `[1m]` e quelli specifici del provider riconosciuti.

673 673 

674Questo esempio mantiene Opus 5.5 a `high` mentre altri modelli utilizzano i loro livelli salvati o default:674Questo esempio mantiene Opus 5.5 su `high` mentre gli altri modelli usano i propri livelli salvati o predefiniti:

675 675 

676```json settings.json theme={null}676```json settings.json theme={null}

677{677{


683}683}

684```684```

685 685 

686Esegui `/effort auto` per cancellare il tuo livello salvato per il modello che stai utilizzando. Claude Code lascia le altre voci e qualsiasi `effortLevel` di livello superiore in posizione.686Esegui `/effort auto` per cancellare il livello salvato per il modello che stai usando. Claude Code lascia invariate le altre voci e qualsiasi `effortLevel` di primo livello.

687 687 

688### `outputStyle`688### `outputStyle`

689 689 

690Seleziona uno [stile di output](https://code.claude.com/docs/it/output-styles.md) per nome. Uno stile di output è un insieme salvato di istruzioni che cambia il ruolo, il tono e il formato di output di Claude, come gli stili Explanatory e Learning integrati o uno che hai scritto tu stesso.690Seleziona uno [stile di output](https://code.claude.com/docs/it/output-styles.md) per nome. Uno stile di output è un insieme salvato di istruzioni che cambia il ruolo, il tono e il formato di output di Claude, come gli stili integrati Explanatory e Learning o uno che hai scritto tu.

691 691 

692Se cambi questa chiave durante una sessione, Claude utilizza il nuovo stile a partire dal tuo prossimo messaggio. Per quale costo ha in prompt caching, vedi [Cambio dello stile di output](https://code.claude.com/docs/it/prompt-caching.md#changing-output-style). Prima della v2.1.251, la modifica si applicava solo dopo aver eseguito `/clear` o avviato una nuova sessione.692Se cambi questa chiave durante una sessione, Claude usa il nuovo stile a partire dal tuo messaggio successivo. Per sapere quanto costa quel messaggio in termini di prompt caching, consulta [Cambiare lo stile di output](https://code.claude.com/docs/it/prompt-caching.md#changing-output-style). Prima della v2.1.251, la modifica si applicava solo dopo aver eseguito `/clear` o aver avviato una nuova sessione.

693 693 

694* **Scope**: [`Any file`](#scopes)694* **Ambito**: [`Any file`](#scopes)

695* **Type**: string, il nome di uno [stile di output integrato](https://code.claude.com/docs/it/output-styles.md#built-in-output-styles) o [personalizzato](https://code.claude.com/docs/it/output-styles.md#create-a-custom-output-style)695* **Tipo**: stringa, il nome di uno stile di output [integrato](https://code.claude.com/docs/it/output-styles.md#built-in-output-styles) o [personalizzato](https://code.claude.com/docs/it/output-styles.md#create-a-custom-output-style)

696* **Default**: non impostato, quindi Claude Code utilizza lo stile predefinito696* **Predefinito**: non impostato, quindi Claude Code usa lo stile predefinito

697 697 

698Questo esempio seleziona lo stile Explanatory integrato, che aggiunge approfondimenti educativi tra i compiti:698Questo esempio seleziona lo stile integrato Explanatory, che aggiunge approfondimenti didattici tra un'attività e l'altra:

699 699 

700```json settings.json theme={null}700```json settings.json theme={null}

701{701{


705 705 

706### `promptCacheTtl`706### `promptCacheTtl`

707 707 

708Scegli quanto tempo la [cache prompt](https://code.claude.com/docs/it/prompt-caching.md) mantiene la conversazione principale. Questa chiave si applica ai tuoi turni interattivi, `-p`, e Agent SDK, insieme agli helper che Claude Code esegue inline con loro. La durata di un'ora mantiene la cache calda attraverso pause più lunghe, e l'API [fattura ogni scrittura di cache a una tariffa più elevata](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) rispetto alla durata di cinque minuti. Richiede Claude Code v2.1.242 o successivo.708Scegli per quanto tempo la [cache del prompt](https://code.claude.com/docs/it/prompt-caching.md) conserva la conversazione principale. Questa chiave si applica ai tuoi turni interattivi, `-p` e dell'Agent SDK, insieme agli helper che Claude Code esegue in linea con essi. La durata di un'ora mantiene la cache calda durante le pause più lunghe, e l'API [fattura ogni scrittura in cache a una tariffa più alta](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) rispetto alla durata di cinque minuti. Richiede Claude Code v2.1.242 o successivo.

709 709 

710* **Scope**: [`Any file`](#scopes)710* **Ambito**: [`Any file`](#scopes)

711* **Type**: string, uno di:711* **Tipo**: stringa, uno tra:

712 * `"5m"`: la cache si mantiene per cinque minuti712 * `"5m"`: la cache dura cinque minuti

713 * `"1h"`: la cache si mantiene per un'ora713 * `"1h"`: la cache dura un'ora

714* **Default**: non impostato, quindi ogni richiesta di conversazione principale ottiene la [sua durata predefinita](https://code.claude.com/docs/it/prompt-caching.md#which-ttl-each-request-gets)714* **Predefinito**: non impostato, quindi ogni richiesta della conversazione principale ottiene [la sua durata predefinita](https://code.claude.com/docs/it/prompt-caching.md#which-ttl-each-request-gets)

715* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/it/env-vars) ha la precedenza su tutto il resto, poi [`CLAUDE_CODE_PROMPT_CACHE_TTL`](https://code.claude.com/docs/it/env-vars), poi questa chiave, e per ultimo [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/it/env-vars)715* **Override per sessione**: [`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/it/env-vars) ha la precedenza su tutto il resto, poi [`CLAUDE_CODE_PROMPT_CACHE_TTL`](https://code.claude.com/docs/it/env-vars), poi questa chiave e infine [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/it/env-vars)

716 716 

717Questo esempio mantiene la conversazione principale sulla durata di un'ora e lascia i subagenti su cinque minuti:717Questo esempio mantiene la conversazione principale sulla durata di un'ora e lascia i subagent su cinque minuti:

718 718 

719```json settings.json theme={null}719```json settings.json theme={null}

720{720{


723}723}

724```724```

725 725 

726Per quale costo ha ogni durata, vedi [Durata della cache](https://code.claude.com/docs/it/prompt-caching.md#cache-lifetime).726Per sapere quanto costa ciascuna durata, consulta [Durata della cache](https://code.claude.com/docs/it/prompt-caching.md#cache-lifetime).

727 727 

728### `showThinkingSummaries`728### `showThinkingSummaries`

729 729 

730Visualizza i riepiloghi del [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) di Claude nelle sessioni interattive. Impostalo se vuoi i riepiloghi completi quando espandi il ragionamento con `Ctrl+O`. Quando non è impostato o è `false`, l'API Anthropic oscura i blocchi di ragionamento e Claude Code mostra uno stub compresso.730Visualizza i riepiloghi del [ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) di Claude nelle sessioni interattive. Impostala se vuoi i riepiloghi completi quando espandi il ragionamento con `Ctrl+O`. Quando non è impostata o è `false`, l'API Anthropic oscura i blocchi di ragionamento e Claude Code mostra un segnaposto compresso.

731 731 

732* **Scope**: [`Any file`](#scopes)732* **Ambito**: [`Any file`](#scopes)

733* **Type**: Boolean733* **Tipo**: Boolean

734 * `true`: vedi riassunti di pensiero completi quando espandi il pensiero con `Ctrl+O`734 * `true`: vedi i riepiloghi completi del ragionamento quando lo espandi con `Ctrl+O`

735 * `false`: l'API Anthropic redige i blocchi di pensiero e Claude Code mostra uno stub compresso735 * `false`: l'API Anthropic oscura i blocchi di ragionamento e Claude Code mostra un segnaposto compresso

736* **Default**: `false`736* **Predefinito**: `false`

737 737 

738```json settings.json theme={null}738```json settings.json theme={null}

739{739{


741}741}

742```742```

743 743 

744La redazione cambia solo quello che vedi, non quello che il modello genera. Per ridurre la spesa di pensiero, [abbassa il budget o disattiva il pensiero](https://code.claude.com/docs/it/model-config.md#extended-thinking) invece.744L'oscuramento cambia solo ciò che vedi, non ciò che il modello genera. Per ridurre la spesa per il ragionamento, [abbassa il budget o disabilita il ragionamento](https://code.claude.com/docs/it/model-config.md#extended-thinking).

745 745 

746### `subagentPromptCacheTtl`746### `subagentPromptCacheTtl`

747 747 

748Scegli quanto tempo la [cache prompt](https://code.claude.com/docs/it/prompt-caching.md) mantiene le richieste che Claude Code fa al di fuori della conversazione principale. Questa chiave si applica ai [subagenti](https://code.claude.com/docs/it/sub-agents.md), [workflow](https://code.claude.com/docs/it/workflows.md), e alle richieste di background e helper proprie di Claude Code, come la compattazione e i titoli di sessione. La durata di un'ora mantiene la cache calda attraverso pause più lunghe, e l'API [fattura ogni scrittura di cache a una tariffa più elevata](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) rispetto alla durata di cinque minuti. Richiede Claude Code v2.1.242 o successivo.748Scegli per quanto tempo la [cache del prompt](https://code.claude.com/docs/it/prompt-caching.md) conserva le richieste che Claude Code effettua al di fuori della conversazione principale. Questa chiave si applica ai [subagent](https://code.claude.com/docs/it/sub-agents.md), ai [workflow](https://code.claude.com/docs/it/workflows.md) e alle richieste in background e di supporto di Claude Code stesso, come la compattazione e i titoli delle sessioni. La durata di un'ora mantiene la cache calda durante le pause più lunghe, e l'API [fattura ogni scrittura in cache a una tariffa più alta](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) rispetto alla durata di cinque minuti. Richiede Claude Code v2.1.242 o successivo.

749 749 

750* **Scope**: [`Any file`](#scopes)750* **Ambito**: [`Any file`](#scopes)

751* **Type**: string, uno di:751* **Tipo**: stringa, uno tra:

752 * `"5m"`: la cache si mantiene per cinque minuti752 * `"5m"`: la cache dura cinque minuti

753 * `"1h"`: la cache si mantiene per un'ora753 * `"1h"`: la cache dura un'ora

754* **Default**: non impostato, quindi ognuna di queste richieste ottiene la [sua durata predefinita](https://code.claude.com/docs/it/prompt-caching.md#which-ttl-each-request-gets)754* **Predefinito**: non impostato, quindi ciascuna di queste richieste ottiene [la sua durata predefinita](https://code.claude.com/docs/it/prompt-caching.md#which-ttl-each-request-gets)

755* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/it/env-vars) ha la precedenza su tutto il resto, poi [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](https://code.claude.com/docs/it/env-vars), poi questa chiave, poi [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/it/env-vars), che chiede la durata di un'ora su ogni richiesta. Per dove il valore frontmatter proprio di un subagente si classifica, vedi [Scegli il TTL tu stesso](https://code.claude.com/docs/it/prompt-caching.md#choose-the-ttl-yourself)755* **Override per sessione**: [`FORCE_PROMPT_CACHING_5M`](https://code.claude.com/docs/it/env-vars) ha la precedenza su tutto il resto, poi [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](https://code.claude.com/docs/it/env-vars), poi questa chiave, poi [`ENABLE_PROMPT_CACHING_1H`](https://code.claude.com/docs/it/env-vars), che richiede la durata di un'ora per ogni richiesta. Per sapere dove si colloca il valore nel frontmatter di un subagent, consulta [Scegliere il TTL autonomamente](https://code.claude.com/docs/it/prompt-caching.md#choose-the-ttl-yourself)

756 756 

757Questo esempio dà ai subagenti e alle altre richieste al di fuori della conversazione principale la durata di un'ora:757Questo esempio assegna la durata di un'ora ai subagent e alle altre richieste al di fuori della conversazione principale:

758 758 

759```json settings.json theme={null}759```json settings.json theme={null}

760{760{


762}762}

763```763```

764 764 

765Questa chiave copre le richieste che [`promptCacheTtl`](#promptcachettl) non copre, quindi imposta entrambi per scegliere una durata per ogni richiesta che Claude Code fa. Per come la cache di un subagente differisce da quella della conversazione principale, vedi [Subagenti e la cache](https://code.claude.com/docs/it/prompt-caching.md#subagents-and-the-cache).765Questa chiave copre le richieste che [`promptCacheTtl`](#promptcachettl) non copre, quindi imposta entrambe per scegliere una durata per ogni richiesta effettuata da Claude Code. Per sapere in cosa la cache di un subagent differisce da quella della conversazione principale, consulta [I subagent e la cache](https://code.claude.com/docs/it/prompt-caching.md#subagents-and-the-cache).

766 766 

767### `switchModelsOnFlag`767### `switchModelsOnFlag`

768 768 

769Scegli cosa succede quando un [classificatore di sicurezza contrassegna una richiesta](https://code.claude.com/docs/it/model-config.md#automatic-model-fallback): passa al modello di fallback e continua, o pausa così puoi scegliere tra passare e modificare il prompt.769Scegli cosa succede quando un [classificatore di sicurezza segnala una richiesta](https://code.claude.com/docs/it/model-config.md#automatic-model-fallback): passare al modello di fallback e continuare, oppure mettere in pausa per permetterti di scegliere tra cambiare modello e modificare il prompt.

770 770 

771* **Scope**: [`Any file`](#scopes). Appare in `/config` come **Switch models when a message is flagged**, con le opzioni **Switch automatically** e **Ask each time**.771* **Ambito**: [`Any file`](#scopes). Compare in `/config` come **Switch models when a message is flagged**, con le opzioni **Switch automatically** e **Ask each time**.

772* **Type**: Boolean772* **Tipo**: Boolean

773 * `true`: Claude Code passa al modello di fallback e continua773 * `true`: Claude Code passa al modello di fallback e continua

774 * `false`: in una sessione interattiva Claude Code pausa così puoi scegliere tra passare e modificare il prompt; dove nessuna finestra di dialogo può mostrare, come un'esecuzione `-p`, la richiesta contrassegnata termina come errore774 * `false`: in una sessione interattiva Claude Code si mette in pausa per permetterti di scegliere tra cambiare modello e modificare il prompt; dove non può essere mostrata alcuna finestra di dialogo, come in un'esecuzione `-p`, la richiesta segnalata termina con un errore

775* **Default**: non impostato. Claude Code cambia modello automaticamente, anche se in una sessione interattiva potrebbe [chiedere prima](https://code.claude.com/docs/it/model-config.md#ask-before-switching)775* **Predefinito**: non impostato. Claude Code cambia modello automaticamente, anche se in una sessione interattiva potrebbe [chiedere prima](https://code.claude.com/docs/it/model-config.md#ask-before-switching)

776 776 

777```json settings.json theme={null}777```json settings.json theme={null}

778{778{


780}780}

781```781```

782 782 

783Vedi [Chiedi prima di passare](https://code.claude.com/docs/it/model-config.md#ask-before-switching).783Consulta [Chiedere prima di cambiare modello](https://code.claude.com/docs/it/model-config.md#ask-before-switching).

784 784 

785### `ultracode`785### `ultracode`

786 786 

787Avvia sessioni con [ultracode](https://code.claude.com/docs/it/workflows.md#let-claude-decide-with-ultracode) attivo. Con esso attivo, Claude pianifica un workflow per ogni compito sostanziale invece di aspettare che tu lo chieda. Claude pianifica workflow solo quando i [workflow dinamici](https://code.claude.com/docs/it/workflows.md) sono abilitati per te e il tuo modello supporta `xhigh` effort. La chiave non cambia il livello di effort della sessione: ultracode funziona a qualsiasi livello la sessione utilizza. Claude Code legge questa chiave ma non la scrive mai: `/effort ultracode` attiva ultracode solo per la sessione corrente.787Avvia le sessioni con [ultracode](https://code.claude.com/docs/it/workflows.md#let-claude-decide-with-ultracode) attivo. Quando è attivo, Claude pianifica un workflow per ogni attività sostanziale invece di aspettare che tu lo chieda. Claude pianifica i workflow solo quando i [workflow dinamici](https://code.claude.com/docs/it/workflows.md) sono abilitati per te e il tuo modello supporta lo sforzo `xhigh`. La chiave non cambia il livello di sforzo della sessione: ultracode viene eseguito al livello usato dalla sessione. Claude Code legge questa chiave ma non la scrive mai: `/effort ultracode` attiva ultracode solo per la sessione corrente.

788 788 

789* **Scope**: [`Any file`](#scopes)789* **Ambito**: [`Any file`](#scopes)

790* **Type**: Boolean790* **Tipo**: Boolean

791 * `true`: le sessioni iniziano con ultracode attivo quando i workflow dinamici sono abilitati per te e il tuo modello supporta `xhigh`791 * `true`: le sessioni si avviano con ultracode attivo quando i workflow dinamici sono abilitati per te e il tuo modello supporta `xhigh`

792 * `false`: le sessioni iniziano con ultracode disattivato792 * `false`: le sessioni si avviano con ultracode disattivato

793* **Default**: non impostato, quindi ultracode è disattivato793* **Predefinito**: non impostato, quindi ultracode è disattivato

794* **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` effort794* **Override per sessione**: `/effort ultracode` attiva ultracode per una sessione senza questa chiave, e `/effort ultracode off` lo disattiva per una sessione quando questa chiave è `true`. Anche il flag `--effort ultracode` lo attiva per una sessione, con sforzo `xhigh`

795 795 

796```json settings.json theme={null}796```json settings.json theme={null}

797{797{


799}799}

800```800```

801 801 

802Il livello di effort della sessione viene da [`effortLevel`](#effortlevel), [`modelSettings`](#modelsettings), e le altre [fonti di effort](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), e un [limite di effort](https://code.claude.com/docs/it/model-config.md#organization-effort-limits) come [`maxEffortLevel`](#maxeffortlevel) abbassa quel livello senza disattivare ultracode. Questo e il modulo `/effort ultracode off` richiedono Claude Code v2.1.284 o successivo. Prima della v2.1.284, `ultracode: true` eseguiva la sessione a `xhigh` effort, e un limite di effort inferiore a `xhigh` manteneva ultracode disattivato. Una richiesta di controllo `apply_flag_settings` di Agent SDK accetta anche la chiave.802Il livello di sforzo della sessione proviene da [`effortLevel`](#effortlevel), [`modelSettings`](#modelsettings) e dalle altre [fonti dello sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), e un [limite di sforzo](https://code.claude.com/docs/it/model-config.md#organization-effort-limits) come [`maxEffortLevel`](#maxeffortlevel) abbassa quel livello senza disattivare ultracode. Questo comportamento e la forma `/effort ultracode off` richiedono Claude Code v2.1.284 o successivo. Prima della v2.1.284, `ultracode: true` eseguiva la sessione con sforzo `xhigh`, e un limite di sforzo inferiore a `xhigh` manteneva ultracode disattivato. Anche una richiesta di controllo `apply_flag_settings` dell'Agent SDK accetta la chiave.

803 803 

804## Impostazioni dei permessi804## Impostazioni dei permessi

805 805 


2424 2424 

2425La compattazione durante l'inattività è attiva per impostazione predefinita per le conversazioni che soddisfano tutte queste condizioni:2425La compattazione durante l'inattività è attiva per impostazione predefinita per le conversazioni che soddisfano tutte queste condizioni:

2426 2426 

2427* **Sessione**: sei in una sessione interattiva del terminale, oppure nel pannello chat dell'estensione VS Code o nella scheda Code dell'app desktop con un [account selezionato da Anthropic](#idle-compaction-in-vs-code-and-the-desktop-app)2427* **Sessione**: sei in una sessione interattiva del terminale, nel pannello chat dell'estensione VS Code o nella scheda Code dell'app desktop quando la sessione viene eseguita sul tuo computer o tramite SSH

2428* **Compattazione automatica**: [`autoCompactEnabled`](#autocompactenabled) è attiva2428* **Compattazione automatica**: [`autoCompactEnabled`](#autocompactenabled) è attiva

2429* **Cache del prompt**: la conversazione usa il [TTL di un'ora della cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#which-ttl-each-request-gets)2429* **Cache del prompt**: la conversazione usa il [TTL di un'ora della cache del prompt](https://code.claude.com/docs/it/prompt-caching.md#which-ttl-each-request-gets)

2430* **Feature flag**: Claude Code può [recuperare i feature flag da Anthropic](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching)2430* **Feature flag**: Claude Code può [recuperare i feature flag da Anthropic](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching)

2431* **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.0002431* **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

2432* **Tempo di inattività**: sono trascorsi circa 54 minuti dall'ultima richiesta, e in quel momento il tuo computer è attivo2432* **Tempo di inattività**: è trascorsa circa un'ora dall'ultima richiesta, e il tuo computer resta attivo fino ad allora

2433 2433 

2434Per disattivare la compattazione durante l'inattività, imposta questa chiave su `false`.2434Per disattivare la compattazione durante l'inattività, imposta questa chiave su `false`.

2435 2435 


2475Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json2475Compacted using a summary written while you were away · turn off with "idleCompaction": false in settings.json

2476```2476```

2477 2477 

2478Non devi fare nulla. Per disattivare la compattazione durante l'inattività, imposta `idleCompaction` su `false` in `~/.claude/settings.json` o in un altro [file di impostazioni](https://code.claude.com/docs/it/settings.md#settings-files-and-who-they-affect).2478Non devi fare nulla. Per disattivare la compattazione durante l'inattività, imposta `idleCompaction` su `false` in `~/.claude/settings.json` sulla macchina o sulla distribuzione WSL in cui viene eseguita la sessione, oppure in un altro [file di impostazioni](https://code.claude.com/docs/it/settings.md#settings-files-and-who-they-affect).

2479 

2480Nel pannello chat dell'estensione VS Code e nella scheda Code dell'app desktop, la compattazione durante l'inattività viene eseguita per gli account selezionati da Anthropic. Claude Code scrive il riepilogo mentre sei via, poi compatta usandolo solo se il tuo messaggio successivo arriva un'ora o più dopo l'ultima richiesta.

2481 2479 

2482### `plansDirectory`2480### `plansDirectory`

2483 2481 


5070 5068 

5071## Autenticazione e provider5069## Autenticazione e provider

5072 5070 

5073Fornisci credenziali tramite script helper e, per le organizzazioni, forza un metodo di accesso o un'organizzazione. Vedi [Autenticazione](https://code.claude.com/docs/it/authentication.md).5071Fornisci le credenziali tramite script helper e, per le organizzazioni, imponi un metodo di accesso o un'organizzazione. Consulta [Autenticazione](https://code.claude.com/docs/it/authentication.md).

5074 5072 

5075### `allowedProviders`5073### `allowedProviders`

5076 5074 

5077Elenca i servizi attraverso i quali una macchina può raggiungere Claude, come l'API Anthropic, Amazon Bedrock, o un gateway LLM. Una sessione su un provider non elencato viene rifiutata all'avvio, al login e quando contatta successivamente l'API, quindi anche il passaggio a un provider non elencato durante la sessione viene rifiutato. Il [messaggio di rifiuto](https://code.claude.com/docs/it/errors.md#managed-settings-dont-allow-this-api-provider) nomina ciò che ha selezionato il provider e i passaggi per continuare. Richiede Claude Code v2.1.285 o successivo.5075Elenca i servizi tramite cui una macchina può raggiungere Claude, come l'API Anthropic, Amazon Bedrock o un LLM gateway. Una sessione su un provider non elencato viene rifiutata all'avvio, all'accesso e al successivo contatto con l'API, quindi anche il passaggio a un provider non elencato a metà sessione viene rifiutato. Il [messaggio di rifiuto](https://code.claude.com/docs/it/errors.md#managed-settings-dont-allow-this-api-provider) indica cosa ha selezionato il provider e i passaggi per continuare. Richiede Claude Code v2.1.285 o successivo.

5078 5076 

5079* **Scope**: [`Managed`](#scopes). Un elenco che le fonti admin della macchina stessa impostano, le policy MDM e i file di impostazioni gestite, continua ad applicarsi quando le impostazioni gestite dal server forniscono anche uno: una sessione può quindi utilizzare solo i provider su entrambi gli elenchi, quindi un elenco gestito dal server può restringere ciò che la macchina consente ma mai ampliarlo. Quale `allowedProviders` della fonte della macchina conta segue [come Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Un elenco fornito solo tramite impostazioni gestite dal server raggiunge solo le sessioni che [recuperano impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md#platform-availability).5077* **Ambito**: [`Managed`](#scopes). Un elenco impostato dalle fonti di amministrazione proprie della macchina, cioè criteri MDM e file di impostazioni gestite, continua ad applicarsi quando anche le impostazioni gestite dal server ne forniscono uno: una sessione può allora usare solo i provider presenti in entrambi gli elenchi, quindi un elenco gestito dal server può restringere ciò che la macchina consente ma mai ampliarlo. Quale `allowedProviders` delle fonti della macchina conta segue [il modo in cui Claude Code combina le fonti gestite](https://code.claude.com/docs/it/managed-settings.md#how-claude-code-combines-managed-sources). Un elenco fornito solo tramite impostazioni gestite dal server raggiunge solo le sessioni che [recuperano le impostazioni gestite dal server](https://code.claude.com/docs/it/server-managed-settings.md#platform-availability).

5080* **Type**: array di stringhe, ognuna di:5078* **Tipo**: array di stringhe, ciascuna tra:

5081 * `"anthropic"`: l'API Anthropic su host proprio di Anthropic, tramite un accesso claude.ai o Console o una chiave API. Abbinalo a [`forceLoginMethod`](#forceloginmethod) o [`forceLoginOrgUUID`](#forceloginorguuid) per limitare anche l'accesso5079 * `"anthropic"`: l'API Anthropic sull'host di Anthropic stessa, tramite un accesso claude.ai o Console o una chiave API. Abbinalo a [`forceLoginMethod`](#forceloginmethod) o [`forceLoginOrgUUID`](#forceloginorguuid) per limitare anche l'accesso

5082 * `"bedrock"`: [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md)5080 * `"bedrock"`: [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md)

5083 * `"vertex"`: [Google Cloud's Agent Platform](https://code.claude.com/docs/it/google-vertex-ai.md), precedentemente Vertex AI5081 * `"vertex"`: [Agent Platform di Google Cloud](https://code.claude.com/docs/it/google-vertex-ai.md), in precedenza Vertex AI

5084 * `"foundry"`: [Microsoft Foundry](https://code.claude.com/docs/it/microsoft-foundry.md)5082 * `"foundry"`: [Microsoft Foundry](https://code.claude.com/docs/it/microsoft-foundry.md)

5085 * `"anthropicAws"`: [Claude Platform on AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md)5083 * `"anthropicAws"`: [Claude Platform on AWS](https://code.claude.com/docs/it/claude-platform-on-aws.md)

5086 * `"mantle"`: l'[endpoint Mantle](https://code.claude.com/docs/it/amazon-bedrock.md#use-the-mantle-endpoint) di Amazon Bedrock. Una sessione che [esegue Mantle insieme all'API Invoke](https://code.claude.com/docs/it/amazon-bedrock.md#run-mantle-alongside-the-invoke-api) utilizza entrambi i provider, quindi elenca `"bedrock"` e `"mantle"` insieme per essa5084 * `"mantle"`: l'[endpoint Mantle](https://code.claude.com/docs/it/amazon-bedrock.md#use-the-mantle-endpoint) di Amazon Bedrock. Una sessione che [esegue Mantle insieme all'Invoke API](https://code.claude.com/docs/it/amazon-bedrock.md#run-mantle-alongside-the-invoke-api) usa entrambi i provider, quindi per essa elenca insieme `"bedrock"` e `"mantle"`

5087 * `"customEndpoint"`: l'API Anthropic o l'API di un provider cloud inviata a un altro host, come un [gateway LLM](https://code.claude.com/docs/it/llm-gateway) denominato da `ANTHROPIC_BASE_URL` o dalla variabile di endpoint di un provider come `ANTHROPIC_BEDROCK_BASE_URL`. Claude Code lo ammette solo per il valore esatto che un blocco [`env`](#env) gestito fissa5085 * `"customEndpoint"`: l'API Anthropic o l'API di un provider cloud inviata a un altro host, come un [LLM gateway](https://code.claude.com/docs/it/llm-gateway) indicato da `ANTHROPIC_BASE_URL` o dalla variabile endpoint di un provider come `ANTHROPIC_BEDROCK_BASE_URL`. Claude Code lo ammette solo per il valore esatto fissato da un blocco [`env`](#env) gestito

5088 * `"gateway"`: un accesso [Cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway)5086 * `"gateway"`: un accesso tramite [Cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway)

5089* **Default**: non impostato, quindi qualsiasi provider può essere utilizzato5087* **Predefinito**: non impostato, quindi è possibile usare qualsiasi provider

5090 5088 

5091```json managed-settings.json theme={null}5089```json managed-settings.json theme={null}

5092{5090{


5094}5092}

5095```5093```

5096 5094 

5097La voce di ogni provider cloud significa il servizio proprio di quel provider, inclusi i suoi endpoint regionali, FIPS e privati.5095La voce di ciascun provider cloud indica il servizio proprio di quel provider, inclusi i suoi endpoint regionali, FIPS e privati.

5098 5096 

5099Una voce che Claude Code non riconosce come nome di provider viene eliminata e segnalata, e il resto dell'elenco rimane applicato. Con un elenco vuoto, o uno le cui voci sono tutte non riconosciute, Claude Code rifiuta ogni provider e non si avvia sulla macchina.5097Una voce che Claude Code non riconosce come nome di provider viene scartata e segnalata, e il resto dell'elenco resta applicato. Con un elenco vuoto, o con uno in cui nessuna voce è riconosciuta, Claude Code rifiuta ogni provider e non si avvia sulla macchina.

5100 5098 

5101#### Endpoint che necessitano di un pin in `env` gestito5099#### Endpoint che richiedono un valore fissato nell'`env` gestito

5102 5100 

5103Un pin è il valore di una variabile di endpoint impostato in un blocco [`env`](#env) gestito. Quando una sessione invia il traffico di un provider da qualche parte diversa dal servizio proprio di quel provider, Claude Code lo ammette solo se il valore della sessione è lo stesso del pin. Questi endpoint ne hanno bisogno:5101Un valore fissato è il valore di una variabile endpoint impostato in un blocco [`env`](#env) gestito. Quando una sessione invia il traffico di un provider in un luogo diverso dal servizio proprio di quel provider, Claude Code lo ammette solo se il valore della sessione coincide con quello fissato. Questi endpoint ne richiedono uno:

5104 5102 

5105* **Sessioni `"customEndpoint"`**: la variabile che nomina l'host, come `ANTHROPIC_BASE_URL`5103* **Sessioni `"customEndpoint"`**: la variabile che indica l'host, come `ANTHROPIC_BASE_URL`

5106* **Amazon Bedrock**: le variabili `AWS_ENDPOINT_URL`, `AWS_ENDPOINT_URL_BEDROCK` e `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` dell'SDK AWS quando puntano al di fuori del servizio proprio di Bedrock. La sessione rimane sotto `"bedrock"` piuttosto che `"customEndpoint"`5104* **Amazon Bedrock**: le variabili `AWS_ENDPOINT_URL`, `AWS_ENDPOINT_URL_BEDROCK` e `AWS_ENDPOINT_URL_BEDROCK_RUNTIME` dell'AWS SDK quando puntano al di fuori del servizio proprio di Bedrock. La sessione resta sotto `"bedrock"` anziché `"customEndpoint"`

5107* **L'URL di accesso di un gateway**: la sessione rimane sotto `"gateway"`, e [`forceLoginGatewayUrl`](#forcelogingatewayurl) conta anche come il pin5105* **L'URL di un accesso tramite gateway**: la sessione resta sotto `"gateway"`, e anche [`forceLoginGatewayUrl`](#forcelogingatewayurl) conta come valore fissato

5108 5106 

5109Quali blocchi `env` contano come pin dipende da dove è impostato l'elenco:5107Quali blocchi `env` contano come valori fissati dipende da dove è impostato l'elenco:

5110 5108 

5111* **Una fonte amministratore sulla macchina imposta un elenco**: solo i blocchi `env` delle fonti amministratore della macchina stessa contano5109* **Una fonte di amministrazione sulla macchina imposta un elenco**: contano solo i blocchi `env` delle fonti di amministrazione proprie della macchina

5112* **Solo le impostazioni gestite dal server impostano un elenco**: un valore `env` in quelle impostazioni gestite dal server conta anche5110* **Solo le impostazioni gestite dal server impostano un elenco**: conta anche un valore `env` in quelle impostazioni gestite dal server

5113 5111 

5114L'elenco non giudica le variabili di credenziale e tenancy di un provider cloud o il percorso di rete, come `HTTPS_PROXY` e le impostazioni di certificato. Impostale per la flotta nel blocco `env` gestito.5112L'elenco non valuta le variabili di credenziali e tenancy di un provider cloud né il percorso di rete, come `HTTPS_PROXY` e le impostazioni dei certificati. Imposta questi valori per l'intera flotta nel blocco `env` gestito.

5115 5113 

5116### `apiKeyHelper`5114### `apiKeyHelper`

5117 5115 

5118Esegui il tuo comando per produrre le credenziali che Claude Code invia con le richieste del modello. Claude Code esegue il comando attraverso la shell di sistema, `/bin/sh` su macOS e Linux e `cmd` su Windows, e invia il suo output come intestazioni sia `X-Api-Key` che `Authorization: Bearer`. Usalo per credenziali dinamiche o rotanti, come token di breve durata recuperati da un vault.5116Esegui un tuo comando per produrre la credenziale che Claude Code invia con le richieste al modello. Claude Code esegue il comando tramite la shell di sistema, `/bin/sh` su macOS e Linux e `cmd` su Windows, e invia il suo output sia come header `X-Api-Key` sia come header `Authorization: Bearer`. Usalo per credenziali dinamiche o a rotazione, come token di breve durata recuperati da un vault.

5119 5117 

5120* **Scope**: [`Any file`](#scopes)5118* **Ambito**: [`Any file`](#scopes)

5121* **Type**: string, una riga di comando shell5119* **Tipo**: stringa, una riga di comando della shell

5122* **Default**: non impostato, quindi Claude Code non esegue un helper5120* **Predefinito**: non impostato, quindi Claude Code non esegue alcun helper

5123 5121 

5124```json settings.json theme={null}5122```json settings.json theme={null}

5125{5123{


5127}5125}

5128```5126```

5129 5127 

5130Claude Code memorizza nella cache il valore e riesegue il comando in questi casi:5128Claude Code memorizza il valore nella cache e riesegue il comando in questi casi:

5131 5129 

5132* Dopo la durata della cache, cinque minuti per impostazione predefinita o l'intervallo che imposti con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/it/env-vars).5130* Dopo la durata della cache, cinque minuti per impostazione predefinita o l'intervallo che imposti con [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/it/env-vars).

5133* Quando una richiesta all'API Anthropic, direttamente o tramite un [gateway LLM](https://code.claude.com/docs/it/llm-gateway), fallisce con `401` o `403`.5131* Quando una richiesta all'API Anthropic, direttamente o tramite un [LLM gateway](https://code.claude.com/docs/it/llm-gateway), fallisce con `401` o `403`.

5134* Prima di inviare una richiesta all'API Anthropic, direttamente o tramite un gateway LLM, quando l'output memorizzato nella cache è un JWT scaduto dopo che l'helper lo ha prodotto. Richiede Claude Code v2.1.246 o successivo.5132* Prima di inviare una richiesta all'API Anthropic, direttamente o tramite un LLM gateway, quando l'output nella cache è un JWT scaduto dopo che l'helper lo ha prodotto. Richiede Claude Code v2.1.246 o successivo.

5135 5133 

5136Gli ultimi due casi si applicano solo quando l'output dell'helper è la credenziale che Claude Code invia e `ANTHROPIC_AUTH_TOKEN` non è impostato.5134Gli ultimi due casi si applicano solo quando l'output dell'helper è la credenziale che Claude Code invia e `ANTHROPIC_AUTH_TOKEN` non è impostata.

5137 5135 

5138Nelle sessioni interattive, quando il comando proviene dalle impostazioni del progetto o locali, Claude Code non lo esegue finché non accetti il prompt di fiducia del workspace. Vedi [Gestione delle credenziali](https://code.claude.com/docs/it/authentication.md#credential-management).5136Nelle sessioni interattive, quando il comando proviene dalle impostazioni di progetto o locali, Claude Code non lo esegue finché non accetti la richiesta di attendibilità del workspace. Consulta [Gestione delle credenziali](https://code.claude.com/docs/it/authentication.md#credential-management).

5139 5137 

5140### `awsAuthRefresh`5138### `awsAuthRefresh`

5141 5139 

5142Esegui il tuo comando, come `aws sso login`, per aggiornare le credenziali nella tua directory `.aws` quando quelle che Claude Code ha per [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) smettono di funzionare. Claude Code controlla prima le credenziali attuali rispetto a STS ed esegue il comando solo quando quel controllo fallisce, quindi legge la directory `.aws` aggiornata.5140Esegui un tuo comando, come `aws sso login`, per aggiornare le credenziali nella tua directory `.aws` quando quelle di cui Claude Code dispone per [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) smettono di funzionare. Claude Code verifica prima le credenziali correnti con STS ed esegue il comando solo quando quella verifica fallisce, quindi legge la directory `.aws` aggiornata.

5143 5141 

5144Quando il controllo fallisce contemporaneamente in più processi Claude Code che usano lo stesso comando e le stesse credenziali, come terminali separati o finestre dell'IDE, un processo esegue il comando e gli altri attendono quell'esecuzione invece di avviarne una propria. Un processo che ha atteso 60 secondi con una richiesta in sospeso esegue il comando da solo. Per disattivare questo comportamento, imposta [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](https://code.claude.com/docs/it/env-vars) su `1`.5142Quando la verifica fallisce contemporaneamente in più processi di Claude Code che usano lo stesso comando e le stesse credenziali, come terminali separati o finestre dell'IDE, un processo esegue il comando e gli altri attendono quell'esecuzione invece di avviarne una propria. Un processo che ha atteso 60 secondi con una richiesta in sospeso esegue il comando da sé. Per disattivare questo comportamento, imposta [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](https://code.claude.com/docs/it/env-vars) su `1`.

5145 5143 

5146* **Scope**: [`Any file`](#scopes)5144* **Ambito**: [`Any file`](#scopes)

5147* **Type**: string, una riga di comando shell5145* **Tipo**: stringa, una riga di comando della shell

5148* **Default**: non impostato, quindi Claude Code non aggiorna le credenziali AWS per te5146* **Predefinito**: non impostato, quindi Claude Code non aggiorna le credenziali AWS per te

5149 5147 

5150```json settings.json theme={null}5148```json settings.json theme={null}

5151{5149{


5153}5151}

5154```5152```

5155 5153 

5156Usa questa chiave quando il tuo flusso di aggiornamento scrive in `.aws`; usa [`awsCredentialExport`](#awscredentialexport) quando stampa credenziali invece. Vedi [configurazione avanzata delle credenziali](https://code.claude.com/docs/it/amazon-bedrock.md#advanced-credential-configuration).5154Usa questa chiave quando il tuo flusso di aggiornamento scrive in `.aws`; usa [`awsCredentialExport`](#awscredentialexport) quando invece stampa le credenziali. Consulta [configurazione avanzata delle credenziali](https://code.claude.com/docs/it/amazon-bedrock.md#advanced-credential-configuration).

5157 5155 

5158### `awsCredentialExport`5156### `awsCredentialExport`

5159 5157 

5160Esegui il tuo comando che stampa le credenziali AWS come JSON, in modo che Claude Code possa chiamare [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) con credenziali che non vivono nella tua directory `.aws`. Claude Code accetta la forma di output `aws sts` e la forma piatta `aws configure export-credentials`, e limita le credenziali al suo client Bedrock, quindi i comandi shell che Claude esegue vedono ancora le tue credenziali ambientali.5158Esegui un tuo comando che stampa le credenziali AWS come JSON, in modo che Claude Code possa chiamare [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md) con credenziali che non si trovano nella tua directory `.aws`. Claude Code accetta la forma di output di `aws sts` e la forma piatta di `aws configure export-credentials`, e limita le credenziali al proprio client Bedrock, quindi i comandi della shell che Claude esegue continuano a vedere le tue credenziali dell'ambiente.

5161 5159 

5162* **Scope**: [`Any file`](#scopes)5160* **Ambito**: [`Any file`](#scopes)

5163* **Type**: string, una riga di comando shell5161* **Tipo**: stringa, una riga di comando della shell

5164* **Default**: non impostato, quindi Claude Code utilizza la catena di credenziali AWS ambientale5162* **Predefinito**: non impostato, quindi Claude Code usa la catena di credenziali AWS dell'ambiente

5165 5163 

5166```json settings.json theme={null}5164```json settings.json theme={null}

5167{5165{


5169}5167}

5170```5168```

5171 5169 

5172A differenza di [`awsAuthRefresh`](#awsauthrefresh), Claude Code esegue sempre questo comando quando è impostato, senza controllare prima le credenziali ambientali. Vedi [configurazione avanzata delle credenziali](https://code.claude.com/docs/it/amazon-bedrock.md#advanced-credential-configuration).5170A differenza di [`awsAuthRefresh`](#awsauthrefresh), Claude Code esegue sempre questo comando quando è impostato, senza verificare prima le credenziali dell'ambiente. Consulta [configurazione avanzata delle credenziali](https://code.claude.com/docs/it/amazon-bedrock.md#advanced-credential-configuration).

5173 5171 

5174### `forceLoginMethod`5172### `forceLoginMethod`

5175 5173 

5176Limita il tipo di account con cui le persone possono accedere. Imposta `"claudeai"` per consentire solo account claude.ai, `"console"` per consentire solo account Claude Console, o `"gateway"` per inviare le persone a un [cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway) invece di un accesso di prima parte. Gli amministratori lo impostano nelle impostazioni gestite e lo associano a [`forceLoginOrgUUID`](#forceloginorguuid) per mantenere gli accessi claude.ai degli sviluppatori all'interno di un'organizzazione. Se lo imposti su `"claudeai"` o `"console"` in qualsiasi file di impostazioni, Claude Code smette anche di offrire l'[accesso Console senza chiave](https://code.claude.com/docs/it/authentication.md#sign-in-without-an-api-key) nelle sessioni a cui si applica quel file.5174Limita il tipo di account con cui le persone possono accedere. Imposta `"claudeai"` per consentire solo account claude.ai, `"console"` per consentire solo account Claude Console, oppure `"gateway"` per indirizzare le persone a un [cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway) anziché a un accesso first-party. Gli amministratori lo impostano nelle impostazioni gestite e lo abbinano a [`forceLoginOrgUUID`](#forceloginorguuid) per mantenere gli accessi claude.ai degli sviluppatori all'interno di un'unica organizzazione.

5177 5175 

5178* **Scope**: [`Any file`](#scopes). Claude Code onora `"gateway"` dalle stesse fonti di [`forceLoginGatewayUrl`](#forcelogingatewayurl) e lo tratta come non impostato ovunque altrove.5176Se lo imposti su `"claudeai"` in qualsiasi file di impostazioni, Claude Code smette anche di offrire l'[accesso Console senza chiave](https://code.claude.com/docs/it/authentication.md#sign-in-without-an-api-key) nelle sessioni a cui quel file si applica. Con il solo `"console"`, le persone possono comunque raggiungere l'accesso senza chiave dopo un accesso non riuscito. Per impedire a Claude Code di offrirlo, consulta [Smettere di offrire l'accesso senza chiave sulle macchine gestite](https://code.claude.com/docs/it/authentication.md#stop-offering-the-keyless-sign-in-on-managed-machines), che elenca anche cos'altro cambia `forceLoginOrgUUID`.

5179* **Type**: string, uno di:5177 

5178* **Ambito**: [`Any file`](#scopes). Claude Code rispetta `"gateway"` dalle stesse fonti di [`forceLoginGatewayUrl`](#forcelogingatewayurl) e lo considera non impostato altrove.

5179* **Tipo**: stringa, una tra:

5180 * `"claudeai"`: solo gli account claude.ai possono accedere5180 * `"claudeai"`: solo gli account claude.ai possono accedere

5181 * `"console"`: solo gli account Claude Console possono accedere5181 * `"console"`: solo gli account Claude Console possono accedere

5182 * `"gateway"`: Claude Code invia le persone a un cloud gateway invece di un accesso di prima parte5182 * `"gateway"`: Claude Code indirizza le persone a un cloud gateway anziché a un accesso first-party

5183* **Default**: non impostato, quindi le persone scelgono un metodo di accesso5183* **Predefinito**: non impostato, quindi le persone scelgono un metodo di accesso

5184 5184 

5185```json settings.json theme={null}5185```json settings.json theme={null}

5186{5186{


5188}5188}

5189```5189```

5190 5190 

5191Ogni percorso di accesso di prima parte applica la restrizione, inclusa l'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md), l'Agent SDK, `claude setup-token`, e `/install-github-app`, ad eccezione della schermata di accesso interattiva del terminale, raggiunta da `/login` o dall'onboarding al primo avvio, che pre-seleziona il metodo senza applicarlo. Prima della v2.1.212, solo gli accessi al terminale lo applicavano. Vedi [Limita l'accesso alla tua organizzazione](https://code.claude.com/docs/it/authentication.md#restrict-login-to-your-organization) per come ogni percorso di accesso, le credenziali ambientali e i provider di terze parti vengono gestiti.5191Ogni percorso di accesso first-party applica la restrizione, inclusi l'[estensione VS Code](https://code.claude.com/docs/it/vs-code.md), l'Agent SDK, `claude setup-token` e `/install-github-app`, tranne la schermata di accesso interattiva del terminale, raggiunta tramite `/login` o l'onboarding al primo avvio, che preseleziona il metodo senza imporlo. Prima della v2.1.212, solo gli accessi da terminale la applicavano. Consulta [Limitare l'accesso alla tua organizzazione](https://code.claude.com/docs/it/authentication.md#restrict-login-to-your-organization) per sapere come vengono gestiti ciascun percorso di accesso, le credenziali dell'ambiente e i provider di terze parti.

5192 5192 

5193Quando una fonte gestita sulla macchina imposta `"gateway"`, Claude Code non utilizza un accesso residuo, una chiave API o una credenziale `apiKeyHelper`. Vedi [La policy dell'amministratore richiede un accesso Cloud gateway](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in) per il messaggio che ognuno produce. Se selezioni un provider cloud tramite `CLAUDE_CODE_USE_BEDROCK` o una variabile d'ambiente simile, la sessione non ha bisogno dell'accesso al gateway. Prima della v2.1.261, Claude Code utilizzava un accesso residuo su queste macchine.5193Quando una fonte gestita sulla macchina imposta `"gateway"`, Claude Code non usa un accesso residuo, una chiave API o una credenziale `apiKeyHelper`. Consulta [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in) per il messaggio che ciascuno produce. Se selezioni un provider cloud tramite `CLAUDE_CODE_USE_BEDROCK` o una variabile d'ambiente simile, la sessione non ha bisogno dell'accesso tramite gateway. Prima della v2.1.261, Claude Code usava un accesso residuo su queste macchine.

5194 5194 

5195### `forceLoginGatewayUrl`5195### `forceLoginGatewayUrl`

5196 5196 

5197Imposta l'URL del gateway a cui si connette la schermata `/login` Cloud gateway, in modo che le persone raggiungano il tuo [cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway) senza digitare il suo indirizzo. La schermata non ha un campo URL: con questa chiave impostata, mostra l'URL del tuo gateway e si connette quando la persona preme Invio; senza di essa, dice loro di contattare il loro amministratore IT.5197Imposta l'URL del gateway a cui si connette la schermata Cloud gateway di `/login`, in modo che le persone raggiungano il tuo [cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway) senza digitarne l'indirizzo. La schermata non ha un campo URL: con questa chiave impostata, mostra l'URL del tuo gateway e si connette quando la persona preme Enter; senza di essa, indica di contattare il proprio amministratore IT.

5198 5198 

5199Nelle impostazioni gestite, questa chiave o `forceLoginMethod: "gateway"` rende la macchina solo gateway, ad eccezione delle sessioni che selezionano un provider cloud con `CLAUDE_CODE_USE_*`. `/login` si apre quindi sulla schermata Cloud gateway senza un selettore di metodo di accesso. Vedi [La policy dell'amministratore richiede un accesso Cloud gateway](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in) per cosa succede a un accesso di prima parte residuo o a una chiave API. Imposta entrambe le chiavi in modo che la schermata si connetta invece di mostrare un errore.5199Nelle impostazioni gestite, questa chiave oppure `forceLoginMethod: "gateway"` rende la macchina solo gateway, tranne per le sessioni che selezionano un provider cloud con `CLAUDE_CODE_USE_*`. `/login` si apre quindi sulla schermata Cloud gateway senza selettore del metodo di accesso. Consulta [Administrator policy requires a Cloud gateway sign-in](https://code.claude.com/docs/it/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in) per sapere cosa succede a un accesso first-party residuo o a una chiave API. Imposta entrambe le chiavi in modo che la schermata si connetta invece di mostrare un errore.

5200 5200 

5201* **Scope**: [`User or managed`](#scopes). Letto da una fonte gestita sulla macchina: `managed-settings.json`, il plist macOS o il registro HKLM di Windows, o un helper di policy. Su una macchina che non ha nessuna di queste, Claude Code v2.1.295 o successivo lo legge anche dalle [impostazioni utente](https://code.claude.com/docs/it/claude-apps-gateway#set-the-gateway-url-in-user-settings). Claude Code lo ignora nelle impostazioni HKCU e gestite dal server.5201* **Ambito**: [`User or managed`](#scopes). Letto da una fonte gestita sulla macchina: `managed-settings.json`, il plist di macOS o il registro HKLM di Windows, oppure un policy helper. Su una macchina priva di tutti questi, Claude Code v2.1.295 o successivo lo legge anche dalle [impostazioni utente](https://code.claude.com/docs/it/claude-apps-gateway#set-the-gateway-url-in-user-settings). Claude Code lo ignora in HKCU e nelle impostazioni gestite dal server.

5202* **Type**: string, un URL completo incluso lo schema5202* **Tipo**: stringa, un URL completo incluso lo schema

5203* **Default**: non impostato, quindi la schermata Cloud gateway mostra un errore che dice alle persone di contattare il loro amministratore IT5203* **Predefinito**: non impostato, quindi la schermata Cloud gateway mostra un errore che indica alle persone di contattare il proprio amministratore IT

5204 5204 

5205```json managed-settings.json theme={null}5205```json managed-settings.json theme={null}

5206{5206{


5208}5208}

5209```5209```

5210 5210 

5211Se il valore non è un URL valido, la schermata di accesso lo segnala e il resto del file di impostazioni gestite si applica comunque. Vedi [Imposta l'URL del gateway](https://code.claude.com/docs/it/claude-apps-gateway#set-the-gateway-url).5211Se il valore non è un URL valido, la schermata di accesso lo segnala e il resto del file di impostazioni gestite si applica comunque. Consulta [Impostare l'URL del gateway](https://code.claude.com/docs/it/claude-apps-gateway#set-the-gateway-url).

5212 5212 

5213### `forceLoginOrgUUID`5213### `forceLoginOrgUUID`

5214 5214 

5215Da una fonte gestita, richiedi che gli accessi dell'account claude.ai appartengano a un'organizzazione Anthropic, data come un singolo UUID, o a una qualsiasi di diverse organizzazioni, data come un array. Da qualsiasi file di impostazioni, Claude Code utilizza anche un singolo UUID per pre-selezionare quell'organizzazione durante un accesso claude.ai o Claude Console, e non pre-seleziona nulla per un array. Se imposti la chiave in qualsiasi file di impostazioni, Claude Code smette anche di offrire l'[accesso Console senza chiave](https://code.claude.com/docs/it/authentication.md#sign-in-without-an-api-key) nelle sessioni a cui si applica quel file e crea una chiave API invece.5215Da una fonte gestita, richiede che gli accessi con account claude.ai appartengano a un'unica organizzazione Anthropic, indicata come singolo UUID, o a una qualsiasi tra più organizzazioni, indicate come array. Da qualsiasi file di impostazioni, Claude Code usa inoltre un singolo UUID per preselezionare quell'organizzazione durante un accesso claude.ai o Claude Console, e non preseleziona nulla per un array. Se imposti la chiave in qualsiasi file di impostazioni, Claude Code smette anche di offrire l'[accesso Console senza chiave](https://code.claude.com/docs/it/authentication.md#sign-in-without-an-api-key) nelle sessioni a cui quel file si applica e crea invece una chiave API.

5216 5216 

5217* **Scope**: [`Any file`](#scopes). Solo una fonte gestita applica la restrizione; un singolo UUID in qualsiasi altro file di impostazioni pre-seleziona l'organizzazione durante l'accesso senza limitarla.5217* **Ambito**: [`Any file`](#scopes). Solo una fonte gestita impone la restrizione; un singolo UUID in qualsiasi altro file di impostazioni preseleziona l'organizzazione durante l'accesso senza limitarla.

5218* **Type**: string, un UUID, o array di stringhe, diversi UUID5218* **Tipo**: stringa, un UUID, oppure array di stringhe, più UUID

5219* **Default**: non impostato, quindi qualsiasi organizzazione può accedere5219* **Predefinito**: non impostato, quindi qualsiasi organizzazione può accedere

5220 5220 

5221Questo esempio accetta accessi da una qualsiasi di due organizzazioni senza pre-selezionarne una:5221Questo esempio accetta accessi da una qualsiasi di due organizzazioni senza preselezionarne una:

5222 5222 

5223```json managed-settings.json theme={null}5223```json managed-settings.json theme={null}

5224{5224{


5226}5226}

5227```5227```

5228 5228 

5229Se una fonte gestita imposta un array vuoto, o un valore che non è una stringa o un array di stringhe, gli utenti che accedono con un account Anthropic non possono avviare Claude Code né completare un accesso. Vedono un messaggio che nomina `forceLoginOrgUUID` e dice loro di contattare il loro amministratore. Un [`policyHelper`](#policyhelper) che emette un valore del tipo sbagliato invece [fallisce la sua esecuzione](#helper-failures).5229Se una fonte gestita imposta un array vuoto, o un valore che non è una stringa o un array di stringhe, gli utenti che accedono con un account Anthropic non possono avviare Claude Code né completare un accesso. Vedono un messaggio che cita `forceLoginOrgUUID` e indica di contattare il proprio amministratore. Un [`policyHelper`](#policyhelper) che emette un valore del tipo sbagliato invece [fallisce la propria esecuzione](#helper-failures).

5230 5230 

5231Vedi [Limita l'accesso alla tua organizzazione](https://code.claude.com/docs/it/authentication.md#restrict-login-to-your-organization) per come Claude Code tratta gli accessi Claude Console, gli altri percorsi di accesso e le credenziali ambientali.5231Consulta [Limitare l'accesso alla tua organizzazione](https://code.claude.com/docs/it/authentication.md#restrict-login-to-your-organization) per sapere come Claude Code tratta gli accessi Claude Console, gli altri percorsi di accesso e le credenziali dell'ambiente.

5232 5232 

5233### `gatewayInternalNetworks`5233### `gatewayInternalNetworks`

5234 5234 

5235Dichiara i blocchi IPv4 pubblici da cui la tua organizzazione numera la sua rete interna, in modo che `/login` accetti un [cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway) lì. Richiede Claude Code v2.1.268 o successivo.5235Dichiara i blocchi IPv4 pubblici da cui la tua organizzazione numera la propria rete interna, in modo che `/login` accetti un [cloud gateway](https://code.claude.com/docs/it/claude-apps-gateway) in quella rete. Richiede Claude Code v2.1.268 o successivo.

5236 5236 

5237Senza questa chiave, `/login` si connette a qualsiasi gateway su un indirizzo privato e nient'altro. Con essa, `/login` accetta anche un gateway all'interno di un blocco elencato, solo su una connessione diretta. L'indirizzo della macchina stessa su quella connessione deve essere anche all'interno dello stesso blocco.5237Senza questa chiave, `/login` si connette a qualsiasi gateway su un indirizzo privato e a nient'altro. Con essa, `/login` accetta anche un gateway all'interno di un blocco elencato, solo tramite una connessione diretta. Anche l'indirizzo della macchina stessa su quella connessione deve trovarsi all'interno dello stesso blocco.

5238 5238 

5239* **Scope**: [`Managed`](#scopes). Letto solo da una fonte sulla macchina: `managed-settings.json`, il plist macOS o il registro HKLM di Windows, o un helper di policy. Claude Code lo ignora nelle impostazioni HKCU e gestite dal server.5239* **Ambito**: [`Managed`](#scopes). Letto solo da una fonte sulla macchina: `managed-settings.json`, il plist di macOS o il registro HKLM di Windows, oppure un policy helper. Claude Code lo ignora in HKCU e nelle impostazioni gestite dal server.

5240* **Type**: array di stringhe, al massimo quattro blocchi IPv4 CIDR, ognuno da `/8` a `/32`, non sovrapposti l'uno all'altro, e nessuno che si sovrappone allo spazio privato.5240* **Tipo**: array di stringhe, al massimo quattro blocchi CIDR IPv4, ciascuno da `/8` a `/32`, non sovrapposti tra loro e nessuno sovrapposto allo spazio privato.

5241* **Default**: non impostato, quindi `/login` accetta solo gateway su indirizzi privati5241* **Predefinito**: non impostato, quindi `/login` accetta solo gateway su indirizzi privati

5242 5242 

5243```json managed-settings.json theme={null}5243```json managed-settings.json theme={null}

5244{5244{


5246}5246}

5247```5247```

5248 5248 

5249Sostituisci l'intervallo di documentazione nell'esempio con il tuo blocco. Claude Code rifiuta gli intervalli di documentazione, gli intervalli che i client VPN e NAT64 usano localmente, e lo spazio riservato da cui nessuna rete è numerata, come il multicast.5249Sostituisci l'intervallo di documentazione nell'esempio con il tuo blocco. Claude Code rifiuta gli intervalli di documentazione, gli intervalli che i client VPN e NAT64 usano localmente e lo spazio riservato da cui nessuna rete è numerata, come il multicast.

5250 5250 

5251Se una voce non è valida, o il valore non è un elenco di stringhe, `/login` nomina il problema e rifiuta ogni nuovo accesso al gateway sulla macchina finché non correggi il valore. Gli accessi esistenti continuano a funzionare. Vedi [Consenti un gateway su spazio di indirizzi pubblico che possiedi](https://code.claude.com/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) per le regole complete e cosa vedono gli sviluppatori.5251Se una voce non è valida, o il valore non è un elenco di stringhe, `/login` indica il problema e rifiuta ogni nuovo accesso tramite gateway sulla macchina finché non correggi il valore. Gli accessi esistenti continuano a funzionare. Consulta [Consentire un gateway su uno spazio di indirizzi pubblici di tua proprietà](https://code.claude.com/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) per le regole complete e per ciò che vedono gli sviluppatori.

5252 5252 

5253### `gcpAuthRefresh`5253### `gcpAuthRefresh`

5254 5254 

5255Esegui il tuo comando per aggiornare le credenziali predefinite dell'applicazione Google Cloud quando Claude Code scopre che sono scadute o non possono essere caricate, in modo che le richieste di [Google Cloud's Agent Platform](https://code.claude.com/docs/it/google-vertex-ai.md) continuino a funzionare senza che tu ti autentichi di nuovo manualmente.5255Esegui un tuo comando per aggiornare le Application Default Credentials di Google Cloud quando Claude Code rileva che sono scadute o non possono essere caricate, in modo che le richieste ad [Agent Platform di Google Cloud](https://code.claude.com/docs/it/google-vertex-ai.md) continuino a funzionare senza doverti autenticare di nuovo manualmente.

5256 5256 

5257Quando più processi Claude Code che usano lo stesso comando e le stesse credenziali, come terminali separati o finestre dell'IDE, le trovano scadute contemporaneamente, un processo esegue il comando e gli altri attendono quell'esecuzione invece di avviarne una propria. Un processo che ha atteso 60 secondi con una richiesta in sospeso esegue il comando da solo. Per disattivare questo comportamento, imposta [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](https://code.claude.com/docs/it/env-vars) su `1`.5257Quando più processi di Claude Code che usano lo stesso comando e le stesse credenziali, come terminali separati o finestre dell'IDE, le trovano scadute contemporaneamente, un processo esegue il comando e gli altri attendono quell'esecuzione invece di avviarne una propria. Un processo che ha atteso 60 secondi con una richiesta in sospeso esegue il comando da sé. Per disattivare questo comportamento, imposta [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](https://code.claude.com/docs/it/env-vars) su `1`.

5258 5258 

5259* **Scope**: [`Any file`](#scopes)5259* **Ambito**: [`Any file`](#scopes)

5260* **Type**: string, una riga di comando shell5260* **Tipo**: stringa, una riga di comando della shell

5261* **Default**: non impostato, quindi l'errore di credenziale di Claude Code ti dice di eseguire `gcloud auth application-default login` tu stesso5261* **Predefinito**: non impostato, quindi l'errore di credenziali di Claude Code ti indica di eseguire tu stesso `gcloud auth application-default login`

5262 5262 

5263```json settings.json theme={null}5263```json settings.json theme={null}

5264{5264{


5266}5266}

5267```5267```

5268 5268 

5269Vedi [configurazione avanzata delle credenziali](https://code.claude.com/docs/it/google-vertex-ai.md#advanced-credential-configuration).5269Consulta [configurazione avanzata delle credenziali](https://code.claude.com/docs/it/google-vertex-ai.md#advanced-credential-configuration).

5270 5270 

5271### `otelHeadersHelper`5271### `otelHeadersHelper`

5272 5272 

5273Esegui il tuo comando per generare le intestazioni che Claude Code invia con le esportazioni OpenTelemetry, per backend i cui token ruotano. Claude Code lo esegue all'avvio e periodicamente dopo, e si aspetta un oggetto JSON di valori di intestazione stringa su stdout.5273Esegui un tuo comando per generare gli header che Claude Code invia con le esportazioni OpenTelemetry, per i backend i cui token ruotano. Claude Code lo esegue all'avvio e periodicamente in seguito, e si aspetta su stdout un oggetto JSON con valori di header di tipo stringa.

5274 5274 

5275* **Scope**: [`Any file`](#scopes)5275* **Ambito**: [`Any file`](#scopes)

5276* **Type**: string, un percorso eseguibile o una riga di comando shell5276* **Tipo**: stringa, un percorso di un eseguibile o una riga di comando della shell

5277* **Default**: non impostato, quindi Claude Code non aggiunge intestazioni generate da helper5277* **Predefinito**: non impostato, quindi Claude Code non aggiunge header generati da un helper

5278 5278 

5279```json settings.json theme={null}5279```json settings.json theme={null}

5280{5280{


5282}5282}

5283```5283```

5284 5284 

5285Imposta l'intervallo di aggiornamento con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](https://code.claude.com/docs/it/env-vars). Vedi [Dynamic headers](https://code.claude.com/docs/it/monitoring-usage.md#dynamic-headers) per i requisiti dello script e cosa succede quando l'helper fallisce.5285Imposta l'intervallo di aggiornamento con [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](https://code.claude.com/docs/it/env-vars). Consulta [Header dinamici](https://code.claude.com/docs/it/monitoring-usage.md#dynamic-headers) per i requisiti dello script e per ciò che accade quando l'helper fallisce.

5286 5286 

5287## Aggiornamenti e versioning5287## Aggiornamenti e versioning

5288 5288 


5585| Liste di restrizioni | Prende la lista intera dalla fonte con la priorità più alta che la imposta, senza aggiungere voci da fonti inferiori. Quando la fonte con la priorità più alta non ne imposta una, la prende intera dalla fonte successiva | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`allowedProviders`](#allowedproviders), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) e la catena [`fallbackModel`](#fallbackmodel) |5585| Liste di restrizioni | Prende la lista intera dalla fonte con la priorità più alta che la imposta, senza aggiungere voci da fonti inferiori. Quando la fonte con la priorità più alta non ne imposta una, la prende intera dalla fonte successiva | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`allowedProviders`](#allowedproviders), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins) e la catena [`fallbackModel`](#fallbackmodel) |

5586| Valori presi interi | Prende il valore intero dalla fonte con la priorità più alta che lo imposta, senza combinare voci o campi da fonti inferiori. Quando la fonte con la priorità più alta non lo imposta, lo prende intero dalla fonte successiva | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |5586| Valori presi interi | Prende il valore intero dalla fonte con la priorità più alta che lo imposta, senza combinare voci o campi da fonti inferiori. Quando la fonte con la priorità più alta non lo imposta, lo prende intero dalla fonte successiva | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) |

5587| Server MCP forniti | Combina i nomi dei server da ogni fonte. Quando due fonti impostano lo stesso nome, applica la voce intera della fonte più alta | [`managedMcpServers`](#managedmcpservers) |5587| Server MCP forniti | Combina i nomi dei server da ogni fonte. Quando due fonti impostano lo stesso nome, applica la voce intera della fonte più alta | [`managedMcpServers`](#managedmcpservers) |

5588| Leggi solo dalla fonte con la priorità più alta | Legge la chiave solo dalla fonte con la priorità più alta che contiene una chiave di politica, quindi il valore di una fonte inferiore viene ignorato anche quando la fonte con la priorità più alta non ne imposta uno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), i valori `"claudeai"` e `"console"` di [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |5588| Leggi solo dalla fonte con la priorità più alta | Legge la chiave solo dalla fonte con la priorità più alta che contiene una chiave di politica, quindi il valore di una fonte inferiore viene ignorato anche quando la fonte con la priorità più alta non ne imposta uno | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) |

5589| `env` | [Unisce per variabile tra fonti amministrative](https://code.claude.com/docs/it/managed-settings.md#keys-read-from-every-admin-source), sia con `"first-wins"` che con `"merge"` | [`env`](#env) |5589| `env` | [Unisce per variabile tra fonti amministrative](https://code.claude.com/docs/it/managed-settings.md#keys-read-from-every-admin-source), sia con `"first-wins"` che con `"merge"` | [`env`](#env) |

5590| Ogni altra chiave | Prende il valore dalla fonte con la priorità più alta che lo imposta | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |5590| Ogni altra chiave | Prende il valore dalla fonte con la priorità più alta che lo imposta | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) |

5591 5591 


5596* **[`policyHelper`](#policyhelper)**: Claude Code lo onora solo quando la fonte con la priorità più alta che contiene una chiave di politica è una politica MDM o un file di impostazioni gestite, quindi con le impostazioni gestite dal server non si applica.5596* **[`policyHelper`](#policyhelper)**: Claude Code lo onora solo quando la fonte con la priorità più alta che contiene una chiave di politica è una politica MDM o un file di impostazioni gestite, quindi con le impostazioni gestite dal server non si applica.

5597* **[`modelOverrides`](#modeloverrides)**: si accoppia con `availableModels`. Claude Code prende `modelOverrides` dalla fonte con la priorità più alta che lo imposta, a meno che una fonte più alta non imposti `availableModels` senza `modelOverrides`. In quel caso ignora `modelOverrides` da ogni fonte.5597* **[`modelOverrides`](#modeloverrides)**: si accoppia con `availableModels`. Claude Code prende `modelOverrides` dalla fonte con la priorità più alta che lo imposta, a meno che una fonte più alta non imposti `availableModels` senza `modelOverrides`. In quel caso ignora `modelOverrides` da ogni fonte.

5598* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) e il valore `"gateway"` di [`forceLoginMethod`](#forceloginmethod)**: Claude Code non li legge mai dalle impostazioni gestite dal server, quindi un valore lì non si applica né nasconde uno impostato in una politica MDM o un file di impostazioni gestite. Tra le fonti amministrative sulla macchina, solo quella con il rango più alto che contiene una chiave di politica le fornisce, indipendentemente dal fatto che le impostazioni gestite dal server siano presenti o meno.5598* **[`forceLoginGatewayUrl`](#forcelogingatewayurl), [`gatewayInternalNetworks`](#gatewayinternalnetworks) e il valore `"gateway"` di [`forceLoginMethod`](#forceloginmethod)**: Claude Code non li legge mai dalle impostazioni gestite dal server, quindi un valore lì non si applica né nasconde uno impostato in una politica MDM o un file di impostazioni gestite. Tra le fonti amministrative sulla macchina, solo quella con il rango più alto che contiene una chiave di politica le fornisce, indipendentemente dal fatto che le impostazioni gestite dal server siano presenti o meno.

5599* **[`forceLoginOrgUUID`](#forceloginorguuid) e i valori `"claudeai"` e `"console"` di [`forceLoginMethod`](#forceloginmethod)**: verifica quale valore si applica in [Quale fonte gestita fornisce le chiavi di login](https://code.claude.com/docs/it/managed-settings.md#which-managed-source-supplies-login-keys) anziché nella tabella.

5599* **[`allowedProviders`](#allowedproviders)**: dopo la regola della tabella, l'elenco della macchina stessa limita ancora il risultato, come afferma la nota Scope della sua voce.5600* **[`allowedProviders`](#allowedproviders)**: dopo la regola della tabella, l'elenco della macchina stessa limita ancora il risultato, come afferma la nota Scope della sua voce.

5600 5601 

5601Per confermare quali fonti si sono combinate su una macchina, esegui `/status` e [leggi la riga `Setting sources`](https://code.claude.com/docs/it/managed-settings#read-the-source-in-/status).5602Per confermare quali fonti si sono combinate su una macchina, esegui `/status` e [leggi la riga `Setting sources`](https://code.claude.com/docs/it/managed-settings#read-the-source-in-/status).

skills.md +10 −3

Details

395| Campo | Obbligatorio | Descrizione |395| Campo | Obbligatorio | Descrizione |

396| :- | :- | :- |396| :- | :- | :- |

397| `name` | No | Nome del comando mostrato nel menu `/`. Il valore predefinito è il nome della directory. Vedi [Come una skill ottiene il nome del comando](#how-a-skill-gets-its-command-name) per capire come il campo interagisce con il nome che digiti per invocare la skill. |397| `name` | No | Nome del comando mostrato nel menu `/`. Il valore predefinito è il nome della directory. Vedi [Come una skill ottiene il nome del comando](#how-a-skill-gets-its-command-name) per capire come il campo interagisce con il nome che digiti per invocare la skill. |

398| `description` | Consigliato | Cosa fa la skill e quando usarla. Claude lo usa per decidere quando applicare la skill. Se omesso, viene usata la prima riga non vuota del contenuto markdown. Metti per primo il caso d'uso principale: il testo combinato di `description` e `when_to_use` viene troncato a 1.536 caratteri nell'elenco delle skill per ridurre l'uso del contesto. |398| `description` | Consigliato | Cosa fa la skill e quando usarla. Claude lo usa per decidere quando applicare la skill. Se omesso, viene usata la prima riga non vuota del contenuto markdown. Metti per primo il caso d'uso principale: il testo combinato di `description` e `when_to_use` viene troncato a 1.536 caratteri nell'elenco delle skill per ridurre l'uso del contesto. Le parentesi angolari nel testo [vengono mostrate come `&lt;` e `&gt;`](#angle-brackets-in-a-skill-description). |

399| `when_to_use` | No | Contesto aggiuntivo su quando Claude dovrebbe invocare la skill, come frasi di attivazione o richieste di esempio. Viene aggiunto a `description` nell'elenco delle skill e conta ai fini del limite di 1.536 caratteri. |399| `when_to_use` | No | Contesto aggiuntivo su quando Claude dovrebbe invocare la skill, come frasi di attivazione o richieste di esempio. Viene aggiunto a `description` nell'elenco delle skill e conta ai fini del limite di 1.536 caratteri. |

400| `argument-hint` | No | Suggerimento mostrato durante il completamento automatico per indicare gli argomenti attesi. Esempio: `[issue-number]` o `[filename] [format]`. |400| `argument-hint` | No | Suggerimento mostrato durante il completamento automatico per indicare gli argomenti attesi. Esempio: `[issue-number]` o `[filename] [format]`. |

401| `arguments` | No | Argomenti posizionali con nome per la [sostituzione `$name`](#available-string-substitutions) nel contenuto della skill. Accetta una stringa separata da spazi o un elenco YAML. I nomi corrispondono alle posizioni degli argomenti in ordine. |401| `arguments` | No | Argomenti posizionali con nome per la [sostituzione `$name`](#available-string-substitutions) nel contenuto della skill. Accetta una stringa separata da spazi o un elenco YAML. I nomi corrispondono alle posizioni degli argomenti in ordine. |


778 778 

779Con la shell `bash` predefinita, aggiungi `|| true` a qualsiasi altro comando che ti aspetti esca con un codice non zero. Uno script di controllo che esce con 1 quando trova problemi è un esempio.779Con la shell `bash` predefinita, aggiungi `|| true` a qualsiasi altro comando che ti aspetti esca con un codice non zero. Uno script di controllo che esce con 1 quando trova problemi è un esempio.

780 780 

781#### Caratteri di controllo nei comandi iniettati781#### Quando nessun comando shell è stato eseguito

782 782 

783`No shell command in <name> was run` significa che uno dei comandi `!` del file contiene un carattere di controllo grezzo diverso da tab o newline, quindi nessuno di essi viene eseguito. Vedi [come trovare e rimuovere il carattere](https://code.claude.com/docs/it/errors.md#no-shell-command-was-run).783`No shell command in <name> was run` significa che uno dei suoi comandi shell contiene un carattere che lo strumento non accetta. Per trovare e rimuovere il carattere, consulta il [riferimento agli errori](https://code.claude.com/docs/it/errors.md#no-shell-command-was-run).

784 784 

785#### Controlli di permesso sui comandi iniettati785#### Controlli di permesso sui comandi iniettati

786 786 


1229 1229 

1230Per aumentare il budget, impostate l'impostazione [`skillListingBudgetFraction`](https://code.claude.com/docs/it/settings-reference#skilllistingbudgetfraction) (ad esempio `0.02` = 2%) o la variabile di ambiente `SLASH_COMMAND_TOOL_CHAR_BUDGET` a un conteggio di caratteri fisso. Per liberare budget per altre skills, impostate le voci a bassa priorità su `"name-only"` in [`skillOverrides`](#override-skill-visibility-from-settings) in modo che si elenchino senza una descrizione. Potete anche ridurre il testo di `description` e `when_to_use` alla fonte: mettete il caso d'uso chiave per primo, poiché il testo combinato di ogni voce è limitato a 1.536 caratteri indipendentemente dal budget. Il limite è configurabile con [`skillListingMaxDescChars`](https://code.claude.com/docs/it/settings-reference#skilllistingmaxdescchars).1230Per aumentare il budget, impostate l'impostazione [`skillListingBudgetFraction`](https://code.claude.com/docs/it/settings-reference#skilllistingbudgetfraction) (ad esempio `0.02` = 2%) o la variabile di ambiente `SLASH_COMMAND_TOOL_CHAR_BUDGET` a un conteggio di caratteri fisso. Per liberare budget per altre skills, impostate le voci a bassa priorità su `"name-only"` in [`skillOverrides`](#override-skill-visibility-from-settings) in modo che si elenchino senza una descrizione. Potete anche ridurre il testo di `description` e `when_to_use` alla fonte: mettete il caso d'uso chiave per primo, poiché il testo combinato di ogni voce è limitato a 1.536 caratteri indipendentemente dal budget. Il limite è configurabile con [`skillListingMaxDescChars`](https://code.claude.com/docs/it/settings-reference#skilllistingmaxdescchars).

1231 1231 

1232### Le parentesi angolari in una descrizione della skill appaiono come `&lt;` e `&gt;`

1233 

1234Claude Code mostra `<` e `>` nei campi `description` e `when_to_use` come `&lt;` e `&gt;`. Per mostrare un segnaposto come `<branch>`, usa le parentesi quadre o [`argument-hint`](#frontmatter-reference):

1235 

1236* **Parentesi quadre**: sostituisci `<branch>` con `[branch]`, che viene mostrato così come lo digiti

1237* **`argument-hint`**: sposta il segnaposto in una nuova riga `argument-hint: <branch>`. Viene mostrato dopo il nome del comando. Se carichi la skill anche su claude.ai o sulla Skills API, [verifica prima se `argument-hint` è accettato lì](#using-skill-frontmatter-outside-claude-code).

1238 

1232### Personal skills disappeared1239### Personal skills disappeared

1233 1240 

1234Se le cartelle delle skill che avete creato in `~/.claude/skills/` sono scomparse, cercate in `~/.claude/skills/.trash/`. Quando Claude Code [sincronizza le skills da claude.ai](#how-synced-skills-behave), le scarica nella sottocartella separata `synced` e non sposta o elimina le cartelle che create.1241Se le cartelle delle skill che avete creato in `~/.claude/skills/` sono scomparse, cercate in `~/.claude/skills/.trash/`. Quando Claude Code [sincronizza le skills da claude.ai](#how-synced-skills-behave), le scarica nella sottocartella separata `synced` e non sposta o elimina le cartelle che create.

sub-agents.md +1 −1

Details

938 938 

939Per continuare a lavorare mentre Claude attende, premi **Ctrl+B** nel terminale oppure fai clic su [**Run in background**](https://code.claude.com/docs/it/vs-code.md#move-a-running-command-or-subagent-to-the-background) in VS Code.939Per continuare a lavorare mentre Claude attende, premi **Ctrl+B** nel terminale oppure fai clic su [**Run in background**](https://code.claude.com/docs/it/vs-code.md#move-a-running-command-or-subagent-to-the-background) in VS Code.

940 940 

941Se, invece di disattivare la modalità fork, imposti la variabile d'ambiente [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars) su `1`, Claude attende ogni subagent. Anche i comandi in background sono disattivati, e **Ctrl+B** non sposta nulla in background.941Se, invece di disattivare la modalità fork, imposti la variabile d'ambiente [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/it/env-vars) su `1`, Claude attende che i subagent terminino prima di continuare. Anche i comandi in background sono disattivati, e **Ctrl+B** non sposta nulla in background.

942 942 

943#### Strumenti, permessi e risultati dei subagent in background943#### Strumenti, permessi e risultati dei subagent in background

944 944 

terminal-config.md +99 −99

Details

4 4 

5# Configura il tuo terminale per Claude Code5# Configura il tuo terminale per Claude Code

6 6 

7> Correggi Shift+Invio per le nuove righe, ricevi un segnale acustico del terminale quando Claude termina, configura tmux, abbina il tema dei colori e abilita la modalità Vim nella CLI di Claude Code.7> Correggi Shift+Enter per andare a capo, ricevi un segnale acustico del terminale quando Claude termina, configura tmux, abbina il tema dei colori e abilita la modalità Vim nella CLI di Claude Code.

8 8 

9Claude Code funziona in qualsiasi terminale senza configurazione. Questa pagina è per quando qualcosa di specifico non si comporta come ti aspetti. Trova il tuo sintomo di seguito. Se tutto ti sembra già corretto, non hai bisogno di questa pagina.9Claude Code funziona in qualsiasi terminale senza configurazione. Questa pagina serve quando qualcosa di specifico non si comporta come ti aspetti. Trova il tuo sintomo qui sotto. Se tutto funziona già come dovrebbe, non hai bisogno di questa pagina.

10 10 

11* [Shift+Invio invia invece di inserire una nuova riga](#enter-multiline-prompts)11* [Shift+Enter invia invece di inserire una nuova riga](#enter-multiline-prompts)

12* [I tasti di scelta rapida Option non funzionano su macOS](#enable-option-key-shortcuts-on-macos)12* [Le scorciatoie con il tasto Option non fanno nulla su macOS](#enable-option-key-shortcuts-on-macos)

13* [Nessun suono o avviso quando Claude termina](#get-a-terminal-bell-or-notification)13* [Nessun suono o avviso quando Claude termina](#get-a-terminal-bell-or-notification)

14* [Esegui Claude Code dentro tmux](#configure-tmux)14* [Esegui Claude Code all'interno di tmux](#configure-tmux)

15* [Backspace elimina un'intera parola su Windows](#fix-backspace-deleting-a-whole-word-on-windows)15* [Backspace elimina un'intera parola su Windows](#fix-backspace-deleting-a-whole-word-on-windows)

16* [La visualizzazione sfarfalla o lo scrollback salta](#switch-to-fullscreen-rendering)16* [Lo schermo sfarfalla o lo scrollback salta](#switch-to-fullscreen-rendering)

17* [Vuoi i tasti Vim nel prompt](#edit-prompts-with-vim-keybindings)17* [Vuoi i tasti Vim nel prompt](#edit-prompts-with-vim-keybindings)

18 18 

19Questa pagina riguarda come far inviare al tuo terminale i segnali giusti a Claude Code. Per modificare i tasti a cui Claude Code stesso risponde, consulta invece [scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md).19Questa pagina spiega come fare in modo che il tuo terminale invii i segnali corretti a Claude Code. Per cambiare i tasti a cui risponde Claude Code stesso, consulta invece [scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md).

20 20 

21## Inserire prompt su più righe21## Inserire prompt su più righe

22 22 

23Premere Invio invia il messaggio. Per aggiungere un'interruzione di riga senza inviare, premere Ctrl+J, oppure digitare `\` e quindi premere Invio. Entrambi i metodi funzionano in ogni terminale senza alcuna configurazione.23Premendo Enter invii il messaggio. Per aggiungere un'interruzione di riga senza inviare, premi Ctrl+J, oppure digita `\` e poi premi Enter. Entrambi i metodi funzionano in qualsiasi terminale senza alcuna configurazione.

24 24 

25Nella maggior parte dei terminali è anche possibile premere Maiusc+Invio, ma il supporto varia a seconda dell'emulatore di terminale:25Nella maggior parte dei terminali puoi anche premere Shift+Enter, ma il supporto varia a seconda dell'emulatore di terminale:

26 26 

27| Terminale | Maiusc+Invio per nuova riga |27| Terminale | Shift+Enter per andare a capo |

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

29| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Funziona senza configurazione |29| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Funziona senza configurazione |

30| Altri terminali che supportano il protocollo della tastiera kitty, come foot e Alacritty 0.16 o versioni successive | Funziona senza configurazione. Richiede Claude Code v2.1.269 o versioni successive |30| Altri terminali che supportano il protocollo da tastiera kitty, come foot e Alacritty 0.16 o successivo | Funziona senza configurazione. Richiede Claude Code v2.1.269 o successivo |

31| VS Code, Cursor, Devin Desktop, Alacritty prima della versione 0.16, Zed | Eseguire `/terminal-setup` una volta |31| VS Code, Cursor, Devin Desktop, Alacritty precedente alla 0.16, Zed | Esegui `/terminal-setup` una volta |

32| gnome-terminal, JetBrains IDEs come PyCharm e Android Studio | Non disponibile; utilizzare Ctrl+J o `\` seguito da Invio |32| gnome-terminal, IDE JetBrains come PyCharm e Android Studio | Non disponibile; usa Ctrl+J oppure `\` e poi Enter |

33 33 

34Per VS Code, Cursor, Devin Desktop, Alacritty prima della versione 0.16 e Zed, `/terminal-setup` scrive una scorciatoia da tastiera Maiusc+Invio nel file di configurazione del terminale. Alla prima esecuzione viene visualizzato un messaggio di conferma come `Installed VSCode terminal Shift+Enter key binding`. Le associazioni esistenti rimangono in posizione; se viene visualizzato un messaggio come `VSCode terminal Shift+Enter key binding already configured`, non è stata apportata alcuna modifica. Eseguire `/terminal-setup` direttamente nel terminale host piuttosto che all'interno di tmux o screen, poiché deve scrivere nella configurazione del terminale host.34Per VS Code, Cursor, Devin Desktop, Alacritty precedente alla 0.16 e Zed, `/terminal-setup` scrive una scorciatoia da tastiera Shift+Enter nel file di configurazione del terminale. Alla prima esecuzione vedi una conferma come `Installed VSCode terminal Shift+Enter key binding`. Le scorciatoie da tastiera esistenti vengono lasciate invariate; se vedi un messaggio come `VSCode terminal Shift+Enter key binding already configured`, non è stata apportata alcuna modifica. Esegui `/terminal-setup` direttamente nel terminale host anziché all'interno di tmux o screen, poiché deve scrivere nella configurazione del terminale host.

35 35 

36In VS Code, Cursor e Devin Desktop, `/terminal-setup` aggiorna anche due impostazioni dell'editor: imposta `terminal.integrated.gpuAcceleration` su `"off"` per evitare testo distorto nel terminale integrato, e imposta `terminal.integrated.mouseWheelScrollSensitivity` per uno scorrimento più fluido in [modalità a schermo intero](https://code.claude.com/docs/it/fullscreen.md). Per annullare la modifica dell'accelerazione GPU, impostarla di nuovo su `"auto"` e ricaricare la finestra dell'editor.36In VS Code, Cursor e Devin Desktop, `/terminal-setup` aggiorna anche due impostazioni dell'editor: imposta `terminal.integrated.gpuAcceleration` su `"off"` per evitare testo corrotto nel terminale integrato, e imposta `terminal.integrated.mouseWheelScrollSensitivity` per uno scorrimento più fluido in [modalità a schermo intero](https://code.claude.com/docs/it/fullscreen.md). Per annullare la modifica all'accelerazione GPU, reimpostala su `"auto"` e ricarica la finestra dell'editor.

37 37 

38In Zed, `/terminal-setup` aggiorna il file `keymap.json` sul posto:38In Zed, `/terminal-setup` aggiorna il tuo `keymap.json` direttamente:

39 39 

40* Se la mappa dei tasti ha già associazioni e nessuna di esse è un Terminale `shift-enter`, Claude Code prima ne esegue il backup in una copia nella stessa directory, come `keymap.json.1a2b3c4d.bak`, quindi unisce l'associazione Maiusc+Invio nella mappa dei tasti, mantenendo le altre scorciatoie da tastiera e i commenti40* Se la keymap contiene già delle scorciatoie da tastiera e nessuna di esse è uno `shift-enter` di Terminal, Claude Code ne crea prima una copia di backup nella stessa directory, come `keymap.json.1a2b3c4d.bak`, poi esegue il merge della scorciatoia da tastiera Shift+Enter nella tua keymap, mantenendo le altre scorciatoie da tastiera e i commenti

41* Se Claude Code non riesce a leggere o analizzare la mappa dei tasti, non riesce a eseguirne il backup, o non riesce a verificare il risultato unito, [lascia il file invariato e stampa il blocco di associazione da aggiungere manualmente](https://code.claude.com/docs/it/errors.md#terminal-setup-left-your-zed-keymap-unchanged)41* Se Claude Code non riesce a leggere o analizzare la keymap, non riesce a crearne un backup o non riesce a verificare il risultato del merge, [lascia il file invariato e stampa il blocco della scorciatoia da tastiera da aggiungere manualmente](https://code.claude.com/docs/it/errors.md#terminal-setup-left-your-zed-keymap-unchanged)

42 42 

43Se si sta eseguendo all'interno di tmux, Maiusc+Invio richiede anche la [configurazione tmux di seguito](#configure-tmux) anche quando il terminale esterno la supporta.43Se stai eseguendo all'interno di tmux, Shift+Enter richiede anche la [configurazione di tmux riportata di seguito](#configure-tmux) anche quando il terminale esterno lo supporta.

44 44 

45Per associare l'interruzione di riga a un tasto diverso, o per scambiare il comportamento in modo che Invio inserisca un'interruzione di riga e Maiusc+Invio invii, mappare le azioni `chat:newline` e `chat:submit` nel file [scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md).45Per associare l'andata a capo a un tasto diverso, o per invertire il comportamento in modo che Enter inserisca una nuova riga e Shift+Enter invii, mappa le azioni `chat:newline` e `chat:submit` nel tuo [file delle scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md).

46 46 

47## Abilita le scorciatoie da tastiera Option su macOS47## Abilitare le scorciatoie con il tasto Option su macOS

48 48 

49Alcuni shortcut di Claude Code utilizzano il tasto Option, come Option+Invio per una nuova riga o Option+P per cambiare modelli. Su macOS, la maggior parte dei terminali non invia Option come modificatore per impostazione predefinita, quindi questi shortcut non funzionano finché non li abiliti. L'impostazione del terminale per questo è solitamente etichettata "Use Option as Meta Key"; Meta è il nome storico Unix per il tasto ora etichettato come Option o Alt.49Alcune scorciatoie di Claude Code usano il tasto Option, come Option+Enter per andare a capo o Option+P per cambiare modello. Su macOS, la maggior parte dei terminali non invia Option come modificatore per impostazione predefinita, quindi queste scorciatoie non hanno alcun effetto finché non lo abiliti. L'impostazione del terminale per questo è solitamente denominata "Use Option as Meta Key"; Meta è il nome storico Unix del tasto ora etichettato Option o Alt.

50 50 

51**Apple Terminal**51**Apple Terminal**

52 52 

53Apri Impostazioni → Profili → Tastiera e seleziona "Use Option as Meta Key".53Apri Settings → Profiles → Keyboard e seleziona "Use Option as Meta Key".

54 54 

55Se hai accettato il prompt di configurazione del terminale al primo avvio di Claude Code, questo è già stato fatto. Quel prompt esegue `/terminal-setup` per te, che abilita Option come Meta e disattiva il campanello udibile nel tuo profilo Apple Terminal.55Se hai accettato il prompt di configurazione del terminale al primo avvio di Claude Code, questo è già fatto. Quel prompt esegue `/terminal-setup` per te, che abilita Option come Meta e disattiva il segnale acustico nel tuo profilo di Apple Terminal.

56 56 

57In [modalità lettore schermo](https://code.claude.com/docs/it/accessibility.md), `/terminal-setup` lascia l'impostazione del campanello invariata in modo che il campanello del terminale rimanga udibile. Se un'esecuzione precedente ha disattivato il campanello, riattivalo in Impostazioni → Profili → Avanzate → "Audible bell".57In [modalità screen reader](https://code.claude.com/docs/it/accessibility.md), `/terminal-setup` lascia invariata l'impostazione del segnale acustico, così il segnale del terminale rimane udibile. Se un'esecuzione precedente ha disattivato il segnale acustico, riattivalo in Settings → Profiles → Advanced → "Audible bell".

58 58 

59**iTerm2**59**iTerm2**

60 60 

61Apri Impostazioni → Profili → Tasti → Generale e imposta il tasto Option sinistro e il tasto Option destro su "Esc+".61Apri Settings → Profiles → Keys → General e imposta Left Option key e Right Option key su "Esc+".

62 62 

63L'esecuzione di `/terminal-setup` in iTerm2 abilita "Applications in terminal may access clipboard" in Impostazioni → Generale → Selezione in modo che il comando `/copy` possa scrivere negli appunti di sistema. Il comando rileva iTerm2 anche quando eseguito da dentro tmux. Riavvia iTerm2 affinché la modifica abbia effetto.63L'esecuzione di `/terminal-setup` in iTerm2 abilita "Applications in terminal may access clipboard" in Settings → General → Selection, così il comando `/copy` può scrivere negli appunti di sistema. Il comando rileva iTerm2 anche quando viene eseguito all'interno di tmux. Riavvia iTerm2 affinché la modifica abbia effetto.

64 64 

65**VS Code**65**VS Code**

66 66 

67Aggiungi `"terminal.integrated.macOptionIsMeta": true` alle tue impostazioni di VS Code.67Aggiungi `"terminal.integrated.macOptionIsMeta": true` alle impostazioni di VS Code.

68 68 

69Per Ghostty, Kitty e altri terminali, cerca un'impostazione Option-as-Alt o Option-as-Meta nel file di configurazione del terminale.69Per Ghostty, Kitty e altri terminali, cerca un'impostazione Option-as-Alt o Option-as-Meta nel file di configurazione del terminale.

70 70 


123 123 

124In un terminale che segnala il supporto per il protocollo, il titolo della scheda non inizia con un glifo di stato. Il terminale mostra autonomamente lo stato della sessione, quindi Claude Code omette il glifo che negli altri terminali antepone al titolo.124In un terminale che segnala il supporto per il protocollo, il titolo della scheda non inizia con un glifo di stato. Il terminale mostra autonomamente lo stato della sessione, quindi Claude Code omette il glifo che negli altri terminali antepone al titolo.

125 125 

126## Configurare tmux126## Configura tmux

127 127 

128Quando Claude Code viene eseguito all'interno di tmux, per impostazione predefinita Shift+Invio invia il messaggio invece di inserire una nuova riga, e le notifiche desktop e la [barra di avanzamento](https://code.claude.com/docs/it/settings-reference.md#terminalprogressbarenabled) non raggiungono mai il terminale esterno. Aggiungere queste righe a `~/.tmux.conf`, quindi eseguire `tmux source-file ~/.tmux.conf` per applicarle al server in esecuzione:128Quando Claude Code viene eseguito all'interno di tmux, per impostazione predefinita Shift+Enter invia il messaggio invece di inserire una nuova riga, e le notifiche desktop e la [barra di avanzamento](https://code.claude.com/docs/it/settings-reference.md#terminalprogressbarenabled) non raggiungono mai il terminale esterno. Aggiungi queste righe a `~/.tmux.conf`, quindi esegui `tmux source-file ~/.tmux.conf` per applicarle al server in esecuzione:

129 129 

130```bash ~/.tmux.conf theme={null}130```bash ~/.tmux.conf theme={null}

131set -g allow-passthrough on131set -g allow-passthrough on


134set -as terminal-features 'xterm*:extkeys'134set -as terminal-features 'xterm*:extkeys'

135```135```

136 136 

137La riga `allow-passthrough` consente alle notifiche e agli aggiornamenti di avanzamento di raggiungere il terminale esterno invece di essere inghiottiti da tmux. Le righe `extended-keys` consentono a tmux di distinguere Shift+Invio da Invio semplice in modo che la scorciatoia della nuova riga funzioni.137La riga `allow-passthrough` consente alle notifiche e agli aggiornamenti di avanzamento di raggiungere il terminale esterno invece di essere intercettati da tmux. Le righe `extended-keys` consentono a tmux di distinguere Shift+Enter da un semplice Enter, in modo che la scorciatoia per la nuova riga funzioni.

138 138 

139L'elemento [`Image` di un mod](https://code.claude.com/docs/it/plugins/mods/reference#elements) richiede le righe `allow-passthrough` e `focus-events`, insieme agli altri [requisiti per disegnare all'interno di tmux](https://code.claude.com/docs/it/plugins/mods/gallery.md#draw-an-image-inside-tmux). Dopo aver aggiunto le righe, scollegati anche da tmux, ricollegati e riavvia Claude Code.139Un [`Image` di un mod](https://code.claude.com/docs/it/plugins/mods/reference#elements) richiede le righe `allow-passthrough` e `focus-events`, insieme agli altri [requisiti per disegnare all'interno di tmux](https://code.claude.com/docs/it/plugins/mods/gallery.md#draw-an-image-inside-tmux). Dopo aver aggiunto le righe, scollegati anche da tmux, ricollegati e riavvia Claude Code.

140 140 

141## Correggere l'eliminazione di una parola intera con Backspace su Windows141## Correggere l'eliminazione di una parola intera con Backspace su Windows

142 142 


144 144 

145Se ogni pressione di Backspace elimina una parola intera, il vostro terminale invia `^H` per il semplice Backspace. Impostare [`CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0`](https://code.claude.com/docs/it/env-vars). Backspace e Ctrl+H quindi cancellano un carattere ciascuno. Se Ctrl+Backspace cancella solo un carattere su macOS o Linux perché il vostro terminale invia `^H` per esso, impostare la variabile a `1` invece.145Se ogni pressione di Backspace elimina una parola intera, il vostro terminale invia `^H` per il semplice Backspace. Impostare [`CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0`](https://code.claude.com/docs/it/env-vars). Backspace e Ctrl+H quindi cancellano un carattere ciascuno. Se Ctrl+Backspace cancella solo un carattere su macOS o Linux perché il vostro terminale invia `^H` per esso, impostare la variabile a `1` invece.

146 146 

147## Abbina il tema dei colori147## Abbinare il tema dei colori

148 148 

149Usa il comando `/theme`, oppure il selezionatore di tema in `/config`, per scegliere un tema Claude Code che corrisponda al tuo terminale. Selezionando l'opzione auto, il sistema rileva lo sfondo chiaro o scuro del tuo terminale, quindi il tema segue i cambiamenti dell'aspetto del sistema operativo ogni volta che il tuo terminale lo fa. Claude Code non controlla lo schema di colori del terminale stesso, che è impostato dall'applicazione del terminale.149Usa il comando `/theme`, o il selettore dei temi in `/config`, per scegliere un tema di Claude Code che corrisponda al tuo terminale. Selezionando l'opzione auto viene rilevato lo sfondo chiaro o scuro del terminale, così il tema segue i cambiamenti di aspetto del sistema operativo ogni volta che lo fa il terminale. Claude Code non controlla lo schema di colori del terminale stesso, che è impostato dall'applicazione del terminale.

150 150 

151Per personalizzare ciò che appare in fondo all'interfaccia, configura una [barra di stato personalizzata](https://code.claude.com/docs/it/statusline.md) che mostra il modello corrente, la directory di lavoro, il ramo git, o altri contesti.151Per personalizzare ciò che appare nella parte inferiore dell'interfaccia, configura una [riga di stato personalizzata](https://code.claude.com/docs/it/statusline.md) che mostri il modello corrente, la directory di lavoro, il branch git o altro contesto.

152 152 

153### Crea un tema personalizzato153### Creare un tema personalizzato

154 154 

155Oltre ai preset integrati, `/theme` elenca tutti i temi personalizzati che hai definito e tutti i temi forniti dai [plugin](https://code.claude.com/docs/it/plugins/components.md#themes-and-output-styles) installati. Seleziona **Nuovo tema personalizzato…** alla fine dell'elenco per crearne uno in modo interattivo: dai un nome al tema, quindi scegli i singoli token di colore da sovrascrivere. Premi `Ctrl+E` mentre un tema personalizzato è evidenziato per modificarlo.155Oltre ai preset integrati, `/theme` elenca tutti i temi personalizzati che hai definito e tutti i temi forniti dai [plugin](https://code.claude.com/docs/it/plugins/components.md#themes-and-output-styles) installati. Seleziona **New custom theme…** alla fine dell'elenco per crearne uno in modo interattivo: assegni un nome al tema, quindi scegli i singoli token di colore da sovrascrivere. Premi `Ctrl+E` mentre un tema personalizzato è evidenziato per modificarlo.

156 156 

157Ogni tema personalizzato è un file JSON in `~/.claude/themes/`. Il nome del file senza l'estensione `.json` è lo slug del tema, e selezionare il tema memorizza `custom:<slug>` come preferenza del tema. Il file ha tre campi facoltativi:157Ogni tema personalizzato è un file JSON in `~/.claude/themes/`. Il nome del file senza l'estensione `.json` è lo slug del tema, e selezionando il tema viene memorizzato `custom:<slug>` come preferenza del tema. Il file ha tre campi facoltativi:

158 158 

159| Campo | Tipo | Descrizione |159| Campo | Tipo | Descrizione |

160| :- | :- | :- |160| :- | :- | :- |

161| `name` | string | Etichetta di visualizzazione mostrata in `/theme`. Per impostazione predefinita è lo slug del nome file |161| `name` | string | Etichetta visualizzata in `/theme`. Il valore predefinito è lo slug del nome del file |

162| `base` | string | Preset integrato da cui inizia il tema: `dark`, `light`, `dark-daltonized`, `light-daltonized`, `dark-ansi`, o `light-ansi`. Per impostazione predefinita è `dark` |162| `base` | string | Preset integrato da cui parte il tema: `dark`, `light`, `dark-daltonized`, `light-daltonized`, `dark-ansi` o `light-ansi`. Il valore predefinito è `dark` |

163| `overrides` | object | Mappa dei nomi dei token di colore ai valori di colore. I token non elencati qui ricadono nel preset di base |163| `overrides` | object | Mappa dei nomi dei token di colore ai valori di colore. I token non elencati qui ricadono sul preset di base |

164 164 

165I valori di colore accettano `#rrggbb`, `#rgb`, `rgb(r,g,b)`, `ansi256(n)`, o `ansi:<name>` dove `<name>` è uno dei 16 nomi di colore ANSI standard come `red` o `cyanBright`. I token sconosciuti e i valori di colore non validi vengono ignorati, quindi un errore di battitura non può interrompere il rendering.165I valori di colore accettano `#rrggbb`, `#rgb`, `rgb(r,g,b)`, `ansi256(n)` o `ansi:<name>`, dove `<name>` è uno dei 16 nomi di colore ANSI standard, come `red` o `cyanBright`. I token sconosciuti e i valori di colore non validi vengono ignorati, quindi un errore di battitura non può compromettere il rendering.

166 166 

167L'esempio seguente definisce un tema che mantiene il preset scuro ma ricolo il prompt accent, il testo di errore e il testo di successo:167L'esempio seguente definisce un tema che mantiene il preset dark ma ricolora l'accento del prompt, il testo degli errori e il testo di successo:

168 168 

169```json ~/.claude/themes/dracula.json theme={null}169```json ~/.claude/themes/dracula.json theme={null}

170{170{


178}178}

179```179```

180 180 

181Claude Code monitora `~/.claude/themes/` e ricarica quando un file viene aggiunto o modificato, quindi le modifiche apportate nel tuo editor si applicano a una sessione in esecuzione senza un riavvio. Se la cartella `~/.claude/themes/` stessa non esisteva quando Claude Code è stato avviato, riavvia una volta dopo aver creato il tuo primo file di tema. Dopo di che, le modifiche si applicano senza un riavvio.181Claude Code monitora `~/.claude/themes/` e ricarica quando un file viene aggiunto o modificato, quindi le modifiche apportate nel tuo editor si applicano a una sessione in esecuzione senza riavvio. Se la cartella `~/.claude/themes/` stessa non esisteva all'avvio di Claude Code, riavvia una volta dopo aver creato il tuo primo file di tema. Dopodiché, le modifiche si applicano senza riavvio.

182 182 

183Il riferimento di seguito copre i token che puoi impostare in `overrides`. L'editor interattivo in `/theme` mostra gli stessi token con un'anteprima dal vivo, più alcuni accent monouso come i colori della schermata di onboarding che sono omessi qui.183Il riferimento seguente descrive i token che puoi impostare in `overrides`. L'editor interattivo in `/theme` mostra gli stessi token con un'anteprima dal vivo, oltre ad alcuni accenti a scopo singolo, come i colori della schermata di onboarding, che qui sono omessi.

184 184 

185> **Riferimento dei token di colore**185> **Riferimento dei token di colore**

186>186>

187> L'esempio seguente combina token da diversi gruppi di seguito: l'accent del marchio, il bordo della modalità plan, gli sfondi diff e lo sfondo del messaggio.187> L'esempio seguente combina token di diversi gruppi elencati sotto: l'accento del brand, il bordo del plan mode, gli sfondi dei diff e lo sfondo dei messaggi.

188>188>

189> ```json ~/.claude/themes/midnight.json theme={null}189> ```json ~/.claude/themes/midnight.json theme={null}

190> {190> {


200> }200> }

201> ```201> ```

202>202>

203> #### Colori di testo e accent203> #### Colori del testo e degli accenti

204>204>

205> Controlla l'accent del marchio primario e le sfumature di testo in primo piano utilizzate in tutta l'interfaccia.205> Controlla l'accento principale del brand e le tonalità del testo in primo piano usate in tutta l'interfaccia.

206>206>

207> | Token | Controlla |207> | Token | Controlla |

208> | :- | :- |208> | :- | :- |

209> | `claude` | Accent del marchio primario, utilizzato per lo spinner e l'etichetta dell'assistente |209> | `claude` | Accento principale del brand, usato per lo spinner e l'etichetta dell'assistente |

210> | `text` | Testo in primo piano predefinito |210> | `text` | Testo predefinito in primo piano |

211> | `inverseText` | Testo disegnato sopra uno sfondo colorato, come i badge di stato |211> | `inverseText` | Testo disegnato sopra uno sfondo colorato, come i badge di stato |

212> | `inactive` | Testo secondario come suggerimenti, timestamp e elementi disabilitati |212> | `inactive` | Testo secondario come suggerimenti, timestamp ed elementi disabilitati |

213> | `subtle` | Bordi sfumati e testo secondario de-enfatizzato |213> | `subtle` | Bordi tenui e testo secondario meno enfatizzato |

214> | `suggestion` | Suggerimenti di completamento automatico e evidenziazione della selezione nei picker |214> | `suggestion` | Suggerimenti di completamento automatico ed evidenziazione della selezione nei selettori |

215> | `permission` | Bordi della finestra di dialogo, inclusi i prompt di autorizzazione e i picker |215> | `permission` | Bordi delle finestre di dialogo, incluse le richieste di permesso e i selettori |

216> | `remember` | Indicatori di memoria e `CLAUDE.md` |216> | `remember` | Indicatori della memoria e di `CLAUDE.md` |

217>217>

218> #### Colori di stato218> #### Colori di stato

219>219>

220> Segnala stati di successo, fallimento e avviso nei messaggi e negli indicatori.220> Segnalano gli stati di successo, errore e avviso in messaggi e indicatori.

221>221>

222> | Token | Controlla |222> | Token | Controlla |

223> | :- | :- |223> | :- | :- |

224> | `success` | Messaggi di successo e controlli superati |224> | `success` | Messaggi di successo e controlli superati |

225> | `error` | Messaggi di errore e fallimenti |225> | `error` | Messaggi di errore e fallimenti |

226> | `warning` | Avvisi, messaggi di cautela e il bordo della modalità auto |226> | `warning` | Avvisi, messaggi di attenzione e l'indicatore della modalità auto |

227> | `merged` | Stato della richiesta pull unita |227> | `merged` | Stato delle pull request unite |

228>228>

229> #### Casella di input e indicatori di modalità229> #### Casella di input e indicatori di modalità

230>230>

231> Imposta il colore del bordo della casella di input e l'accent mostrato mentre una modalità di autorizzazione o un indicatore è attivo.231> Imposta il colore del bordo della casella di input e l'accento mostrato mentre una modalità di permesso o un indicatore è attivo.

232>232>

233> | Token | Controlla |233> | Token | Controlla |

234> | :- | :- |234> | :- | :- |

235> | `promptBorder` | Bordo della casella di input |235> | `promptBorder` | Bordo della casella di input |

236> | `planMode` | Accent della modalità plan, messaggi della modalità plan e finestre di dialogo della modalità plan |236> | `planMode` | Accento del plan mode, messaggi del piano e finestre di dialogo del plan mode |

237> | `autoAccept` | Accent della modalità accept-edits |237> | `autoAccept` | Accento della modalità accept-edits |

238> | `bashBorder` | Bordo della casella di input quando si immette un comando shell `!` |238> | `bashBorder` | Bordo della casella di input quando si inserisce un comando shell `!` |

239> | `ide` | Indicatore di connessione IDE |239> | `ide` | Indicatore di connessione all'IDE |

240> | `fastMode` | Indicatore della modalità fast |240> | `fastMode` | Indicatore della modalità veloce |

241> | `effortUltra` | Il tag `ultracode` sul bordo della casella di input mentre [ultracode](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) è attivo. Il tuo override di questo colore ha effetto su Claude Code v2.1.239 o successivo |241> | `effortUltra` | Il tag `ultracode` sul bordo della casella di input mentre [ultracode](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) è attivo. L'override di questo colore ha effetto su Claude Code v2.1.239 o successive |

242>242>

243> #### Rendering diff243> #### Rendering dei diff

244>244>

245> Colora il codice aggiunto e rimosso nelle modifiche e revisioni dei file.245> Colora il codice aggiunto e rimosso nelle modifiche ai file e nelle revisioni.

246>246>

247> | Token | Controlla |247> | Token | Controlla |

248> | :- | :- |248> | :- | :- |

249> | `diffAdded` | Sfondo delle righe aggiunte |249> | `diffAdded` | Sfondo delle righe aggiunte |

250> | `diffRemoved` | Sfondo delle righe rimosse |250> | `diffRemoved` | Sfondo delle righe rimosse |

251> | `diffAddedDimmed` | Sfondo delle righe aggiunte nel diff attenuato mostrato dopo aver rifiutato una modifica |251> | `diffAddedDimmed` | Sfondo delle righe aggiunte nel diff attenuato mostrato dopo che rifiuti una modifica |

252> | `diffRemovedDimmed` | Sfondo delle righe rimosse nel diff attenuato mostrato dopo aver rifiutato una modifica |252> | `diffRemovedDimmed` | Sfondo delle righe rimosse nel diff attenuato mostrato dopo che rifiuti una modifica |

253> | `diffAddedWord` | Evidenziazione a livello di parola all'interno di una riga aggiunta |253> | `diffAddedWord` | Evidenziazione a livello di parola all'interno di una riga aggiunta |

254> | `diffRemovedWord` | Evidenziazione a livello di parola all'interno di una riga rimossa |254> | `diffRemovedWord` | Evidenziazione a livello di parola all'interno di una riga rimossa |

255>255>

256> #### Modalità a schermo intero256> #### Modalità a schermo intero

257>257>

258> Claude Code utilizza `userMessageBackgroundHover`, `selectionBg` e `composerSidebarBackground` solo nella [modalità di rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md). Dipinge `userMessageBackground`, `bashMessageBackgroundColor` e `memoryBackgroundColor` sia nel renderer predefinito che in quello a schermo intero.258> Claude Code usa `userMessageBackgroundHover`, `selectionBg` e `composerSidebarBackground` solo nella [modalità di rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md). Disegna `userMessageBackground`, `bashMessageBackgroundColor` e `memoryBackgroundColor` sia nel renderer predefinito sia in quello a schermo intero.

259>259>

260> | Token | Controlla |260> | Token | Controlla |

261> | :- | :- |261> | :- | :- |

262> | `userMessageBackground` | Sfondo dietro i tuoi messaggi nella trascrizione |262> | `userMessageBackground` | Sfondo dietro i tuoi messaggi nella trascrizione |

263> | `userMessageBackgroundHover` | Sfondo dietro un messaggio mentre è al passaggio del mouse o espanso |263> | `userMessageBackgroundHover` | Sfondo dietro un messaggio quando è sotto il puntatore o espanso |

264> | `bashMessageBackgroundColor` | Sfondo dietro le voci di comando shell `!` nella trascrizione |264> | `bashMessageBackgroundColor` | Sfondo dietro le voci dei comandi shell `!` nella trascrizione |

265> | `memoryBackgroundColor` | Sfondo dietro le voci di memoria `#` nella trascrizione |265> | `memoryBackgroundColor` | Sfondo dietro le voci di memoria `#` nella trascrizione |

266> | `selectionBg` | Sfondo del testo selezionato con il mouse |266> | `selectionBg` | Sfondo del testo selezionato con il mouse |

267> | `composerSidebarBackground` | Sfondo del pannello accanto alla conversazione, come il [pannello diff](https://code.claude.com/docs/it/fullscreen.md#watch-your-changes-in-the-diff-panel) o il [riquadro di un mod](https://code.claude.com/docs/it/plugins/mods/interface.md) |267> | `composerSidebarBackground` | Sfondo del pannello accanto alla conversazione, come il [pannello dei diff](https://code.claude.com/docs/it/fullscreen.md#watch-your-changes-in-the-diff-panel) o il [riquadro di un mod](https://code.claude.com/docs/it/plugins/mods/interface.md) |

268>268>

269> #### Misuratore di utilizzo e etichette degli altoparlanti269> #### Indicatore di utilizzo ed etichette degli interlocutori

270>270>

271> Regola la barra mostrata nella vista `/usage` e le etichette che distinguono i tuoi messaggi da quelli di Claude.271> Regola la barra mostrata nella vista `/usage` e le etichette che distinguono i tuoi messaggi da quelli di Claude.

272>272>

273> | Token | Controlla |273> | Token | Controlla |

274> | :- | :- |274> | :- | :- |

275> | `rate_limit_fill` | Porzione riempita del misuratore di utilizzo |275> | `rate_limit_fill` | Parte riempita dell'indicatore di utilizzo |

276> | `rate_limit_empty` | Porzione non riempita del misuratore di utilizzo |276> | `rate_limit_empty` | Parte non riempita dell'indicatore di utilizzo |

277> | `briefLabelYou` | Colore dell'etichetta `You` sui tuoi messaggi |277> | `briefLabelYou` | Colore dell'etichetta `You` sui tuoi messaggi |

278> | `briefLabelClaude` | Colore dell'etichetta `Claude` sui messaggi dell'assistente |278> | `briefLabelClaude` | Colore dell'etichetta `Claude` sui messaggi dell'assistente |

279>279>

280> #### Varianti shimmer e colori dei subagent280> #### Varianti shimmer e colori dei subagent

281>281>

282> Diversi token hanno una variante shimmer accoppiata che fornisce il colore più chiaro utilizzato nel gradiente animato dello spinner. Sovrascrivi lo shimmer insieme al suo token di base se l'animazione sembra non corrispondere.282> Diversi token hanno una variante shimmer abbinata che fornisce il colore più chiaro usato nel gradiente animato dello spinner. Sovrascrivi la variante shimmer insieme al token di base se l'animazione sembra non coordinata.

283>283>

284> * `claude` e `claudeShimmer`284> * `claude` e `claudeShimmer`

285> * `warning` e `warningShimmer`285> * `warning` e `warningShimmer`


288> * `inactive` e `inactiveShimmer`288> * `inactive` e `inactiveShimmer`

289> * `fastMode` e `fastModeShimmer`289> * `fastMode` e `fastModeShimmer`

290>290>

291> Ogni [subagent](https://code.claude.com/docs/it/sub-agents.md) e attività parallela è mostrato in uno degli otto colori denominati in modo che tu possa distinguerli nella trascrizione. I nomi dei token seguono il modello `<color>_FOR_SUBAGENTS_ONLY`, dove `<color>` è `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, o `cyan`. Sovrascrivi questi per cambiare l'aspetto di ogni colore denominato. Ad esempio, un subagent con `color: blue` nella sua definizione viene disegnato utilizzando il valore `blue_FOR_SUBAGENTS_ONLY`.291> Ogni [subagent](https://code.claude.com/docs/it/sub-agents.md) e attività parallela viene mostrato in uno di otto colori con nome, così puoi distinguerli nella trascrizione. I nomi dei token seguono lo schema `<color>_FOR_SUBAGENTS_ONLY`, dove `<color>` è `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` o `cyan`. Sovrascrivili per cambiare l'aspetto di ciascun colore con nome. Ad esempio, un subagent con `color: blue` nella sua definizione viene disegnato usando il valore di `blue_FOR_SUBAGENTS_ONLY`.

292>292>

293> Quando [`ultrathink`](https://code.claude.com/docs/it/model-config#use-ultrathink-for-one-off-deep-reasoning) può aumentare l'effort di un turno, Claude Code esegue il rendering della parola nell'input del prompt con un gradiente arcobaleno a sette colori. I nomi dei token seguono il modello `rainbow_<color>` e `rainbow_<color>_shimmer`, dove `<color>` è `red`, `orange`, `yellow`, `green`, `blue`, `indigo`, o `violet`.293> Quando [`ultrathink`](https://code.claude.com/docs/it/model-config#use-ultrathink-for-one-off-deep-reasoning) può aumentare l'effort di un turno, Claude Code visualizza la parola nell'input del prompt con un gradiente arcobaleno a sette colori. I nomi dei token seguono lo schema `rainbow_<color>` e `rainbow_<color>_shimmer`, dove `<color>` è `red`, `orange`, `yellow`, `green`, `blue`, `indigo` o `violet`.

294 294 

295## Passa al rendering a schermo intero295## Passa al rendering a schermo intero

296 296 


324 324 

325## Incollare contenuti di grandi dimensioni325## Incollare contenuti di grandi dimensioni

326 326 

327Quando incollate più di 800 caratteri o più di tre righe nel prompt, Claude Code comprime l'input in un segnaposto come `[Pasted text #1 +120 lines]` in modo che la casella di input rimanga utilizzabile e invia comunque il contenuto completo quando inviate. Per input molto grandi come interi file o log lunghi, scrivete il contenuto in un file e chiedete a Claude di leggerlo invece di incollare. La trascrizione della conversazione rimane leggibile e Claude può fare riferimento al file per percorso nei turni successivi. Il terminale integrato di VS Code può anche perdere caratteri da incollamenti molto grandi prima che raggiungano Claude Code, quindi utilizzate un file lì.327Quando incolli più di 800 caratteri o più di tre righe nel prompt, Claude Code comprime l'input in un segnaposto come `[Pasted text #1 +120 lines]` in modo che la casella di input resti utilizzabile, e invia comunque il contenuto completo quando lo invii. Per input molto grandi, come interi file o log lunghi, scrivi il contenuto in un file e chiedi a Claude di leggerlo invece di incollarlo. La trascrizione della conversazione resta leggibile e Claude può fare riferimento al file tramite il suo percorso nei turni successivi. Il terminale integrato di VS Code può inoltre perdere caratteri da operazioni di incolla molto grandi prima che raggiungano Claude Code, quindi in quel caso usa un file.

328 328 

329Se l'incollamento contiene [caratteri Unicode invisibili](https://code.claude.com/docs/it/interactive-mode.md#invisible-characters-in-prompts), Claude Code li rimuove quando premete Invio e rimette il prompt pulito nella casella di input affinché lo inviate con un altro Invio.329Se il testo incollato contiene [caratteri Unicode invisibili](https://code.claude.com/docs/it/interactive-mode.md#invisible-characters-in-prompts), Claude Code li rimuove quando premi Enter e rimette il prompt ripulito nella casella di input, così puoi inviarlo con un altro Enter.

330 330 

331### Come Claude tratta il testo incollato331### Come Claude tratta il testo incollato

332 332 

333Quando inviate, Claude vede il contenuto dietro ogni segnaposto `[Pasted text #N]` contrassegnato come testo che avete incollato da qualche parte piuttosto che digitato. Claude è informato che un incollamento può contenere istruzioni che non avete scritto e deve seguire le istruzioni al suo interno solo dove il messaggio che avete digitato lo chiede. Nelle sessioni che non [recuperano i flag delle funzionalità](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), gli incollamenti non sono contrassegnati.333Quando invii, Claude vede il contenuto dietro ogni segnaposto `[Pasted text #N]` contrassegnato come testo che hai incollato da un'altra fonte anziché digitato. A Claude viene detto che un testo incollato può contenere istruzioni che non hai scritto tu, e di seguire le istruzioni al suo interno solo dove il messaggio che hai digitato glielo chiede. Nelle sessioni che non [recuperano i feature flag](https://code.claude.com/docs/it/env-vars.md#features-that-need-feature-flag-fetching), i testi incollati non vengono contrassegnati.

334 334 

335### Eliminare e ripristinare un incollamento compresso335### Eliminare e ripristinare un testo incollato compresso

336 336 

337Quando eliminate con una scorciatoia da tastiera di parola o riga come `Ctrl+W` o `Ctrl+K`, o con un'eliminazione vim attraverso un movimento `f`/`t` come `df]`, e l'intervallo eliminato raggiunge l'interno di un segnaposto `[Pasted text #N]`, Claude Code rimuove il segnaposto completamente. Per ripristinarlo, incollate l'eliminazione con [`Ctrl+Y`](https://code.claude.com/docs/it/interactive-mode#text-editing) dopo una scorciatoia da tastiera di parola o riga, o con [`p` in NORMAL mode](https://code.claude.com/docs/it/interactive-mode#editing-normal-mode) dopo un'eliminazione vim.337Quando elimini con una scorciatoia per parola o per riga come `Ctrl+W` o `Ctrl+K`, oppure con un'eliminazione vim tramite un movimento `f`/`t` come `df]`, e l'intervallo eliminato arriva all'interno di un segnaposto `[Pasted text #N]`, Claude Code rimuove l'intero segnaposto. Per ripristinarlo, incolla di nuovo il testo eliminato con [`Ctrl+Y`](https://code.claude.com/docs/it/interactive-mode#text-editing) dopo una scorciatoia per parola o per riga, oppure con [`p` in modalità NORMAL](https://code.claude.com/docs/it/interactive-mode#editing-normal-mode) dopo un'eliminazione vim.

338 338 

339### Richiamare un prompt che aveva testo incollato339### Richiamare un prompt che conteneva testo incollato

340 340 

341Claude Code mantiene il contenuto dietro ogni segnaposto `[Pasted text #N]` in `~/.claude/paste-cache/`, quindi quando richiamate un prompt dalla [cronologia dei comandi](https://code.claude.com/docs/it/interactive-mode.md#command-history) e lo reinviate, il contenuto incollato completo viene inviato di nuovo, incluso in una sessione successiva.341Claude Code conserva il contenuto dietro ogni segnaposto `[Pasted text #N]` in `~/.claude/paste-cache/`, quindi quando richiami un prompt dalla [cronologia dei comandi](https://code.claude.com/docs/it/interactive-mode.md#command-history) e lo invii di nuovo, il contenuto incollato completo viene inviato di nuovo, anche in una sessione successiva.

342 342 

343I file della cache più vecchi di [`cleanupPeriodDays`](https://code.claude.com/docs/it/settings-reference#cleanupperioddays) vengono eliminati secondo le [regole di scansione di conservazione](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), quindi un prompt richiamato può fare riferimento a testo incollato che non esiste più. Quando inviate un prompt di questo tipo, Claude Code non invia mai la stringa letterale `[Pasted text #N]` e mostra una notifica che nomina l'incollamento mancante:343I file della cache più vecchi di [`cleanupPeriodDays`](https://code.claude.com/docs/it/settings-reference#cleanupperioddays) vengono eliminati secondo le [regole di pulizia per la conservazione](https://code.claude.com/docs/it/claude-directory.md#cleaned-up-automatically), quindi un prompt richiamato può fare riferimento a testo incollato che non esiste più. Quando invii un prompt di questo tipo, Claude Code non invia mai la stringa letterale `[Pasted text #N]` e mostra una notifica che indica il testo incollato mancante:

344 344 

345* In un prompt semplice con testo rimanente, Claude Code rimuove il segnaposto e invia il testo rimanente.345* In un prompt semplice in cui rimane del testo, Claude Code rimuove il segnaposto e invia il testo rimanente.

346* In un comando [shell mode](https://code.claude.com/docs/it/interactive-mode.md#shell-mode-with-prefix) o in un comando `/`, dove la rimozione cambierebbe ciò che viene eseguito, e in qualsiasi prompt la cui rimozione lascia vuoto, Claude Code annulla l'invio e mantiene il testo originale nell'input, con il segnaposto ancora in esso. Eliminate il segnaposto o modificate il comando, quindi reinviate.346* In un comando in [modalità shell](https://code.claude.com/docs/it/interactive-mode.md#shell-mode-with-prefix) o in un comando `/`, dove la rimozione cambierebbe ciò che viene eseguito, e in qualsiasi prompt che la rimozione lascerebbe vuoto, Claude Code annulla l'invio e mantiene il testo originale nell'input, con il segnaposto ancora presente. Elimina il segnaposto o modifica il comando, poi invia di nuovo.

347 347 

348## Modificare i prompt con le scorciatoie da tastiera di Vim348## Modificare i prompt con le scorciatoie da tastiera di Vim

349 349 

350Claude Code include una modalità di editing in stile Vim per l'input del prompt. Abilitatela tramite `/config` → Editor mode, oppure impostando [`editorMode`](https://code.claude.com/docs/it/settings-reference#editormode) su `"vim"` in `~/.claude/settings.json`. Impostate Editor mode di nuovo su `normal` per disabilitarla.350Claude Code include una modalità di modifica in stile Vim per l'input del prompt. Attivala tramite `/config` → Editor mode, oppure impostando [`editorMode`](https://code.claude.com/docs/it/settings-reference#editormode) su `"vim"` in `~/.claude/settings.json`. Reimposta Editor mode su `normal` per disattivarla.

351 351 

352La modalità Vim supporta un sottoinsieme di movimenti e operatori in modalità NORMAL e VISUAL, come la navigazione `hjkl`, la selezione `v`/`V`, e `d`/`c`/`y` con text object. Consultate la [tabella completa delle scorciatoie da tastiera della modalità editor Vim](https://code.claude.com/docs/it/interactive-mode.md#vim-editor-mode) per la tabella completa dei tasti.352La modalità Vim supporta un sottoinsieme di movimenti e operatori delle modalità NORMAL e VISUAL, come la navigazione con `hjkl`, la selezione con `v`/`V` e `d`/`c`/`y` con gli oggetti di testo. Consulta il [riferimento della modalità editor Vim](https://code.claude.com/docs/it/interactive-mode.md#vim-editor-mode) per la tabella completa dei tasti.

353 353 

354I movimenti di Vim non sono rimappabili tramite il file delle scorciatoie da tastiera. Per mappare una sequenza in modalità INSERT a due tasti come `jj` su Escape, impostate [`vimInsertModeRemaps`](https://code.claude.com/docs/it/interactive-mode#remap-insert-mode-key-sequences) nelle impostazioni utente.354I movimenti di Vim non sono rimappabili tramite il file delle scorciatoie da tastiera. Per mappare una sequenza di due tasti in modalità INSERT come `jj` su Escape, imposta [`vimInsertModeRemaps`](https://code.claude.com/docs/it/interactive-mode#remap-insert-mode-key-sequences) nelle tue impostazioni utente.

355 355 

356Premere Invio continua a inviare il vostro prompt in modalità INSERT, a differenza del Vim standard. Utilizzate `o` oppure `O` in modalità NORMAL, o Ctrl+J, per inserire una nuova riga.356Premendo Enter in modalità INSERT il prompt viene comunque inviato, a differenza di Vim standard. Per inserire invece un a capo, usa `o` o `O` in modalità NORMAL, oppure Ctrl+J.

357 357 

358## Related resources358## Risorse correlate

359 359 

360* [Interactive mode](https://code.claude.com/docs/it/interactive-mode.md): riferimento completo delle scorciatoie da tastiera e la tabella dei tasti Vim360* [Modalità interattiva](https://code.claude.com/docs/it/interactive-mode.md): riferimento completo delle scorciatoie da tastiera e tabella dei tasti Vim

361* [Keybindings](https://code.claude.com/docs/it/keybindings.md): rimappa qualsiasi scorciatoia di Claude Code, inclusi Invio e Shift+Invio361* [Scorciatoie da tastiera](https://code.claude.com/docs/it/keybindings.md): rimappa qualsiasi scorciatoia di Claude Code, incluse Enter e Shift+Enter

362* [Fullscreen rendering](https://code.claude.com/docs/it/fullscreen.md): dettagli su scorrimento, ricerca e copia in modalità fullscreen362* [Rendering a schermo intero](https://code.claude.com/docs/it/fullscreen.md): dettagli su scorrimento, ricerca e copia nella modalità a schermo intero

363* [Hooks guide](https://code.claude.com/docs/it/hooks-guide.md): altri esempi di hook Notification per Linux e Windows363* [Guida agli hook](https://code.claude.com/docs/it/hooks-guide.md): altri esempi di hook Notification per Linux e Windows

364* [Troubleshooting](https://code.claude.com/docs/it/troubleshooting.md): correzioni per problemi al di fuori della configurazione del terminale364* [Risoluzione dei problemi](https://code.claude.com/docs/it/troubleshooting.md): soluzioni per problemi non legati alla configurazione del terminale

Details

1104 1104 

1105## Accesso e autenticazione1105## Accesso e autenticazione

1106 1106 

1107Queste sezioni affrontano i fallimenti di accesso, gli errori OAuth e i problemi di token.1107Queste sezioni trattano errori di accesso, errori OAuth e problemi con i token.

1108 1108 

1109### Reimposta il tuo accesso1109### Reimposta l'accesso

1110 1110 

1111Quando l'accesso non riesce e la causa non è ovvia, una re-autenticazione pulita risolve la maggior parte dei casi:1111Quando l'accesso non riesce e la causa non è chiara, una nuova autenticazione pulita risolve la maggior parte dei casi:

1112 1112 

11131. Esegui `/logout` per disconnetterti completamente11131. Esegui `/logout` per uscire completamente

11142. Chiudi Claude Code11142. Chiudi Claude Code

11153. Riavvia con `claude` e completa di nuovo il processo di autenticazione11153. Riavvia con `claude` e completa di nuovo il processo di autenticazione

1116 1116 

1117Se il browser non si apre automaticamente durante l'accesso, premi `c` per copiare l'URL OAuth negli appunti, quindi incollalo in un browser manualmente. Questo funziona anche quando l'URL si avvolge su più righe in un terminale stretto o SSH e non può essere cliccato direttamente.1117Se il browser non si apre automaticamente durante l'accesso, premi `c` per copiare l'URL OAuth negli appunti, quindi incollalo manualmente in un browser. Questo funziona anche quando l'URL va a capo su più righe in un terminale stretto o SSH e non può essere cliccato direttamente.

1118 1118 

1119### Errore OAuth: codice non valido1119### OAuth error: Invalid code

1120 1120 

1121Se vedi `OAuth error: Invalid code. Please make sure the full code was copied`, il codice di accesso è scaduto o è stato troncato durante il copia-incolla.1121Se vedi `OAuth error: Invalid code. Please make sure the full code was copied`, il codice di accesso è scaduto o è stato troncato durante il copia-incolla.

1122 1122 

1123**Soluzioni:**1123**Soluzioni:**

1124 1124 

1125* Premi Invio per riprovare e completa l'accesso rapidamente dopo che il browser si apre1125* Premi Enter per riprovare e completa rapidamente l'accesso dopo l'apertura del browser

1126* Digita `c` per copiare l'URL completo se il browser non si apre automaticamente1126* Digita `c` per copiare l'URL completo se il browser non si apre automaticamente

1127* Se usi una sessione remota/SSH, il browser potrebbe aprirsi sulla macchina sbagliata. Copia l'URL visualizzato nel terminale e aprilo nel tuo browser locale invece.1127* Se usi una sessione remota/SSH, il browser potrebbe aprirsi sulla macchina sbagliata. Copia invece l'URL visualizzato nel terminale e aprilo nel tuo browser locale.

1128 1128 

1129### 403 Forbidden dopo l'accesso1129### 403 Forbidden dopo l'accesso

1130 1130 

1131Se vedi `API Error: 403 Request not allowed` dopo l'accesso:1131Se vedi `API Error: 403 Request not allowed` dopo aver effettuato l'accesso:

1132 1132 

1133* **Utenti Claude Pro/Max**: verifica che il tuo abbonamento sia attivo in [claude.ai/settings](https://claude.ai/settings)1133* **Utenti Claude Pro/Max**: verifica che il tuo abbonamento sia attivo su [claude.ai/settings](https://claude.ai/settings)

1134* **Utenti della Console Anthropic**: conferma che il tuo account ha il ruolo "Claude Code" o "Developer". Gli amministratori lo assegnano nella pagina Members della Console all'indirizzo [platform.claude.com/settings/members](https://platform.claude.com/settings/members).1134* **Utenti di Anthropic Console**: conferma che il tuo account abbia il ruolo "Claude Code" o "Developer". Gli amministratori lo assegnano nella pagina Members della Console su [platform.claude.com/settings/members](https://platform.claude.com/settings/members).

1135* **Dietro un proxy**: i proxy aziendali possono interferire con le richieste API. Vedi [configurazione di rete](https://code.claude.com/docs/it/network-config.md) per la configurazione del proxy.1135* **Dietro un proxy**: i proxy aziendali possono interferire con le richieste API. Consulta [configurazione di rete](https://code.claude.com/docs/it/network-config.md) per la configurazione del proxy.

1136 1136 

1137### Claude Code access has not been granted for this account1137### Claude Code access has not been granted for this account

1138 1138 

1139Se la pagina di accesso mostra `Authorization failed` con il messaggio `Claude Code access has not been granted for this account. Contact your administrator.` dopo che accedi da Claude Code, la tua organizzazione Claude Enterprise ha impostato il tuo ruolo su Custom e nessuno dei [custom roles](https://support.claude.com/en/articles/13930452) assegnati ai tuoi gruppi concede l'accesso a Claude Code. Nel ruolo Custom, ottieni l'accesso solo da quei custom roles, quindi nulla di quello che cambi in Claude Code risolve questo errore.1139Se la pagina di accesso mostra `Authorization failed` con il messaggio `Claude Code access has not been granted for this account. Contact your administrator.` dopo che hai effettuato l'accesso da Claude Code, la tua organizzazione Claude Enterprise ha impostato il tuo ruolo su Custom e nessuno dei [ruoli personalizzati](https://support.claude.com/en/articles/13930452) assegnati ai tuoi gruppi concede Claude Code. Con il ruolo Custom, ottieni l'accesso solo da quei ruoli personalizzati, quindi nulla di ciò che modifichi in Claude Code risolve questo errore.

1140 1140 

1141Per ottenere l'accesso:1141Per ottenere l'accesso:

1142 1142 

11431. Chiedi a un Owner della tua organizzazione Claude di assegnare un custom role che conceda l'accesso a Claude Code a uno dei tuoi gruppi, o di cambiare il tuo ruolo da Custom a un ruolo standard come User. Gli Owner gestiscono i ruoli nelle [impostazioni dei ruoli](https://claude.ai/admin-settings/roles) dell'organizzazione.11431. Chiedi a un Owner della tua organizzazione Claude di assegnare a uno dei tuoi gruppi un ruolo personalizzato che conceda l'accesso a Claude Code, oppure di cambiare il tuo ruolo da Custom a un ruolo standard come User. Gli Owner gestiscono i ruoli nelle [impostazioni dei ruoli](https://claude.ai/admin-settings/roles) dell'organizzazione.

11442. Dopo che l'Owner apporta il cambiamento, esegui `claude` e accedi di nuovo.11442. Dopo che l'Owner ha apportato la modifica, esegui `claude` e accedi di nuovo.

1145 1145 

1146### Questa organizzazione è stata disabilitata con un abbonamento attivo1146### This organization has been disabled con un abbonamento attivo

1147 1147 

1148Se vedi `API Error: 400 ... "This organization has been disabled"` nonostante tu abbia un abbonamento Claude attivo, una variabile d'ambiente `ANTHROPIC_API_KEY` sta sostituendo il tuo abbonamento. Questo accade comunemente quando una vecchia chiave API da un precedente datore di lavoro o progetto è ancora impostata nel tuo profilo shell.1148Se vedi `API Error: 400 ... "This organization has been disabled"` nonostante tu abbia un abbonamento Claude attivo, una variabile d'ambiente `ANTHROPIC_API_KEY` sta sovrascrivendo il tuo abbonamento. Questo accade comunemente quando una vecchia chiave API di un precedente datore di lavoro o progetto è ancora impostata nel profilo della tua shell.

1149 1149 

1150Quando `ANTHROPIC_API_KEY` è presente e l'hai approvato, Claude Code utilizza quella chiave invece delle credenziali OAuth del tuo abbonamento. In modalità non interattiva con il flag `-p`, la chiave viene sempre utilizzata quando presente. Vedi [precedenza di autenticazione](https://code.claude.com/docs/it/authentication.md#authentication-precedence) per l'ordine di risoluzione completo.1150Quando `ANTHROPIC_API_KEY` è presente e l'hai approvata, Claude Code usa quella chiave invece delle credenziali OAuth del tuo abbonamento. In modalità non interattiva con il flag `-p`, la chiave viene sempre usata quando è presente. Consulta [precedenza dell'autenticazione](https://code.claude.com/docs/it/authentication.md#authentication-precedence) per l'ordine di risoluzione completo.

1151 1151 

1152Per usare il tuo abbonamento invece, annulla l'impostazione della variabile d'ambiente e rimuovila dal tuo profilo shell:1152Per usare invece il tuo abbonamento, rimuovi l'impostazione della variabile d'ambiente ed eliminala dal profilo della tua shell:

1153 1153 

1154**macOS/Linux**1154**macOS/Linux**

1155 1155 


1165claude1165claude

1166```1166```

1167 1167 

1168Controlla `~/.zshrc`, `~/.bashrc`, o `~/.profile` per le righe `export ANTHROPIC_API_KEY=...` e rimuovile per rendere il cambiamento permanente. Su Windows, controlla il tuo profilo PowerShell in `$PROFILE` e le tue variabili d'ambiente dell'utente per `ANTHROPIC_API_KEY`. Esegui `/status` all'interno di Claude Code per confermare quale metodo di autenticazione è attivo.1168Controlla `~/.zshrc`, `~/.bashrc` o `~/.profile` per righe `export ANTHROPIC_API_KEY=...` e rimuovile per rendere permanente la modifica. Su Windows, controlla il tuo profilo PowerShell in `$PROFILE` e le variabili d'ambiente utente per `ANTHROPIC_API_KEY`. Esegui `/status` all'interno di Claude Code per confermare quale metodo di autenticazione è attivo.

1169 1169 

1170### L'accesso OAuth non riesce in WSL2, SSH o container1170### L'accesso OAuth non riesce in WSL2, SSH o container

1171 1171 

1172Quando Claude Code viene eseguito in WSL2, su una macchina remota tramite SSH, o all'interno di un container, il browser di solito si apre su un host diverso e il suo reindirizzamento non può raggiungere il server di callback locale di Claude Code. Dopo che accedi, il browser mostra un codice di accesso invece di reindirizzare automaticamente. Incolla quel codice nel terminale al prompt `Paste code here if prompted` per completare l'accesso.1172Se non si apre alcun browser, oppure il browser ti fa accedere e poi mostra un errore di connessione per un indirizzo `localhost`, puoi completare l'accesso senza risolvere nessuno dei due problemi. Accedi invece tramite l'URL di accesso separato che il terminale mostra sopra il suo prompt di incolla:

1173 1173 

1174Se il browser non si apre affatto da WSL2, imposta la variabile d'ambiente `BROWSER` al percorso del tuo browser Windows:1174**1. Copia l'URL di accesso**

1175 1175 

1176```bash theme={null}1176Al prompt di accesso interattivo, premi `c` per copiare l'URL, oppure selezionalo nel terminale. Con `claude auth login`, copia l'URL che stampa.

1177export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"1177 

1178claude1178**2. Accedi tramite quell'URL**

1179```1179 

1180Apri l'URL in un browser sulla tua macchina locale e accedi. Il browser mostra quindi un codice invece di tornare a `localhost`.

1181 

1182**3. Incolla il codice**

1180 1183 

1181In alternativa, premi `c` al prompt di accesso interattivo per copiare l'URL OAuth, o copia l'URL che `claude auth login` stampa, e aprilo in un browser sulla tua macchina locale.1184Incolla quel codice nel terminale al prompt che inizia con `Paste code here`.

1182 1185 

1183Se incollare il codice nel prompt interattivo non fa nulla, il binding di incolla del tuo terminale probabilmente non sta raggiungendo il campo di input. Prova il collegamento di incolla alternativo del tuo terminale, spesso clic destro o Maiusc+Inserisci in Windows Terminal, o usa `claude auth login` invece, che legge il codice incollato dall'input standard:1186Se incollare il codice nel prompt interattivo non ha alcun effetto, probabilmente la scorciatoia di incolla del tuo terminale non raggiunge il campo di input. Prova la scorciatoia di incolla alternativa del tuo terminale, spesso il clic destro o Shift+Insert in Windows Terminal, oppure usa invece `claude auth login`, che legge il codice incollato dallo standard input:

1184 1187 

1185```bash theme={null}1188```bash theme={null}

1186claude auth login1189claude auth login

1187```1190```

1188 1191 

1189Questo fallback si applica anche su Windows nativo o su qualsiasi terminale in cui l'incollamento nel prompt interattivo non riesce.1192Questo fallback si applica anche su Windows nativo o in qualsiasi terminale in cui incollare nel prompt interattivo non funziona.

1193 

1194Su WSL2, se non si è aperto alcun browser, puoi anche permettere a Claude Code di aprire il tuo browser Windows la volta successiva impostando la variabile d'ambiente `BROWSER` sul percorso di quel browser:

1195 

1196```bash theme={null}

1197export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"

1198claude

1199```

1190 1200 

1191### Non connesso o token scaduto1201### Accesso non effettuato o token scaduto

1192 1202 

1193Se Claude Code ti chiede di accedere di nuovo dopo una sessione, il tuo token OAuth potrebbe essere scaduto.1203Se Claude Code ti chiede di accedere di nuovo dopo una sessione, il tuo token OAuth potrebbe essere scaduto.

1194 1204 

1195Esegui `/login` per re-autenticarti. Se questo accade frequentemente, controlla che l'orologio di sistema sia accurato, poiché la convalida del token dipende da timestamp corretti.1205Esegui `/login` per autenticarti di nuovo. Se questo accade spesso, verifica che l'orologio di sistema sia preciso, poiché la convalida dei token dipende da timestamp corretti.

1196 1206 

1197Le sessioni parallele su una macchina condividono un accesso salvato e coordinano il suo rinnovo in modo che solo un processo aggiorni il token alla volta. Per sapere cosa fanno le altre sessioni dopo che accedi di nuovo in una di esse, vedi [Non connesso](https://code.claude.com/docs/it/errors.md#not-logged-in).1207Le sessioni parallele su una stessa macchina condividono un accesso salvato e ne coordinano il rinnovo in modo che un solo processo alla volta aggiorni il token. Per sapere cosa fanno le altre sessioni dopo che accedi di nuovo in una di esse, consulta [Not logged in](https://code.claude.com/docs/it/errors.md#not-logged-in).

1198 1208 

1199Prima della v2.1.211, il risveglio della macchina dal sonno poteva causare a due sessioni di rinnovare con lo stesso token, il che revocava l'accesso salvato e richiedeva a ogni sessione aperta di accedere di nuovo contemporaneamente.1209Prima della v2.1.211, riattivare la macchina dalla sospensione poteva far sì che due sessioni eseguissero il rinnovo con lo stesso token, il che revocava l'accesso salvato e chiedeva a tutte le sessioni aperte di accedere di nuovo contemporaneamente.

1200 1210 

1201Su macOS, Claude Code salva le credenziali nel Keychain di accesso. Quando il Keychain rifiuta la scrittura, ad esempio quando è bloccato in una sessione SSH o la sua password non è sincronizzata con la password del tuo account, Claude Code salva il tuo accesso nel file di testo semplice `~/.claude/.credentials.json` invece. Un accesso alla Console che crea una chiave API non riesce finché il Keychain non è di nuovo scrivibile.1211Su macOS, Claude Code salva le credenziali nel Keychain login. Quando il Keychain rifiuta la scrittura, ad esempio quando è bloccato in una sessione SSH o la sua password non è sincronizzata con la password del tuo account, Claude Code salva invece il tuo accesso nel file in chiaro `~/.claude/.credentials.json`. Un accesso alla Console che crea una chiave API non riesce finché il Keychain non è di nuovo scrivibile.

1202 1212 

1203Per rendere il Keychain scrivibile di nuovo e spostare il tuo accesso nel Keychain crittografato:1213Per rendere di nuovo scrivibile il Keychain e riportare il tuo accesso nel Keychain crittografato:

1204 1214 

1205**1. Controlla l'accesso al Keychain**1215**1. Verifica l'accesso al Keychain**

1206 1216 

1207Esegui `claude doctor` per controllare l'accesso al Keychain. Quando il Keychain rifiuta le scritture, il rapporto elenca un avviso che inizia con `macOS Keychain is not writable`, seguito da una correzione suggerita. Quando il rapporto non elenca alcun avviso del Keychain, il Keychain è scrivibile e puoi saltare all'ultimo passaggio.1217Esegui `claude doctor` per verificare l'accesso al Keychain. Quando il Keychain rifiuta le scritture, il report elenca un avviso che inizia con `macOS Keychain is not writable`, seguito da una correzione suggerita. Quando il report non elenca alcun avviso relativo al Keychain, il Keychain è scrivibile e puoi passare direttamente all'ultimo passaggio.

1208 1218 

1209**2. Sblocca il Keychain**1219**2. Sblocca il Keychain**

1210 1220 


1212security unlock-keychain ~/Library/Keychains/login.keychain-db1222security unlock-keychain ~/Library/Keychains/login.keychain-db

1213```1223```

1214 1224 

1215Inserisci la tua password del Keychain quando il comando la richiede, quindi esegui di nuovo `claude doctor`. Quando lo sblocco ha funzionato, il rapporto non elenca più l'avviso del Keychain.1225Inserisci la password del Keychain quando il comando la richiede, quindi esegui di nuovo `claude doctor`. Se lo sblocco ha funzionato, il report non elenca più l'avviso relativo al Keychain.

1216 1226 

1217**3. Risincronizza la password del Keychain se lo sblocco non aiuta**1227**3. Risincronizza la password del Keychain se lo sblocco non aiuta**

1218 1228 

1219Apri Accesso Portachiavi, seleziona il keychain `login`, e scegli **Modifica > Cambia password per Portachiavi "login"** per risincronizzarlo con la password del tuo account. Quindi esegui di nuovo `claude doctor`. Procedi al passaggio successivo una volta che il rapporto non elenca più l'avviso del Keychain.1229Apri Accesso Portachiavi, seleziona il portachiavi `login` e scegli **Edit > Change Password for Keychain "login"** per risincronizzarlo con la password del tuo account. Quindi esegui di nuovo `claude doctor`. Passa al passaggio successivo quando il report non elenca più l'avviso relativo al Keychain.

1220 1230 

1221**4. Esci e accedi di nuovo**1231**4. Esci e accedi di nuovo**

1222 1232 

1223Una volta che il Keychain è di nuovo scrivibile, Claude Code sposta le credenziali indietro la prossima volta che scrive una credenziale. Per forzarlo ora, esegui `/logout` e poi `/login`. L'uscita rimuove tutte le credenziali archiviate, inclusi i contenuti del file di testo semplice, gli accessi ai server MCP salvati e i valori sensibili dei plugin, quindi aspettati di re-autorizzare i server MCP e re-inserire i segreti dei plugin in seguito. L'accesso di nuovo archivia il tuo accesso nel Keychain.1233Una volta che il Keychain è di nuovo scrivibile, Claude Code vi riporta le credenziali la prossima volta che scrive una credenziale. Per forzarlo subito, esegui `/logout` e poi `/login`. L'uscita rimuove tutte le credenziali memorizzate, inclusi il contenuto del file in chiaro, gli accessi salvati ai server MCP e i valori sensibili dei plugin, quindi dovrai autorizzare di nuovo i server MCP e reinserire i segreti dei plugin. Accedendo di nuovo, il tuo accesso viene memorizzato nel Keychain.

1224 1234 

1225### Credenziali Bedrock, Agent Platform o Foundry non caricate1235### Le credenziali di Bedrock, Agent Platform o Foundry non vengono caricate

1226 1236 

1227Se hai configurato Claude Code per usare un provider cloud e vedi `Could not load credentials from any providers` su Amazon Bedrock, `Could not load the default credentials` su Google Cloud's Agent Platform, o `ChainedTokenCredential authentication failed` su Microsoft Foundry, la tua CLI del provider cloud probabilmente non è autenticata nella shell corrente.1237Se hai configurato Claude Code per usare un provider cloud e vedi `Could not load credentials from any providers` su Amazon Bedrock, `Could not load the default credentials` su Agent Platform di Google Cloud, oppure `ChainedTokenCredential authentication failed` su Microsoft Foundry, probabilmente la CLI del tuo provider cloud non è autenticata nella shell corrente.

1228 1238 

1229Per Amazon Bedrock, conferma che le tue credenziali AWS sono valide:1239Per Amazon Bedrock, conferma che le tue credenziali AWS siano valide:

1230 1240 

1231```bash theme={null}1241```bash theme={null}

1232aws sts get-caller-identity1242aws sts get-caller-identity

1233```1243```

1234 1244 

1235Per Google Cloud's Agent Platform, conferma che `ANTHROPIC_VERTEX_PROJECT_ID` e `CLOUD_ML_REGION` sono impostati nella tua shell, quindi imposta le credenziali predefinite dell'applicazione:1245Per Agent Platform di Google Cloud, conferma che `ANTHROPIC_VERTEX_PROJECT_ID` e `CLOUD_ML_REGION` siano impostate nella tua shell, quindi imposta le credenziali predefinite dell'applicazione:

1236 1246 

1237```bash theme={null}1247```bash theme={null}

1238gcloud auth application-default login1248gcloud auth application-default login

1239```1249```

1240 1250 

1241Per Microsoft Foundry, conferma che `ANTHROPIC_FOUNDRY_API_KEY` è impostato, o accedi con l'interfaccia della riga di comando di Azure in modo che la catena di credenziali predefinita possa trovare il tuo account:1251Per Microsoft Foundry, conferma che `ANTHROPIC_FOUNDRY_API_KEY` sia impostata, oppure accedi con la Azure CLI in modo che la catena di credenziali predefinita possa trovare il tuo account:

1242 1252 

1243```bash theme={null}1253```bash theme={null}

1244az login1254az login

1245```1255```

1246 1256 

1247Se le credenziali funzionano nel tuo terminale ma non nell'estensione VS Code o JetBrains, il processo IDE probabilmente non ha ereditato il tuo ambiente shell. Imposta le variabili d'ambiente del provider nelle impostazioni dell'IDE stesso, o avvia l'IDE da un terminale dove sono già esportate.1257Se le credenziali funzionano nel tuo terminale ma non nell'estensione VS Code o JetBrains, probabilmente il processo dell'IDE non ha ereditato l'ambiente della tua shell. Imposta le variabili d'ambiente del provider nelle impostazioni dell'IDE stesso, oppure avvia l'IDE da un terminale in cui sono già esportate.

1248 1258 

1249Vedi [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/it/google-vertex-ai.md), o [Microsoft Foundry](https://code.claude.com/docs/it/microsoft-foundry.md) per la configurazione completa del provider.1259Consulta [Amazon Bedrock](https://code.claude.com/docs/it/amazon-bedrock.md), [Agent Platform di Google Cloud](https://code.claude.com/docs/it/google-vertex-ai.md) o [Microsoft Foundry](https://code.claude.com/docs/it/microsoft-foundry.md) per la configurazione completa del provider.

1250 1260 

1251## Ancora bloccato1261## Ancora bloccato

1252 1262 

ultrareview.md +19 −19

Details

147 147 

148## Eseguire ultrareview in modo non interattivo148## Eseguire ultrareview in modo non interattivo

149 149 

150Usa il sottocomando `claude ultrareview` per avviare un ultrareview da CI o da uno script senza una sessione interattiva. Il sottocomando avvia la stessa review di `/code-review ultra`, resta in attesa finché la review remota non termina e stampa i risultati su stdout. Se l'esecuzione termina con `Error: Workspace not trusted`, consulta [Dare fiducia alla cartella prima che la review venga eseguita](#trust-the-folder-before-the-review-runs).150Usa il sottocomando `claude ultrareview` per avviare un ultrareview da CI o da uno script senza una sessione interattiva. Il sottocomando avvia la stessa revisione di `/code-review ultra`, resta in attesa finché la revisione remota non termina e stampa i risultati su stdout. Se l'esecuzione termina con `Error: Workspace not trusted`, consulta [Considerare attendibile la cartella prima dell'esecuzione della revisione](#trust-the-folder-before-the-review-runs).

151 151 

152```bash theme={null}152```bash theme={null}

153claude ultrareview153claude ultrareview


155claude ultrareview origin/main155claude ultrareview origin/main

156```156```

157 157 

158Senza argomenti, il sottocomando esamina il diff tra il tuo branch corrente e il branch predefinito, con lo stesso [fallback sull'intero repository](#diff-limits-and-fallbacks) di `/code-review ultra` quando non esiste una merge base. Passa un numero di PR per [esaminare una pull request su `github.com`](#review-a-pull-request), oppure un branch di base per eseguire la review rispetto a esso; la [gestione del branch di base](#review-against-a-different-base) corrisponde a quella del comando interattivo.158Senza argomenti, il sottocomando esamina il diff tra il tuo branch corrente e il branch predefinito, con lo stesso [fallback sull'intero repository](#diff-limits-and-fallbacks) di `/code-review ultra` quando non esiste una merge base. Passa un numero di PR per [esaminare una pull request su `github.com`](#review-a-pull-request), oppure un branch di base per eseguire la revisione rispetto a quello; la [gestione del branch di base](#review-against-a-different-base) corrisponde a quella del comando interattivo.

159 159 

160Quando esegui il sottocomando, acconsenti al fallback sull'intero repository e al prompt su fatturazione e termini, quindi l'esecuzione non si ferma a chiederti conferma. È il fatto di eseguirlo tu stesso a valere come consenso. Quando invece è Claude a eseguire il sottocomando per te, ad esempio tramite lo strumento Bash, Claude Code rifiuta la review dell'intero repository.160Quando esegui il sottocomando, acconsenti al fallback sull'intero repository e alla richiesta di conferma su fatturazione e termini, quindi l'esecuzione non si interrompe per chiederne la conferma. È il fatto di eseguirlo tu stesso a valere come consenso. Quando invece è Claude a eseguire il sottocomando per te, ad esempio tramite lo strumento Bash, Claude Code rifiuta la revisione dell'intero repository.

161 161 

162> [!NOTE]162> [!NOTE]

163>163>

164> `claude -p '/code-review ultra'` non ti restituisce i risultati, quindi negli script usa `claude ultrareview`. L'esecuzione con `-p` avvia la review nel cloud ed esce senza attenderla. Quando la review addebiterebbe crediti di utilizzo, l'esecuzione con `-p` si interrompe senza avviarla.164> `claude -p '/code-review ultra'` non ti restituisce i risultati, quindi negli script usa `claude ultrareview`. L'esecuzione con `-p` avvia la revisione nel cloud ed esce senza attenderla. Quando la revisione addebiterebbe crediti di utilizzo, l'esecuzione con `-p` si interrompe senza avviarla.

165 165 

166| Flag | Descrizione |166| Flag | Descrizione |

167| - | - |167| - | - |

168| `--json` | Stampa il payload `bugs.json` grezzo invece dei risultati formattati |168| `--json` | Stampa il payload `bugs.json` grezzo invece dei risultati formattati |

169| `--timeout <minutes>` | Numero massimo di minuti di attesa per il completamento della review. Il valore predefinito è 45 |169| `--timeout <minutes>` | Numero massimo di minuti di attesa per il completamento della revisione. Il valore predefinito è 45 |

170| `--post` | [Pubblica i risultati finali](#post-findings-to-the-pull-request) sulla pull request come un unico commento semplice dal tuo account GitHub. Funziona con le pull request su `github.com`; con altre destinazioni, Claude Code ignora il flag e lo segnala. Richiede Claude Code v2.1.227 o successiva |170| `--post` | [Pubblica i risultati finali](#post-findings-to-the-pull-request) sulla pull request come un unico commento semplice dal tuo account GitHub. Funziona con le pull request su `github.com`; con altre destinazioni, Claude Code ignora il flag e lo segnala. Richiede Claude Code v2.1.227 o successivo |

171| `--no-post` | Non pubblica i risultati. Questo è il comportamento predefinito e, se passi entrambi i flag, Claude Code non pubblica nulla. Richiede Claude Code v2.1.227 o successiva |171| `--no-post` | Non pubblica i risultati. È il comportamento predefinito e, se passi entrambi i flag, Claude Code non pubblica nulla. Richiede Claude Code v2.1.227 o successivo |

172| `--trust-workspace` | [Dà fiducia alla cartella corrente](#trust-the-folder-before-the-review-runs) solo per questa esecuzione, senza chiedere, così uno script o un job di CI può esaminare un checkout a cui non hai dato fiducia. Non accetta valori: metti un numero di PR o un branch di base prima del flag. Richiede Claude Code v2.1.309 o successiva |172| `--trust-workspace` | [Considera attendibile la cartella corrente](#trust-the-folder-before-the-review-runs) solo per questa esecuzione, senza chiedere, così che uno script o un job CI possa esaminare un checkout che non hai considerato attendibile. Non accetta valori: inserisci un numero di PR o un branch di base prima del flag. Richiede Claude Code v2.1.309 o successivo |

173 173 

174`claude ultrareview` scrive i messaggi di avanzamento su stderr, in modo che stdout resti analizzabile.174`claude ultrareview` scrive i messaggi di avanzamento su stderr, in modo che stdout resti analizzabile.

175 175 


177 177 

178Il sottocomando termina con uno di tre codici:178Il sottocomando termina con uno di tre codici:

179 179 

180* **0**: la review è stata completata, con o senza risultati180* **0**: la revisione è stata completata, con o senza risultati

181* **1**: la review non è stata avviata o è stata interrotta prima di terminare, la sessione cloud ha restituito un errore oppure il timeout è scaduto. Il codice è 1 anche quando la [cartella non è considerata attendibile](#trust-the-folder-before-the-review-runs), incluso quando rispondi `n`, premi Invio o premi Ctrl-C alla domanda sulla fiducia.181* **1**: la revisione non è stata avviata o è stata interrotta prima di terminare, la sessione cloud ha restituito un errore oppure il timeout è scaduto. Il codice è 1 anche quando la [cartella non è considerata attendibile](#trust-the-folder-before-the-review-runs), anche nel caso in cui rispondi `n`, premi Enter o premi Ctrl-C alla domanda sull'attendibilità.

182* **130**: hai premuto Ctrl-C mentre il sottocomando stava avviando la review, attendendo i risultati o inviando il commento di `--post`, anziché alla domanda sulla fiducia182* **130**: hai premuto Ctrl-C mentre il sottocomando stava avviando la revisione, attendendo i risultati o inviando il commento di `--post`, anziché alla domanda sull'attendibilità

183 183 

184Se il sottocomando termina prima dell'arrivo dei risultati, questi non raggiungono mai il tuo terminale. La review potrebbe essere ancora in esecuzione nel cloud. Eseguire di nuovo il sottocomando avvia una nuova review anziché riprendere quella, e la nuova review [usa un'esecuzione gratuita o viene addebitata come crediti di utilizzo](#pricing-and-free-runs).184Se il sottocomando termina prima dell'arrivo dei risultati, questi non raggiungono mai il tuo terminale. La revisione potrebbe essere ancora in esecuzione nel cloud. Eseguire di nuovo il sottocomando avvia una nuova revisione invece di riprendere quella precedente, e la nuova revisione [usa un'esecuzione gratuita o viene addebitata come crediti di utilizzo](#pricing-and-free-runs).

185 185 

186Con `--post`, il sottocomando avvia la pubblicazione subito dopo aver stampato i risultati e stampa il link su stderr.186Con `--post`, il sottocomando avvia la pubblicazione subito dopo aver stampato i risultati e stampa il link su stderr.

187 187 

188* Se l'esecuzione fallisce, viene interrotta o va in timeout, il sottocomando non pubblica nulla.188* Se l'esecuzione non riesce, viene interrotta o va in timeout, il sottocomando non pubblica nulla.

189* Se la review viene completata ma il commento non viene pubblicato, Claude Code stampa il motivo su stderr e i risultati restano su stdout, così puoi pubblicarli manualmente.189* Se la revisione viene completata ma il commento non viene pubblicato, Claude Code stampa il motivo su stderr e i risultati restano su stdout, così puoi pubblicarli manualmente.

190 190 

191Per le review automatiche sulle pull request di GitHub, [Code Review](https://code.claude.com/docs/it/code-review.md) si integra direttamente con il tuo repository e pubblica i risultati come commenti inline sulla PR senza alcun passaggio dalla CLI.191Per le revisioni automatiche sulle pull request GitHub, [Code Review](https://code.claude.com/docs/it/code-review.md) si integra direttamente con il tuo repository e pubblica i risultati come commenti inline sulla PR senza un passaggio tramite CLI.

192 192 

193### Dare fiducia alla cartella prima che la review venga eseguita193### Considerare attendibile la cartella prima dell'esecuzione della revisione

194 194 

195Quando `claude ultrareview` chiede `Trust <folder>? [y/N]`, rispondi `y` per [dare fiducia alla cartella](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust). Dalle fiducia solo se ti fidi del suo codice, perché git e Claude Code potranno quindi eseguire i programmi indicati nella sua configurazione git e nelle impostazioni del progetto.195Quando `claude ultrareview` chiede `Trust <folder>? [y/N]`, rispondi `y` per [considerare attendibile la cartella](https://code.claude.com/docs/it/permissions.md#project-allow-rules-and-workspace-trust). Considerala attendibile solo se ti fidi del suo codice, perché git e Claude Code potranno poi eseguire i programmi indicati nella sua configurazione git e nelle impostazioni del progetto.

196 196 

197Quando non può chiedertelo, ad esempio in un job di CI o con l'output inviato a un file, termina con [`Error: Workspace not trusted`](https://code.claude.com/docs/it/errors#workspace-not-trusted-when-running-claude-ultrareview). Aggiungi `--trust-workspace` in fondo per dare fiducia alla cartella per quell'esecuzione:197Quando non può chiedertelo, ad esempio in un job CI o con l'output reindirizzato su un file, termina con [`Error: Workspace not trusted`](https://code.claude.com/docs/it/errors#workspace-not-trusted-when-running-claude-ultrareview). Aggiungi `--trust-workspace` per considerare attendibile la cartella per quell'esecuzione:

198 198 

199```bash theme={null}199```bash theme={null}

200claude ultrareview 1234 --trust-workspace200claude ultrareview 1234 --trust-workspace

201```201```

202 202 

203Per esaminare una pull request non attendibile, esegui `claude ultrareview <PR number> --trust-workspace` da un branch di cui ti fidi. La PR viene [clonata nel cloud](#review-a-pull-request), quindi non ti serve il suo branch in locale.203Per esaminare una pull request non attendibile, esegui `claude ultrareview <PR number> --trust-workspace` da un branch che consideri attendibile. La PR viene [clonata nel cloud](#review-a-pull-request), quindi non ti serve il suo branch in locale.

204 204 

205## Come ultrareview si confronta con /code-review205## Come ultrareview si confronta con /code-review

206 206 

vs-code.md +34 −23

Details

133 Quando il modello corrente supporta i [livelli di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), il selettore mostra anche una riga **Effort** e il pulsante con il nome del modello mostra il livello selezionato. Quando scegli un livello diverso da `max`, Claude Code lo salva come predefinito per il modello corrente, in [`modelSettings`](https://code.claude.com/docs/it/settings-reference#modelsettings) nelle tue impostazioni utente; `max` si applica solo alla sessione corrente. Il pulsante con il nome del modello e la riga **Effort** richiedono Claude Code v2.1.257 o versioni successive.133 Quando il modello corrente supporta i [livelli di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level), il selettore mostra anche una riga **Effort** e il pulsante con il nome del modello mostra il livello selezionato. Quando scegli un livello diverso da `max`, Claude Code lo salva come predefinito per il modello corrente, in [`modelSettings`](https://code.claude.com/docs/it/settings-reference#modelsettings) nelle tue impostazioni utente; `max` si applica solo alla sessione corrente. Il pulsante con il nome del modello e la riga **Effort** richiedono Claude Code v2.1.257 o versioni successive.

134 134 

135 Quando i [workflow dinamici](https://code.claude.com/docs/it/workflows.md) sono abilitati e il modello corrente li supporta, sotto la riga **Effort** compare un interruttore **Ultracode**. Attivalo per fare in modo che Claude pianifichi un [workflow](https://code.claude.com/docs/it/workflows.md#let-claude-decide-with-ultracode) per ogni attività sostanziale in questa sessione, al livello di sforzo selezionato. Mentre è attivo, il pulsante con il nome del modello mostra `· Ultracode` dopo il livello. L'interruttore richiede Claude Code v2.1.284 o versioni successive.135 Quando i [workflow dinamici](https://code.claude.com/docs/it/workflows.md) sono abilitati e il modello corrente li supporta, sotto la riga **Effort** compare un interruttore **Ultracode**. Attivalo per fare in modo che Claude pianifichi un [workflow](https://code.claude.com/docs/it/workflows.md#let-claude-decide-with-ultracode) per ogni attività sostanziale in questa sessione, al livello di sforzo selezionato. Mentre è attivo, il pulsante con il nome del modello mostra `· Ultracode` dopo il livello. L'interruttore richiede Claude Code v2.1.284 o versioni successive.

136* **Menu dei comandi**: fai clic su `/` o digita `/` per aprire il menu dei comandi. Le opzioni includono l'allegare file, il cambio di modello e l'attivazione o disattivazione del ragionamento esteso.136* **Menu dei comandi**: fai clic su `/` o digita `/` per aprire il menu dei comandi. Le opzioni includono l'allegare file e il cambio di modello.

137 137 

138 La sezione Customize include voci come server MCP, comandi, stili di output, hook, memoria, istruzioni, permessi e plugin. Gli elementi con un'icona del terminale si aprono nel terminale integrato.138 La sezione Customize include voci come server MCP, comandi, stili di output, hook, memoria, istruzioni, permessi e plugin. Gli elementi con un'icona del terminale si aprono nel terminale integrato.

139 139 


191 Per aprire la mappa quando non viene mostrato alcun conteggio degli agenti, ad esempio quando Claude ha avviato una shell in background ma nessun subagent, digita `/tasks` nella casella del prompt. Le attività in background nella mappa e il comando `/tasks` digitato richiedono Claude Code v2.1.277 o versioni successive.191 Per aprire la mappa quando non viene mostrato alcun conteggio degli agenti, ad esempio quando Claude ha avviato una shell in background ma nessun subagent, digita `/tasks` nella casella del prompt. Le attività in background nella mappa e il comando `/tasks` digitato richiedono Claude Code v2.1.277 o versioni successive.

192 192 

193 Con Claude Code v2.1.286 o versioni successive, quando fai clic su **Stop** o premi `Esc`, il turno corrente termina. Gli agenti in background continuano a essere eseguiti finché non terminano o finché non li interrompi dalla mappa.193 Con Claude Code v2.1.286 o versioni successive, quando fai clic su **Stop** o premi `Esc`, il turno corrente termina. Gli agenti in background continuano a essere eseguiti finché non terminano o finché non li interrompi dalla mappa.

194* **Ragionamento esteso**: consente a Claude di dedicare più tempo a ragionare su problemi complessi. Attivalo tramite il menu dei comandi (`/`). Il ragionamento di Claude compare nella conversazione come blocchi compressi: fai clic su un blocco per leggerlo, oppure premi `Ctrl+O` per espandere o comprimere tutti i blocchi di ragionamento della sessione. Consulta [Ragionamento esteso](https://code.claude.com/docs/it/model-config.md#extended-thinking) per i dettagli.194* **Ragionamento esteso**: consente a Claude di dedicare più tempo a ragionare su problemi complessi. Per disattivarlo o riattivarlo, usa l'interruttore **Thinking** nella sezione Model del menu dei comandi (`/`). Sui modelli in cui [il ragionamento non può essere disattivato](https://code.claude.com/docs/it/model-config.md#extended-thinking), il menu non ha l'interruttore **Thinking** e il ragionamento rimane attivo.

195 

196 Un blocco di ragionamento che mostra solo un'etichetta, come `Thought for 12s`, non contiene testo e non si apre quando ci fai clic. Per vedere i riepiloghi del ragionamento, imposta [`showThinkingSummaries`](https://code.claude.com/docs/it/settings-reference#showthinkingsummaries) su `true` in `~/.claude/settings.json`, quindi esegui **Developer: Reload Window** dal Command Palette.

197 

198 I blocchi di ragionamento già presenti restano vuoti. Nelle risposte successive al ricaricamento, fai clic su un blocco oppure premi `Ctrl+O` per espanderli tutti.

195* **Input su più righe**: premi `Shift+Enter` per aggiungere una nuova riga senza inviare. Funziona anche nel campo di testo libero "Other" delle finestre di dialogo con domande.199* **Input su più righe**: premi `Shift+Enter` per aggiungere una nuova riga senza inviare. Funziona anche nel campo di testo libero "Other" delle finestre di dialogo con domande.

196 200 

197### Fare riferimento a file e cartelle201### Fare riferimento a file e cartelle


333 337 

334Esegui `/usage` per aprire la finestra di dialogo Account & usage, che mostra l'account con cui hai effettuato l'accesso e il tuo utilizzo. I dati sull'utilizzo dipendono da come hai effettuato l'accesso:338Esegui `/usage` per aprire la finestra di dialogo Account & usage, che mostra l'account con cui hai effettuato l'accesso e il tuo utilizzo. I dati sull'utilizzo dipendono da come hai effettuato l'accesso:

335 339 

336* **Piano claude.ai**: barre di utilizzo per i limiti del tuo piano, come la sessione corrente e la settimana. Ogni barra mostra quanto manca al ripristino del relativo limite.340* **Piano claude.ai**: barre di utilizzo per i limiti del tuo piano, come la sessione corrente e la settimana.

337 341 

338 La finestra di dialogo mostra anche una ripartizione di ciò che contribuisce ai limiti del tuo piano:342 La finestra di dialogo mostra anche una ripartizione di ciò che contribuisce ai limiti del tuo piano:

339 343 


580 584 

581Quando create pull request, Claude genera descrizioni basate sulle modifiche effettive del codice e può aggiungere contesto riguardante le decisioni di test o implementazione.585Quando create pull request, Claude genera descrizioni basate sulle modifiche effettive del codice e può aggiungere contesto riguardante le decisioni di test o implementazione.

582 586 

587### Riaprire una conversazione spostata in un worktree

588 

589In una conversazione riaperta, il banner **This session is in worktree** indica che la directory di lavoro della conversazione è il [worktree](https://code.claude.com/docs/it/worktrees.md) che nomina, non la cartella aperta in questa finestra. Per aprire il worktree in una nuova finestra di VS Code, fai clic su **Open worktree** nel banner.

590 

591Una conversazione si sposta in un worktree quando, ad esempio, [chiedi a Claude di lavorare in uno](https://code.claude.com/docs/it/worktrees.md#ask-claude-to-create-a-worktree). Quando la riapri, o quando il pannello [la riapre dopo un ricaricamento della finestra](#continue-conversations-after-a-reload), riprende nel worktree se Claude Code ha creato il worktree in `.claude/worktrees/` e questo esiste ancora. Prima di Claude Code v2.1.300, veniva invece aperta una conversazione vuota. Su quelle versioni, aggiorna l'estensione.

592 

583## Eseguire attività in background593## Eseguire attività in background

584 594 

585Sposta in background un comando o un subagent di lunga durata, poi controllane lo stato dalla casella del prompt.595Sposta in background un comando o un subagent di lunga durata, poi controllane lo stato dalla casella del prompt.


633| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Inserisci un riferimento al file e alla selezione correnti (richiede che il focus sia sull'editor) |643| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Inserisci un riferimento al file e alla selezione correnti (richiede che il focus sia sull'editor) |

634| Accept Change at Cursor | - | Accetta la modifica in corrispondenza del cursore mentre [esamini una modifica proposta](#get-started) una modifica alla volta. Richiede Claude Code v2.1.275 o successivo |644| Accept Change at Cursor | - | Accetta la modifica in corrispondenza del cursore mentre [esamini una modifica proposta](#get-started) una modifica alla volta. Richiede Claude Code v2.1.275 o successivo |

635| Reject Change at Cursor | - | Annulla la modifica in corrispondenza del cursore mentre esamini una modifica proposta una modifica alla volta. Richiede Claude Code v2.1.275 o successivo |645| Reject Change at Cursor | - | Annulla la modifica in corrispondenza del cursore mentre esamini una modifica proposta una modifica alla volta. Richiede Claude Code v2.1.275 o successivo |

636| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | Nascondi o mostra l'attività degli strumenti nella conversazione. Funziona mentre è visibile un pannello o una barra laterale di Claude. Richiede Claude Code v2.1.221 o successivo |646| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | Nascondi o mostra l'attività degli strumenti nella conversazione. Funziona mentre è visibile un pannello o una barra laterale di Claude. Su Windows/Linux, `Ctrl+Alt+F` apre invece la funzione Find di VS Code quando il focus è nella Debug Console o in un elenco in cui è possibile cercare, come Explorer. Sposta il focus su un editor o sul pannello di Claude e premila di nuovo. Richiede Claude Code v2.1.221 o successivo |

637| Rename Session Tab | - | Rinomina la sessione nella scheda Claude attiva. Richiede Claude Code v2.1.257 o successivo |647| Rename Session Tab | - | Rinomina la sessione nella scheda Claude attiva. Richiede Claude Code v2.1.257 o successivo |

638| Add Session Tab to Group | - | Aggiungi la sessione nella scheda Claude attiva a un [gruppo di sessioni](#organize-sessions-into-groups) che scegli o crei. Richiede Claude Code v2.1.257 o successivo |648| Add Session Tab to Group | - | Aggiungi la sessione nella scheda Claude attiva a un [gruppo di sessioni](#organize-sessions-into-groups) che scegli o crei. Richiede Claude Code v2.1.257 o successivo |

639| Mark Session as Unread | - | Segna la sessione nella scheda Claude attiva come non letta nell'elenco delle sessioni. Richiede Claude Code v2.1.257 o successivo |649| Mark Session as Unread | - | Segna la sessione nella scheda Claude attiva come non letta nell'elenco delle sessioni. Richiede Claude Code v2.1.257 o successivo |


679| Parametro | Descrizione |689| Parametro | Descrizione |

680| - | - |690| - | - |

681| `prompt` | Testo da precompilare nella casella del prompt. Deve essere codificato come URL. Il prompt viene precompilato ma non inviato automaticamente. |691| `prompt` | Testo da precompilare nella casella del prompt. Deve essere codificato come URL. Il prompt viene precompilato ma non inviato automaticamente. |

682| `session` | Un ID di sessione da riprendere invece di avviare una nuova conversazione. La sessione deve appartenere al workspace attualmente aperto in VS Code. Se la sessione non viene trovata, viene avviata invece una nuova conversazione. Se la sessione è già aperta in una scheda, il focus passa a quella scheda. Per ottenere un ID di sessione in modo programmatico, consulta [Continuare le conversazioni](https://code.claude.com/docs/it/headless.md#continue-conversations). |692| `session` | ID di una sessione da riprendere, dalla cartella aperta in VS Code. Con Claude Code v2.1.300 o successivo, viene ripresa anche una sessione del checkout principale o di un [worktree](https://code.claude.com/docs/it/worktrees.md) del repository di quella cartella. Se la sessione non viene trovata, viene avviata invece una nuova conversazione. Se la sessione è già aperta in una scheda, il focus passa a quella scheda. Per ottenere un ID di sessione in modo programmatico, consulta [Continuare le conversazioni](https://code.claude.com/docs/it/headless.md#continue-conversations). |

683 693 

684Ad esempio, per aprire una scheda precompilata con "review my changes":694Ad esempio, per aprire una scheda precompilata con "review my changes":

685 695 


691 701 

692## Configurare le impostazioni702## Configurare le impostazioni

693 703 

694Configuri l'estensione in due posti, le impostazioni dell'estensione di VS Code e il file delle impostazioni di Claude Code:704L'estensione si configura in due punti, le impostazioni dell'estensione di VS Code e il file delle impostazioni di Claude Code:

695 705 

696* **Impostazioni dell'estensione** in VS Code: controllano il comportamento dell'estensione all'interno di VS Code. Aprile con `Cmd+,` (Mac) o `Ctrl+,` (Windows/Linux), quindi vai su **Extensions > Claude Code**. Puoi anche digitare `/` e selezionare **General config…** per aprire le impostazioni.706* **Impostazioni dell'estensione** in VS Code: controllano il comportamento dell'estensione all'interno di VS Code. Aprile con `Cmd+,` (Mac) o `Ctrl+,` (Windows/Linux), poi vai su **Extensions > Claude Code**. Puoi anche digitare `/` e selezionare **General config…** per aprire le impostazioni.

697* **Impostazioni di Claude Code** in `~/.claude/settings.json`: condivise tra l'estensione e la CLI. Usale per i comandi consentiti, le variabili d'ambiente, gli hook e i server MCP. Con Claude Code v2.1.283 o successiva, sono anche uno degli input che determinano la modalità di permesso con cui iniziano le conversazioni, mentre nelle versioni precedenti solo con i piani Pro, Max e Team. [Cambiare modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes) elenca l'ordine. Consulta [Impostazioni](https://code.claude.com/docs/it/settings.md) per i dettagli.707* **Impostazioni di Claude Code** in `~/.claude/settings.json`: condivise tra l'estensione e la CLI. Usale per i comandi consentiti, le variabili d'ambiente, gli hook e i server MCP. Con Claude Code v2.1.283 o successive, sono anche uno degli input che determinano la modalità di permesso con cui iniziano le conversazioni, mentre nelle versioni precedenti lo sono solo nei piani Pro, Max e Team. [Cambiare modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes) elenca l'ordine. Consulta [Impostazioni](https://code.claude.com/docs/it/settings.md) per i dettagli.

698 708 

699> [!TIP]709> [!TIP]

700>710>

701> Aggiungi `"$schema": "https://json.schemastore.org/claude-code-settings.json"` al tuo `settings.json` per ottenere il completamento automatico e la convalida in linea per tutte le impostazioni disponibili direttamente in VS Code.711> Aggiungi `"$schema": "https://json.schemastore.org/claude-code-settings.json"` al tuo `settings.json` per ottenere il completamento automatico e la convalida inline per tutte le impostazioni disponibili direttamente in VS Code.

702 712 

703### Impostazioni dell'estensione713### Impostazioni dell'estensione

704 714 

705VS Code legge `initialPermissionMode` dalle tue impostazioni utente e ignora i valori del workspace. Prima della v2.1.225, VS Code impostava per impostazione predefinita il valore `default` e applicava i valori del workspace.715VS Code legge `initialPermissionMode` dalle impostazioni utente e ignora i valori del workspace. Prima della v2.1.225, VS Code impostava questa impostazione su `default` per impostazione predefinita e applicava i valori del workspace.

706 716 

707| Impostazione | Predefinito | Descrizione |717| Impostazione | Predefinito | Descrizione |

708| - | - | - |718| - | - | - |

709| `useTerminal` | `false` | Avvia Claude in modalità terminale invece che nel pannello grafico |719| `useTerminal` | `false` | Avvia Claude in modalità terminale invece che nel pannello grafico |

710| `initialPermissionMode` | - | Controlla le richieste di approvazione per le nuove conversazioni: `default`, `plan`, `acceptEdits` o `bypassPermissions`. `manual` è un alias di `default` e seleziona la modalità etichettata **Manual** nell'indicatore della modalità. Se non la imposti, l'estensione sceglie la modalità di permesso iniziale come descritto in [Cambiare modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes). |720| `initialPermissionMode` | - | Controlla le richieste di approvazione per le nuove conversazioni: `default`, `plan`, `acceptEdits` o `bypassPermissions`. `manual` è un alias di `default` e seleziona la modalità etichettata **Manual** nell'indicatore della modalità. Se non la imposti, l'estensione sceglie la modalità di permesso iniziale come descritto in [Cambiare modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes). |

711| `preferredLocation` | `panel` | Dove si apre Claude: `sidebar` (a destra) o `panel` (nuova scheda) |721| `preferredLocation` | `panel` | Dove si apre Claude: `sidebar` (a destra) o `panel` (nuova scheda) |

712| `lockEditorGroups` | `true` | [Blocca i gruppi di editor che Claude avvia per le sue schede](#choose-where-claude-lives), in modo che i file che apri mentre una scheda di Claude ha il focus vadano in un altro gruppo. Se disattivata, l'estensione non blocca mai un gruppo di editor. Richiede Claude Code v2.1.274 o successiva |722| `lockEditorGroups` | `true` | [Blocca i gruppi di editor che Claude avvia per le sue schede](#choose-where-claude-lives), così i file che apri mentre una scheda di Claude ha il focus vanno in un altro gruppo. Se disattivata, l'estensione non blocca mai un gruppo di editor. Richiede Claude Code v2.1.274 o successive |

713| `autosave` | `true` | Salva automaticamente i file prima che Claude li legga o li scriva |723| `autosave` | `true` | Salva automaticamente i file prima che Claude li legga o li scriva |

714| `attachOpenFile` | `true` | Aggiunge ai tuoi messaggi il file aperto nell'editor e lo mostra nella casella del prompt. Se disattivata, il file viene aggiunto solo insieme al testo che selezioni. Richiede Claude Code v2.1.271 o successiva |724| `attachOpenFile` | `true` | Aggiunge ai tuoi messaggi il file aperto nell'editor e lo mostra nella casella del prompt. Se disattivata, il file viene aggiunto solo insieme al testo che selezioni. Richiede Claude Code v2.1.271 o successive |

715| `attachSelection` | `true` | Aggiunge ai tuoi messaggi il testo che selezioni nell'editor e lo mostra nella casella del prompt. Se disattivata, puoi comunque [aggiungere una selezione come @-mention](#automatic-context-from-your-selection-and-open-file). Richiede Claude Code v2.1.300 o successiva |725| `attachSelection` | `true` | Aggiunge ai tuoi messaggi il testo che selezioni nell'editor e lo mostra nella casella del prompt. Se disattivata, puoi comunque [aggiungere una selezione come @-mention](#automatic-context-from-your-selection-and-open-file). Richiede Claude Code v2.1.300 o successive |

716| `useCtrlEnterToSend` | `false` | Usa Ctrl/Cmd+Invio invece di Invio per inviare i prompt |726| `useCtrlEnterToSend` | `false` | Usa Ctrl/Cmd+Enter invece di Enter per inviare i prompt |

717| `scrollToBottomOnSend` | `true` | Scorre la conversazione fino in fondo quando invii un messaggio. Se disattivata, la conversazione resta dove l'hai lasciata. Richiede Claude Code v2.1.275 o successiva |727| `scrollToBottomOnSend` | `true` | Scorre la conversazione fino in fondo quando invii un messaggio. Se disattivata, la conversazione resta dove l'hai lasciata. Richiede Claude Code v2.1.275 o successive |

718| `showMessageTimestamps` | `true` | Mostra quando è stato inviato ciascun messaggio. Una riga con la data segna il punto in cui cambia il giorno. Richiede Claude Code v2.1.284 o successiva. Prima della v2.1.290, il valore predefinito era `false` |728| `showMessageTimestamps` | `true` | Mostra quando è stato inviato ogni messaggio. Una riga con la data indica dove cambia il giorno. Richiede Claude Code v2.1.284 o successive. Prima della v2.1.290, il valore predefinito era `false` |

719| `spinnerVerbs` | `{"mode": "append", "verbs": []}` | Imposta i verbi che lo spinner della conversazione mostra a rotazione mentre un turno è in esecuzione, con gli stessi campi `mode` e `verbs` dell'impostazione [`spinnerVerbs`](https://code.claude.com/docs/it/settings-reference#spinnerverbs) della CLI. |729| `spinnerVerbs` | `{"mode": "append", "verbs": []}` | Imposta i verbi che lo spinner della conversazione fa ruotare mentre è in corso un turno, con gli stessi campi `mode` e `verbs` dell'impostazione [`spinnerVerbs`](https://code.claude.com/docs/it/settings-reference#spinnerverbs) della CLI. |

720| `enableNewConversationShortcut` | `false` | Abilita Cmd/Ctrl+N per avviare una nuova conversazione |730| `enableNewConversationShortcut` | `false` | Abilita Cmd/Ctrl+N per iniziare una nuova conversazione |

721| `enableReopenClosedSessionShortcut` | `true` | Usa Cmd/Ctrl+Maiusc+T per riaprire la scheda della sessione di Claude chiusa più di recente. Quando l'ultima scheda chiusa non era una sessione di Claude, la scorciatoia esegue invece il normale comando di VS Code per riaprire l'editor chiuso. |731| `enableReopenClosedSessionShortcut` | `true` | Usa Cmd/Ctrl+Shift+T per riaprire la scheda della sessione di Claude chiusa più di recente. Se l'ultima scheda chiusa non era una sessione di Claude, la scorciatoia esegue invece il normale comando di VS Code per riaprire l'editor chiuso. |

722| `archiveInactiveSessions` | `14` | [Archivia automaticamente una sessione](#resume-past-conversations) dopo questo numero di giorni senza attività: `1`, `2`, `7` o `14`. Imposta `0` per disattivarla. Richiede Claude Code v2.1.265 o successiva |732| `archiveInactiveSessions` | `14` | [Archivia automaticamente una sessione](#resume-past-conversations) dopo questo numero di giorni senza attività: `1`, `2`, `7` o `14`. Imposta `0` per disattivarla. Richiede Claude Code v2.1.265 o successive |

723| `continueAfterReload` | `true` | Dopo il ricaricamento di una finestra, Claude [continua il passaggio che era stato interrotto](#continue-conversations-after-a-reload) nella sessione ripristinata. Richiede Claude Code v2.1.274 o successiva |733| `continueAfterReload` | `true` | Dopo il ricaricamento di una finestra, Claude [continua il passaggio che era stato interrotto](#continue-conversations-after-a-reload) nella sessione ripristinata. Richiede Claude Code v2.1.274 o successive |

724| `hideOnboarding` | `false` | Nasconde la checklist di onboarding (icona del tocco di laurea) |734| `hideOnboarding` | `false` | Nasconde la checklist di onboarding (icona del tocco da laureato) |

725| `focusView` | `false` | Nasconde le chiamate agli strumenti, i risultati degli strumenti e il ragionamento dietro righe espandibili, lasciando visibili i tuoi prompt e le risposte di Claude. L'ultima lista di cose da fare di Claude resta visibile; questo richiede Claude Code v2.1.225 o successiva. Puoi anche attivare o disattivare la vista Focus dal menu dei comandi. Richiede Claude Code v2.1.221 o successiva |735| `focusView` | `false` | Nasconde le chiamate agli strumenti, i risultati degli strumenti e il ragionamento dietro righe espandibili, lasciando visibili i tuoi prompt e le risposte di Claude. L'ultima lista di cose da fare di Claude resta visibile; questo richiede Claude Code v2.1.225 o successive. Puoi anche attivare o disattivare la vista Focus dal menu dei comandi. Richiede Claude Code v2.1.221 o successive |

726| `respectGitIgnore` | `true` | Esclude i pattern di .gitignore dalle ricerche di file e dal [contesto della selezione](#selected-text-from-excluded-or-ignored-files) |736| `respectGitIgnore` | `true` | Esclude i pattern di .gitignore dalle ricerche di file e dal [contesto della selezione](#selected-text-from-excluded-or-ignored-files) |

727| `usePythonEnvironment` | `true` | Attiva l'ambiente Python del workspace quando esegui Claude. Richiede l'estensione Python. |737| `usePythonEnvironment` | `true` | Attiva l'ambiente Python del workspace quando esegui Claude. Richiede l'estensione Python. |

728| `environmentVariables` | `[]` | Imposta le variabili d'ambiente per il processo di Claude. Per una configurazione condivisa, usa invece le impostazioni di Claude Code. Una voce [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars) si applica solo quando il suo valore è un percorso assoluto; l'estensione non espande `~` e ignora un valore relativo. |738| `environmentVariables` | `[]` | Imposta le variabili d'ambiente per il processo di Claude. Per una configurazione condivisa, usa invece le impostazioni di Claude Code. Una voce [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars) si applica solo quando il suo valore è un percorso assoluto; l'estensione non espande `~` e ignora un valore relativo. |


916| `Claude Code process exited with code 1`, o un altro codice | [Claude Code process exited with code N](https://code.claude.com/docs/it/errors.md#claude-code-process-exited-with-code-n) |926| `Claude Code process exited with code 1`, o un altro codice | [Claude Code process exited with code N](https://code.claude.com/docs/it/errors.md#claude-code-process-exited-with-code-n) |

917| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](https://code.claude.com/docs/it/errors.md#could-not-locate-the-claude-cli-on-path) |927| `Could not locate the Claude CLI on PATH` | [Could not locate the Claude CLI on PATH](https://code.claude.com/docs/it/errors.md#could-not-locate-the-claude-cli-on-path) |

918| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](https://code.claude.com/docs/it/errors.md#the-connection-to-claude-code-ended-before-this-message-completed) |928| `The connection to Claude Code ended before this message completed` | [The connection to Claude Code ended before this message completed](https://code.claude.com/docs/it/errors.md#the-connection-to-claude-code-ended-before-this-message-completed) |

929| `The Claude Code program for this computer, the <build> build, could not be found` | [The Claude Code program for this computer could not be found](https://code.claude.com/docs/it/errors.md#the-claude-code-program-for-this-computer-could-not-be-found) |

919| `claude` non viene trovato nel terminale integrato di VS Code | [Esegui la CLI in VS Code](#run-cli-in-vs-code) |930| `claude` non viene trovato nel terminale integrato di VS Code | [Esegui la CLI in VS Code](#run-cli-in-vs-code) |

920 931 

921### L'estensione non si installa932### L'estensione non si installa

web-quickstart.md +23 −23

Details

126 126 

127## Avvia un'attività127## Avvia un'attività

128 128 

129Con GitHub connesso e un ambiente creato, sei pronto a inviare attività.129Con GitHub connesso e un ambiente creato, sei pronto per inviare attività.

130 130 

131**1. Seleziona un repository e un branch**131**1. Seleziona un repository e un branch**

132 132 

133Da [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.133Da [claude.ai/code](https://claude.ai/code) o dalla scheda Code nell'app mobile di Claude, fai clic sul selettore del repository sotto la casella di input e scegli un repository in cui Claude lavorerà. Puoi aggiungere più repository per lavorare su di essi in un'unica sessione.

134 134 

135Su 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.135Su claude.ai/code, per avviare Claude da un feature branch anziché da quello predefinito, cambia il branch nel controllo dopo il selettore del repository.

136 136 

137**2. Scegli una modalità di permesso**137**2. Scegli una modalità di permesso**

138 138 

139Il [controllo della modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes) mostra la modalità di permesso in cui verrà eseguita la sessione:139Il [controllo della modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes) mostra la modalità di permesso in cui verrà eseguita la sessione:

140 140 

141* **Auto**: un classificatore esamina le azioni di Claude invece di chiederti. Appare quando la tua organizzazione consente la modalità auto e il modello selezionato la supporta141* **Auto**: un classificatore esamina le azioni di Claude invece di chiedertelo. Compare quando la tua organizzazione consente la modalità auto e il modello selezionato la supporta

142* **Accept edits**: Claude apporta modifiche e spinge un ramo senza fermarsi per l'approvazione142* **Accept edits**: Claude apporta modifiche ed esegue il push di un branch senza fermarsi per l'approvazione

143* **Plan**: Claude propone un approccio e attende il tuo via libera prima di modificare i file143* **Plan**: Claude propone un approccio e attende che tu lo approvi prima di modificare i file

144 144 

145Le sessioni cloud non offrono autorizzazioni Manual o Bypass. Consulta l'[elenco completo delle modalità di autorizzazione](https://code.claude.com/docs/it/permission-modes.md#available-modes) per scoprire cosa consente ciascuna.145Le sessioni cloud non offrono Manual o Bypass permissions. Consulta l'[elenco completo delle modalità di permesso](https://code.claude.com/docs/it/permission-modes.md#available-modes) per sapere cosa consente ciascuna.

146 146 

147**3. Descrivi l'attività e invia**147**3. Descrivi l'attività e inviala**

148 148 

149Digita una descrizione di quello che vuoi e premi Invio. Sii specifico:149Digita una descrizione di ciò che desideri e premi Enter. Sii specifico:

150 150 

151* Nomina il file o la funzione: "Aggiungi un README con istruzioni di configurazione" o "Correggi il test di autenticazione non riuscito in `tests/test_auth.py`" è meglio di "correggi i test"151* Indica il file o la funzione: "Aggiungi un README con le istruzioni di configurazione" o "Correggi il test di autenticazione che fallisce in `tests/test_auth.py`" è meglio di "correggi i test"

152* Incolla l'output dell'errore se lo hai152* Incolla l'output dell'errore se ce l'hai

153* Descrivi il comportamento previsto, non solo il sintomo153* Descrivi il comportamento atteso, non solo il sintomo

154 154 

155Claude clona i repository, esegue il tuo script di configurazione se configurato e inizia a lavorare. Ogni attività ottiene la sua sessione e il suo ramo, quindi non hai bisogno di aspettare che una finisca prima di avviarne un'altra.155Claude clona i repository, esegue il tuo script di configurazione se configurato e inizia a lavorare. Ogni attività ottiene la propria sessione e il proprio branch, quindi non devi attendere che una finisca prima di avviarne un'altra.

156 156 

157## Precompila le sessioni157## Precompila le sessioni

158 158 


173 173 

174## Rivedi e itera174## Rivedi e itera

175 175 

176Quando Claude finisce, rivedi le modifiche, lascia feedback su righe specifiche e continua finché il diff non sembra giusto.176Quando Claude ha finito, rivedi le modifiche, lascia feedback su righe specifiche e continua finché il diff non ti sembra corretto.

177 177 

178**1. Apri la vista diff**178**1. Apri la vista diff**

179 179 

180Dopo che Claude ha effettuato il push delle sue modifiche su un branch, la scheda **Modifiche** nel pannello accanto alla chat mostra le righe aggiunte e rimosse durante la sessione, ad esempio `+42 -18`. Fai clic su questi conteggi per aprire la vista diff.180Dopo che Claude ha eseguito il push delle sue modifiche su un branch, la scheda **Changes** nel pannello accanto alla chat mostra le righe aggiunte e rimosse nel corso della sessione, ad esempio `+42 -18`. Fai clic su questi conteggi per aprire la vista diff.

181 181 

182* Puoi anche fare clic su **Modifiche** nella barra del titolo della sessione, oppure nel menu **⋮** della barra.182* Puoi anche fare clic su **Changes** nella barra del titolo della sessione o nel menu **⋮** della barra.

183* Per mostrare il pannello quando è nascosto, fai clic sull'icona **Mostra barra laterale della sessione** nella barra del titolo della sessione, oppure nel menu **⋮** della barra.183* Per mostrare il pannello quando è nascosto, fai clic sull'icona **Show session rail** nella barra del titolo della sessione o nel menu **⋮** della barra.

184 184 

185Il diff confronta le modifiche della sessione rispetto al suo branch base per impostazione predefinita. Per confrontare rispetto a un branch diverso, seleziona **Confronta con** e scegline uno. Rispetto al branch base, il diff può [omettere le modifiche di cui non è ancora stato effettuato il push](https://code.claude.com/docs/it/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view).185Per impostazione predefinita, il diff confronta le modifiche della sessione con il suo branch di base. Per confrontarle con un branch diverso, seleziona **Compare against** e scegline uno. Rispetto al branch di base, il diff può [omettere le modifiche di cui non è ancora stato eseguito il push](https://code.claude.com/docs/it/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view).

186 186 

187**2. Lascia commenti inline**187**2. Lascia commenti inline**

188 188 

189Passa il mouse su una riga nel diff e fai clic sul **+** che appare accanto al suo numero di riga per aprire una casella di commento, quindi digita il tuo feedback e premi Invio. I commenti si accumulano fino a quando non invii il tuo prossimo messaggio, quindi vengono raggruppati con esso. Claude vede "a `src/auth.ts:47`, non catturare l'errore qui" insieme alla tua istruzione principale, quindi non devi descrivere dove si trova il problema.189Passa il mouse su una riga del diff e fai clic sul **+** che appare accanto al suo numero di riga per aprire una casella di commento, quindi digita il tuo feedback e premi Enter. I commenti vengono accodati finché non invii il messaggio successivo, poi vengono raggruppati con esso. Claude vede "in `src/auth.ts:47`, non catturare l'errore qui" insieme alla tua istruzione principale, così non devi descrivere dove si trova il problema.

190 190 

191**3. Crea una pull request**191**3. Crea una pull request**

192 192 

193Quando il diff sembra giusto, [mostra di nuovo il pannello](https://code.claude.com/docs/it/claude-code-on-the-web.md#review-changes) se la scheda **Modifiche** non è visibile, quindi crea una pull request o una bozza dalla scheda:193Quando il diff ti sembra corretto, [mostra di nuovo il pannello](https://code.claude.com/docs/it/claude-code-on-the-web.md#review-changes) se la scheda **Changes** non è visibile, quindi crea una pull request o una bozza dalla scheda:

194 194 

195* Fai clic su **Crea PR**. Claude Code crea la pull request con un titolo e una descrizione generati.195* Fai clic su **Create PR**. Claude Code crea la pull request con un titolo e una descrizione generati.

196* Per aprire invece una bozza, fai clic con il pulsante destro su **Crea PR**, seleziona **Crea bozza PR** per cambiare l'azione del pulsante, quindi fai clic sul pulsante196* Per aprire invece una bozza, fai clic con il pulsante destro su **Create PR**, seleziona **Create draft PR** per cambiare l'azione del pulsante, quindi fai clic sul pulsante

197 197 

198**4. Continua a iterare dopo la PR**198**4. Continua a iterare dopo la PR**

199 199 

200La sessione rimane attiva dopo la creazione della PR. Incolla l'output di errore CI o i commenti dei revisori nella chat e chiedi a Claude di affrontarli. Per fare in modo che Claude monitori la PR automaticamente, consulta [Auto-fix pull requests](https://code.claude.com/docs/it/claude-code-on-the-web.md#auto-fix-pull-requests).200La sessione resta attiva dopo la creazione della PR. Incolla nella chat l'output degli errori della CI o i commenti dei revisori e chiedi a Claude di occuparsene. Per fare in modo che Claude monitori automaticamente la PR, consulta [Correzione automatica delle pull request](https://code.claude.com/docs/it/claude-code-on-the-web.md#auto-fix-pull-requests).

201 201 

202## Risolvi i problemi di configurazione202## Risolvi i problemi di configurazione

203 203 

Details

4 4 

5# Settimana 18 · 27 aprile – 1 maggio 20265# Settimana 18 · 27 aprile – 1 maggio 2026

6 6 

7> Claude Code su Windows funziona senza Git Bash, claude auth login accetta un codice OAuth incollato quando il callback del browser non può raggiungere localhost, claude project purge pulisce lo stato locale per progetto, e incollare un URL di PR in /resume trova la sessione che l'ha creata.7> Claude Code su Windows funziona senza Git Bash, claude auth login accetta un codice OAuth incollato quando il callback del browser non riesce a raggiungere localhost, claude project purge ripulisce lo stato locale per progetto e incollare l'URL di una PR in /resume trova la sessione che l'ha creata.

8 8 

9Releases [v2.1.120 → v2.1.126](https://code.claude.com/docs/en/changelog.md#2-1-120)9Release [v2.1.120 → v2.1.126](https://code.claude.com/docs/en/changelog.md#2-1-120)

104 funzionalità · 27 aprile – 1 maggio104 funzionalità · 27 aprile – 1 maggio

11 11 

12Accedi senza callback del browser12Accedi senza un callback del browser

13v2.1.12613v2.1.126

14 14 

15`claude auth login` ora accetta il codice OAuth incollato direttamente nel terminale quando il callback del browser non può raggiungere localhost. Questo copre WSL2, sessioni SSH e container, dove il reindirizzamento a una porta locale non funziona. La stessa versione corregge anche i timeout di accesso su connessioni lente o proxy e in devcontainer solo IPv6.15`claude auth login` ora accetta il codice OAuth incollato direttamente nel terminale quando il callback del browser non riesce a raggiungere localhost. Questo copre WSL2, le sessioni SSH e i container, dove il reindirizzamento a una porta locale non funziona. La stessa release corregge anche i timeout di accesso su connessioni lente o tramite proxy e nei devcontainer solo IPv6.

16 16 

17Accedi, quindi incolla il codice dal browser:17Accedi, poi incolla il codice dal browser:

18 18 

19```bash theme={null}19```bash theme={null}

20claude auth login20claude auth login


25claude project purge25claude project purge

26v2.1.12426v2.1.124

27 27 

28Elimina tutto lo stato di Claude Code per un progetto: trascrizioni, attività, cronologia dei file e la voce di configurazione del progetto. Supporta `--dry-run` per visualizzare un'anteprima, `-y`/`--yes` per saltare la conferma, `-i`/`--interactive` per scegliere e `--all` per cancellare ogni progetto.28Elimina tutto lo stato di Claude Code per un progetto: trascrizioni, attività, cronologia dei file e la voce di configurazione del progetto. Supporta `--dry-run` per un'anteprima, `-y`/`--yes` per saltare la conferma, `-i`/`--interactive` per scegliere e `--all` per ripulire tutti i progetti.

29 29 

30Visualizza un'anteprima di ciò che verrebbe rimosso:30Visualizza in anteprima cosa verrebbe rimosso:

31 31 

32```bash theme={null}32```bash theme={null}

33claude project purge --dry-run33claude project purge --dry-run

34```34```

35 35 

36Quindi eseguilo davvero:36Poi eseguilo davvero:

37 37 

38```bash theme={null}38```bash theme={null}

39claude project purge39claude project purge


41 41 

42[Riferimento CLI](https://code.claude.com/docs/it/cli-reference.md)42[Riferimento CLI](https://code.claude.com/docs/it/cli-reference.md)

43 43 

44Riprendi per URL di PR44Riprendi tramite l'URL della PR

45v2.1.12245v2.1.122

46 46 

47Quando crei una pull request con `gh pr create`, Claude Code la collega alla sessione che l'ha prodotta. Ora puoi tornare a quella sessione dal solo URL della PR, senza ricordare il suo nome.47Quando crei una pull request con `gh pr create`, Claude Code la collega alla sessione che l'ha prodotta. Ora puoi tornare a quella sessione partendo solo dall'URL della PR, senza ricordarne il nome.

48 48 

49Apri il selettore di sessione:49Apri il selettore delle sessioni:

50 50 

51```text Claude Code theme={null}51```text Claude Code theme={null}

52> /resume52> /resume

53```53```

54 54 

55Incolla l'URL della PR nel selettore. Il primo carattere dell'incolla ti mette in modalità ricerca e l'elenco si filtra alla sessione che ha creato quella PR. Premi Invio per riprenderla. Gli URL di pull request e merge request di GitHub, GitHub Enterprise, GitLab e Bitbucket funzionano tutti.55Incolla l'URL della PR nel selettore. Il primo carattere incollato ti porta in modalità di ricerca e l'elenco si filtra sulla sessione che ha creato quella PR. Premi Enter per riprenderla. Funzionano gli URL di pull request e merge request di GitHub, GitHub Enterprise, GitLab e Bitbucket.

56 56 

57```text Claude Code theme={null}57```text Claude Code theme={null}

58https://github.com/your-org/your-repo/pull/123458https://github.com/your-org/your-repo/pull/1234

59```59```

60 60 

61Per aprire il selettore già filtrato alla PR, passa il numero della PR sulla riga di comando:61Per aprire il selettore già filtrato sulla PR, passa il numero della PR dalla riga di comando:

62 62 

63```bash theme={null}63```bash theme={null}

64claude --from-pr 123464claude --from-pr 1234

65```65```

66 66 

67[Sessioni: usa il selettore di sessione](https://code.claude.com/docs/it/sessions.md#use-the-session-picker)67[Sessioni: usa il selettore delle sessioni](https://code.claude.com/docs/it/sessions.md#use-the-session-picker)

68 68 

69Windows senza Git Bash69Windows senza Git Bash

70Windows70Windows

71 71 

72Git per Windows non è più richiesto. Quando Bash è assente, Claude Code utilizza PowerShell come strumento shell, e quando lo strumento PowerShell è abilitato viene trattato come shell primaria. PowerShell 7 installato tramite Microsoft Store, MSI senza PATH o come strumento globale `.NET` viene ora rilevato automaticamente.72Git for Windows non è più necessario. Quando Bash non è presente, Claude Code usa PowerShell come strumento shell e, quando lo strumento PowerShell è abilitato, viene trattato come shell principale. PowerShell 7 installato tramite Microsoft Store, MSI senza PATH o come strumento globale `.NET` viene ora rilevato automaticamente.

73 73 

74[Guida di configurazione](https://code.claude.com/docs/it/setup.md)74[Guida all'installazione](https://code.claude.com/docs/it/setup.md)

75 75 

76Altri vantaggi76Altri miglioramenti

77 77 

78I server MCP possono rinunciare al differimento della ricerca degli strumenti con `alwaysLoad: true` nella loro configurazione in modo che tutti gli strumenti di quel server siano sempre disponibiliNuovo `claude plugin prune` rimuove le dipendenze dei plugin auto-installati orfane e `plugin uninstall --prune` a cascata`/skills` ora ha una casella di ricerca di filtro per digitazione in modo da poter trovare un'abilità in un lungo elenco senza scorrereGli hook `PostToolUse` possono sostituire l'output dello strumento per qualsiasi strumento tramite `hookSpecificOutput.updatedToolOutput`, non solo per gli strumenti MCPNuovo sottocomando [`claude ultrareview`](https://code.claude.com/docs/it/ultrareview) esegue `/ultrareview` in modo non interattivo da CI o script: stampa i risultati su stdout (`--json` per output grezzo) ed esce con 0 al completamento o 1 in caso di errore`--dangerously-skip-permissions` ora ignora i prompt per le scritture in `.claude/`, `.git/`, `.vscode/`, file di configurazione della shell e altri percorsi precedentemente protetti, mentre i comandi di rimozione catastrofici continuano a richiedere conferma come rete di sicurezzaIl selettore `/model` può elencare i modelli dall'endpoint `/v1/models` del tuo gateway quando `ANTHROPIC_BASE_URL` punta a un gateway compatibile con Anthropic; attiva con `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` da v2.1.129I server MCP che riscontrano un errore transitorio durante l'avvio ora ritentano automaticamente fino a 3 volte invece di rimanere disconnessi`ANTHROPIC_BEDROCK_SERVICE_TIER` seleziona un livello di servizio Amazon Bedrock: `default`, `flex` o `priority``/terminal-setup` abilita l'impostazione di accesso agli appunti di iTerm2 in modo che `/copy` funzioni, anche da tmuxGoogle Cloud's Agent Platform ora supporta la Federazione dell'Identità del Carico di Lavoro basata su certificati X.509 (mTLS ADC)Correzioni significative delle perdite di memoria: sessioni ricche di immagini, `/usage` su cronologie di trascrizioni di grandi dimensioni e strumenti a lunga esecuzione senza eventi di progresso78I server MCP possono escludersi dal caricamento differito della ricerca strumenti con `alwaysLoad: true` nella loro configurazione, così tutti gli strumenti di quel server sono sempre disponibiliIl nuovo `claude plugin prune` rimuove le dipendenze dei plugin installate automaticamente e rimaste orfane, e `plugin uninstall --prune` le rimuove a cascata`/skills` ora ha una casella di ricerca con filtro durante la digitazione, così puoi trovare una skill in un lungo elenco senza scorrereGli hook `PostToolUse` possono sostituire l'output di qualsiasi strumento tramite `hookSpecificOutput.updatedToolOutput`, non solo degli strumenti MCPIl nuovo sottocomando [`claude ultrareview`](https://code.claude.com/docs/it/ultrareview) esegue `/ultrareview` in modo non interattivo da CI o script: stampa i risultati su stdout (`--json` per l'output grezzo) ed esce con 0 al completamento o 1 in caso di errore`--dangerously-skip-permissions` ora salta le richieste di permesso per le scritture in `.claude/`, `.git/`, `.vscode/`, nei file di configurazione della shell e in altri percorsi prima protetti, mentre i comandi di rimozione catastrofici chiedono ancora conferma come rete di sicurezzaIl selettore `/model` può elencare i modelli dall'endpoint `/v1/models` del tuo gateway quando `ANTHROPIC_BASE_URL` punta a un gateway compatibile con Anthropic; dalla v2.1.129 attivalo con `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1`I server MCP che incontrano un errore temporaneo durante l'avvio ora ritentano automaticamente fino a 3 volte invece di restare disconnessi`ANTHROPIC_BEDROCK_SERVICE_TIER` seleziona un livello di servizio di Amazon Bedrock: `default`, `flex` o `priority``/terminal-setup` abilita l'impostazione di accesso agli appunti di iTerm2 così `/copy` funziona, anche da tmuxAgent Platform di Google Cloud ora supporta la Workload Identity Federation basata su certificati X.509 (mTLS ADC)Correzioni significative di perdite di memoria: sessioni con molte immagini, `/usage` su cronologie di trascrizioni ampie e strumenti a lunga esecuzione senza eventi di avanzamento

79 79 

80[Changelog completo per v2.1.120–v2.1.126 →](https://code.claude.com/docs/en/changelog.md#2-1-120)80[Changelog completo per v2.1.120–v2.1.126 →](https://code.claude.com/docs/en/changelog.md#2-1-120)

Details

4 4 

5# Settimana 23 · 1–5 giugno 20265# Settimana 23 · 1–5 giugno 2026

6 6 

7> Esegui la modalità auto su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, richiedi conferma prima di scrivere file che possono eseguire codice in modalità acceptEdits, elenca i plugin installati con /plugin list e richiedi un intervallo di versione approvato per le distribuzioni gestite.7> Esegui la modalità auto su Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry, ricevi una richiesta di conferma prima della scrittura di file che possono eseguire codice in modalità acceptEdits, elenca i plugin installati con /plugin list e richiedi un intervallo di versioni approvato per le distribuzioni gestite.

8 8 

9Releases [v2.1.158 → v2.1.165](https://code.claude.com/docs/en/changelog.md#2-1-158)9Release [v2.1.158 → v2.1.165](https://code.claude.com/docs/en/changelog.md#2-1-158)

104 funzionalità · 1–5 giugno104 funzionalità · 1–5 giugno

11 11 

12Modalità auto su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry12Modalità auto su Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry

13v2.1.15813v2.1.158

14 14 

15La modalità auto è ora disponibile su Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry per Opus 4.7 e Opus 4.8, sostituendo i prompt di autorizzazione con controlli di sicurezza in background su provider di terze parti. Attiva la funzione impostando `CLAUDE_CODE_ENABLE_AUTO_MODE=1`.15La modalità auto è ora disponibile su Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry per Opus 4.7 e Opus 4.8, e sostituisce le richieste di permesso con controlli di sicurezza in background sui provider di terze parti. Attivala impostando `CLAUDE_CODE_ENABLE_AUTO_MODE=1`.

16 16 

17Attiva la funzione su un provider di terze parti, quindi passa alla modalità auto con Shift+Tab:17Attivala su un provider di terze parti, poi passa alla modalità auto con Shift+Tab:

18 18 

19```bash terminal theme={null}19```bash terminal theme={null}

20export CLAUDE_CODE_ENABLE_AUTO_MODE=120export CLAUDE_CODE_ENABLE_AUTO_MODE=1

21```21```

22 22 

23[Abilita la modalità auto su provider di terze parti](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry)23[Modalità auto sui provider di terze parti](https://code.claude.com/docs/it/permission-modes.md#enable-auto-mode-on-bedrock-agent-platform-or-foundry)

24 24 

25Modifiche automatiche più sicure25Modifiche automatiche più sicure

26v2.1.16026v2.1.160

27 27 

28Claude Code ora richiede conferma prima di scrivere file che possono eseguire codice, anche in modalità `acceptEdits`. L'insieme protetto copre i file di avvio della shell come `.zshenv` e `.bash_login`, la configurazione git in `~/.config/git/` e le configurazioni degli strumenti di compilazione come `.npmrc`, `.bazelrc` e `.pre-commit-config.yaml`. Queste scritture non vengono mai approvate automaticamente in nessuna modalità tranne `bypassPermissions`.28Claude Code ora chiede conferma prima di scrivere file che possono eseguire codice, anche in modalità `acceptEdits`. L'insieme protetto comprende i file di avvio della shell come `.zshenv` e `.bash_login`, la configurazione di git in `~/.config/git/` e le configurazioni degli strumenti di build come `.npmrc`, `.bazelrc` e `.pre-commit-config.yaml`. Queste scritture non vengono mai approvate automaticamente in nessuna modalità, tranne `bypassPermissions`.

29 29 

30Lavora in modalità acceptEdits; Claude ora si ferma prima di scrivere questi file:30Lavora in modalità acceptEdits; Claude ora si ferma prima di scrivere questi file:

31 31 


38Elenca i plugin installati con /plugin list38Elenca i plugin installati con /plugin list

39v2.1.16339v2.1.163

40 40 

41Il nuovo comando `/plugin list` stampa i tuoi plugin installati inline, senza aprire il menu `/plugin`, ed è disponibile anche come `claude plugin list` dalla shell. Nel modulo interattivo, aggiungi `--enabled` o `--disabled` per mostrare solo i plugin in quello stato.41Il nuovo comando `/plugin list` mostra i plugin installati direttamente, senza aprire il menu `/plugin`, ed è disponibile anche come `claude plugin list` dalla shell. Nella forma interattiva, aggiungi `--enabled` o `--disabled` per mostrare solo i plugin in quello stato.

42 42 

43Elenca i plugin che sono attualmente attivati:43Elenca i plugin attualmente attivi:

44 44 

45```text Claude Code theme={null}45```text Claude Code theme={null}

46> /plugin list --enabled46> /plugin list --enabled


51Requisiti di versione per le distribuzioni gestite51Requisiti di versione per le distribuzioni gestite

52v2.1.16352v2.1.163

53 53 

54Due impostazioni gestite, `requiredMinimumVersion` e `requiredMaximumVersion`, consentono alla tua organizzazione di richiedere un intervallo di versione di Claude Code approvato. Un client al di fuori dell'intervallo si chiude all'avvio e comunica all'utente di aggiornare tramite il metodo dell'organizzazione. `claude update`, `claude install` e `claude doctor` continuano a funzionare in modo che gli utenti possano ancora recuperare.54Due impostazioni gestite, `requiredMinimumVersion` e `requiredMaximumVersion`, consentono alla tua organizzazione di richiedere un intervallo di versioni di Claude Code approvato. Un client al di fuori dell'intervallo si chiude all'avvio e indica all'utente di aggiornare tramite il metodo dell'organizzazione. `claude update`, `claude install` e `claude doctor` continuano a funzionare, così gli utenti possono comunque ripristinare la situazione.

55 55 

56Aggiungi un limite minimo alle tue impostazioni gestite in modo che i client più vecchi rifiutino di avviarsi:56Aggiungi una versione minima alle tue impostazioni gestite, così i client più vecchi si rifiutano di avviarsi:

57 57 

58```json managed-settings.json theme={null}58```json managed-settings.json theme={null}

59{59{


61}61}

62```62```

63 63 

64[Decidi cosa applicare](https://code.claude.com/docs/it/admin-setup.md#decide-what-to-enforce)64[Decidi cosa imporre](https://code.claude.com/docs/it/admin-setup.md#decide-what-to-enforce)

65 65 

66Altri vantaggi66Altri miglioramenti

67 67 

68La parola chiave di attivazione per i [workflow dinamici](https://code.claude.com/docs/it/workflows.md) è cambiata da `workflow` a `ultracode`; chiedere un workflow con le tue stesse parole funziona ancora, e la parola chiave è evidenziata in viola nel promptGli hook [Stop e SubagentStop](https://code.claude.com/docs/it/hooks.md) possono restituire `hookSpecificOutput.additionalContext` per fornire feedback a Claude e mantenere il turno in corso invece di essere trattati come un errore`claude mcp` list, get e add non stampano più i segreti: i riferimenti alle variabili di ambiente non vengono espansi e le intestazioni delle credenziali e i segreti degli URL vengono oscuratiUn comando Bash non riuscito in un batch di strumenti paralleli non annulla più gli altri; ogni strumento restituisce il suo risultato in modo indipendenteLa modifica di un file non richiede più un Read separato quando lo hai visualizzato con un singolo file `grep`, `egrep` o `fgrep`Fare clic su un comando nel menu di completamento automatico ora lo inserisce nel tuo prompt invece di eseguirlo immediatamente; premi Invio per eseguireL'elenco di `Grep` o `Glob` in `--tools` ora fornisce gli strumenti di ricerca dedicati su build native con ricerca incorporata, invece di ignorare silenziosamente questi nomi`/effort` ora conferma quando il livello scelto persisterà come predefinito per le nuove sessioniI valori di `OTEL_RESOURCE_ATTRIBUTES` sono ora allegati come etichette sui punti dati delle metriche, in modo da poter suddividere le metriche di utilizzo per dimensioni personalizzate come team o repoWindsurf è rinominato in Devin Desktop in `/ide`, `/terminal-setup` e `/scroll-speed`, seguendo il rebranding dell'editor`/btw` guadagna una scorciatoia `c to copy` che copia la risposta markdown grezza negli appunti68La parola chiave di attivazione per i [workflow dinamici](https://code.claude.com/docs/it/workflows.md) è cambiata da `workflow` a `ultracode`; chiedere un workflow con parole tue funziona ancora, e la parola chiave viene evidenziata in viola nel promptGli [hook Stop e SubagentStop](https://code.claude.com/docs/it/hooks.md) possono restituire `hookSpecificOutput.additionalContext` per dare un feedback a Claude e far proseguire il turno invece di essere trattati come un errore`claude mcp` list, get e add non mostrano più i segreti: i riferimenti alle variabili d'ambiente non vengono espansi, e le intestazioni con credenziali e i segreti negli URL vengono oscuratiUn comando Bash non riuscito in un gruppo di strumenti paralleli non annulla più gli altri; ogni strumento restituisce il proprio risultato in modo indipendenteLa modifica di un file non richiede più un Read separato prima, se lo hai visualizzato con un `grep`, `egrep` o `fgrep` su un singolo fileFare clic su un comando nel menu di completamento automatico ora lo inserisce nel prompt invece di eseguirlo immediatamente; premi Enter per eseguirloIndicare `Grep` o `Glob` in `--tools` ora fornisce gli strumenti di ricerca dedicati nelle build native con ricerca integrata, invece di ignorare silenziosamente quei nomi`/effort` ora conferma quando il livello scelto verrà mantenuto come predefinito per le nuove sessioniI valori di `OTEL_RESOURCE_ATTRIBUTES` vengono ora associati come etichette ai punti dati delle metriche, così puoi suddividere le metriche di utilizzo per dimensioni personalizzate come team o repositoryWindsurf è stato rinominato Devin Desktop in `/ide`, `/terminal-setup` e `/scroll-speed`, in seguito al rebranding dell'editor`/btw` ottiene una scorciatoia `c to copy` che copia negli appunti la risposta in markdown non elaborato

69 69 

70[Changelog completo per v2.1.158–v2.1.165 →](https://code.claude.com/docs/en/changelog.md#2-1-158)70[Changelog completo per v2.1.158–v2.1.165 →](https://code.claude.com/docs/en/changelog.md#2-1-158)

Details

4 4 

5# Settimana 35 · 24–28 agosto 20265# Settimana 35 · 24–28 agosto 2026

6 6 

7> Riprendere le sessioni di terminale nell'app Claude Code Desktop, esaminare i rapporti di feedback che Claude redige per voi e avviare una sessione in modalità limitata.7> Riprendi le sessioni del terminale nell'app Claude Code Desktop, rivedi i report di feedback che Claude redige per te e avvia una sessione in modalità con restrizioni.

8 8 

9Rilasci [v2.1.240 → v2.1.250](https://code.claude.com/docs/en/changelog.md#2-1-240)9Release [v2.1.240 → v2.1.250](https://code.claude.com/docs/en/changelog.md#2-1-240)

103 funzionalità · 24–28 agosto103 funzionalità · 24–28 agosto

11 11 

12Riprendere le sessioni di terminale nell'app Desktop12Riprendi le sessioni del terminale nell'app Desktop

13Desktop13Desktop

14 14 

15Digitate `/resume` nella casella del prompt di Claude Code Desktop per riprendere qualsiasi sessione avviata dalla CLI e continuarla nell'app mantenendo intatta la conversazione completa e il contesto. Cercate le vostre sessioni per titolo, cartella o ramo, e visualizzate un'anteprima di dove avete interrotto prima di riprendere.15Digita `/resume` nella casella del prompt di Claude Code Desktop per riprendere qualsiasi sessione avviata dalla CLI e continuarla nell'app con l'intera conversazione e il contesto intatti. Cerca le tue sessioni per titolo, cartella o branch e visualizza un'anteprima del punto in cui eri rimasto prima di riprendere.

16 16 

17<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/desktop-resume-cli-session.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=41e4a5fda6b9d63280589f2cbdabf44f" />17<video autoPlay muted loop playsInline src="https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/desktop-resume-cli-session.mp4?fit=max&auto=format&n=f9HTZGyMtxIFOUgt&q=85&s=41e4a5fda6b9d63280589f2cbdabf44f" />

18 18 

19In una sessione Desktop, eseguite il comando per elencare le vostre sessioni di terminale:19In una sessione Desktop, esegui il comando per elencare le tue sessioni del terminale:

20 20 

21```text Claude Code theme={null}21```text Claude Code theme={null}

22> /resume22> /resume

23```23```

24 24 

25Selezionate una sessione e premete `Invio`. La conversazione si apre nell'app da dove avete interrotto.25Seleziona una sessione e premi `Enter`. La conversazione si apre nell'app dal punto in cui eri rimasto.

26 26 

27[Spostarsi tra la CLI e Desktop](https://code.claude.com/docs/it/desktop.md#coming-from-the-cli)27[Passa dalla CLI a Desktop e viceversa](https://code.claude.com/docs/it/desktop.md#coming-from-the-cli)

28 28 

29Feedback redatto da Claude29Feedback redatto da Claude

30CLI30CLI

31 31 

32Quando uno strumento continua a non funzionare, Claude non riesce ad aiutare con una richiesta, o voi segnalate un errore, Claude ora redige un rapporto di feedback per voi con lo strumento `SendFeedback`. Una scheda sopra il vostro prompt mostra la bozza, e potete esaminarla, inviarla o scartarla da lì. Nulla raggiunge Anthropic finché non la inviate. Richiede v2.1.238 o successiva.32Quando uno strumento continua a fallire, Claude non può aiutarti con una richiesta o tu segnali un errore, Claude ora redige per te un report di feedback con lo strumento `SendFeedback`. Una scheda sopra il prompt mostra la bozza, e da lì puoi rivederla, inviarla o ignorarla. Nulla arriva ad Anthropic finché non la invii. Richiede la v2.1.238 o successiva.

33 33 

34![Una sessione di Claude Code dove Claude ha redatto un rapporto di bug intitolato Sandbox image pull fails behind proxy, mostrato come una scheda sopra il prompt con opzioni per esaminare, inviare o scartare](https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/claude-drafted-feedback.jpg?fit=max\&auto=format\&n=f9HTZGyMtxIFOUgt\&q=85\&s=5cacb3be0dffd1cbd417381f3721637e)34![Una sessione di Claude Code in cui Claude ha redatto una segnalazione di bug intitolata Sandbox image pull fails behind proxy, mostrata come scheda sopra il prompt con le opzioni per rivederla, inviarla o ignorarla](https://mintcdn.com/claude-code/f9HTZGyMtxIFOUgt/images/whats-new/claude-drafted-feedback.jpg?fit=max\&auto=format\&n=f9HTZGyMtxIFOUgt\&q=85\&s=5cacb3be0dffd1cbd417381f3721637e)

35 35 

36Eseguite `/feedback` senza argomenti per aprire la vostra coda di bozze da ogni sessione:36Esegui `/feedback` senza argomenti per aprire la coda delle bozze di tutte le sessioni:

37 37 

38```text Claude Code theme={null}38```text Claude Code theme={null}

39> /feedback39> /feedback

40```40```

41 41 

42Selezionate una bozza, quindi modificatela, inviatela o scartarla. Per disattivare la redazione, impostate **Claude-drafted feedback** su `off` in `/config`.42Seleziona una bozza, poi modificala, inviala o scartala. Per disattivare la redazione, imposta **Claude-drafted feedback** su `off` in `/config`.

43 43 

44[Comportamento dello strumento SendFeedback](https://code.claude.com/docs/it/tools-reference.md#sendfeedback-tool-behavior)44[Comportamento dello strumento SendFeedback](https://code.claude.com/docs/it/tools-reference.md#sendfeedback-tool-behavior)

45 45 

46Modalità limitata46Modalità con restrizioni

47v2.1.24847v2.1.248

48 48 

49La modalità limitata avvia Claude Code senza gli strumenti integrati che eseguono comandi o codice. Utilizzatela quando un harness di valutazione guida `claude` su una macchina condivisa. Avviatela con `--restricted` o impostate `CLAUDE_CODE_RESTRICTED=1`. Claude Code rimuove anche `WebFetch`, limita gli strumenti di file alle directory di lavoro, carica solo le impostazioni gestite e `--settings`, e rifiuta la modalità di autorizzazione `bypassPermissions`.49La modalità con restrizioni avvia Claude Code senza gli strumenti integrati che eseguono comandi o codice. Usala quando un harness di valutazione esegue `claude` su una macchina condivisa. Avviala con `--restricted` o imposta `CLAUDE_CODE_RESTRICTED=1`. Claude Code rimuove anche `WebFetch`, limita gli strumenti per i file alle directory di lavoro, carica solo le impostazioni gestite e `--settings` e rifiuta la modalità di permesso `bypassPermissions`.

50 50 

51Eseguite una query non interattiva senza gli strumenti di esecuzione dei comandi:51Esegui una query non interattiva senza gli strumenti che eseguono comandi:

52 52 

53```bash terminal theme={null}53```bash terminal theme={null}

54claude --restricted -p "review src/ for SQL injection risks"54claude --restricted -p "review src/ for SQL injection risks"

55```55```

56 56 

57Per dare a Claude uno degli strumenti rimossi, elencatelo in `--tools` insieme agli altri strumenti integrati che desiderate, ad esempio `--tools "Bash,Read,Edit"`. `--tools` è una lista di autorizzazione, e il suo preset `default` non ripristina gli strumenti rimossi.57Per restituire a Claude uno degli strumenti rimossi, elencalo in `--tools` insieme agli altri strumenti integrati che desideri, ad esempio `--tools "Bash,Read,Edit"`. `--tools` è un'allowlist, e il suo preset `default` non ripristina gli strumenti rimossi.

58 58 

59[Flag CLI](https://code.claude.com/docs/it/cli-reference.md#cli-flags)59[Flag della CLI](https://code.claude.com/docs/it/cli-reference.md#cli-flags)

60 60 

61Altri vantaggi61Altri miglioramenti

62 62 

63Impostate la nuova impostazione [`modelPicker`](https://code.claude.com/docs/it/settings-reference#modelpicker) per estendere o sostituire l'elenco integrato del picker `/model` con le vostre voci ordinate ed etichettate, inclusi gli ID modello di Amazon Bedrock o della piattaforma agente di Google CloudImpostate [`promptCacheTtl`](https://code.claude.com/docs/it/prompt-caching#choose-the-ttl-yourself) su `1h` per mantenere una cache di prompt di un'ora nella conversazione principale quando utilizzate una chiave API o un provider cloud; `subagentPromptCacheTtl` imposta il TTL per i subagent e tutte le altre richieste al di fuori della conversazione principaleSu piani Pro, Max, Team ed Enterprise, [`/usage`](https://code.claude.com/docs/it/costs#plan-usage-breakdown) aggiunge un breakdown dei loop: conteggio delle esecuzioni, token totali, token per esecuzione e ultima esecuzione per `/loop` e i compiti programmati che hanno utilizzato il maggior numero di tokenLe organizzazioni con tariffe contrattuali possono impostare l'impostazione gestita [`modelPricing`](https://code.claude.com/docs/it/costs#report-spend-at-your-contracted-rates) in modo che `/usage`, la riga di stato e OpenTelemetry riportino il costo a quelle tariffe invece del prezzo di listino`/login` offre **Accedi con il tuo account Console** sotto l'opzione **Account Anthropic Console**, in modo che i membri delle organizzazioni Console che non consentono chiavi API possano accedere senza crearne unaEseguite `/permissions` e aprite la nuova [scheda **Auto mode**](https://code.claude.com/docs/it/auto-mode-config.md#edit-rules-from-permissions) per visualizzare e modificare le regole del classificatore della modalità automatica senza aprire un file di impostazioniQuando la modalità automatica è disponibile, i prompt di autorizzazione Bash nelle modalità Manual e `acceptEdits` offrono un'opzione [**Sì, e passa alla modalità automatica**](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes); selezionatela per approvare il comando e passare la sessione alla modalità automaticaDopo aver [spostato una sessione con `/cd`](https://code.claude.com/docs/it/permissions#move-the-session-to-another-directory), le impostazioni del progetto della nuova directory, gli hook, i server `.mcp.json`, le skill e i subagent hanno effetto immediatamente invece che al prossimo `--resume`Nelle sessioni non interattive, incluse le esecuzioni `-p`, le esecuzioni di Agent SDK e le sessioni cloud, Claude Code [continua una risposta](https://code.claude.com/docs/it/errors.md#the-response-above-may-be-incomplete) che un errore del server, una connessione interrotta o un blocco ha interrotto a metà flusso, quando la risposta parziale contiene testo e nessuna chiamata di strumentoUn subagent che si ferma al limite `maxTurns` restituisce il suo output contrassegnato come parziale, con un suggerimento che Claude può [continuarlo con `SendMessage`](https://code.claude.com/docs/it/sub-agents#resume-subagents), invece di apparire completatoSu Amazon Bedrock, la piattaforma agente di Google Cloud e Microsoft Foundry, le sessioni sulla stessa macchina possono ora [messaggiarsi l'una con l'altra](https://code.claude.com/docs/it/cross-session-messaging.md#availability), `/loop` può [scegliere il suo intervallo](https://code.claude.com/docs/it/scheduled-tasks.md#let-claude-choose-the-interval), e `/model` e `/effort` si applicano immediatamente invece che dopo la fine del turnoIl programma di installazione nativo e l'aggiornamento automatico scaricano una build compressa con zstd, circa 75 MB invece di 340 MB su Linux x64, e le build native caricano il codice su richiesta, utilizzando approssimativamente 40-70 MB di memoria in meno per sessione63Imposta la nuova impostazione [`modelPicker`](https://code.claude.com/docs/it/settings-reference#modelpicker) per estendere o sostituire l'elenco integrato del selettore `/model` con voci tue, ordinate ed etichettate, inclusi gli ID dei modelli di Amazon Bedrock o di Agent Platform di Google CloudImposta [`promptCacheTtl`](https://code.claude.com/docs/it/prompt-caching#choose-the-ttl-yourself) su `1h` per mantenere una cache dei prompt di un'ora sulla conversazione principale quando usi una chiave API o un provider cloud; `subagentPromptCacheTtl` imposta il TTL per i subagent e per tutte le altre richieste al di fuori della conversazione principaleSui piani Pro, Max, Team ed Enterprise, [`/usage`](https://code.claude.com/docs/it/costs#plan-usage-breakdown) aggiunge un dettaglio dei Loops: numero di esecuzioni, token totali, token per esecuzione e ultima esecuzione per i `/loop` e le attività pianificate che hanno usato più tokenLe organizzazioni con tariffe contrattuali possono impostare l'impostazione gestita [`modelPricing`](https://code.claude.com/docs/it/costs#report-spend-at-your-contracted-rates) in modo che `/usage`, la riga di stato e OpenTelemetry riportino i costi a quelle tariffe anziché al prezzo di listino`/login` offre **Sign in with your Console account** sotto l'opzione **Anthropic Console account**, così i membri delle organizzazioni Console che non consentono le chiavi API possono accedere senza crearne unaEsegui `/permissions` e apri la nuova [scheda **Auto mode**](https://code.claude.com/docs/it/auto-mode-config.md#edit-rules-from-permissions) per visualizzare e modificare le regole del classificatore della modalità auto senza aprire un file di impostazioniQuando la modalità auto è disponibile, le richieste di permesso di Bash nelle modalità di permesso Manual e `acceptEdits` offrono un'opzione [**Yes, and switch to auto mode**](https://code.claude.com/docs/it/permission-modes.md#switch-permission-modes); selezionala per approvare il comando e passare la sessione alla modalità autoDopo aver [spostato una sessione con `/cd`](https://code.claude.com/docs/it/permissions#move-the-session-to-another-directory), le impostazioni di progetto, gli hook, i server di `.mcp.json`, le skill e i subagent della nuova directory hanno effetto immediatamente anziché al successivo `--resume`Nelle sessioni non interattive, incluse le esecuzioni con `-p`, le esecuzioni dell'Agent SDK e le sessioni cloud, Claude Code [continua una risposta](https://code.claude.com/docs/it/errors.md#the-response-above-may-be-incomplete) interrotta a metà streaming da un errore del server, una connessione persa o uno stallo, quando la risposta parziale contiene testo e nessuna chiamata a uno strumentoUn subagent che si ferma al suo limite `maxTurns` restituisce il proprio output contrassegnato come parziale, con un suggerimento che Claude può [continuarlo con `SendMessage`](https://code.claude.com/docs/it/sub-agents#resume-subagents), invece di apparire completatoSu Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry, le sessioni sulla stessa macchina possono ora [scambiarsi messaggi](https://code.claude.com/docs/it/cross-session-messaging.md#availability), `/loop` può [scegliere il proprio intervallo](https://code.claude.com/docs/it/scheduled-tasks.md#let-claude-choose-the-interval), e `/model` e `/effort` si applicano immediatamente anziché dopo la fine del turnoIl programma di installazione nativo e l'aggiornamento automatico scaricano una build compressa con zstd, di circa 75 MB anziché 340 MB su Linux x64, e le build native caricano il codice su richiesta, usando circa 40-70 MB di memoria in meno per sessione

64 64 

65[Changelog completo per v2.1.240–v2.1.250 →](https://code.claude.com/docs/en/changelog.md#2-1-240)65[Changelog completo per v2.1.240–v2.1.250 →](https://code.claude.com/docs/en/changelog.md#2-1-240)

workflows.md +93 −93

Details

31 31 

32Spostare il piano nel codice consente anche a un flusso di lavoro di applicare un modello di qualità ripetibile, non solo eseguire più agenti: può avere agenti indipendenti che si rivedono avversarialmente i risultati l'uno dell'altro prima che vengano segnalati, o elaborare un piano da diversi angoli e pesarli l'uno rispetto all'altro, così ottieni un risultato più affidabile di un singolo passaggio.32Spostare il piano nel codice consente anche a un flusso di lavoro di applicare un modello di qualità ripetibile, non solo eseguire più agenti: può avere agenti indipendenti che si rivedono avversarialmente i risultati l'uno dell'altro prima che vengano segnalati, o elaborare un piano da diversi angoli e pesarli l'uno rispetto all'altro, così ottieni un risultato più affidabile di un singolo passaggio.

33 33 

34## Eseguire un flusso di lavoro in bundle34## Esegui un workflow incluso

35 35 

36Il modo più veloce per vedere un flusso di lavoro in azione è eseguire `/deep-research`, il [flusso di lavoro integrato](#bundled-workflows) che Claude Code include per investigare una domanda su molte fonti. Vedrai gli agenti lavorare attraverso una serie di fasi in background mentre la tua sessione rimane libera, e otterrai un rapporto alla fine invece di una trascrizione turno per turno.36Il modo più rapido per vedere un workflow in azione è eseguire `/deep-research`, il [workflow integrato](#bundled-workflows) che Claude Code include per indagare una domanda attraverso molte fonti. Vedrai gli agenti lavorare in background attraverso una serie di fasi mentre la tua sessione resta libera, e alla fine riceverai un unico report invece di una trascrizione turno per turno.

37 37 

38**1. Eseguire il flusso di lavoro**38**1. Esegui il workflow**

39 39 

40Esegui `/deep-research` con una domanda che vuoi investigare. Distribuisce ricerche web su diversi angoli, recupera e verifica in modo incrociato le fonti che trova, e sintetizza un rapporto citato.40Esegui `/deep-research` con una domanda su cui vuoi indagare. Distribuisce ricerche web su diverse angolazioni, recupera e verifica incrociando le fonti che trova, e sintetizza un report con citazioni.

41 41 

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

43/deep-research What changed in the Node.js permission model between v20 and v22?43/deep-research What changed in the Node.js permission model between v20 and v22?

44```44```

45 45 

46**2. Consentire i workflow**46**2. Consenti i workflow**

47 47 

48Claude Code chiede se consentire il workflow. Seleziona **Sì** per continuare. La richiesta esatta dipende dalla tua modalità di permesso. Vedi [Approvare il piano prima che venga eseguito](#approve-the-plan-before-it-runs) per le opzioni per modalità.48Claude Code chiede se consentire il workflow. Seleziona **Yes** per continuare. La richiesta esatta dipende dalla tua modalità di permesso. Consulta [Approva il piano prima che venga eseguito](#approve-the-plan-before-it-runs) per le opzioni di ciascuna modalità.

49 49 

50**3. Guardare il progresso**50**3. Segui l'avanzamento**

51 51 

52L'esecuzione inizia in background. Esegui `/workflows` per aprire la sua vista di progresso:52L'esecuzione parte in background. Esegui `/workflows` per aprire la sua vista di avanzamento:

53 53 

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

55/workflows55/workflows

56```56```

57 57 

58Se invece `/workflows` mostra un elenco di esecuzioni, seleziona l'esecuzione che hai appena avviato e premi Invio. La vista mostra ogni fase con il suo conteggio di agenti. Approfondisci qualsiasi fase per vedere i suoi agenti e cosa ha trovato ognuno. Vedi [Guardare l'esecuzione](#watch-the-run) per l'insieme completo di controlli.58Se invece `/workflows` mostra un elenco di esecuzioni, seleziona quella che hai appena avviato e premi Enter. La vista mostra ogni fase con il relativo numero di agenti. Entra in una fase qualsiasi per vederne gli agenti e ciò che ciascuno ha trovato. Consulta [Segui l'esecuzione](#watch-the-run) per l'insieme completo dei controlli.

59 59 

60Puoi anche guardare dal pannello attività sotto la casella di input: un riepilogo di progresso su una riga appare lì mentre l'esecuzione è in corso. Premi la freccia giù per focalizzarlo, quindi Invio per espandere.60Puoi anche seguire l'avanzamento dal pannello delle attività sotto la casella di input: lì compare un riepilogo di una riga mentre l'esecuzione è in corso. Premi la freccia giù per metterlo a fuoco, poi Enter per espanderlo.

61 61 

62**4. Leggere il rapporto**62**4. Leggi il report**

63 63 

64Quando l'esecuzione finisce, il rapporto arriva nella tua sessione. Cita le fonti da cui proviene ogni affermazione, con affermazioni che non hanno superato la verifica incrociata già filtrate.64Al termine dell'esecuzione, il report compare nella tua sessione. Cita le fonti da cui proviene ogni affermazione, e le affermazioni che non hanno superato la verifica incrociata sono già state filtrate.

65 65 

66Quando gli agenti verificatori non riescono a controllare un'affermazione, ad esempio dopo un limite di velocità o un errore API, il rapporto elenca tale affermazione come non verificata invece di contarla come confutata.66Quando gli agenti verificatori non riescono a controllare un'affermazione, ad esempio dopo un rate limit o un errore dell'API, il report elenca quell'affermazione come non verificata invece di considerarla smentita.

67 67 

68Per eseguire un flusso di lavoro per il tuo compito, [fai scrivere uno a Claude](#have-claude-write-a-workflow), e una volta che un'esecuzione fa quello che volevi puoi [salvarlo](#save-the-workflow-for-reuse) come comando tuo.68Per eseguire un workflow per una tua attività, [fai scrivere un workflow a Claude](#have-claude-write-a-workflow), e quando un'esecuzione fa ciò che volevi puoi [salvarla](#save-the-workflow-for-reuse) come un tuo comando.

69 69 

70### Flussi di lavoro in bundle70### Workflow inclusi

71 71 

72Claude Code include `/deep-research` come flusso di lavoro integrato:72Claude Code include `/deep-research` come workflow integrato:

73 73 

74| Comando | Che cosa fa |74| Comando | Cosa fa |

75| :- | :- |75| :- | :- |

76| `/deep-research <question>` | Distribuisce ricerche web su una domanda su diversi angoli, recupera e verifica in modo incrociato le fonti che trova, vota su ogni affermazione e restituisce un rapporto citato con affermazioni che non hanno superato la verifica incrociata filtrate. Richiede che lo strumento [WebSearch](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior) sia disponibile |76| `/deep-research <question>` | Distribuisce ricerche web su una domanda attraverso diverse angolazioni, recupera e verifica incrociando le fonti che trova, vota su ogni affermazione e restituisce un report con citazioni, filtrando le affermazioni che non hanno superato la verifica incrociata. Richiede che lo [strumento WebSearch](https://code.claude.com/docs/it/tools-reference.md#websearch-tool-behavior) sia disponibile |

77 77 

78`/deep-research` viene eseguito solo quando lo richiami.78`/deep-research` viene eseguito solo quando lo invochi.

79 79 

80[I flussi di lavoro che salvi](#save-the-workflow-for-reuse) tu stesso diventano comandi allo stesso modo e appaiono nell'autocompletamento `/` insieme a quelli in bundle.80I [workflow che salvi](#save-the-workflow-for-reuse) tu stesso diventano comandi allo stesso modo e compaiono nel completamento automatico di `/` accanto a quelli inclusi.

81 81 

82### Guardare l'esecuzione82### Segui l'esecuzione

83 83 

84I workflow vengono eseguiti in background, quindi la sessione rimane reattiva mentre gli agenti lavorano. Esegui `/workflows` in qualsiasi momento per elencare i workflow in esecuzione e completati, quindi selezionane uno per aprire la sua vista di progresso. Quando la sessione ha una sola esecuzione, `/workflows` salta l'elenco e apre quell'esecuzione. Per interrompere un workflow in esecuzione dall'elenco senza aprirlo, selezionalo e premi `x`.84I workflow vengono eseguiti in background, quindi la sessione resta reattiva mentre gli agenti lavorano. Esegui `/workflows` in qualsiasi momento per elencare i workflow in esecuzione e completati, poi selezionane uno per aprirne la vista di avanzamento. Quando la sessione ha una sola esecuzione, `/workflows` salta l'elenco e apre direttamente quell'esecuzione. Per interrompere un workflow in esecuzione dall'elenco senza aprirlo, selezionalo e premi `x`.

85 85 

86La vista di progresso mostra ogni fase con i suoi conteggi di agenti. Il piè di pagina elenca il tasto per ogni azione:86La vista di avanzamento mostra ogni fase con il relativo numero di agenti. Il piè di pagina elenca il tasto per ogni azione:

87 87 

88| Tasto | Azione |88| Tasto | Azione |

89| :- | :- |89| :- | :- |

90| `↑` / `↓` | Selezionare una fase o un agente |90| `↑` / `↓` | Seleziona una fase o un agente |

91| `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 |91| `Enter` o `→` | Entra nella fase selezionata, poi nel dettaglio di un agente. Nel dettaglio, `Enter` lo espande o lo comprime |

92| `Esc` o `←` | Tornare indietro di un livello |92| `Esc` o `←` | Torna indietro di un livello |

93| `j` / `k` | Scorrere all'interno del dettaglio dell'agente quando trabocca |93| `j` / `k` | Scorri all'interno del dettaglio dell'agente quando eccede lo spazio disponibile |

94| `f` | Filtrare l'elenco degli agenti nella fase selezionata per stato. Premi di nuovo per ciclare |94| `f` | Filtra l'elenco degli agenti nella fase selezionata in base allo stato. Premi di nuovo per passare al filtro successivo |

95| `p` | Mettere in pausa o riprendere l'esecuzione |95| `p` | Metti in pausa o riprendi l'esecuzione |

96| `x` | Fermare l'agente selezionato, o fermare l'intero flusso di lavoro quando il focus è sull'esecuzione |96| `x` | Interrompi l'agente selezionato, o l'intero workflow quando il focus è sull'esecuzione |

97| `r` | Riavviare l'agente in esecuzione selezionato |97| `r` | Riavvia l'agente in esecuzione selezionato |

98| `s` | [Salvare](#save-the-workflow-for-reuse) lo script dell'esecuzione come comando |98| `s` | [Salva](#save-the-workflow-for-reuse) lo script dell'esecuzione come comando |

99 99 

100Il dettaglio dell'agente elenca il prompt dell'agente, le sue recenti chiamate di strumenti e il suo risultato. Ogni chiamata mostra il suo stato, ad esempio ancora in esecuzione o non riuscito. Quando l'agente mantiene un elenco di attività proprio, il dettaglio lo mostra anche, con lo stato di ogni attività.100Il dettaglio dell'agente elenca il prompt dell'agente, le sue chiamate agli strumenti recenti e il suo risultato. Ogni chiamata mostra il suo stato, ad esempio ancora in esecuzione o non riuscita. Quando l'agente mantiene un proprio elenco di attività, il dettaglio mostra anche quello, con lo stato di ciascuna attività.

101 101 

102Premi `Invio` per espandere il dettaglio. Il prompt e il risultato vengono quindi visualizzati per intero, e ogni chiamata elencata mostra il suo input e l'inizio del suo risultato.102Premi `Enter` per espandere il dettaglio. Il prompt e il risultato vengono quindi mostrati per intero, e ogni chiamata elencata mostra il suo input e l'inizio del suo risultato.

103 103 

104## Far scrivere a Claude un flusso di lavoro104## Chiedere a Claude di scrivere un workflow

105 105 

106Puoi far scrivere a Claude un flusso di lavoro per il tuo compito in due modi:106Puoi chiedere a Claude di scrivere un workflow per la tua attività in due modi:

107 107 

108* [Chiedere un flusso di lavoro](#ask-for-a-workflow-in-your-prompt) nel tuo prompt, con le tue stesse parole o includendo la parola chiave `ultracode`, e Claude ne scrive uno per il compito.108* [Chiedi un workflow](#ask-for-a-workflow-in-your-prompt) nel tuo prompt, con parole tue oppure includendo la parola chiave `ultracode`, e Claude ne scrive uno per l'attività.

109* [Lasciare che Claude decida con ultracode](#let-claude-decide-with-ultracode): imposta `/effort ultracode` e Claude pianifica un flusso di lavoro per ogni compito sostanziale nella sessione.109* [Lascia decidere a Claude con ultracode](#let-claude-decide-with-ultracode): imposta `/effort ultracode` e Claude pianifica un workflow per ogni attività sostanziale nella sessione.

110 110 

111Puoi anche eseguire un comando di flusso di lavoro che già esiste: un [flusso di lavoro in bundle](#bundled-workflows) come `/deep-research`, o uno che hai [salvato](#save-the-workflow-for-reuse).111Puoi anche eseguire un comando di workflow già esistente: un [workflow incluso](#bundled-workflows) come `/deep-research`, oppure uno che hai [salvato](#save-the-workflow-for-reuse).

112 112 

113### Chiedere un flusso di lavoro nel tuo prompt113### Chiedere un workflow nel prompt

114 114 

115Per eseguire un singolo compito come flusso di lavoro senza cambiare il livello di sforzo della sessione, includi la parola chiave `ultracode` nel tuo prompt. Chiedere con le tue stesse parole, ad esempio "usa un flusso di lavoro" o "esegui un flusso di lavoro", funziona anche: Claude tratta una richiesta diretta come lo stesso opt-in.115Per eseguire una singola attività come workflow senza modificare il livello di sforzo della sessione, includi la parola chiave `ultracode` nel tuo prompt. Funziona anche chiederlo con parole tue, ad esempio "usa un workflow" o "esegui un workflow": Claude considera una richiesta diretta come lo stesso consenso esplicito.

116 116 

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

118ultracode: audit every API endpoint under src/routes/ for missing auth checks118ultracode: audit every API endpoint under src/routes/ for missing auth checks

119```119```

120 120 

121Claude Code evidenzia la parola chiave nel tuo input e Claude scrive uno script di flusso di lavoro per il compito invece di lavorarci turno per turno. La parola chiave sceglie solo come Claude struttura il lavoro: le chiamate agli strumenti degli agenti ricevono gli stessi controlli di autorizzazione e [sandboxing](https://code.claude.com/docs/it/sandboxing.md) di qualsiasi altra chiamata agli strumenti nella sessione.121Claude Code evidenzia la parola chiave nel tuo input e Claude scrive uno script di workflow per l'attività invece di procedere turno per turno. La parola chiave sceglie soltanto come Claude struttura il lavoro: le chiamate agli strumenti degli agenti ricevono gli stessi controlli dei permessi e lo stesso [sandboxing](https://code.claude.com/docs/it/sandboxing.md) di qualsiasi altra chiamata a uno strumento nella sessione.

122 122 

123Se l'esecuzione fa quello che volevi, puoi [salvarlo come comando](#save-the-workflow-for-reuse) dopo. Se hai già un orchestrator costruito in un altro modo, come una cartella di prompt di subagent o una skill che distribuisce il lavoro, puoi indicare a Claude dove si trova e chiedere un flusso di lavoro che faccia la stessa cosa.123Se l'esecuzione fa ciò che volevi, puoi [salvarla come comando](#save-the-workflow-for-reuse) in seguito. Se hai già un orchestratore costruito in un altro modo, ad esempio una cartella di prompt per subagent o una skill che distribuisce il lavoro, puoi indicarlo a Claude e chiedere un workflow che faccia la stessa cosa.

124 124 

125#### Ignorare o disattivare la parola chiave125#### Ignorare o disattivare la parola chiave

126 126 

127Se non intendevi avviare un flusso di lavoro, premi `Option+W` su macOS o `Alt+W` su Windows e Linux per ignorare l'evidenziazione per questo prompt, oppure premi backspace mentre il cursore è subito dopo la parola chiave evidenziata. Per impedire che la parola chiave attivi un flusso di lavoro del tutto, disattiva il trigger della parola chiave Ultracode in `/config`.127Se non intendevi avviare un workflow, premi `Option+W` su macOS o `Alt+W` su Windows e Linux per ignorare l'evidenziazione per questo prompt, oppure premi backspace mentre il cursore si trova subito dopo la parola chiave evidenziata. Per impedire del tutto che la parola chiave attivi un workflow, disattiva Ultracode keyword trigger in `/config`.

128 128 

129#### Dove funziona la parola chiave129#### Dove funziona la parola chiave

130 130 

131La parola chiave è un opt-in solo in un prompt che digiti tu stesso: al prompt interattivo, in un pannello dell'estensione IDE, in un client [Remote Control](https://code.claude.com/docs/it/remote-control.md), o in un'applicazione Agent SDK che contrassegna l'[`origin`](https://code.claude.com/docs/it/agent-sdk/typescript#sdkmessageorigin) del tuo input da tastiera come `{ kind: "human" }`. Non avvia un flusso di lavoro quando raggiunge la sessione in un altro modo:131La parola chiave vale come consenso esplicito solo in un prompt che digiti tu stesso: nel prompt interattivo, nel pannello di un'estensione IDE, in un client [Remote Control](https://code.claude.com/docs/it/remote-control.md) o in un'applicazione Agent SDK che contrassegna l'[`origin`](https://code.claude.com/docs/it/agent-sdk/typescript#sdkmessageorigin) del tuo input da tastiera come `{ kind: "human" }`. Non avvia un workflow quando raggiunge la sessione in un altro modo:

132 132 

133* un prompt passato con `-p`133* un prompt passato con `-p`

134* un prompt che un'applicazione Agent SDK invia senza contrassegnarlo come input umano134* un prompt che un'applicazione Agent SDK invia senza contrassegnarlo come input umano

135* un prompt di compito programmato135* il prompt di un'attività pianificata

136* un payload webhook o un commento di pull request inoltrato nella conversazione136* un payload di webhook o un commento di una pull request inoltrato nella conversazione

137 137 

138### Lasciare che Claude decida con ultracode138### Lasciare decidere a Claude con ultracode

139 139 

140Ultracode è un'impostazione di Claude Code che attiva l'orchestrazione automatica del flusso di lavoro per la sessione, a qualsiasi [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) la sessione viene eseguita. Con essa attiva, Claude pianifica un flusso di lavoro per ogni compito sostanziale invece di aspettare che tu lo chieda. Attivalo al prompt di Claude Code:140Ultracode è un'impostazione di Claude Code che attiva l'orchestrazione automatica dei workflow per la sessione, a qualunque [livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) la sessione sia in esecuzione. Quando è attiva, Claude pianifica un workflow per ogni attività sostanziale invece di aspettare che tu lo chieda. Attivala dal prompt di Claude Code:

141 141 

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

143/effort ultracode143/effort ultracode


145 145 

146Per avviare una sessione con ultracode già attivo, avvia con `claude --effort ultracode`, che imposta anche il livello di sforzo su `xhigh`.146Per avviare una sessione con ultracode già attivo, avvia con `claude --effort ultracode`, che imposta anche il livello di sforzo su `xhigh`.

147 147 

148Per attivarlo dal cursore `/effort`, premi `Tab` per attivare/disattivare il toggle **Ultracode**, quindi `Enter` per applicarlo. [Regola il livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) elenca i percorsi che attivano ultracode.148Per attivarlo dal cursore di `/effort`, premi `Tab` per cambiare l'interruttore **Ultracode**, poi `Enter` per applicarlo. [Regolare il livello di sforzo](https://code.claude.com/docs/it/model-config.md#adjust-effort-level) elenca i modi per attivare ultracode.

149 149 

150Con ultracode attivo, Claude decide quando un compito merita un flusso di lavoro. Una singola richiesta può trasformarsi in diversi flussi di lavoro di fila: uno per comprendere il codice, uno per fare il cambiamento e uno per verificarlo. Questo si applica a ogni compito nella sessione, quindi ogni richiesta usa più token e richiede più tempo rispetto alla stessa richiesta senza un flusso di lavoro. Su un piano di abbonamento quei token vengono prelevati dai tuoi limiti di utilizzo, quindi una sessione con ultracode attivo raggiunge un limite di sessione o settimanale prima dello stesso lavoro con esso disattivato.150Con ultracode attivo, Claude decide quando un'attività giustifica un workflow. Una singola richiesta può trasformarsi in diversi workflow in sequenza: uno per comprendere il codice, uno per apportare la modifica e uno per verificarla. Questo vale per ogni attività nella sessione, quindi ogni richiesta usa più token e richiede più tempo rispetto alla stessa richiesta senza un workflow. Con un piano in abbonamento questi token incidono sui tuoi limiti di utilizzo, quindi una sessione con ultracode attivo raggiunge un limite di sessione o settimanale prima rispetto allo stesso lavoro con ultracode disattivato.

151 151 

152L'attivazione di ultracode ti consente già di optare per esecuzioni di grandi dimensioni, quindi questi controlli non si applicano mentre è attivo:152Attivare ultracode equivale già a dare il consenso a esecuzioni di grandi dimensioni, quindi questi controlli non si applicano finché è attivo:

153 153 

154* L'avvertimento [`Large workflow`](#cost) non appare su un'esecuzione di flusso di lavoro154* L'[avviso `Large workflow`](#cost) non compare nell'esecuzione di un workflow

155* Il [limite di subagent concorrenti](https://code.claude.com/docs/it/sub-agents.md#concurrent-subagent-limit) della sessione non viene applicato per i subagent che Claude genera con lo strumento Agent155* Il [limite di subagent simultanei](https://code.claude.com/docs/it/sub-agents.md#concurrent-subagent-limit) della sessione non viene applicato ai subagent che Claude genera con lo strumento Agent

156* In modalità di autorizzazione automatica, non ti viene chiesto di [approvare il primo lancio del flusso di lavoro](#approve-the-plan-before-it-runs)156* In modalità di permesso auto, non ti viene chiesto di [approvare il primo avvio di un workflow](#approve-the-plan-before-it-runs)

157 157 

158`/effort ultracode` dura per la sessione corrente; per fare in modo che ogni sessione inizi con esso, imposta l'impostazione [`ultracode`](https://code.claude.com/docs/it/settings-reference#ultracode). Disattivalo con `/effort ultracode off` quando ritorni al lavoro di routine. Il cursore `/effort` offre il toggle solo [quando ultracode è disponibile](https://code.claude.com/docs/it/model-config.md#when-ultracode-is-available). Prima della v2.1.284, `/effort ultracode` impostava la sessione su `xhigh`, e `/effort ultracode off` falliva con `Invalid argument`.158`/effort ultracode` dura per la sessione corrente; per far iniziare ogni sessione con questa opzione, configura l'impostazione [`ultracode`](https://code.claude.com/docs/it/settings-reference#ultracode). Disattivalo con `/effort ultracode off` quando torni al lavoro abituale. Il cursore di `/effort` offre l'interruttore solo [quando ultracode è disponibile](https://code.claude.com/docs/it/model-config.md#when-ultracode-is-available). Prima della v2.1.284, `/effort ultracode` impostava la sessione su `xhigh` e `/effort ultracode off` falliva con `Invalid argument`.

159 159 

160### Approvare il piano prima che venga eseguito160### Approvare il piano prima dell'esecuzione

161 161 

162Nel CLI, il prompt per esecuzione mostra le fasi pianificate e queste opzioni:162Nella CLI, la richiesta di conferma per ogni esecuzione mostra le fasi pianificate e queste opzioni:

163 163 

164* **Sì, eseguilo**: avvia l'esecuzione164* **Yes, run it**: avvia l'esecuzione

165* **Sì, e non chiedere di nuovo per `<name>` in `<path>`**: avvia e salta questo prompt per questo flusso di lavoro in questo progetto da ora in poi. Claude Code offre questa opzione quando esegui un flusso di lavoro in bundle, salvato o plugin per nome, non per uno script che Claude ha scritto per il compito corrente.165* **Yes, and don't ask again for `<name>` in `<path>`**: avvia e salta d'ora in poi questa richiesta di conferma per questo workflow in questo progetto. Claude Code offre questa opzione quando esegui per nome un workflow incluso, salvato o di un plugin, non per uno script che Claude ha scritto per l'attività corrente.

166* **Visualizza script grezzo**: leggi lo script prima di decidere166* **View raw script**: leggi lo script prima di decidere

167* **No**: annulla167* **No**: annulla

168 168 

169`Ctrl+G` apre lo script nel tuo editor. Con **Sì, eseguilo** o **No** selezionato, premi `Tab` per [aggiungere un commento](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) alla tua risposta.169`Ctrl+G` apre lo script nel tuo editor. Con **Yes, run it** o **No** selezionato, premi `Tab` per [aggiungere un commento](https://code.claude.com/docs/it/permissions.md#add-a-comment-when-you-answer-a-permission-prompt) alla tua risposta.

170 170 

171Se vedi questo prompt dipende dalla tua [modalità di autorizzazione](https://code.claude.com/docs/it/permission-modes.md):171La comparsa di questa richiesta di conferma dipende dalla tua [modalità di permesso](https://code.claude.com/docs/it/permission-modes.md):

172 172 

173| Modalità di autorizzazione | Quando sei richiesto |173| Modalità di permesso | Quando ti viene chiesto |

174| :- | :- |174| :- | :- |

175| Auto | Solo al primo avvio. Qualsiasi **Sì** registra il consenso nelle tue impostazioni utente, e i successivi avvii iniziano senza richiedere. Saltato completamente quando ultracode è attivo |175| Auto | Solo al primo avvio. Qualsiasi **Yes** registra il consenso nelle tue impostazioni utente e gli avvii successivi partono senza chiedere. Saltata del tutto quando ultracode è attivo |

176| Manuale, accetta modifiche | Ogni esecuzione, a meno che tu non abbia selezionato **Sì, e non chiedere di nuovo** per quel flusso di lavoro in questo progetto |176| Manuale, accettazione delle modifiche | A ogni esecuzione, a meno che tu non abbia selezionato **Yes, and don't ask again** per quel workflow in questo progetto |

177| Bypass permissions | Claude Code non ti richiede. L'esecuzione inizia immediatamente |177| Bypass dei permessi | Claude Code non ti chiede nulla. L'esecuzione parte immediatamente |

178| `claude -p`, Agent SDK | Claude Code non ti richiede |178| `claude -p`, Agent SDK | Claude Code non ti chiede nulla |

179 179 

180In `claude -p` e nell'Agent SDK, Claude Code non mostra mai questo prompt. Esegue la chiamata dello strumento Workflow attraverso la stessa [valutazione delle autorizzazioni](https://code.claude.com/docs/it/agent-sdk/permissions.md#how-permissions-are-evaluated) del resto della sessione, quindi le regole di negazione, le regole di richiesta e la modalità `dontAsk` si applicano al lancio come si applicano a ogni chiamata agli strumenti. Per consentire al flusso di lavoro di iniziare in queste esecuzioni, usa uno di questi:180In `claude -p` e nell'Agent SDK, Claude Code non mostra mai questa richiesta di conferma. Esegue la chiamata allo strumento Workflow attraverso la stessa [valutazione dei permessi](https://code.claude.com/docs/it/agent-sdk/permissions.md#how-permissions-are-evaluated) del resto della sessione, quindi le regole di negazione, le regole di richiesta e la modalità `dontAsk` si applicano all'avvio come a ogni chiamata a uno strumento. Per consentire l'avvio del workflow in queste esecuzioni, usa una di queste opzioni:

181 181 

182* **Regola di permesso**: aggiungi `Workflow` alle tue regole allow per approvare ogni workflow, oppure `Workflow(<name>)` per approvare un workflow salvato per nome.182* **Regola di permesso**: aggiungi `Workflow` alle tue regole di autorizzazione per approvare ogni workflow, oppure `Workflow(<name>)` per approvare un singolo workflow salvato per nome.

183* **Modalità di permesso auto**: esegui in [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), dove il classificatore esamina la chiamata e può approvarla.183* **Modalità di permesso auto**: esegui in [modalità auto](https://code.claude.com/docs/it/permission-modes.md#eliminate-prompts-with-auto-mode), in cui il classificatore esamina la chiamata e può approvarla.

184* **Modalità bypass permissions**: esegui in modalità bypass permissions.184* **Modalità bypass dei permessi**: esegui in modalità bypass dei permessi.

185* **Un hook**: restituisci `"allow"` per la chiamata da un hook [`PreToolUse`](https://code.claude.com/docs/it/hooks#pretooluse). In [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode), il workflow non si avvia con la sola approvazione dell'hook, quindi in quel caso usa invece una regola di permesso o l'approvazione del tuo host.185* **Un hook**: restituisci `"allow"` per la chiamata da un hook [`PreToolUse`](https://code.claude.com/docs/it/hooks#pretooluse). In [plan mode](https://code.claude.com/docs/it/permission-modes.md#analyze-before-you-edit-with-plan-mode), il workflow non si avvia con la sola approvazione dell'hook, quindi in quel caso usa invece una regola di permesso o l'approvazione del tuo host.

186* **Il tuo host**: un [`--permission-prompt-tool`](https://code.claude.com/docs/it/cli-reference#cli-flags) o, con l'Agent SDK, un callback [`canUseTool`](https://code.claude.com/docs/it/agent-sdk/permissions) la approva.186* **Il tuo host**: lo approva un [`--permission-prompt-tool`](https://code.claude.com/docs/it/cli-reference#cli-flags) oppure, con l'Agent SDK, un callback [`canUseTool`](https://code.claude.com/docs/it/agent-sdk/permissions).

187 187 

188Nell'app Desktop, una scheda di approvazione mostra il nome del flusso di lavoro, l'elenco delle fasi e un avvertimento di utilizzo dei token, con azioni **Una volta**, **Sempre** e **Nega**. La vista di progresso appare nel riquadro laterale Attività in background.188Nell'app Desktop, una scheda di approvazione mostra il nome del workflow, l'elenco delle fasi e un avviso sull'utilizzo dei token, con le azioni **Once**, **Always** e **Deny**. La vista di avanzamento compare nel pannello laterale Background tasks.

189 189 

190I subagenti che il flusso di lavoro genera utilizzano le tue [regole di autorizzazione](https://code.claude.com/docs/it/settings-reference.md#permission-settings), e Claude Code sceglie la loro modalità di autorizzazione in base alle regole in [quale modalità di autorizzazione un subagente viene eseguito in](https://code.claude.com/docs/it/sub-agents.md#permission-modes). Per evitare richieste su un'esecuzione lunga, aggiungi gli strumenti di cui gli agenti hanno bisogno alle tue regole di autorizzazione prima di iniziare.190I subagent generati dal workflow usano le tue [regole di permesso](https://code.claude.com/docs/it/settings-reference.md#permission-settings), e Claude Code sceglie la loro modalità di permesso secondo le regole descritte in [in quale modalità di permesso viene eseguito un subagent](https://code.claude.com/docs/it/sub-agents.md#permission-modes). Per evitare richieste di conferma in un'esecuzione lunga, aggiungi alle tue regole di autorizzazione gli strumenti di cui gli agenti hanno bisogno prima di iniziare.

191 191 

192### Salvare il flusso di lavoro per il riutilizzo192### Salvare il workflow per riutilizzarlo

193 193 

194Quando Claude scrive un flusso di lavoro per un compito che ripeterai, puoi salvare lo script di quell'esecuzione come comando. Un processo come una revisione che esegui su ogni ramo quindi esegue la stessa orchestrazione ogni volta.194Quando Claude scrive un workflow per un'attività che ripeterai, puoi salvare lo script di quell'esecuzione come comando. Un processo come una revisione che esegui su ogni branch esegue quindi ogni volta la stessa orchestrazione.

195 195 

196Esegui `/workflows`, seleziona l'esecuzione che vuoi mantenere e premi `s`. Nella finestra di dialogo di salvataggio, Tab attiva/disattiva tra i due percorsi di salvataggio:196Esegui `/workflows`, seleziona l'esecuzione che vuoi conservare e premi `s`. Nella finestra di salvataggio, Tab alterna tra le due posizioni di salvataggio:

197 197 

198* `.claude/workflows/` nel tuo progetto: condiviso con chiunque cloni il repo198* `.claude/workflows/` nel tuo progetto: condiviso con chiunque cloni il repository

199* `~/.claude/workflows/` nella tua home directory: disponibile in ogni progetto, visibile solo a te. Se imposti [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars), questa posizione è la directory `workflows/` sotto quel percorso.199* `~/.claude/workflows/` nella tua directory home: disponibile in ogni progetto, visibile solo a te. Se imposti [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/it/env-vars), questa posizione è la directory `workflows/` sotto quel percorso.

200 200 

201La finestra di dialogo di salvataggio mostra il percorso risolto per la posizione personale. Premi Invio per salvare. Il flusso di lavoro viene eseguito come `/<name>` nelle future sessioni da entrambi i percorsi.201La finestra di salvataggio mostra il percorso risolto per la posizione personale. Premi Enter per salvare. Il workflow viene eseguito come `/<name>` nelle sessioni future da entrambe le posizioni.

202 202 

203Claude Code controlla il percorso di salvataggio per i collegamenti simbolici prima di scrivere e mostra un errore invece di scrivere attraverso uno di essi:203Claude Code controlla la presenza di collegamenti simbolici nella posizione di salvataggio prima di scrivere e, invece di scrivere attraverso uno di essi, mostra un errore:

204 204 

205* Posizione del progetto: Claude Code rifiuta se `.claude`, `.claude/workflows`, o il file di destinazione è un symlink.205* Posizione di progetto: Claude Code rifiuta se `.claude`, `.claude/workflows` o il file di destinazione è un collegamento simbolico.

206* Posizione personale: Claude Code rifiuta solo se il file di destinazione stesso è un symlink, quindi una directory `~/.claude` gestita da uno strumento dotfiles funziona comunque.206* Posizione personale: Claude Code rifiuta solo se il file di destinazione stesso è un collegamento simbolico, quindi una directory `~/.claude` gestita da uno strumento per dotfile continua a funzionare.

207 207 

208In un monorepo con diverse directory `.claude/`, puoi mantenere i flussi di lavoro insieme al pacchetto a cui si applicano. Il salvataggio nella posizione del progetto scrive nella directory `.claude/workflows/` più vicina che già esiste tra la tua directory di lavoro e la radice del repository, o nella radice del repository se non ne esiste ancora nessuna. I flussi di lavoro del progetto si caricano anche da ogni `.claude/workflows/` lungo quel percorso, e quando più di uno definisce lo stesso nome Claude Code esegue quello più vicino alla directory di lavoro.208In un monorepo con diverse directory `.claude/`, puoi tenere i workflow accanto al pacchetto a cui si applicano. Il salvataggio nella posizione di progetto scrive nella directory `.claude/workflows/` esistente più vicina tra la tua directory di lavoro e la radice del repository, oppure nella radice del repository se non ne esiste ancora nessuna. I workflow di progetto vengono inoltre caricati da ogni `.claude/workflows/` lungo quel percorso e, quando più di uno definisce lo stesso nome, Claude Code esegue quello più vicino alla directory di lavoro.

209 209 

210Se un flusso di lavoro di progetto e un flusso di lavoro personale condividono un nome, viene eseguito quello di progetto.210Se un workflow di progetto e un workflow personale hanno lo stesso nome, viene eseguito quello di progetto.

211 211 

212### Distribuire un flusso di lavoro in un plugin212### Distribuire un workflow in un plugin

213 213 

214Per condividere un flusso di lavoro tra team o repository, includilo in un [plugin](https://code.claude.com/docs/it/plugins/overview.md). Posiziona lo script in una directory `workflows/` alla radice del plugin, o punta a una posizione diversa con il [`workflows` campo del manifest](https://code.claude.com/docs/it/plugins/manifest-reference#fields).214Per condividere un workflow tra team o repository, includilo in un [plugin](https://code.claude.com/docs/it/plugins/overview.md). Posiziona lo script in una directory `workflows/` nella radice del plugin, oppure indica una posizione diversa con il [campo `workflows` del manifest](https://code.claude.com/docs/it/plugins/manifest-reference#fields).

215 215 

216I flussi di lavoro del plugin sono nello spazio dei nomi del nome del plugin. Un plugin chiamato `acme-tools` che contiene uno script il cui `meta.name` è `release-audit` viene eseguito come `/acme-tools:release-audit`.216I workflow dei plugin hanno come namespace il nome del plugin. Un plugin chiamato `acme-tools` contenente uno script il cui `meta.name` è `release-audit` viene eseguito come `/acme-tools:release-audit`.

217 217 

218### Passare input a un flusso di lavoro salvato218### Passare input a un workflow salvato

219 219 

220Un flusso di lavoro salvato può accettare input attraverso il parametro `args`. Lo script lo legge come una variabile globale denominata `args`. Usa questo per fornire una domanda di ricerca, un elenco di percorsi target o un oggetto di configurazione al momento dell'invocazione invece di modificare lo script per ogni esecuzione.220Un workflow salvato può accettare input tramite il parametro `args`. Lo script lo legge come una variabile globale chiamata `args`. Usalo per fornire una domanda di ricerca, un elenco di percorsi di destinazione o un oggetto di configurazione al momento dell'invocazione, invece di modificare lo script a ogni esecuzione.

221 221 

222Il seguente prompt esegue un flusso di lavoro salvato con un elenco di numeri di issue:222Il seguente prompt esegue un workflow salvato con un elenco di numeri di issue:

223 223 

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

225Run /triage-issues on issues 1024, 1025, and 1030225Run /triage-issues on issues 1024, 1025, and 1030

226```226```

227 227 

228Claude passa l'elenco come dati strutturati, quindi lo script può chiamare metodi di array e oggetto su `args` direttamente senza analizzarlo prima. Se `args` viene omesso, la variabile globale è `undefined` all'interno dello script.228Claude passa l'elenco come dati strutturati, quindi lo script può chiamare direttamente metodi di array e oggetti su `args` senza doverlo prima analizzare. Se `args` viene omesso, la variabile globale è `undefined` all'interno dello script.

229 229 

230## Esempi di prompt di flusso di lavoro230## Esempi di prompt di flusso di lavoro

231 231 

worktrees.md +15 −1

Details

214 214 

215### Riutilizzare un nome di worktree215### Riutilizzare un nome di worktree

216 216 

217Passare a `--worktree` un nome la cui directory esiste già apre quel worktree esistente invece di crearne uno nuovo.217Se esiste già un worktree con il nome che passi a `--worktree`, Claude Code lo apre invece di crearne uno nuovo. Se Claude Code si interrompe con un errore contenente `belongs to a different repository` o `is a leftover worktree`, consulta [La directory del worktree `belongs to a different repository`](#belongs-to-a-different-repository).

218 218 

219Con la [base](#choose-the-base-branch) predefinita `"fresh"`, un worktree riaperto si reimposta sul branch predefinito del repository invece di continuare dal suo vecchio tip quando sono soddisfatte tutte le seguenti condizioni:219Con la [base](#choose-the-base-branch) predefinita `"fresh"`, un worktree riaperto si reimposta sul branch predefinito del repository invece di continuare dal suo vecchio tip quando sono soddisfatte tutte le seguenti condizioni:

220 220 


353 353 

354Un errore contenente `This repository is a partial clone` significa che Claude Code non è riuscito a recuperare tutti gli oggetti git di cui ha bisogno il commit di partenza del worktree. Esegui il passaggio indicato nella frase del messaggio che termina con `try again`. Poi riprova dalla shell in cui l'hai eseguito: esegui `claude --worktree`, oppure avvia `claude` lì e chiedi di nuovo.354Un errore contenente `This repository is a partial clone` significa che Claude Code non è riuscito a recuperare tutti gli oggetti git di cui ha bisogno il commit di partenza del worktree. Esegui il passaggio indicato nella frase del messaggio che termina con `try again`. Poi riprova dalla shell in cui l'hai eseguito: esegui `claude --worktree`, oppure avvia `claude` lì e chiedi di nuovo.

355 355 

356### `Can only use --worktree in a git repository`

357 

358Questo errore significa che hai passato `--worktree` in una directory che non è un checkout git, e nessun [hook `WorktreeCreate`](#non-git-version-control) è attivo.

359 

360* In una cartella senza controllo di versione, esegui lì `git init`, crea un primo commit, poi riprova.

361* In un checkout di un altro sistema di controllo di versione, configura l'hook suggerito dal messaggio.

362* Per lavorare direttamente nella directory, avvia Claude senza `--worktree`.

363 

364### La directory del worktree `belongs to a different repository`

365 

366Gli errori `belongs to a different repository` e `is a leftover worktree` significano entrambi che git associa a un'altra posizione la directory per il nome del worktree che hai passato. Questo può accadere dopo aver copiato o spostato un progetto.

367 

368Passa un nome di worktree diverso. Se la directory non contiene lavoro da conservare e non hai copiato né spostato un progetto, puoi rimuoverla e riprovare con lo stesso nome. Dopo una copia o uno spostamento, quel nuovo tentativo può fallire con `is already checked out elsewhere in this repository`, quindi usa un nome diverso.

369 

356### Claude Code rifiuta di usare un worktree370### Claude Code rifiuta di usare un worktree

357 371 

358Un errore che inizia con `Refusing to use <path> as an isolation worktree` significa che Claude Code ha controllato l'identità git della directory prima di adottarla come checkout isolato di una sessione o subagent, e l'ha rifiutata. Il controllo viene eseguito se Claude Code sta creando il worktree, entrando in uno esistente, o riutilizzandone uno da un'esecuzione precedente.372Un errore che inizia con `Refusing to use <path> as an isolation worktree` significa che Claude Code ha controllato l'identità git della directory prima di adottarla come checkout isolato di una sessione o subagent, e l'ha rifiutata. Il controllo viene eseguito se Claude Code sta creando il worktree, entrando in uno esistente, o riutilizzandone uno da un'esecuzione precedente.