SpyBara
Go Premium

Documentation 2026-05-13 23:01 UTC to 2026-05-14 17:02 UTC

22 files changed +414 −90. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19
Details

235 235 

236Il vostro callback restituisce un oggetto con due categorie di campi:236Il vostro callback restituisce un oggetto con due categorie di campi:

237 237 

238* **Campi di livello superiore** controllano la conversazione: `systemMessage` inietta un messaggio nella conversazione visibile al modello e `continue` (`continue_` in Python) determina se l'agente continua a funzionare dopo questo hook.238* **Campi di livello superiore** funzionano allo stesso modo su ogni evento: `systemMessage` mostra un messaggio all'utente, e `continue` (`continue_` in Python) determina se l'agente continua a funzionare dopo questo hook.

239* **`hookSpecificOutput`** controlla l'operazione corrente. I campi all'interno dipendono dal tipo di evento hook. Per gli hook `PreToolUse`, è qui che impostate `permissionDecision` (`"allow"`, `"deny"`, `"ask"` o `"defer"`), `permissionDecisionReason` e `updatedInput`. Restituire `"defer"` termina la query in modo da poter [riprendere in seguito](/it/hooks#defer-a-tool-call-for-later). Per gli hook `PostToolUse`, potete impostare `additionalContext` per aggiungere informazioni al risultato dello strumento, o `updatedToolOutput` per sostituire completamente l'output dello strumento prima che Claude lo veda.239* **`hookSpecificOutput`** controlla l'operazione corrente. I campi all'interno dipendono dal tipo di evento hook. Per gli hook `PreToolUse`, è qui che impostate `permissionDecision` (`"allow"`, `"deny"`, `"ask"` o `"defer"`), `permissionDecisionReason` e `updatedInput`. Restituire `"defer"` termina la query in modo da poter [riprendere in seguito](/it/hooks#defer-a-tool-call-for-later). Per gli hook `PostToolUse`, potete impostare `additionalContext` per aggiungere informazioni al risultato dello strumento, o `updatedToolOutput` per sostituire completamente l'output dello strumento prima che Claude lo veda.

240 240 

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


331 331 

332### Aggiungere contesto e bloccare uno strumento332### Aggiungere contesto e bloccare uno strumento

333 333 

334Questo esempio blocca qualsiasi tentativo di scrivere nella directory `/etc` e utilizza due campi di output insieme: `permissionDecision: 'deny'` interrompe la chiamata dello strumento, mentre `systemMessage` inietta un promemoria nella conversazione in modo che l'agente riceva il contesto sul motivo per cui l'operazione è stata bloccata e eviti di ritentarla:334Questo esempio blocca le scritture nella directory `/etc` e spiega il motivo sia al modello che all'utente:

335 

336* `permissionDecision: 'deny'` interrompe la chiamata dello strumento.

337* `permissionDecisionReason` comunica al modello il motivo, in modo che eviti di ritentare.

338* `systemMessage` mostra all'utente cosa è accaduto.

335 339 

336<CodeGroup>340<CodeGroup>

337 ```python Python theme={null}341 ```python Python theme={null}


340 344 

341 if file_path.startswith("/etc"):345 if file_path.startswith("/etc"):

342 return {346 return {

343 # Top-level field: inject guidance into the conversation347 # Top-level field: message shown to the user

344 "systemMessage": "Remember: system directories like /etc are protected.",348 "systemMessage": "Remember: system directories like /etc are protected.",

345 # hookSpecificOutput: block the operation349 # hookSpecificOutput: block the operation

346 "hookSpecificOutput": {350 "hookSpecificOutput": {


360 364 

361 if (filePath?.startsWith("/etc")) {365 if (filePath?.startsWith("/etc")) {

362 return {366 return {

363 // Top-level field: inject guidance into the conversation367 // Top-level field: message shown to the user

364 systemMessage: "Remember: system directories like /etc are protected.",368 systemMessage: "Remember: system directories like /etc are protected.",

365 // hookSpecificOutput: block the operation369 // hookSpecificOutput: block the operation

366 hookSpecificOutput: {370 hookSpecificOutput: {


807 811 

808### systemMessage non appare nell'output812### systemMessage non appare nell'output

809 813 

810Il campo `systemMessage` aggiunge contesto alla conversazione che il modello vede, ma potrebbe non apparire in tutte le modalità di output SDK. Se avete bisogno di far emergere le decisioni degli hook alla vostra applicazione, registratele separatamente o utilizzate un canale di output dedicato.814Il campo `systemMessage` mostra un messaggio all'utente, non al modello. Per impostazione predefinita, l'SDK non fa emergere l'output degli hook nel flusso dei messaggi, quindi il messaggio potrebbe non apparire a meno che non impostiate `includeHookEvents` (`include_hook_events` in Python). Per passare il contesto al modello, restituire [`additionalContext`](/it/hooks#add-context-for-claude).

815 

816Se avete bisogno di far emergere le decisioni degli hook alla vostra applicazione in modo affidabile, registratele separatamente o utilizzate un canale di output dedicato.

811 817 

812## Risorse correlate818## Risorse correlate

813 819 

Details

1860Restituisce un [`HookJSONOutput`](#hookjsonoutput) che può contenere:1860Restituisce un [`HookJSONOutput`](#hookjsonoutput) che può contenere:

1861 1861 

1862* `decision`: `"block"` per bloccare l'azione1862* `decision`: `"block"` per bloccare l'azione

1863* `systemMessage`: Messaggio di sistema da aggiungere al trascritto1863* `systemMessage`: Messaggio di avviso mostrato all'utente

1864* `hookSpecificOutput`: Dati di output specifici dell'hook1864* `hookSpecificOutput`: Dati di output specifici dell'hook

1865 1865 

1866### `HookContext`1866### `HookContext`


2645 2645 

2646**Nome dello strumento:** `TodoWrite`2646**Nome dello strumento:** `TodoWrite`

2647 2647 

2648<Note>

2649 `TodoWrite` è deprecato e verrà rimosso in una versione futura. Utilizza invece `TaskCreate`, `TaskGet`, `TaskUpdate` e `TaskList`. Imposta `CLAUDE_CODE_ENABLE_TASKS=1` per aderire. Vedi [Migra agli strumenti Task](/it/agent-sdk/todo-tracking#migrate-to-task-tools) per come monitorare i cambiamenti del codice.

2650</Note>

2651 

2648**Input:**2652**Input:**

2649 2653 

2650```python theme={null}2654```python theme={null}


2668}2672}

2669```2673```

2670 2674 

2675### TaskCreate

2676 

2677**Nome dello strumento:** `TaskCreate`

2678 

2679**Input:**

2680 

2681```python theme={null}

2682{

2683 "subject": str, # Titolo breve del compito

2684 "description": str, # Corpo dettagliato del compito

2685 "activeForm": str | None, # Etichetta al tempo presente mostrata mentre in corso

2686 "metadata": dict | None, # Metadati arbitrari del chiamante

2687}

2688```

2689 

2690**Output:**

2691 

2692```python theme={null}

2693{

2694 "task": {"id": str, "subject": str}, # Compito creato con ID assegnato

2695}

2696```

2697 

2698### TaskUpdate

2699 

2700**Nome dello strumento:** `TaskUpdate`

2701 

2702**Input:**

2703 

2704```python theme={null}

2705{

2706 "taskId": str, # ID del compito da modificare

2707 "status": Literal["pending", "in_progress", "completed", "deleted"] | None,

2708 "subject": str | None,

2709 "description": str | None,

2710 "activeForm": str | None,

2711 "addBlocks": list[str] | None, # ID dei compiti che questo compito ora blocca

2712 "addBlockedBy": list[str] | None, # ID dei compiti che ora bloccano questo compito

2713 "owner": str | None,

2714 "metadata": dict | None,

2715}

2716```

2717 

2718**Output:**

2719 

2720```python theme={null}

2721{

2722 "success": bool,

2723 "taskId": str,

2724 "updatedFields": list[str], # Nomi dei campi che sono cambiati

2725 "error": str | None,

2726 "statusChange": {"from": str, "to": str} | None,

2727}

2728```

2729 

2730### TaskGet

2731 

2732**Nome dello strumento:** `TaskGet`

2733 

2734**Input:**

2735 

2736```python theme={null}

2737{

2738 "taskId": str, # ID del compito da leggere

2739}

2740```

2741 

2742**Output:**

2743 

2744```python theme={null}

2745{

2746 "task": {

2747 "id": str,

2748 "subject": str,

2749 "description": str,

2750 "status": Literal["pending", "in_progress", "completed"],

2751 "blocks": list[str],

2752 "blockedBy": list[str],

2753 } | None, # None quando l'ID non viene trovato

2754}

2755```

2756 

2757### TaskList

2758 

2759**Nome dello strumento:** `TaskList`

2760 

2761**Input:**

2762 

2763```python theme={null}

2764{}

2765```

2766 

2767**Output:**

2768 

2769```python theme={null}

2770{

2771 "tasks": [

2772 {

2773 "id": str,

2774 "subject": str,

2775 "status": Literal["pending", "in_progress", "completed"],

2776 "owner": str | None,

2777 "blockedBy": list[str],

2778 }

2779 ],

2780}

2781```

2782 

2671### BashOutput2783### BashOutput

2672 2784 

2673**Nome dello strumento:** `BashOutput`2785**Nome dello strumento:** `BashOutput`

Details

389| `fallbackModel` | `string` | `undefined` | Modello da usare se il primario fallisce |389| `fallbackModel` | `string` | `undefined` | Modello da usare se il primario fallisce |

390| `forkSession` | `boolean` | `false` | Quando si riprende con `resume`, esegui il fork a un nuovo ID di sessione invece di continuare la sessione originale |390| `forkSession` | `boolean` | `false` | Quando si riprende con `resume`, esegui il fork a un nuovo ID di sessione invece di continuare la sessione originale |

391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callback hook per gli eventi |391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Callback hook per gli eventi |

392| `includeHookEvents` | `boolean` | `false` | Includi gli eventi del ciclo di vita hook nel flusso di messaggi come [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage), e [`SDKHookResponseMessage`](#sdkhookresponsemessage) |

392| `includePartialMessages` | `boolean` | `false` | Includi gli eventi di messaggi parziali |393| `includePartialMessages` | `boolean` | `false` | Includi gli eventi di messaggi parziali |

393| `maxBudgetUsd` | `number` | `undefined` | Interrompi la query quando la stima del costo lato client raggiunge questo valore in USD. Confrontato con la stessa stima di `total_cost_usd`; vedi [Traccia costo e utilizzo](/it/agent-sdk/cost-tracking) per le avvertenze di accuratezza |394| `maxBudgetUsd` | `number` | `undefined` | Interrompi la query quando la stima del costo lato client raggiunge questo valore in USD. Confrontato con la stessa stima di `total_cost_usd`; vedi [Traccia costo e utilizzo](/it/agent-sdk/cost-tracking) per le avvertenze di accuratezza |

394| `maxThinkingTokens` | `number` | `undefined` | *Deprecato:* Usa `thinking` invece. Token massimi per il processo di pensiero |395| `maxThinkingTokens` | `number` | `undefined` | *Deprecato:* Usa `thinking` invece. Token massimi per il processo di pensiero |


1596 | ReadMcpResourceInput1597 | ReadMcpResourceInput

1597 | SubscribeMcpResourceInput1598 | SubscribeMcpResourceInput

1598 | SubscribePollingInput1599 | SubscribePollingInput

1600 | TaskCreateInput

1601 | TaskGetInput

1602 | TaskListInput

1599 | TaskStopInput1603 | TaskStopInput

1604 | TaskUpdateInput

1600 | TodoWriteInput1605 | TodoWriteInput

1601 | UnsubscribeMcpResourceInput1606 | UnsubscribeMcpResourceInput

1602 | UnsubscribePollingInput1607 | UnsubscribePollingInput


1850**Nome del tool:** `TaskCreate`1855**Nome del tool:** `TaskCreate`

1851 1856 

1852```typescript theme={null}1857```typescript theme={null}

1853// Non ancora esportato dall'SDK; definisci localmente.

1854type TaskCreateInput = {1858type TaskCreateInput = {

1855 subject: string;1859 subject: string;

1856 description: string;1860 description: string;


1866**Nome del tool:** `TaskUpdate`1870**Nome del tool:** `TaskUpdate`

1867 1871 

1868```typescript theme={null}1872```typescript theme={null}

1869// Non ancora esportato dall'SDK; definisci localmente.

1870type TaskUpdateInput = {1873type TaskUpdateInput = {

1871 taskId: string;1874 taskId: string;

1872 status?: "pending" | "in_progress" | "completed" | "deleted";1875 status?: "pending" | "in_progress" | "completed" | "deleted";


1887**Nome del tool:** `TaskGet`1890**Nome del tool:** `TaskGet`

1888 1891 

1889```typescript theme={null}1892```typescript theme={null}

1890// Non ancora esportato dall'SDK; definisci localmente.

1891type TaskGetInput = {1893type TaskGetInput = {

1892 taskId: string;1894 taskId: string;

1893};1895};


1900**Nome del tool:** `TaskList`1902**Nome del tool:** `TaskList`

1901 1903 

1902```typescript theme={null}1904```typescript theme={null}

1903// Non ancora esportato dall'SDK; definisci localmente.

1904type TaskListInput = {};1905type TaskListInput = {};

1905```1906```

1906 1907 


1983 | MonitorOutput1984 | MonitorOutput

1984 | NotebookEditOutput1985 | NotebookEditOutput

1985 | ReadMcpResourceOutput1986 | ReadMcpResourceOutput

1987 | TaskCreateOutput

1988 | TaskGetOutput

1989 | TaskListOutput

1986 | TaskStopOutput1990 | TaskStopOutput

1991 | TaskUpdateOutput

1987 | TodoWriteOutput1992 | TodoWriteOutput

1988 | WebFetchOutput1993 | WebFetchOutput

1989 | WebSearchOutput;1994 | WebSearchOutput;


2347**Nome del tool:** `TaskCreate`2352**Nome del tool:** `TaskCreate`

2348 2353 

2349```typescript theme={null}2354```typescript theme={null}

2350// Non ancora esportato dall'SDK; definire localmente.

2351type TaskCreateOutput = {2355type TaskCreateOutput = {

2352 task: {2356 task: {

2353 id: string;2357 id: string;


2363**Nome del tool:** `TaskUpdate`2367**Nome del tool:** `TaskUpdate`

2364 2368 

2365```typescript theme={null}2369```typescript theme={null}

2366// Non ancora esportato dall'SDK; definire localmente.

2367type TaskUpdateOutput = {2370type TaskUpdateOutput = {

2368 success: boolean;2371 success: boolean;

2369 taskId: string;2372 taskId: string;


2383**Nome del tool:** `TaskGet`2386**Nome del tool:** `TaskGet`

2384 2387 

2385```typescript theme={null}2388```typescript theme={null}

2386// Non ancora esportato dall'SDK; definire localmente.

2387type TaskGetOutput = {2389type TaskGetOutput = {

2388 task: {2390 task: {

2389 id: string;2391 id: string;


2403**Nome del tool:** `TaskList`2405**Nome del tool:** `TaskList`

2404 2406 

2405```typescript theme={null}2407```typescript theme={null}

2406// Non ancora esportato dall'SDK; definire localmente.

2407type TaskListOutput = {2408type TaskListOutput = {

2408 tasks: Array<{2409 tasks: Array<{

2409 id: string;2410 id: string;

agent-view.md +44 −6

Details

46 </Step>46 </Step>

47 47 

48 <Step title="Dispatch a session">48 <Step title="Dispatch a session">

49 Digita un prompt che descrive un'attività e premi `Enter`. Una nuova sessione in background inizia su quell'attività e appare come una riga che mostra se sta lavorando, aspettando te, o è completata. La nuova sessione utilizza il modello mostrato nell'intestazione di agent view e la stessa [modalità di autorizzazione](#permission-mode-and-settings) che otterresti eseguendo `claude` in quella directory.49 Digita un prompt che descrive un'attività e premi `Enter`. Una nuova sessione in background inizia su quell'attività e appare come una riga che mostra se sta lavorando, aspettando te, o è completata. La nuova sessione utilizza il modello mostrato nell'intestazione di agent view e la stessa [modalità di autorizzazione](#permission-mode-model-and-effort) che otterresti eseguendo `claude` in quella directory.

50 50 

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

52 52 


74 74 

75L'elenco mostra ogni sessione in background che hai avviato, in tutti i tuoi progetti. Una sessione che lavora in un repository e un'altra in un worktree diverso appaiono entrambe qui, indipendentemente da quale directory hai aperto agent view. Le sessioni interattive che hai aperto in altri terminali non appaiono finché non le [metti in background](#from-inside-a-session). I [subagents](/it/sub-agents) e i [teammates](/it/agent-teams) che una sessione genera non sono elencati come righe separate.75L'elenco mostra ogni sessione in background che hai avviato, in tutti i tuoi progetti. Una sessione che lavora in un repository e un'altra in un worktree diverso appaiono entrambe qui, indipendentemente da quale directory hai aperto agent view. Le sessioni interattive che hai aperto in altri terminali non appaiono finché non le [metti in background](#from-inside-a-session). I [subagents](/it/sub-agents) e i [teammates](/it/agent-teams) che una sessione genera non sono elencati come righe separate.

76 76 

77Per limitare la visualizzazione a un progetto, avvia con `claude agents --cwd <path>`. Solo le sessioni avviate in quella directory appaiono, incluse quelle in esecuzione in un [worktree](/it/worktrees) inviato da essa.

78 

77```text theme={null}79```text theme={null}

78Pinned80Pinned

79 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m81 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m


285 287 

286### Set the model288### Set the model

287 289 

288Il nome del modello mostrato nell'intestazione di agent view è il default di dispatch. Le nuove sessioni che avvii dall'input utilizzano questo modello, che è la stessa impostazione che [`/model`](/it/model-config) controlla in qualsiasi sessione.290Il nome del modello mostrato nell'intestazione di agent view è il default di dispatch. Le nuove sessioni che avvii dall'input utilizzano questo modello, che è la stessa impostazione che [`/model`](/it/model-config) controlla in qualsiasi sessione. Per sovrascriverlo per l'intera sessione di agent view, passa `--model` quando apri agent view. Vedi [Permission mode, model, and effort](#permission-mode-model-and-effort).

289 291 

290Ogni sessione in background può essere eseguita su un modello diverso. Per sovrascriverlo per una sessione:292Ogni sessione in background può essere eseguita su un modello diverso. Per sovrascriverlo per una sessione:

291 293 


293* Collegati a una sessione in esecuzione ed esegui `/model` lì. Il cambiamento persiste se la sessione viene riavviata.295* Collegati a una sessione in esecuzione ed esegui `/model` lì. Il cambiamento persiste se la sessione viene riavviata.

294* Invia un [subagent](/it/sub-agents) il cui frontmatter imposta un campo `model`.296* Invia un [subagent](/it/sub-agents) il cui frontmatter imposta un campo `model`.

295 297 

296### Permission mode and settings298### Permission mode, model, and effort

299 

300Una sessione in background legge i suoi [settings](/it/settings) dalla directory in cui viene eseguita, come se avessi avviato `claude` lì.

301 

302Il [permission mode](/it/permissions) dipende da come hai avviato la sessione. Lo spostamento in background di una sessione esistente con `/bg` o `←` mantiene il permission mode corrente, quindi una sessione che hai cambiato in `acceptEdits` o `auto` rimane in quella modalità dopo il distacco. L'invio da agent view input o l'esecuzione di `claude --bg` dalla tua shell utilizza il `defaultMode` dai settings di quella directory, o il `permissionMode` dal frontmatter del [subagent inviato](/it/sub-agents#supported-frontmatter-fields).

303 

304Per impostare i default per ogni sessione che invii da agent view, passa uno qualsiasi di `--permission-mode`, `--model`, o `--effort` quando lo apri:

305 

306```bash theme={null}

307claude agents --permission-mode plan --model opus --effort high

308```

309 

310<Note>

311 Passare `--permission-mode`, `--model`, o `--effort` a `claude agents` richiede Claude Code v2.1.142 o successivo. Le versioni precedenti rifiutano questi flag con un errore di opzione sconosciuta.

312</Note>

297 313 

298Una sessione inviata legge i suoi [settings](/it/settings) e [permission mode](/it/permissions) dalla directory in cui viene eseguita, come se avessi avviato `claude` lì. L'invio da agent view input non passa un permission mode, quindi la sessione utilizza il `defaultMode` dai settings di quella directory o il `permissionMode` dal frontmatter del [subagent inviato](/it/sub-agents#supported-frontmatter-fields).314I default attivi appaiono nel footer sotto l'input di dispatch.

299 315 

300Per impostare il mode dalla shell, passa `--permission-mode` con `claude --bg`. L'uso di `bypassPermissions` o `auto` in questo modo è rifiutato finché non hai accettato quel mode eseguendo `claude` con esso una volta in modo interattivo, poiché questi mode permettono a una sessione che non stai guardando di agire senza approvazione.316Senza questi flag, la sessione utilizza il `defaultMode` dai settings di quella directory o il `permissionMode` dal frontmatter del [subagent inviato](/it/sub-agents#supported-frontmatter-fields), e il modello mostrato nell'intestazione di agent view.

317 

318L'uso di `bypassPermissions` o `auto` è rifiutato finché non hai accettato quella modalità eseguendo `claude` con essa una volta in modo interattivo, poiché queste modalità permettono a una sessione che non stai guardando di agire senza approvazione. Lo stesso si applica sia che tu passi la modalità a `claude agents` che a `claude --bg --permission-mode`.

319 

320### Settings, plugins, and MCP servers

321 

322Agent view accetta gli stessi flag di configurazione di `claude` per caricare settings, plugins, MCP servers, e directory aggiuntive. Ogni flag si applica a agent view stesso e viene passato a ogni sessione che invii da esso, quindi un plugin o MCP server che carichi in questo modo è disponibile anche in quelle sessioni.

323 

324| Flag | Effect |

325| :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- |

326| [`--settings <file-or-json>`](/it/settings) | Sovrascrivi settings per agent view e sessioni inviate |

327| [`--add-dir <path>`](/it/permissions#additional-directories-grant-file-access-not-configuration) | Concedi accesso ai file a una directory aggiuntiva |

328| [`--plugin-dir <path>`](/it/plugins) | Carica un plugin da una directory locale |

329| [`--mcp-config <file-or-json>`](/it/mcp) | Carica MCP servers da un file di configurazione o stringa JSON |

330| `--strict-mcp-config` | Usa solo i MCP servers da `--mcp-config`, ignorando altre configurazioni MCP |

331 

332Ripeti `--add-dir`, `--plugin-dir`, o `--mcp-config` una volta per valore. La forma separata da spazi, come `--add-dir a b c`, non è supportata con `claude agents`.

333 

334L'esempio seguente apre agent view con un override di settings e una directory extra:

335 

336```bash theme={null}

337claude agents --settings ./ci-settings.json --add-dir ../shared-lib

338```

301 339 

302## Gestire le sessioni dalla shell340## Gestire le sessioni dalla shell

303 341 


305 343 

306| Command | Purpose |344| Command | Purpose |

307| :--------------------- | :--------------------------------------------------------------------------------------------------------- |345| :--------------------- | :--------------------------------------------------------------------------------------------------------- |

308| `claude agents` | Apri agent view |346| `claude agents` | Apri agent view. Passa `--cwd <path>` per elencare solo le sessioni avviate in quella directory |

309| `claude attach <id>` | Collegati a una sessione in questo terminale |347| `claude attach <id>` | Collegati a una sessione in questo terminale |

310| `claude logs <id>` | Stampa l'output recente della sessione |348| `claude logs <id>` | Stampa l'output recente della sessione |

311| `claude stop <id>` | Ferma una sessione. Accetta anche `claude kill` |349| `claude stop <id>` | Ferma una sessione. Accetta anche `claude kill` |

Details

170 170 

171Claude Code supporta l'aggiornamento automatico delle credenziali per AWS SSO e provider di identità aziendali. Aggiungi queste impostazioni al file di impostazioni di Claude Code (vedi [Impostazioni](/it/settings) per i percorsi dei file).171Claude Code supporta l'aggiornamento automatico delle credenziali per AWS SSO e provider di identità aziendali. Aggiungi queste impostazioni al file di impostazioni di Claude Code (vedi [Impostazioni](/it/settings) per i percorsi dei file).

172 172 

173Quando Claude Code rileva che le tue credenziali AWS sono scadute (sia localmente in base al loro timestamp che quando Bedrock restituisce un errore di credenziale), eseguirà automaticamente i tuoi comandi `awsAuthRefresh` e/o `awsCredentialExport` configurati per ottenere nuove credenziali prima di riprovare la richiesta.173Queste due impostazioni hanno diverse condizioni di attivazione:

174 

175* **`awsAuthRefresh`**: viene eseguito solo quando Claude Code rileva che le tue credenziali AWS sono scadute, sia localmente in base al loro timestamp che quando Bedrock restituisce un errore di credenziale, quindi ritenta la richiesta con credenziali aggiornate.

176* **`awsCredentialExport`**: viene eseguito all'avvio della sessione e ad ogni ricaricamento delle credenziali, anche quando le credenziali nel tuo provider di credenziali predefinito di AWS sono ancora valide. Usa questo quando il tuo account Bedrock richiede credenziali tra account che differiscono da quelle che il provider predefinito risolverebbe.

174 177 

175##### Configurazione di esempio178##### Configurazione di esempio

176 179 


187 190 

188**`awsAuthRefresh`**: Usa questo per i comandi che modificano la directory `.aws`, come l'aggiornamento delle credenziali, della cache SSO o dei file di configurazione. L'output del comando viene visualizzato all'utente, ma l'input interattivo non è supportato. Funziona bene per i flussi SSO basati su browser in cui la CLI visualizza un URL o un codice e completi l'autenticazione nel browser.191**`awsAuthRefresh`**: Usa questo per i comandi che modificano la directory `.aws`, come l'aggiornamento delle credenziali, della cache SSO o dei file di configurazione. L'output del comando viene visualizzato all'utente, ma l'input interattivo non è supportato. Funziona bene per i flussi SSO basati su browser in cui la CLI visualizza un URL o un codice e completi l'autenticazione nel browser.

189 192 

190**`awsCredentialExport`**: Usa questo solo se non puoi modificare `.aws` e devi restituire direttamente le credenziali. L'output viene acquisito silenziosamente e non mostrato all'utente. Il comando deve restituire JSON in questo formato:193**`awsCredentialExport`**: Usa questo solo se non puoi modificare `.aws` e devi restituire direttamente le credenziali. Questo comando viene eseguito ogni volta che le credenziali devono essere aggiornate, non solo quando le credenziali sono scadute. L'output viene acquisito silenziosamente e non mostrato all'utente. Il comando deve restituire JSON in questo formato:

191 194 

192```json theme={null}195```json theme={null}

193{196{

best-practices.md +18 −24

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# Best Practices per Claude Code5# Best practices for Claude Code

6 6 

7> Suggerimenti e modelli per ottenere il massimo da Claude Code, dalla configurazione dell'ambiente al ridimensionamento tra sessioni parallele.7> Suggerimenti e modelli per ottenere il massimo da Claude Code, dalla configurazione dell'ambiente al ridimensionamento tra sessioni parallele.

8 8 


52 Separate la ricerca e la pianificazione dall'implementazione per evitare di risolvere il problema sbagliato.52 Separate la ricerca e la pianificazione dall'implementazione per evitare di risolvere il problema sbagliato.

53</Tip>53</Tip>

54 54 

55Lasciare che Claude salti direttamente alla codifica può produrre codice che risolve il problema sbagliato. Utilizzate [Plan Mode](/it/common-workflows#use-plan-mode-for-safe-code-analysis) per separare l'esplorazione dall'esecuzione.55Lasciare che Claude salti direttamente alla codifica può produrre codice che risolve il problema sbagliato. Utilizzate [Plan Mode](/it/permission-modes#analyze-before-you-edit-with-plan-mode) per separare l'esplorazione dall'esecuzione.

56 56 

57Il flusso di lavoro consigliato ha quattro fasi:57Il flusso di lavoro consigliato ha quattro fasi:

58 58 


60 <Step title="Esplora">60 <Step title="Esplora">

61 Entra in Plan Mode. Claude legge i file e risponde alle domande senza apportare modifiche.61 Entra in Plan Mode. Claude legge i file e risponde alle domande senza apportare modifiche.

62 62 

63 ```txt claude (Plan Mode) theme={null}63 ```txt claude (plan mode) theme={null}

64 read /src/auth and understand how we handle sessions and login.64 read /src/auth and understand how we handle sessions and login.

65 also look at how we manage environment variables for secrets.65 also look at how we manage environment variables for secrets.

66 ```66 ```


69 <Step title="Pianifica">69 <Step title="Pianifica">

70 Chiedi a Claude di creare un piano di implementazione dettagliato.70 Chiedi a Claude di creare un piano di implementazione dettagliato.

71 71 

72 ```txt claude (Plan Mode) theme={null}72 ```txt claude (plan mode) theme={null}

73 I want to add Google OAuth. What files need to change?73 I want to add Google OAuth. What files need to change?

74 What's the session flow? Create a plan.74 What's the session flow? Create a plan.

75 ```75 ```


78 </Step>78 </Step>

79 79 

80 <Step title="Implementa">80 <Step title="Implementa">

81 Torna alla Normal Mode e lascia che Claude codifichi, verificando rispetto al suo piano.81 Esci da Plan Mode e lascia che Claude codifichi, verificando rispetto al suo piano.

82 82 

83 ```txt claude (Normal Mode) theme={null}83 ```txt claude (default mode) theme={null}

84 implement the OAuth flow from your plan. write tests for the84 implement the OAuth flow from your plan. write tests for the

85 callback handler, run the test suite and fix any failures.85 callback handler, run the test suite and fix any failures.

86 ```86 ```


89 <Step title="Commit">89 <Step title="Commit">

90 Chiedi a Claude di eseguire il commit con un messaggio descrittivo e creare una PR.90 Chiedi a Claude di eseguire il commit con un messaggio descrittivo e creare una PR.

91 91 

92 ```txt claude (Normal Mode) theme={null}92 ```txt claude (default mode) theme={null}

93 commit with a descriptive message and open a PR93 commit with a descriptive message and open a PR

94 ```94 ```

95 </Step>95 </Step>


396* Utilizzate `/clear` frequentemente tra le attività per ripristinare completamente la finestra di contesto396* Utilizzate `/clear` frequentemente tra le attività per ripristinare completamente la finestra di contesto

397* Quando la compattazione automatica si attiva, Claude riassume quello che conta di più, inclusi i modelli di codice, gli stati dei file e le decisioni chiave397* Quando la compattazione automatica si attiva, Claude riassume quello che conta di più, inclusi i modelli di codice, gli stati dei file e le decisioni chiave

398* Per un maggiore controllo, eseguite `/compact <instructions>`, come `/compact Focus on the API changes`398* Per un maggiore controllo, eseguite `/compact <instructions>`, come `/compact Focus on the API changes`

399* Per compattare solo parte della conversazione, utilizzate `Esc + Esc` o `/rewind`, selezionate un checkpoint di messaggio e scegliete **Summarize from here**. Questo condensa i messaggi da quel punto in poi mantenendo il contesto precedente intatto.399* Per compattare solo parte della conversazione, utilizzate `Esc + Esc` o `/rewind`, selezionate un checkpoint di messaggio e scegliete **Summarize from here** o **Summarize up to here**. Il primo condensa i messaggi da quel punto in poi mantenendo il contesto precedente intatto; il secondo condensa i messaggi precedenti mantenendo quelli recenti in pieno. Consultate [Restore vs. summarize](/it/checkpointing#restore-vs-summarize).

400* Personalizzate il comportamento di compattazione in CLAUDE.md con istruzioni come `"When compacting, always preserve the full list of modified files and any test commands"` per assicurare che il contesto critico sopravviva alla riassunzione400* Personalizzate il comportamento di compattazione in CLAUDE.md con istruzioni come `"When compacting, always preserve the full list of modified files and any test commands"` per assicurare che il contesto critico sopravviva alla riassunzione

401* Per domande rapide che non devono rimanere nel contesto, utilizzate [`/btw`](/it/interactive-mode#side-questions-with-%2Fbtw). La risposta appare in un overlay dismissibile e non entra mai nella cronologia della conversazione, quindi potete controllare un dettaglio senza far crescere il contesto.401* Per domande rapide che non devono rimanere nel contesto, utilizzate [`/btw`](/it/interactive-mode#side-questions-with-%2Fbtw). La risposta appare in un overlay dismissibile e non entra mai nella cronologia della conversazione, quindi potete controllare un dettaglio senza far crescere il contesto.

402 402 


424### Riavvolgete con i checkpoint424### Riavvolgete con i checkpoint

425 425 

426<Tip>426<Tip>

427 Ogni azione che Claude fa crea un checkpoint. Potete ripristinare la conversazione, il codice o entrambi a qualsiasi checkpoint precedente.427 Ogni prompt che inviate crea un checkpoint. Potete ripristinare la conversazione, il codice o entrambi a qualsiasi checkpoint precedente.

428</Tip>428</Tip>

429 429 

430Claude crea automaticamente checkpoint prima delle modifiche. Premete il doppio tasto Escape o eseguite `/rewind` per aprire il menu di rewind. Potete ripristinare solo la conversazione, ripristinare solo il codice, ripristinare entrambi o riassumere da un messaggio selezionato. Consultate [Checkpointing](/it/checkpointing) per i dettagli.430Claude crea automaticamente snapshot dei file prima di ogni modifica in modo che un checkpoint possa ripristinarli. Premete il doppio tasto Escape o eseguite `/rewind` per aprire il menu di rewind. Potete ripristinare solo la conversazione, ripristinare solo il codice, ripristinare entrambi o riassumere da un messaggio selezionato. Consultate [Checkpointing](/it/checkpointing) per i dettagli.

431 431 

432Invece di pianificare attentamente ogni mossa, potete dire a Claude di provare qualcosa di rischioso. Se non funziona, riavvolgete e provate un approccio diverso. I checkpoint persistono tra le sessioni, quindi potete chiudere il vostro terminale e comunque riavvolgere in seguito.432Invece di pianificare attentamente ogni mossa, potete dire a Claude di provare qualcosa di rischioso. Se non funziona, riavvolgete e provate un approccio diverso. I checkpoint persistono tra le sessioni, quindi potete chiudere il vostro terminale e comunque riavvolgere in seguito.

433 433 


438### Riprendete le conversazioni438### Riprendete le conversazioni

439 439 

440<Tip>440<Tip>

441 Eseguite `claude --continue` per riprendere da dove avete lasciato, o `--resume` per scegliere tra le sessioni recenti.441 Nominate le sessioni con `/rename` e trattate le come rami: ogni flusso di lavoro ottiene il suo contesto persistente.

442</Tip>442</Tip>

443 443 

444Claude Code salva le conversazioni localmente. Quando un'attività si estende su più sessioni, non dovete rispiegare il contesto:444Claude Code salva le conversazioni localmente, quindi quando un'attività si estende su più sessioni non dovete rispiegare il contesto. Eseguite `claude --continue` per riprendere la sessione più recente, o `claude --resume` per scegliere da un elenco. Assegnate alle sessioni nomi descrittivi come `oauth-migration` in modo da poterle trovare in seguito. Consultate [Manage sessions](/it/sessions) per l'insieme completo di controlli di ripresa, ramo e denominazione.

445 

446```bash theme={null}

447claude --continue # Resume the most recent conversation

448claude --resume # Select from recent conversations

449```

450 

451Utilizzate `/rename` per dare alle sessioni nomi descrittivi come `"oauth-migration"` o `"debugging-memory-leak"` in modo da poterle trovare in seguito. Trattate le sessioni come rami: diversi flussi di lavoro possono avere contesti separati e persistenti.

452 445 

453***446***

454 447 


464 Utilizzate `claude -p "prompt"` in CI, pre-commit hook o script. Aggiungete `--output-format stream-json` per l'output JSON in streaming.457 Utilizzate `claude -p "prompt"` in CI, pre-commit hook o script. Aggiungete `--output-format stream-json` per l'output JSON in streaming.

465</Tip>458</Tip>

466 459 

467Con `claude -p "your prompt"`, potete eseguire Claude in modo non interattivo, senza una sessione. La modalità non interattiva è il modo in cui integrate Claude nelle pipeline CI, pre-commit hook o qualsiasi flusso di lavoro automatizzato. I formati di output vi permettono di analizzare i risultati a livello di programmazione: testo semplice, JSON o JSON in streaming.460Con `claude -p "your prompt"`, potete eseguire Claude in modo non interattivo, senza una sessione. [La modalità non interattiva](/it/headless) è il modo in cui integrate Claude nelle pipeline CI, pre-commit hook o qualsiasi flusso di lavoro automatizzato. I formati di output vi permettono di analizzare i risultati a livello di programmazione: testo semplice, JSON o JSON in streaming.

468 461 

469```bash theme={null}462```bash theme={null}

470# One-off queries463# One-off queries


483 Eseguite più sessioni Claude in parallelo per accelerare lo sviluppo, eseguire esperimenti isolati o avviare flussi di lavoro complessi.476 Eseguite più sessioni Claude in parallelo per accelerare lo sviluppo, eseguire esperimenti isolati o avviare flussi di lavoro complessi.

484</Tip>477</Tip>

485 478 

486Ci sono tre modi principali per eseguire sessioni parallele:479Scegliete l'approccio parallelo che si adatta a quanto coordinamento volete fare voi stessi:

487 480 

488* [App desktop Claude Code](/it/desktop#work-in-parallel-with-sessions): Gestite più sessioni locali visivamente. Ogni sessione ottiene il suo worktree isolato.481* [Worktrees](/it/worktrees): eseguite sessioni CLI separate in checkout git isolati in modo che le modifiche non si scontrino

489* [Claude Code sul web](/it/claude-code-on-the-web): Eseguite su infrastruttura cloud sicura di Anthropic in VM isolate.482* [App desktop](/it/desktop#work-in-parallel-with-sessions): gestite più sessioni locali visivamente, ciascuna nel suo worktree

490* [Team di agenti](/it/agent-teams): Coordinamento automatizzato di più sessioni con attività condivise, messaggistica e un team lead.483* [Claude Code sul web](/it/claude-code-on-the-web): eseguite sessioni su infrastruttura cloud gestita da Anthropic in VM isolate

484* [Team di agenti](/it/agent-teams): coordinamento automatizzato di più sessioni con attività condivise, messaggistica e un team lead

491 485 

492Oltre a parallelizzare il lavoro, più sessioni consentono flussi di lavoro focalizzati sulla qualità. Un contesto fresco migliora la revisione del codice poiché Claude non sarà distorto verso il codice che ha appena scritto.486Oltre a parallelizzare il lavoro, più sessioni consentono flussi di lavoro focalizzati sulla qualità. Un contesto fresco migliora la revisione del codice poiché Claude non sarà distorto verso il codice che ha appena scritto.

493 487 

checkpointing.md +10 −9

Details

28* **Ripristina conversazione**: riavvolgi al messaggio mantenendo il codice attuale28* **Ripristina conversazione**: riavvolgi al messaggio mantenendo il codice attuale

29* **Ripristina codice**: ripristina le modifiche ai file mantenendo la conversazione29* **Ripristina codice**: ripristina le modifiche ai file mantenendo la conversazione

30* **Riassumi da qui**: comprimi la conversazione da questo punto in avanti in un riassunto, liberando spazio nella context window30* **Riassumi da qui**: comprimi la conversazione da questo punto in avanti in un riassunto, liberando spazio nella context window

31* **Riassumi fino a qui**: comprimi la conversazione prima di questo punto in un riassunto, mantenendo i messaggi successivi intatti

31* **Annulla**: torna all'elenco dei messaggi senza apportare modifiche32* **Annulla**: torna all'elenco dei messaggi senza apportare modifiche

32 33 

33Dopo aver ripristinato la conversazione o aver riassunto, il prompt originale dal messaggio selezionato viene ripristinato nel campo di input in modo che tu possa reinviarlo o modificarlo.34Dopo 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.

35 

36Scegliendo Riassumi fino a qui ti lascia alla fine della conversazione con l'input vuoto.

34 37 

35#### Ripristina vs. riassumi38#### Ripristina vs. riassumi

36 39 

37Le tre opzioni di ripristino ripristinano lo stato: annullano le modifiche al codice, la cronologia della conversazione o entrambi. "Riassumi da qui" funziona diversamente:40Le opzioni di ripristino ripristinano lo stato: annullano le modifiche al codice, la cronologia della conversazione o entrambi. Le opzioni di riassunto comprimono parte della conversazione in un riassunto generato dall'IA senza modificare i file su disco:

38 41 

39* I messaggi prima del messaggio selezionato rimangono intatti42* **Riassumi da qui**: i messaggi prima del messaggio selezionato rimangono intatti. Il messaggio selezionato e tutto ciò che segue vengono sostituiti con un riassunto. Usa questo per scartare una discussione laterale mantenendo il contesto iniziale in dettaglio completo.

40* Il messaggio selezionato e tutti i messaggi successivi vengono sostituiti con un riassunto compatto generato dall'IA43* **Riassumi fino a qui**: i messaggi prima del messaggio selezionato vengono sostituiti con un riassunto. Il messaggio selezionato e tutto ciò che segue rimangono intatti, e rimani alla fine della conversazione. Usa questo per comprimere la discussione di configurazione iniziale mantenendo il lavoro recente in dettaglio completo.

41* Nessun file su disco viene modificato

42* I messaggi originali vengono conservati nella trascrizione della sessione, quindi Claude può fare riferimento ai dettagli se necessario

43 44 

44Questo è simile a `/compact`, ma mirato: invece di riassumere l'intera conversazione, mantieni il contesto iniziale in dettaglio completo e comprimi solo le parti che stanno usando spazio. Puoi digitare istruzioni facoltative per guidare su cosa si concentra il riassunto.45In entrambi i casi i messaggi originali vengono conservati nella trascrizione della sessione, quindi Claude può fare riferimento ai dettagli se necessario. Puoi digitare istruzioni facoltative per guidare su cosa si concentra il riassunto. Questo è simile a `/compact`, ma mirato: invece di riassumere l'intera conversazione, scegli quale lato del messaggio selezionato comprimere.

45 46 

46<Note>47<Note>

47 Riassumi ti mantiene nella stessa sessione e comprime il contesto. Se desideri creare un ramo e provare un approccio diverso preservando la sessione originale intatta, usa [fork](/it/how-claude-code-works#resume-or-fork-sessions) invece (`claude --continue --fork-session`).48 Riassumi ti mantiene nella stessa sessione e comprime il contesto. Se desideri creare un ramo e provare un approccio diverso preservando la sessione originale intatta, usa [fork](/it/sessions#branch-a-session) invece (`claude --continue --fork-session`).

48</Note>49</Note>

49 50 

50## Casi d'uso comuni51## Casi d'uso comuni


85## Vedi anche86## Vedi anche

86 87 

87* [Modalità interattiva](/it/interactive-mode) - Scorciatoie da tastiera e controlli della sessione88* [Modalità interattiva](/it/interactive-mode) - Scorciatoie da tastiera e controlli della sessione

88* [Comandi integrati](/it/commands) - Accesso ai checkpoint usando `/rewind`89* [Comandi](/it/commands) - Accesso ai checkpoint usando `/rewind`

89* [Riferimento CLI](/it/cli-reference) - Opzioni della riga di comando90* [Riferimento CLI](/it/cli-reference) - Opzioni della riga di comando

Details

782 782 

783### Sessione Remote Control scaduta o accesso negato783### Sessione Remote Control scaduta o accesso negato

784 784 

785`--teleport` si connette attraverso la stessa infrastruttura della sessione Remote Control che le sessioni cloud utilizzano, quindi gli errori di autenticazione e scadenza della sessione si presentano con la terminologia Remote Control. Potresti vedere `Remote Control session has expired` o `Access denied`. Il token di connessione è di breve durata e limitato al tuo account.785`--teleport` si connette attraverso la stessa infrastruttura della sessione Remote Control che le sessioni cloud utilizzano, quindi gli errori di autenticazione e scadenza della sessione si presentano con la terminologia Remote Control. Potresti vedere `Remote Control session expired` o `Access denied`. Il token di connessione è di breve durata e limitato al tuo account.

786 786 

787* Esegui `/login` localmente per aggiornare le tue credenziali, quindi riconnettiti787* Esegui `/login` localmente per aggiornare le tue credenziali, quindi riconnettiti

788* Conferma che sei connesso allo stesso account che possiede la sessione788* Conferma che sei connesso allo stesso account che possiede la sessione

Details

24| `claude auth login` | Accedi al tuo account Anthropic. Usa `--email` per pre-compilare il tuo indirizzo email, `--sso` per forzare l'autenticazione SSO e `--console` per accedere con Anthropic Console per la fatturazione dell'utilizzo dell'API invece di un abbonamento Claude | `claude auth login --console` |24| `claude auth login` | Accedi al tuo account Anthropic. Usa `--email` per pre-compilare il tuo indirizzo email, `--sso` per forzare l'autenticazione SSO e `--console` per accedere con Anthropic Console per la fatturazione dell'utilizzo dell'API invece di un abbonamento Claude | `claude auth login --console` |

25| `claude auth logout` | Esci dal tuo account Anthropic | `claude auth logout` |25| `claude auth logout` | Esci dal tuo account Anthropic | `claude auth logout` |

26| `claude auth status` | Mostra lo stato di autenticazione come JSON. Usa `--text` per output leggibile dall'uomo. Esce con codice 0 se connesso, 1 se no | `claude auth status` |26| `claude auth status` | Mostra lo stato di autenticazione come JSON. Usa `--text` per output leggibile dall'uomo. Esce con codice 0 se connesso, 1 se no | `claude auth status` |

27| `claude agents` | Apri la [visualizzazione agente](/it/agent-view) per monitorare e inviare sessioni parallele in background. Quando l'output viene inviato tramite pipe, elenca invece gli [subagents](/it/sub-agents) configurati | `claude agents` |27| `claude agents` | Apri la [visualizzazione agente](/it/agent-view) per monitorare e inviare sessioni parallele in background. Usa `--cwd <path>` per mostrare solo le sessioni avviate in quella directory | `claude agents` |

28| `claude attach <id>` | Collegati a una [sessione in background](/it/agent-view#manage-sessions-from-the-shell) in questo terminale | `claude attach 7c5dcf5d` |28| `claude attach <id>` | Collegati a una [sessione in background](/it/agent-view#manage-sessions-from-the-shell) in questo terminale | `claude attach 7c5dcf5d` |

29| `claude auto-mode defaults` | Stampa le regole del classificatore [auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode) integrate come JSON. Usa `claude auto-mode config` per visualizzare la tua configurazione effettiva con le impostazioni applicate | `claude auto-mode defaults > rules.json` |29| `claude auto-mode defaults` | Stampa le regole del classificatore [auto mode](/it/permission-modes#eliminate-prompts-with-auto-mode) integrate come JSON. Usa `claude auto-mode config` per visualizzare la tua configurazione effettiva con le impostazioni applicate | `claude auto-mode defaults > rules.json` |

30| `claude logs <id>` | Stampa l'output recente da una [sessione in background](/it/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |30| `claude logs <id>` | Stampa l'output recente da una [sessione in background](/it/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

commands.md +1 −1

Details

26 26 

27**Tra le sessioni.** `/clear` inizia da capo su un nuovo compito mantenendo la memoria del progetto. `/resume` e `/branch` ti permettono di tornare a una conversazione precedente o di crearvi un ramo. `/teleport` estrae una sessione web in questo terminale, e `/remote-control` ti permette di continuare questa sessione locale da un altro dispositivo.27**Tra le sessioni.** `/clear` inizia da capo su un nuovo compito mantenendo la memoria del progetto. `/resume` e `/branch` ti permettono di tornare a una conversazione precedente o di crearvi un ramo. `/teleport` estrae una sessione web in questo terminale, e `/remote-control` ti permette di continuare questa sessione locale da un altro dispositivo.

28 28 

29**Quando qualcosa non va.** `/rewind` riporta il codice e la conversazione a un checkpoint precedente. `/doctor` e `/debug` diagnosticano i problemi di installazione e runtime, e `/feedback` segnala un bug con il contesto della sessione allegato.29**Quando qualcosa non va.** `/rewind` riporta il codice e la conversazione a un checkpoint precedente, o riassume parte della conversazione. `/doctor` e `/debug` diagnosticano i problemi di installazione e runtime, e `/feedback` segnala un bug con il contesto della sessione allegato.

30 30 

31## Tutti i comandi31## Tutti i comandi

32 32 

desktop.md +5 −2

Details

148 148 

149### Esegui comandi nel terminale149### Esegui comandi nel terminale

150 150 

151Il terminale integrato ti consente di eseguire comandi insieme alla tua sessione senza passare a un'altra app. Aprilo dal menu **Views** o premi **Ctrl+\`** su macOS o Windows. Il terminale si apre nella directory di lavoro della tua sessione e condivide lo stesso ambiente di Claude, quindi comandi come `npm test` o `git status` vedono gli stessi file che Claude sta modificando. Il terminale è disponibile solo nelle sessioni locali.151Il terminale integrato ti consente di eseguire comandi insieme alla tua sessione senza passare a un'altra app. Aprilo dal menu **Views** o premi **Ctrl+\`** su macOS o Windows. Il terminale si apre nella directory di lavoro della tua sessione e condivide lo stesso ambiente di Claude, quindi comandi come `npm test` o `git status` vedono gli stessi file che Claude sta modificando. Per aprire una seconda scheda del terminale, fai clic su **+** nell'header del pannello del terminale o fai clic con il pulsante destro su una cartella nella chat per scegliere **Open in terminal**. Il terminale è disponibile solo nelle sessioni locali.

152 152 

153### Apri e modifica file153### Apri e modifica file

154 154 


296 296 

297Usa i controlli in cima alla barra laterale per filtrare le sessioni per stato, progetto o ambiente, e per raggruppare le sessioni per progetto. Per rinominare una sessione, fai clic sul titolo della sessione nella barra degli strumenti in cima alla sessione attiva. Per controllare l'utilizzo del contesto, vedi [Controlla l'utilizzo](#check-usage). Quando il contesto si riempie, Claude riassume automaticamente la conversazione e continua a lavorare. Puoi anche digitare `/compact` per attivare la compattazione prima e liberare spazio di contesto. Vedi [la finestra di contesto](/it/how-claude-code-works#the-context-window) per i dettagli su come funziona la compattazione.297Usa i controlli in cima alla barra laterale per filtrare le sessioni per stato, progetto o ambiente, e per raggruppare le sessioni per progetto. Per rinominare una sessione, fai clic sul titolo della sessione nella barra degli strumenti in cima alla sessione attiva. Per controllare l'utilizzo del contesto, vedi [Controlla l'utilizzo](#check-usage). Quando il contesto si riempie, Claude riassume automaticamente la conversazione e continua a lavorare. Puoi anche digitare `/compact` per attivare la compattazione prima e liberare spazio di contesto. Vedi [la finestra di contesto](/it/how-claude-code-works#the-context-window) per i dettagli su come funziona la compattazione.

298 298 

299L'app desktop invia una notifica del sistema operativo quando una sessione Code termina un'attività e non stai visualizzando quella sessione.

300 

299### Chiedi una domanda laterale senza deviare la sessione301### Chiedi una domanda laterale senza deviare la sessione

300 302 

301Una chat laterale ti consente di chiedere a Claude una domanda che utilizza il contesto della tua sessione ma non aggiunge nulla di nuovo alla conversazione principale. Usala quando vuoi capire un pezzo di codice, verificare un'assunzione o esplorare un'idea senza sterzare la sessione fuori rotta.303Una chat laterale ti consente di chiedere a Claude una domanda che utilizza il contesto della tua sessione ma non aggiunge nulla di nuovo alla conversazione principale. Usala quando vuoi capire un pezzo di codice, verificare un'assunzione o esplorare un'idea senza sterzare la sessione fuori rotta.


598Le impostazioni gestite sovrascrivono le impostazioni del progetto e dell'utente e si applicano quando Desktop genera sessioni CLI. Puoi impostare queste chiavi nel file [impostazioni gestite](/it/settings#settings-precedence) della tua organizzazione o inviarle in remoto tramite la console di amministrazione.600Le impostazioni gestite sovrascrivono le impostazioni del progetto e dell'utente e si applicano quando Desktop genera sessioni CLI. Puoi impostare queste chiavi nel file [impostazioni gestite](/it/settings#settings-precedence) della tua organizzazione o inviarle in remoto tramite la console di amministrazione.

599 601 

600| Chiave | Descrizione |602| Chiave | Descrizione |

601| ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |603| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

602| `permissions.disableBypassPermissionsMode` | imposta su `"disable"` per impedire agli utenti di abilitare la modalità bypass permissions. |604| `permissions.disableBypassPermissionsMode` | imposta su `"disable"` per impedire agli utenti di abilitare la modalità bypass permissions. |

603| `disableAutoMode` | imposta su `"disable"` per impedire agli utenti di abilitare la modalità [Auto](/it/permission-modes#eliminate-prompts-with-auto-mode). Rimuove Auto dal selettore di modalità. Accettato anche sotto `permissions`. |605| `disableAutoMode` | imposta su `"disable"` per impedire agli utenti di abilitare la modalità [Auto](/it/permission-modes#eliminate-prompts-with-auto-mode). Rimuove Auto dal selettore di modalità. Accettato anche sotto `permissions`. |

604| `autoMode` | personalizza cosa il classificatore della modalità auto si fida e blocca in tutta la tua organizzazione. Vedi [Configura la modalità auto](/it/auto-mode-config). |606| `autoMode` | personalizza cosa il classificatore della modalità auto si fida e blocca in tutta la tua organizzazione. Vedi [Configura la modalità auto](/it/auto-mode-config). |

605| `sshConfigs` | pre-configura le [connessioni SSH](#pre-configure-ssh-connections-for-your-team) che appaiono nel menu a discesa dell'ambiente. Gli utenti non possono modificare o eliminare le connessioni gestite. |607| `sshConfigs` | pre-configura le [connessioni SSH](#pre-configure-ssh-connections-for-your-team) che appaiono nel menu a discesa dell'ambiente. Gli utenti non possono modificare o eliminare le connessioni gestite. |

606| `sshHostAllowlist` | limita le [sessioni SSH](#restrict-which-ssh-hosts-users-can-connect-to) agli host il cui nome host risolto corrisponde a uno di questi modelli. Un array vuoto disabilita le sessioni SSH. Letto solo dalle impostazioni gestite. |608| `sshHostAllowlist` | limita le [sessioni SSH](#restrict-which-ssh-hosts-users-can-connect-to) agli host il cui nome host risolto corrisponde a uno di questi modelli. Un array vuoto disabilita le sessioni SSH. Letto solo dalle impostazioni gestite. |

609| `managedMcpServers` | invia le configurazioni del server MCP a tutti gli utenti in una distribuzione di terze parti. Ogni voce specifica un trasporto di `"http"`, `"sse"` o `"stdio"`, i dettagli della connessione e facoltativamente una mappa `toolPolicy` che limita quali strumenti in quel server gli utenti possono invocare. Disponibile solo nelle distribuzioni Desktop di terze parti (3P). |

607 610 

608Un file di impostazioni gestite distribuito su disco su ogni macchina si applica alle sessioni Desktop. Le impostazioni gestite inviate in remoto tramite la console di amministrazione attualmente raggiungono solo le sessioni CLI e IDE, quindi per le distribuzioni Desktop distribuisci il file tramite MDM o utilizza i [controlli della console di amministrazione](#admin-console-controls) sopra.611Un file di impostazioni gestite distribuito su disco su ogni macchina si applica alle sessioni Desktop. Le impostazioni gestite inviate in remoto tramite la console di amministrazione attualmente raggiungono solo le sessioni CLI e IDE, quindi per le distribuzioni Desktop distribuisci il file tramite MDM o utilizza i [controlli della console di amministrazione](#admin-console-controls) sopra.

609 612 

desktop-scheduled-tasks.md +106 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Pianificare attività ricorrenti in Claude Code Desktop

6 

7> Configura attività pianificate in Claude Code Desktop per eseguire Claude automaticamente su base ricorrente per revisioni del codice giornaliere, audit delle dipendenze o briefing mattutini.

8 

9Le attività pianificate avviano una nuova sessione automaticamente a un'ora e una frequenza che scegli. Usale per lavori ricorrenti come revisioni del codice giornaliere, controlli degli aggiornamenti delle dipendenze o briefing mattutini che estraggono dati dal tuo calendario e dalla tua posta in arrivo.

10 

11La pagina **Routines** dell'app Desktop ti consente di creare sia attività pianificate locali che [routine](/it/routines) remote. Un'attività locale viene eseguita sulla tua macchina con accesso diretto ai tuoi file e strumenti, ma si attiva solo mentre l'app è aperta e il tuo computer è sveglio. Una routine remota viene eseguita su infrastrutture cloud gestite da Anthropic anche quando il tuo computer è spento e può anche attivarsi su chiamate API o eventi GitHub. Questa pagina copre le attività pianificate locali; per le routine remote e le loro opzioni di attivazione, vedi [Routines](/it/routines).

12 

13## Confronta le opzioni di pianificazione

14 

15Claude Code offers three ways to schedule recurring or one-off work:

16 

17| | [Cloud](/en/routines) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

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

19| Runs on | Anthropic cloud | Your machine | Your machine |

20| Requires machine on | No | Yes | Yes |

21| Requires open session | No | No | Yes |

22| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |

23| Access to local files | No (fresh clone) | Yes | Yes |

24| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |

25| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

26| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

27| Minimum interval | 1 hour | 1 minute | 1 minute |

28 

29<Tip>

30 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.

31</Tip>

32 

33<Note>

34 Per impostazione predefinita, le attività pianificate vengono eseguite rispetto a qualsiasi stato si trovi la tua directory di lavoro, incluse le modifiche non sottoposte a commit. Abilita l'interruttore worktree quando crei l'attività per dare a ogni esecuzione il suo proprio worktree Git isolato, nello stesso modo in cui funzionano le [sessioni parallele](/it/desktop#work-in-parallel-with-sessions).

35</Note>

36 

37## Crea un'attività pianificata

38 

39Fai clic su **Routines** nella barra laterale, quindi fai clic su **New routine** e scegli **Local**. Configura questi campi:

40 

41| Campo | Descrizione |

42| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

43| Name | Identificatore per l'attività. Convertito in kebab-case minuscolo e utilizzato come nome della cartella su disco. Deve essere univoco tra le tue attività. |

44| Description | Breve riepilogo mostrato nell'elenco delle attività. |

45| Instructions | Cosa Claude dovrebbe fare quando l'attività viene eseguita. Scrivi questo nello stesso modo in cui scriveresti qualsiasi messaggio nella casella del prompt. L'input delle istruzioni include selettori per la modalità di autorizzazione e il modello, e sotto di esso selezioni la cartella di lavoro e se eseguire in un worktree isolato. |

46| Schedule | Con quale frequenza viene eseguita l'attività. Vedi [opzioni di pianificazione](#schedule-options) di seguito. |

47 

48Una cartella è obbligatoria prima di poter salvare l'attività. Se non hai ancora considerato attendibile quella cartella, Desktop ti chiede di considerarla attendibile prima di salvarla.

49 

50Puoi anche creare un'attività descrivendo quello che vuoi in qualsiasi sessione. Ad esempio, "configura una revisione del codice giornaliera che viene eseguita ogni mattina alle 9" crea un'attività ricorrente, e "ricordami alle 15 domani di controllare il deploy" crea un'attività una tantum che si disabilita dopo che si attiva.

51 

52## Opzioni di pianificazione

53 

54Scegli un preset dal controllo Schedule:

55 

56* **Manual**: nessuna pianificazione, viene eseguita solo quando fai clic su **Run now**. Utile per salvare un prompt che attivi su richiesta

57* **Hourly**: viene eseguita ogni ora

58* **Daily**: mostra un selettore di ora, per impostazione predefinita alle 9:00 AM ora locale

59* **Weekdays**: come Daily ma salta sabato e domenica

60* **Weekly**: mostra un selettore di ora e un selettore di giorno

61 

62Per intervalli che il selettore non offre, come ogni 15 minuti, il primo di ogni mese o un'esecuzione singola a un'ora futura specifica, chiedi a Claude in qualsiasi sessione Desktop di impostare la pianificazione. Usa il linguaggio naturale; ad esempio, "pianifica un'attività per eseguire tutti i test ogni 6 ore."

63 

64## Come vengono eseguite le attività pianificate

65 

66Le attività pianificate vengono eseguite sulla tua macchina. Desktop controlla la pianificazione ogni minuto mentre l'app è aperta e avvia una sessione nuova quando un'attività è dovuta, indipendentemente da qualsiasi sessione manuale che hai aperta. Ogni attività riceve un piccolo ritardo di pochi minuti dopo l'ora pianificata per scaglionare il traffico API. Il ritardo è deterministico: la stessa attività inizia sempre allo stesso offset.

67 

68Quando un'attività si attiva, ricevi una notifica desktop e una nuova sessione appare sotto una sezione **Scheduled** nella barra laterale. Aprila per vedere cosa ha fatto Claude, rivedere le modifiche o rispondere ai prompt di autorizzazione. La sessione funziona come qualsiasi altra: Claude può modificare file, eseguire comandi, creare commit e aprire pull request.

69 

70Le attività vengono eseguite solo mentre l'app desktop è in esecuzione e il tuo computer è sveglio. Se il tuo computer dorme durante un'ora pianificata, l'esecuzione viene saltata. Per impedire il sonno inattivo, abilita **Keep computer awake** in Impostazioni sotto **Desktop app → General**. Chiudere il coperchio del laptop lo mette comunque in modalità sospensione. Per attività che devono essere eseguite anche quando il tuo computer è spento, o che dovrebbero attivarsi su una chiamata API o un evento GitHub, crea invece una [routine](/it/routines) remota.

71 

72## Esecuzioni mancate

73 

74Quando l'app si avvia o il tuo computer si riattiva, Desktop controlla se ogni attività ha perso esecuzioni negli ultimi sette giorni. Se lo ha fatto, Desktop avvia esattamente un'esecuzione di recupero per l'ora più recentemente mancata e scarta tutto ciò che è più vecchio. Un'attività giornaliera che ha perso sei giorni viene eseguita una volta al risveglio. Desktop mostra una notifica quando inizia un'esecuzione di recupero.

75 

76Tieni questo in mente quando scrivi i prompt. Un'attività pianificata per le 9 potrebbe essere eseguita alle 23 se il tuo computer è stato in sospensione tutto il giorno. Se il timing è importante, aggiungi protezioni al prompt stesso, ad esempio: "Rivedi solo i commit di oggi. Se è dopo le 17, salta la revisione e pubblica solo un riepilogo di ciò che è stato perso."

77 

78## Autorizzazioni per le attività pianificate

79 

80Ogni attività ha la sua propria modalità di autorizzazione, che imposti quando crei o modifichi l'attività. Le regole di autorizzazione da `~/.claude/settings.json` si applicano anche alle sessioni di attività pianificate. Se un'attività viene eseguita in modalità Ask e ha bisogno di eseguire uno strumento per il quale non ha autorizzazione, l'esecuzione si blocca fino a quando non la approvi. La sessione rimane aperta nella barra laterale in modo da poter rispondere in seguito.

81 

82Per evitare blocchi, fai clic su **Run now** dopo aver creato un'attività, guarda i prompt di autorizzazione e seleziona "always allow" per ognuno. Le esecuzioni future di quell'attività approvano automaticamente gli stessi strumenti senza chiedere. Puoi rivedere e revocare queste approvazioni dalla pagina dei dettagli dell'attività.

83 

84## Gestisci le attività pianificate

85 

86Fai clic su un'attività nell'elenco **Routines** per aprire la sua pagina di dettaglio. Da qui puoi:

87 

88* **Run now**: avvia l'attività immediatamente senza aspettare l'ora pianificata successiva

89* **Status**: attiva/disattiva tra Active e Paused per mettere in pausa o riprendere le esecuzioni pianificate senza eliminare l'attività

90* **Edit**: modifica le istruzioni, la pianificazione, la cartella o altre impostazioni

91* **Review history**: vedi ogni esecuzione passata, incluse le esecuzioni saltate. Passa il mouse su una voce saltata per vedere il motivo: il tuo computer era in sospensione, l'esecuzione precedente era ancora in corso o altre attività pianificate erano già in esecuzione. Fai clic su **Show more** per caricare voci più vecchie.

92* **Review allowed permissions**: vedi e revoca le approvazioni degli strumenti salvate per questa attività dal pannello **Always allowed**

93* **Delete**: rimuovi l'attività e archivia tutte le sessioni che ha creato. Una casella di controllo **Also delete files on disk** appare nella finestra di dialogo di conferma; selezionala per rimuovere anche il file `SKILL.md` dell'attività e i dati associati da `~/.claude/scheduled-tasks/`.

94 

95Puoi anche elencare, creare, modificare e mettere in pausa le attività chiedendo a Claude in qualsiasi sessione Desktop. Ad esempio, "pausa la mia attività dependency-audit" o "mostrami le mie attività pianificate." Per eliminare un'attività, usa il pulsante **Delete** sulla sua pagina di dettaglio.

96 

97Un'attività pianificata può anche modificare la sua propria pianificazione o prompt da una sessione in esecuzione utilizzando lo strumento MCP `update_scheduled_task`. Questo consente a un'attività di ripianificarsi in base a ciò che trova, ad esempio, ripianificando una revisione del codice per essere eseguita prima quando rileva che è stato creato un ramo di rilascio.

98 

99Per modificare il prompt di un'attività su disco, apri `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (o sotto [`CLAUDE_CONFIG_DIR`](/it/env-vars) se impostato). Il file utilizza frontmatter YAML per `name` e `description`, con il prompt come corpo. Le modifiche hanno effetto alla prossima esecuzione. La pianificazione, la cartella, il modello e lo stato abilitato non sono in questo file: modificali tramite il modulo Edit o chiedi a Claude.

100 

101## Risorse correlate

102 

103* [Routines](/it/routines): esegui attività su infrastrutture gestite da Anthropic su una pianificazione, tramite chiamata API o in risposta a eventi GitHub, anche quando il tuo computer è spento

104* [Run prompts on a schedule](/it/scheduled-tasks): pianificazione con ambito di sessione con `/loop` nella CLI

105* [Claude Code GitHub Actions](/it/github-actions): esegui Claude su una pianificazione in CI invece che sulla tua macchina

106* [Use Claude Code Desktop](/it/desktop): la guida completa dell'app Desktop

env-vars.md +2 −0

Details

45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sovrascrivi la regione AWS per il modello di classe Haiku quando utilizzi Bedrock o Bedrock Mantle |45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Sovrascrivi la regione AWS per il modello di classe Haiku quando utilizzi Bedrock o Bedrock Mantle |

46| `ANTHROPIC_VERTEX_BASE_URL` | Sovrascrivi l'URL dell'endpoint Vertex AI. Utilizza per endpoint Vertex personalizzati o quando instrada attraverso un [gateway LLM](/it/llm-gateway). Vedi [Google Vertex AI](/it/google-vertex-ai) |46| `ANTHROPIC_VERTEX_BASE_URL` | Sovrascrivi l'URL dell'endpoint Vertex AI. Utilizza per endpoint Vertex personalizzati o quando instrada attraverso un [gateway LLM](/it/llm-gateway). Vedi [Google Vertex AI](/it/google-vertex-ai) |

47| `ANTHROPIC_VERTEX_PROJECT_ID` | ID progetto GCP per le richieste Vertex AI. Sovrascritto da `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` o dal progetto nel tuo file di credenziali `GOOGLE_APPLICATION_CREDENTIALS`. Vedi [Google Vertex AI](/it/google-vertex-ai) |47| `ANTHROPIC_VERTEX_PROJECT_ID` | ID progetto GCP per le richieste Vertex AI. Sovrascritto da `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` o dal progetto nel tuo file di credenziali `GOOGLE_APPLICATION_CREDENTIALS`. Vedi [Google Vertex AI](/it/google-vertex-ai) |

48| `ANTHROPIC_WORKSPACE_ID` | ID area di lavoro per la [federazione dell'identità del carico di lavoro](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Imposta questo quando la tua regola di federazione è limitata a più di un'area di lavoro in modo che lo scambio di token sappia quale area di lavoro indirizzare |

48| `API_TIMEOUT_MS` | Timeout per le richieste API in millisecondi (predefinito: 600000, o 10 minuti; massimo: 2147483647). Aumenta questo valore quando le richieste scadono su reti lente o quando instrada attraverso un proxy. I valori superiori al massimo causano un overflow del timer sottostante e causano il fallimento immediato delle richieste |49| `API_TIMEOUT_MS` | Timeout per le richieste API in millisecondi (predefinito: 600000, o 10 minuti; massimo: 2147483647). Aumenta questo valore quando le richieste scadono su reti lente o quando instrada attraverso un proxy. I valori superiori al massimo causano un overflow del timer sottostante e causano il fallimento immediato delle richieste |

49| `AWS_BEARER_TOKEN_BEDROCK` | Chiave API Bedrock per l'autenticazione (vedi [Chiavi API Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |50| `AWS_BEARER_TOKEN_BEDROCK` | Chiave API Bedrock per l'autenticazione (vedi [Chiavi API Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

50| `BASH_DEFAULT_TIMEOUT_MS` | Timeout predefinito per i comandi bash a lunga esecuzione (predefinito: 120000, o 2 minuti) |51| `BASH_DEFAULT_TIMEOUT_MS` | Timeout predefinito per i comandi bash a lunga esecuzione (predefinito: 120000, o 2 minuti) |


138| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sovrascrivi la directory radice dei plugin. Nonostante il nome, questo imposta la directory padre, non la cache stessa: i marketplace e la cache dei plugin si trovano in sottodirectory sotto questo percorso. Per impostazione predefinita `~/.claude/plugins` |139| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Sovrascrivi la directory radice dei plugin. Nonostante il nome, questo imposta la directory padre, non la cache stessa: i marketplace e la cache dei plugin si trovano in sottodirectory sotto questo percorso. Per impostazione predefinita `~/.claude/plugins` |

139| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout in millisecondi per le operazioni git durante l'installazione o l'aggiornamento dei plugin (predefinito: 120000). Aumenta questo valore per repository di grandi dimensioni o connessioni di rete lente. Vedi [Le operazioni Git scadono](/it/plugin-marketplaces#git-operations-time-out) |140| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout in millisecondi per le operazioni git durante l'installazione o l'aggiornamento dei plugin (predefinito: 120000). Aumenta questo valore per repository di grandi dimensioni o connessioni di rete lente. Vedi [Le operazioni Git scadono](/it/plugin-marketplaces#git-operations-time-out) |

140| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Imposta su `1` per mantenere la cache del marketplace esistente quando un `git pull` fallisce invece di cancellare e ri-clonare. Utile in ambienti offline o airgapped dove il ri-cloning fallirebbe allo stesso modo. Vedi [Gli aggiornamenti del marketplace falliscono in ambienti offline](/it/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |141| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Imposta su `1` per mantenere la cache del marketplace esistente quando un `git pull` fallisce invece di cancellare e ri-clonare. Utile in ambienti offline o airgapped dove il ri-cloning fallirebbe allo stesso modo. Vedi [Gli aggiornamenti del marketplace falliscono in ambienti offline](/it/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

142| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Imposta su `1` per clonare le fonti plugin GitHub `owner/repo` su HTTPS invece di SSH. Utile nei runner CI, container o in qualsiasi ambiente senza una chiave SSH configurata per `github.com` |

141| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Percorso di una o più directory di seed plugin di sola lettura, separate da `:` su Unix o `;` su Windows. Utilizza questo per raggruppare una directory plugin pre-popolata in un'immagine container. Claude Code registra i marketplace da queste directory all'avvio e utilizza i plugin pre-memorizzati nella cache senza ri-clonare. Vedi [Pre-popola i plugin per i container](/it/plugin-marketplaces#pre-populate-plugins-for-containers) |143| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Percorso di una o più directory di seed plugin di sola lettura, separate da `:` su Unix o `;` su Windows. Utilizza questo per raggruppare una directory plugin pre-popolata in un'immagine container. Claude Code registra i marketplace da queste directory all'avvio e utilizza i plugin pre-memorizzati nella cache senza ri-clonare. Vedi [Pre-popola i plugin per i container](/it/plugin-marketplaces#pre-populate-plugins-for-containers) |

142| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Impostato da piattaforme host che incorporano Claude Code e gestiscono l'instradamento del provider di modelli per suo conto. Se impostato, la selezione del provider, l'endpoint e le variabili di autenticazione come `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY` nei file di impostazioni vengono ignorate in modo che le impostazioni dell'utente non possono sovrascrivere l'instradamento dell'host. Anche l'opt-out automatico della telemetria per Bedrock, Vertex e Foundry viene saltato, quindi la telemetria segue l'opt-out standard `DISABLE_TELEMETRY`. Vedi [Comportamenti predefiniti per provider API](/it/data-usage#default-behaviors-by-api-provider) |144| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Impostato da piattaforme host che incorporano Claude Code e gestiscono l'instradamento del provider di modelli per suo conto. Se impostato, la selezione del provider, l'endpoint e le variabili di autenticazione come `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` e `ANTHROPIC_API_KEY` nei file di impostazioni vengono ignorate in modo che le impostazioni dell'utente non possono sovrascrivere l'instradamento dell'host. Anche l'opt-out automatico della telemetria per Bedrock, Vertex e Foundry viene saltato, quindi la telemetria segue l'opt-out standard `DISABLE_TELEMETRY`. Vedi [Comportamenti predefiniti per provider API](/it/data-usage#default-behaviors-by-api-provider) |

143| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Imposta su `1` per consentire al proxy di eseguire la risoluzione DNS invece del chiamante. Opt-in per ambienti in cui il proxy deve gestire la risoluzione del nome host |145| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Imposta su `1` per consentire al proxy di eseguire la risoluzione DNS invece del chiamante. Opt-in per ambienti in cui il proxy deve gestire la risoluzione del nome host |

Details

156 156 

157### Utilizzo di skills157### Utilizzo di skills

158 158 

159L'input `prompt` accetta un'invocazione di [skill](/it/skills) così come testo semplice:

160 

161* Per una skill nella directory `.claude/skills/` del vostro repository, eseguite `actions/checkout` prima del passo dell'azione e passate `/skill-name`.

162* Per una skill inclusa in un plugin, installate il plugin con gli input `plugin_marketplaces` e `plugins` e passate lo `/plugin-name:skill-name` con namespace.

163 

164Il seguente flusso di lavoro installa il plugin `code-review` ed esegue la sua skill su ogni pull request nuova o aggiornata:

165 

159```yaml theme={null}166```yaml theme={null}

160name: Code Review167name: Code Review

161on:168on:


168 - uses: anthropics/claude-code-action@v1175 - uses: anthropics/claude-code-action@v1

169 with:176 with:

170 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}177 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

171 prompt: "Review this pull request for code quality, correctness, and security. Analyze the diff, then post your findings as review comments."178 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"

172 claude_args: "--max-turns 5"179 plugins: "code-review@claude-code-plugins"

180 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

173```181```

174 182 

175### Automazione personalizzata con prompt183### Automazione personalizzata con prompt


622Claude Code Action v1 utilizza una configurazione semplificata:630Claude Code Action v1 utilizza una configurazione semplificata:

623 631 

624| Parameter | Description | Required |632| Parameter | Description | Required |

625| ------------------- | ----------------------------------------------------------------------- | -------- |633| --------------------- | ---------------------------------------------------------------------------------- | -------- |

626| `prompt` | Istruzioni per Claude (testo semplice o un nome di [skill](/it/skills)) | No\* |634| `prompt` | Istruzioni per Claude (testo semplice o un nome di [skill](/it/skills)) | No\* |

627| `claude_args` | Argomenti CLI passati a Claude Code | No |635| `claude_args` | Argomenti CLI passati a Claude Code | No |

636| `plugin_marketplaces` | Elenco separato da newline degli URL Git del marketplace dei plugin | No |

637| `plugins` | Elenco separato da newline dei nomi dei plugin da installare prima dell'esecuzione | No |

628| `anthropic_api_key` | Chiave API Claude | Yes\*\* |638| `anthropic_api_key` | Chiave API Claude | Yes\*\* |

629| `github_token` | Token GitHub per l'accesso API | No |639| `github_token` | Token GitHub per l'accesso API | No |

630| `trigger_phrase` | Frase trigger personalizzata (predefinito: "@claude") | No |640| `trigger_phrase` | Frase trigger personalizzata (predefinito: "@claude") | No |

glossary.md +1 −1

Details

70 70 

71### Checkpoint71### Checkpoint

72 72 

73Uno snapshot automatico del tuo codice acquisito prima di ogni modifica che Claude apporta. Premi `Esc` due volte o esegui `/rewind` per ripristinare il codice, la conversazione o entrambi a un punto precedente. I checkpoint sono locali alla sessione, separati da git e non traccia le modifiche apportate tramite lo strumento Bash.73Un punto di ripristino creato ad ogni prompt che invii. Claude Code acquisisce snapshot dei file prima di ogni modifica in modo che un checkpoint possa ripristinarli. Premi `Esc` due volte o esegui `/rewind` per ripristinare il codice, la conversazione o entrambi a un punto precedente, o per riassumere parte della conversazione da un messaggio selezionato. I checkpoint sono locali alla sessione, separati da git, e non traccia le modifiche apportate tramite lo strumento Bash.

74 74 

75Scopri di più: [Checkpointing](/it/checkpointing)75Scopri di più: [Checkpointing](/it/checkpointing)

76 76 

goal.md +3 −3

Details

54 54 

55L'impostazione di un obiettivo avvia immediatamente un turno, con la condizione stessa come direttiva. Non è necessario inviare un prompt separato. Mentre l'obiettivo è attivo, un indicatore `◎ /goal active` mostra da quanto tempo l'obiettivo è in esecuzione.55L'impostazione di un obiettivo avvia immediatamente un turno, con la condizione stessa come direttiva. Non è necessario inviare un prompt separato. Mentre l'obiettivo è attivo, un indicatore `◎ /goal active` mostra da quanto tempo l'obiettivo è in esecuzione.

56 56 

57Dopo ogni turno, il valutatore restituisce una breve spiegazione del motivo per cui la condizione è o non è soddisfatta. Il motivo più recente appare nella vista dello stato e nella trascrizione in modo che tu possa vedere verso cosa Claude sta lavorando successivamente.57Dopo ogni turno, il valutatore restituisce una breve spiegazione del motivo per cui la condizione è o non è soddisfatta. Il motivo più recente appare nella vista dello stato e nella trascrizione in modo che Lei possa vedere verso cosa Claude sta lavorando successivamente.

58 58 

59<Note>59<Note>

60 Un obiettivo continua a funzionare finché la condizione non è soddisfatta o finché non esegui `/goal clear`. Esegui `/goal` senza argomenti per vedere i turni e i token spesi finora.60 Un obiettivo continua a funzionare finché la condizione non è soddisfatta o finché non esegui `/goal clear`. Esegui `/goal` senza argomenti per vedere i turni e i token spesi finora.


62 62 

63### Scrivi una condizione efficace63### Scrivi una condizione efficace

64 64 

65Il [valutatore](#how-evaluation-works) giudica la tua condizione rispetto a ciò che Claude ha esposto nella conversazione. Non esegue comandi o legge file indipendentemente, quindi scrivi la condizione come qualcosa che l'output stesso di Claude può dimostrare. "Tutti i test in `test/auth` passano" funziona perché Claude esegue i test e il risultato finisce nella trascrizione affinché il valutatore lo legga.65Il [valutatore](#how-evaluation-works) giudica la Sua condizione rispetto a ciò che Claude ha esposto nella conversazione. Non esegue comandi o legge file indipendentemente, quindi scrivi la condizione come qualcosa che l'output stesso di Claude può dimostrare. "Tutti i test in `test/auth` passano" funziona perché Claude esegue i test e il risultato finisce nella trascrizione affinché il valutatore lo legga.

66 66 

67Una condizione che regge attraverso molti turni di solito ha:67Una condizione che regge attraverso molti turni di solito ha:

68 68 


108 108 

109### Esegui in modo non interattivo109### Esegui in modo non interattivo

110 110 

111`/goal` funziona in [modalità non interattiva](/it/headless) e tramite [Remote Control](/it/remote-control). L'impostazione di un obiettivo con `-p` esegue il ciclo fino al completamento in una singola invocazione:111`/goal` funziona in [modalità non interattiva](/it/headless), nell'[app desktop](/it/desktop) e tramite [Remote Control](/it/remote-control). L'impostazione di un obiettivo con `-p` esegue il ciclo fino al completamento in una singola invocazione:

112 112 

113```bash theme={null}113```bash theme={null}

114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

hooks.md +46 −6

Details

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

298| `type` | sì | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |298| `type` | sì | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` o `"agent"` |

299| `if` | no | Sintassi della regola di autorizzazione per filtrare quando questo hook viene eseguito, come `"Bash(git *)"` o `"Edit(*.ts)"`. L'hook viene eseguito solo se la chiamata dello strumento corrisponde al modello, o se un comando Bash è troppo complesso da analizzare. Valutato solo su eventi degli strumenti: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Su altri eventi, un hook con `if` impostato non viene mai eseguito. Utilizza la stessa sintassi delle [regole di autorizzazione](/it/permissions) |299| `if` | no | Sintassi della regola di autorizzazione per filtrare quando questo hook viene eseguito, come `"Bash(git *)"` o `"Edit(*.ts)"`. L'hook viene eseguito solo se la chiamata dello strumento corrisponde al modello, o se un comando Bash è troppo complesso da analizzare. Valutato solo su eventi degli strumenti: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` e `PermissionDenied`. Su altri eventi, un hook con `if` impostato non viene mai eseguito. Utilizza la stessa sintassi delle [regole di autorizzazione](/it/permissions) |

300| `timeout` | no | Secondi prima dell'annullamento. Impostazioni predefinite: 600 per command, 30 per prompt, 60 per agent |300| `timeout` | no | Secondi prima dell'annullamento. Impostazioni predefinite: 600 per `command`, `http` e `mcp_tool`; 30 per `prompt`; 60 per `agent`. [`UserPromptSubmit`](#userpromptsubmit) abbassa l'impostazione predefinita di `command`, `http` e `mcp_tool` a 30 |

301| `statusMessage` | no | Messaggio spinner personalizzato visualizzato mentre l'hook viene eseguito |301| `statusMessage` | no | Messaggio spinner personalizzato visualizzato mentre l'hook viene eseguito |

302| `once` | no | Se `true`, viene eseguito una sola volta per sessione e poi rimosso. Solo onorato per gli hook dichiarati nel [frontmatter della skill](#hooks-in-skills-and-agents); ignorato nei file di impostazioni e nel frontmatter dell'agente |302| `once` | no | Se `true`, viene eseguito una sola volta per sessione e poi rimosso. Solo onorato per gli hook dichiarati nel [frontmatter della skill](#hooks-in-skills-and-agents); ignorato nei file di impostazioni e nel frontmatter dell'agente |

303 303 


558 558 

559I command hook ricevono dati JSON tramite stdin e comunicano i risultati attraverso codici di uscita, stdout e stderr. Gli HTTP hook ricevono lo stesso JSON come corpo della richiesta POST e comunicano i risultati attraverso il corpo della risposta HTTP. Questa sezione copre i campi e il comportamento comuni a tutti gli eventi. Ogni sezione dell'evento sotto [Hook events](#hook-events) include il suo schema di input specifico e le opzioni di controllo della decisione.559I command hook ricevono dati JSON tramite stdin e comunicano i risultati attraverso codici di uscita, stdout e stderr. Gli HTTP hook ricevono lo stesso JSON come corpo della richiesta POST e comunicano i risultati attraverso il corpo della risposta HTTP. Questa sezione copre i campi e il comportamento comuni a tutti gli eventi. Ogni sezione dell'evento sotto [Hook events](#hook-events) include il suo schema di input specifico e le opzioni di controllo della decisione.

560 560 

561Su macOS e Linux, i command hook vengono eseguiti nella loro propria sessione senza un terminale di controllo a partire da v2.1.139. Il processo hook e qualsiasi processo figlio non possono aprire `/dev/tty` o inviare sequenze di escape direttamente all'interfaccia Claude Code. Windows non ha `/dev/tty`. Per visualizzare un messaggio all'utente su qualsiasi piattaforma, restituire [`systemMessage`](#json-output) nell'output JSON. Per attivare una notifica desktop, impostare un titolo della finestra o suonare il campanello, restituire [`terminalSequence`](#emit-terminal-notifications) invece.

562 

561### Campi di input comuni563### Campi di input comuni

562 564 

563Gli hook event ricevono questi campi come JSON, oltre ai campi specifici dell'evento documentati in ogni sezione [hook event](#hook-events). Per i command hook, questo JSON arriva tramite stdin. Per gli HTTP hook, arriva come corpo della richiesta POST.565Gli hook event ricevono questi campi come JSON, oltre ai campi specifici dell'evento documentati in ogni sezione [hook event](#hook-events). Per i command hook, questo JSON arriva tramite stdin. Per gli HTTP hook, arriva come corpo della richiesta POST.


694* **`hookSpecificOutput`** è un oggetto annidato per gli eventi che necessitano di un controllo più ricco. Richiede un campo `hookEventName` impostato sul nome dell'evento.696* **`hookSpecificOutput`** è un oggetto annidato per gli eventi che necessitano di un controllo più ricco. Richiede un campo `hookEventName` impostato sul nome dell'evento.

695 697 

696| Campo | Impostazione predefinita | Descrizione |698| Campo | Impostazione predefinita | Descrizione |

697| :--------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |699| :----------------- | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

698| `continue` | `true` | Se `false`, Claude interrompe completamente l'elaborazione dopo l'esecuzione del hook. Ha la precedenza su qualsiasi campo di decisione specifico dell'evento |700| `continue` | `true` | Se `false`, Claude interrompe completamente l'elaborazione dopo l'esecuzione del hook. Ha la precedenza su qualsiasi campo di decisione specifico dell'evento |

699| `stopReason` | nessuno | Messaggio mostrato all'utente quando `continue` è `false`. Non mostrato a Claude |701| `stopReason` | nessuno | Messaggio mostrato all'utente quando `continue` è `false`. Non mostrato a Claude |

700| `suppressOutput` | `false` | Se `true`, omette stdout dal log di debug |702| `suppressOutput` | `false` | Se `true`, omette stdout dal log di debug |

701| `systemMessage` | nessuno | Messaggio di avviso mostrato all'utente |703| `systemMessage` | nessuno | Messaggio di avviso mostrato all'utente |

704| `terminalSequence` | nessuno | Una sequenza di escape del terminale per Claude Code da emettere per conto vostro, come una notifica desktop, un titolo della finestra o un campanello. Limitato a OSC `0`/`1`/`2`/`9`/`99`/`777` e BEL. Se il valore contiene qualcosa al di fuori della lista di autorizzazione, il campo viene ignorato. Utilizzare questo invece di scrivere su `/dev/tty`, che non è disponibile per gli hook |

702 705 

703Per fermare Claude completamente indipendentemente dal tipo di evento:706Per fermare Claude completamente indipendentemente dal tipo di evento:

704 707 


706{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }709{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

707```710```

708 711 

712#### Emettere notifiche del terminale

713 

714Il campo `terminalSequence` richiede Claude Code v2.1.141 o successivo.

715 

716Gli hook vengono eseguiti senza un terminale di controllo, quindi la scrittura di sequenze di escape direttamente su `/dev/tty` non riesce. Invece, restituire la sequenza di escape nel campo `terminalSequence` e Claude Code la emetterà per voi attraverso il suo percorso di scrittura del terminale. Questo è privo di race condition, funziona all'interno di tmux e GNU screen, e funziona su Windows dove non esiste `/dev/tty`.

717 

718Il campo accetta una stringa di una o più sequenze di escape nella lista di autorizzazione:

719 

720* OSC `0`, `1`, `2`: titoli della finestra e dell'icona

721* OSC `9`: notifiche iTerm2, ConEmu, Windows Terminal e WezTerm, incluso `9;4` progresso della barra delle applicazioni

722* OSC `99`: notifiche Kitty

723* OSC `777`: notifiche urxvt, Ghostty e Warp

724* BEL nudo

725 

726Le sequenze possono essere terminate con BEL o con ST. Qualsiasi cosa al di fuori della lista di autorizzazione, incluse le sequenze CSI del cursore e del colore, le sequenze della tavolozza OSC, i collegamenti ipertestuali OSC 8, le scritture degli appunti OSC 52 e OSC 1337, viene rifiutata e il campo viene ignorato.

727 

728L'esempio seguente attiva una notifica desktop da un hook `Notification`. La sequenza di escape viene costruita con `printf` escape ottali in modo che i byte di controllo non compaiano mai sulla riga di comando della shell, e `jq -n --arg` costruisce l'output JSON in modo che le virgolette, le barre rovesciate e le nuove righe nel messaggio di notifica siano correttamente sfuggite:

729 

730```bash theme={null}

731#!/bin/bash

732# Hook di notifica: avvisa il desktop quando Claude Code ha bisogno di attenzione.

733input=$(cat)

734title="Claude Code'

735body=$(jq -r '.message // "Needs your attention"' <<<"$input")

736seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

737jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

738```

739 

740La forma `{ "terminalSequence": "..." }` è la stessa da qualsiasi shell o linguaggio. Su Windows, costruire la stringa di escape in PowerShell o uno script e emettere lo stesso oggetto JSON.

741 

742<Note>

743 `terminalSequence` è la sostituzione supportata per gli hook che in precedenza scrivevano sequenze di escape direttamente su `/dev/tty`. La lista di autorizzazione è limitata alle sequenze che non possono spostare il cursore o alterare i colori, quindi un hook non può mai corrompere un prompt sullo schermo.

744</Note>

745 

709#### Aggiungere contesto per Claude746#### Aggiungere contesto per Claude

710 747 

711Il campo `additionalContext` passa una stringa dal hook nel contesto della finestra di Claude. Claude Code avvolge la stringa in un promemoria di sistema e la inserisce nella conversazione nel punto in cui l'hook si è attivato. Claude legge il promemoria nella prossima richiesta del modello, ma non appare come messaggio di chat nell'interfaccia.748Il campo `additionalContext` passa una stringa dal hook nel contesto della finestra di Claude. Claude Code avvolge la stringa in un promemoria di sistema e la inserisce nella conversazione nel punto in cui l'hook si è attivato. Claude legge il promemoria nella prossima richiesta del modello, ma non appare come messaggio di chat nell'interfaccia.


989 1026 

990Viene eseguito quando l'utente invia un prompt, prima che Claude lo elabori. Ciò consente di aggiungere contesto aggiuntivo in base al prompt/conversazione, convalidare i prompt o bloccare determinati tipi di prompt.1027Viene eseguito quando l'utente invia un prompt, prima che Claude lo elabori. Ciò consente di aggiungere contesto aggiuntivo in base al prompt/conversazione, convalidare i prompt o bloccare determinati tipi di prompt.

991 1028 

1029Gli hook `UserPromptSubmit` hanno un timeout predefinito di 30 secondi per i tipi `command`, `http` e `mcp_tool`, più breve del default di 600 secondi per questi tipi su altri eventi. Poiché questo hook viene eseguito prima di ogni prompt e blocca l'elaborazione del modello fino al completamento, un hook bloccato blocca la sessione. Se l'hook ha bisogno di più tempo, impostare il campo `timeout` nella voce dell'hook.

1030 

992#### Input di UserPromptSubmit1031#### Input di UserPromptSubmit

993 1032 

994Oltre ai [campi di input comuni](#common-input-fields), gli hook UserPromptSubmit ricevono il campo `prompt` contenente il testo che l'utente ha inviato.1033Oltre ai [campi di input comuni](#common-input-fields), gli hook UserPromptSubmit ricevono il campo `prompt` contenente il testo che l'utente ha inviato.


2598 2637 

2599Quando un hook asincrono si attiva, Claude Code avvia il processo del hook e continua immediatamente senza aspettare il completamento. L'hook riceve lo stesso input JSON tramite stdin di un hook sincrono.2638Quando un hook asincrono si attiva, Claude Code avvia il processo del hook e continua immediatamente senza aspettare il completamento. L'hook riceve lo stesso input JSON tramite stdin di un hook sincrono.

2600 2639 

2601Dopo che il processo in background esce, se l'hook ha prodotto una risposta JSON con un campo `systemMessage` o `additionalContext`, quel contenuto viene consegnato a Claude come contesto al turno di conversazione successivo.2640Dopo che il processo in background esce, se l'hook ha prodotto una risposta JSON con un campo `additionalContext`, quel contenuto viene consegnato a Claude come contesto al turno di conversazione successivo. Un campo `systemMessage` viene mostrato a voi, non a Claude.

2602 2641 

2603Le notifiche di completamento degli hook asincroni sono soppresse per impostazione predefinita. Per vederle, abilitare la modalità verbose con `Ctrl+O` o avviare Claude Code con `--verbose`.2642Le notifiche di completamento degli hook asincroni sono soppresse per impostazione predefinita. Per vederle, abilitare la modalità verbose con `Ctrl+O` o avviare Claude Code con `--verbose`.

2604 2643 


2619 exit 02658 exit 0

2620fi2659fi

2621 2660 

2622# Eseguire i test e segnalare i risultati tramite systemMessage2661# Eseguire i test e segnalare i risultati a Claude tramite additionalContext

2623RESULT=$(npm test 2>&1)2662RESULT=$(npm test 2>&1)

2624EXIT_CODE=$?2663EXIT_CODE=$?

2625 2664 

2626if [ $EXIT_CODE -eq 0 ]; then2665if [ $EXIT_CODE -eq 0 ]; then

2627 echo "{\"systemMessage\": \"Tests passed after editing $FILE_PATH\"}"2666 MSG="Tests passed after editing $FILE_PATH"

2628else2667else

2629 echo "{\"systemMessage\": \"Tests failed after editing $FILE_PATH: $RESULT\"}"2668 MSG="Tests failed after editing $FILE_PATH: $RESULT"

2630fi2669fi

2670jq -nc --arg msg "$MSG" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $msg}}'

2631```2671```

2632 2672 

2633Quindi aggiungere questa configurazione a `.claude/settings.json` nella radice del progetto. Il flag `async: true` consente a Claude di continuare a lavorare mentre i test vengono eseguiti:2673Quindi aggiungere questa configurazione a `.claude/settings.json` nella radice del progetto. Il flag `async: true` consente a Claude di continuare a lavorare mentre i test vengono eseguiti:

hooks-guide.md +4 −1

Details

865### Limitazioni865### Limitazioni

866 866 

867* Gli hook di comando comunicano solo attraverso stdout, stderr e codici di uscita. Non possono attivare comandi `/` o chiamate di strumenti. Il testo restituito tramite `additionalContext` viene iniettato come un promemoria di sistema che Claude legge come testo semplice. Gli HTTP hooks comunicano attraverso il corpo della risposta invece.867* Gli hook di comando comunicano solo attraverso stdout, stderr e codici di uscita. Non possono attivare comandi `/` o chiamate di strumenti. Il testo restituito tramite `additionalContext` viene iniettato come un promemoria di sistema che Claude legge come testo semplice. Gli HTTP hooks comunicano attraverso il corpo della risposta invece.

868* Il timeout dell'hook è di 10 minuti per impostazione predefinita, configurabile per hook con il campo `timeout` (in secondi).868* I timeout dell'hook variano in base al tipo. Sovrascrivete per hook con il campo `timeout` in secondi.

869 * `command`, `http`, `mcp_tool`: 10 minuti. `UserPromptSubmit` riduce questi a 30 secondi.

870 * `prompt`: 30 secondi.

871 * `agent`: 60 secondi.

869* Gli hook `PostToolUse` non possono annullare le azioni poiché lo strumento è già stato eseguito.872* Gli hook `PostToolUse` non possono annullare le azioni poiché lo strumento è già stato eseguito.

870* Gli hook `PermissionRequest` non si attivano in [modalità non interattiva](/it/headless) (`-p`). Utilizzate gli hook `PreToolUse` per le decisioni di autorizzazione automatizzate.873* Gli hook `PermissionRequest` non si attivano in [modalità non interattiva](/it/headless) (`-p`). Utilizzate gli hook `PreToolUse` per le decisioni di autorizzazione automatizzate.

871* Gli hook `Stop` si attivano ogni volta che Claude finisce di rispondere, non solo al completamento dell'attività. Non si attivano su interruzioni dell'utente. Gli errori API attivano [StopFailure](/it/hooks#stopfailure) invece.874* Gli hook `Stop` si attivano ogni volta che Claude finisce di rispondere, non solo al completamento dell'attività. Non si attivano su interruzioni dell'utente. Gli errori API attivano [StopFailure](/it/hooks#stopfailure) invece.

mcp.md +1 −1

Details

458 458 

459Molti server MCP basati su cloud richiedono l'autenticazione. Claude Code supporta OAuth 2.0 per connessioni sicure.459Molti server MCP basati su cloud richiedono l'autenticazione. Claude Code supporta OAuth 2.0 per connessioni sicure.

460 460 

461Claude Code contrassegna un server remoto come richiedente autenticazione quando il server risponde con `401 Unauthorized` e un'intestazione `WWW-Authenticate` che punta al suo server di autorizzazione. Qualsiasi server personalizzato che restituisce quella risposta ottiene lo stesso flusso di autenticazione `/mcp` di qualsiasi altro server remoto.461Claude Code contrassegna un server remoto come richiedente autenticazione quando il server risponde con `401 Unauthorized` o `403 Forbidden`. Uno di questi codici di stato contrassegna il server in `/mcp` in modo che tu possa completare il flusso OAuth. Un server personalizzato che restituisce un'intestazione `WWW-Authenticate` che punta al suo server di autorizzazione ottiene la stessa scoperta automatica di qualsiasi altro server remoto.

462 462 

463<Steps>463<Steps>

464 <Step title="Aggiungi il server che richiede l'autenticazione">464 <Step title="Aggiungi il server che richiede l'autenticazione">

Details

51 Flag disponibili:51 Flag disponibili:

52 52 

53 | Flag | Descrizione |53 | Flag | Descrizione |

54 | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |54 | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

55 | `--name "My Project"` | Imposta un titolo di sessione personalizzato visibile nell'elenco delle sessioni su claude.ai/code. |55 | `--name "My Project"` | Imposta un titolo di sessione personalizzato visibile nell'elenco delle sessioni su claude.ai/code. |

56 | `--remote-control-session-name-prefix <prefix>` | Prefisso per i nomi di sessione generati automaticamente quando non è impostato un nome esplicito. Per impostazione predefinita è il nome host della tua macchina, producendo nomi come `myhost-graceful-unicorn`. Imposta `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` per lo stesso effetto. |56 | `--remote-control-session-name-prefix <prefix>` | Prefisso per i nomi di sessione generati automaticamente quando non è impostato un nome esplicito. Per impostazione predefinita è il nome host della tua macchina, producendo nomi come `myhost-graceful-unicorn`. Imposta `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` per lo stesso effetto. |

57 | `--spawn <mode>` | Come il server crea le sessioni.<br />• `same-dir` (predefinito): tutte le sessioni condividono la directory di lavoro corrente, quindi possono entrare in conflitto se modificano gli stessi file.<br />• `worktree`: ogni sessione su richiesta ottiene il proprio [git worktree](/it/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees). Richiede un repository git.<br />• `session`: modalità a sessione singola. Serve esattamente una sessione e rifiuta connessioni aggiuntive. Impostato solo all'avvio.<br />Premi `w` durante l'esecuzione per attivare/disattivare tra `same-dir` e `worktree`. |57 | `--spawn <mode>` | Come il server crea le sessioni.<br />• `same-dir` (predefinito): tutte le sessioni condividono la directory di lavoro corrente, quindi possono entrare in conflitto se modificano gli stessi file.<br />• `worktree`: ogni sessione su richiesta ottiene il proprio [git worktree](/it/worktrees). Richiede un repository git.<br />• `session`: modalità a sessione singola. Serve esattamente una sessione e rifiuta connessioni aggiuntive. Impostato solo all'avvio.<br />Premi `w` durante l'esecuzione per attivare/disattivare tra `same-dir` e `worktree`. |

58 | `--capacity <N>` | Numero massimo di sessioni simultanee. Il valore predefinito è 32. Non può essere utilizzato con `--spawn=session`. |58 | `--capacity <N>` | Numero massimo di sessioni simultanee. Il valore predefinito è 32. Non può essere utilizzato con `--spawn=session`. |

59 | `--verbose` | Mostra log dettagliati di connessione e sessione. |59 | `--verbose` | Mostra log dettagliati di connessione e sessione. |

60 | `--sandbox` / `--no-sandbox` | Abilita o disabilita il [sandboxing](/it/sandboxing) per l'isolamento del filesystem e della rete. Disabilitato per impostazione predefinita. |60 | `--sandbox` / `--no-sandbox` | Abilita o disabilita il [sandboxing](/it/sandboxing) per l'isolamento del filesystem e della rete. Disabilitato per impostazione predefinita. |


113 113 

114* **Apri l'URL della sessione** in qualsiasi browser per andare direttamente alla sessione su [claude.ai/code](https://claude.ai/code).114* **Apri l'URL della sessione** in qualsiasi browser per andare direttamente alla sessione su [claude.ai/code](https://claude.ai/code).

115* **Scansiona il codice QR** mostrato accanto all'URL della sessione per aprirlo direttamente nell'app Claude. Con `claude remote-control`, premi la barra spaziatrice per attivare/disattivare la visualizzazione del codice QR.115* **Scansiona il codice QR** mostrato accanto all'URL della sessione per aprirlo direttamente nell'app Claude. Con `claude remote-control`, premi la barra spaziatrice per attivare/disattivare la visualizzazione del codice QR.

116* **Apri [claude.ai/code](https://claude.ai/code) o l'app Claude** e trova la sessione per nome nell'elenco delle sessioni. Le sessioni Remote Control mostrano un'icona di computer con un punto di stato verde quando sono online.116* **Apri [claude.ai/code](https://claude.ai/code) o l'app Claude** e trova la sessione per nome nell'elenco delle sessioni. Nel'app mobile Claude, tocca **Code** nella navigazione per raggiungere l'elenco delle sessioni. Le sessioni Remote Control mostrano un'icona di computer con un punto di stato verde quando sono online.

117 117 

118Il titolo della sessione remota viene scelto in questo ordine:118Il titolo della sessione remota viene scelto in questo ordine:

119 119 


130 130 

131### Abilita Remote Control per tutte le sessioni131### Abilita Remote Control per tutte le sessioni

132 132 

133Per impostazione predefinita, Remote Control si attiva solo quando esegui esplicitamente `claude remote-control`, `claude --remote-control`, o `/remote-control`. Per abilitarlo automaticamente per ogni sessione interattiva, esegui `/config` all'interno di Claude Code e imposta **Enable Remote Control for all sessions** su `true`. Impostalo di nuovo su `false` per disabilitarlo.133Per impostazione predefinita, Remote Control si attiva solo quando esegui esplicitamente `claude remote-control`, `claude --remote-control`, o `/remote-control`. Per abilitarlo automaticamente per ogni sessione interattiva, esegui `/config` all'interno di Claude Code e imposta **Enable Remote Control for all sessions** su `true`. Impostalo di nuovo su `false` per disabilitarlo. Nell'app Desktop, puoi anche attivare/disattivare questa opzione da **Settings → Claude Code → Enable remote control by default**.

134 134 

135Con questa impostazione attiva, ogni processo Claude Code interattivo registra una sessione remota. Se esegui più istanze, ognuna ottiene il proprio ambiente e sessione. Per eseguire più sessioni simultanee da un singolo processo, utilizza invece la [modalità server](#start-a-remote-control-session).135Con questa impostazione attiva, ogni processo Claude Code interattivo registra una sessione remota. Se esegui più istanze, ognuna ottiene il proprio ambiente e sessione. Per eseguire più sessioni simultanee da un singolo processo, utilizza invece la [modalità server](#start-a-remote-control-session).

136 136 


215 215 

216### "Remote Control is disabled by your organization's policy"216### "Remote Control is disabled by your organization's policy"

217 217 

218Questo errore ha tre cause distinte. Esegui prima `/status` per vedere quale metodo di accesso e abbonamento stai utilizzando.218Questo errore ha quattro cause distinte. Esegui prima `/status` per vedere quale metodo di accesso e abbonamento stai utilizzando.

219 219 

220* **Sei autenticato con una chiave API o un account Console**: Remote Control richiede OAuth claude.ai. Esegui `/login` e scegli l'opzione claude.ai. Se `ANTHROPIC_API_KEY` è impostato nel tuo ambiente, annulla l'impostazione.220* **Sei autenticato con una chiave API o un account Console**: Remote Control richiede OAuth claude.ai. Esegui `/login` e scegli l'opzione claude.ai. Se `ANTHROPIC_API_KEY` è impostato nel tuo ambiente, annulla l'impostazione.

221* **Il tuo amministratore di Team o Enterprise non l'ha abilitato**: Remote Control è disabilitato per impostazione predefinita su questi piani. Un amministratore può abilitarlo su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) attivando l'interruttore **Remote Control**. Questa è un'impostazione organizzativa lato server, non una chiave di [impostazioni gestite](/it/permissions#managed-only-settings).221* **Il tuo amministratore di Team o Enterprise non l'ha abilitato**: Remote Control è disabilitato per impostazione predefinita su questi piani. Un amministratore può abilitarlo su [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) attivando l'interruttore **Remote Control**. Questo interruttore è un'impostazione organizzativa lato server.

222* **L'interruttore di amministrazione è disattivato**: la tua organizzazione ha una configurazione di conservazione dei dati o conformità incompatibile con Remote Control. Questo non può essere modificato dal pannello di amministrazione. Contatta il supporto Anthropic per discutere le opzioni.222* **L'interruttore di amministrazione è disattivato**: la tua organizzazione ha una configurazione di conservazione dei dati o conformità incompatibile con Remote Control. Questo non può essere modificato dal pannello di amministrazione. Contatta il supporto Anthropic per discutere le opzioni.

223* **L'errore menziona `disableRemoteControl`**: il tuo amministratore IT ha disabilitato Remote Control su questo dispositivo tramite [impostazioni gestite](/it/settings#settings-files), indipendentemente dall'interruttore a livello di organizzazione.

223 224 

224### "Remote credentials fetch failed"225### "Remote credentials fetch failed"

225 226 

sub-agents.md +6 −4

Details

158 158 

159Questo è il modo consigliato per creare e gestire i subagent. Per la creazione manuale o l'automazione, può anche aggiungere file subagent direttamente.159Questo è il modo consigliato per creare e gestire i subagent. Per la creazione manuale o l'automazione, può anche aggiungere file subagent direttamente.

160 160 

161Per elencare tutti i subagent configurati dalla riga di comando senza aprire la [visualizzazione agente](/it/agent-view), esegua il piping dell'output di `claude agents`. Ad esempio, `claude agents | cat` stampa gli agenti raggruppati per fonte e indica quali sono sovrascritti da definizioni di priorità più alta.

162 

163### Scelga l'ambito del subagent161### Scelga l'ambito del subagent

164 162 

165I subagent sono file Markdown con frontmatter YAML. Li archivi in posizioni diverse a seconda dell'ambito. Quando più subagent condividono lo stesso nome, la posizione con priorità più alta vince.163I subagent sono file Markdown con frontmatter YAML. Li archivi in posizioni diverse a seconda dell'ambito. Quando più subagent condividono lo stesso nome, la posizione con priorità più alta vince.


178 176 

179I **subagent utente** (`~/.claude/agents/`) sono subagent personali disponibili in tutti i suoi progetti.177I **subagent utente** (`~/.claude/agents/`) sono subagent personali disponibili in tutti i suoi progetti.

180 178 

179Claude Code scansiona `.claude/agents/` e `~/.claude/agents/` ricorsivamente, quindi può organizzare le definizioni in sottocartelle come `agents/review/` o `agents/research/`. Il percorso della sottodirectory non influisce su come un subagent viene identificato o invocato, perché l'identità proviene solo dal campo frontmatter `name`. Mantenga i valori `name` univoci in tutto l'albero: se due file all'interno di un ambito dichiarano lo stesso nome, Claude Code ne mantiene uno e scarta l'altro senza avviso.

180 

181Le directory `agents/` del plugin vengono scansionate anche ricorsivamente. A differenza degli ambiti di progetto e utente, una sottocartella all'interno della directory `agents/` di un plugin diventa parte dell'[identificatore con ambito](#invoke-subagents-explicitly): un file in `agents/review/security.md` nel plugin `my-plugin` si registra come `my-plugin:review:security`.

182 

181I **subagent definiti da CLI** vengono passati come JSON quando avvia Claude Code. Esistono solo per quella sessione e non vengono salvati su disco, rendendoli utili per test rapidi o script di automazione. Può definire più subagent in una singola chiamata `--agents`:183I **subagent definiti da CLI** vengono passati come JSON quando avvia Claude Code. Esistono solo per quella sessione e non vengono salvati su disco, rendendoli utili per test rapidi o script di automazione. Può definire più subagent in una singola chiamata `--agents`:

182 184 

183<Tabs>185<Tabs>


638 640 

639Il suo messaggio completo va ancora a Claude, che scrive il prompt dell'attività del subagent in base a quello che ha chiesto. L'@-mention controlla quale subagent Claude invoca, non quale prompt riceve.641Il suo messaggio completo va ancora a Claude, che scrive il prompt dell'attività del subagent in base a quello che ha chiesto. L'@-mention controlla quale subagent Claude invoca, non quale prompt riceve.

640 642 

641I subagent forniti da un [plugin](/it/plugins) abilitato appaiono nel typeahead come `<plugin-name>:<agent-name>`. I subagent in background denominati attualmente in esecuzione nella sessione appaiono anche nel typeahead, mostrando il loro stato accanto al nome. Può anche digitare la mention manualmente senza usare il picker: `@agent-<name>` per i subagent locali, o `@agent-<plugin-name>:<agent-name>` per i subagent plugin.643I subagent forniti da un [plugin](/it/plugins) abilitato appaiono nel typeahead con il loro nome con ambito, come `my-plugin:code-reviewer` o `my-plugin:review:security` quando il plugin [organizza gli agenti in sottocartelle](#choose-the-subagent-scope). I subagent in background denominati attualmente in esecuzione nella sessione appaiono anche nel typeahead, mostrando il loro stato accanto al nome. Può anche digitare la mention manualmente senza usare il picker: `@agent-<name>` per i subagent locali, o `@agent-` seguito dal nome con ambito per i subagent plugin, ad esempio `@agent-my-plugin:code-reviewer`.

642 644 

643**Esegua l'intera sessione come un subagent.** Passi [`--agent <name>`](/it/cli-reference) per avviare una sessione in cui il thread principale stesso assume il prompt di sistema, le restrizioni di strumenti e il modello di quel subagent:645**Esegua l'intera sessione come un subagent.** Passi [`--agent <name>`](/it/cli-reference) per avviare una sessione in cui il thread principale stesso assume il prompt di sistema, le restrizioni di strumenti e il modello di quel subagent:

644 646 


650 652 

651Questo funziona con i subagent integrati e personalizzati, e la scelta persiste quando riprende la sessione.653Questo funziona con i subagent integrati e personalizzati, e la scelta persiste quando riprende la sessione.

652 654 

653Per un subagent fornito da un plugin, passi il nome con ambito: `claude --agent <plugin-name>:<agent-name>`.655Per un subagent fornito da un plugin, passi il nome con ambito: `claude --agent <plugin-name>:<agent-name>`. Se il plugin posiziona l'agente in una sottocartella della sua directory `agents/`, includa la sottocartella nel nome con ambito, ad esempio `claude --agent my-plugin:review:security`.

654 656 

655Per renderlo il predefinito per ogni sessione in un progetto, imposti `agent` in `.claude/settings.json`:657Per renderlo il predefinito per ogni sessione in un progetto, imposti `agent` in `.claude/settings.json`:

656 658 

Details

14 14 

15## Requisiti15## Requisiti

16 16 

17La dettatura vocale trasmette l'audio registrato ai server di Anthropic per la trascrizione. L'audio non viene elaborato localmente. Il servizio di sintesi vocale è disponibile solo quando ti autentichi con un account Claude.ai e non è disponibile quando Claude Code è configurato per utilizzare direttamente una chiave API di Anthropic, Amazon Bedrock, Google Vertex AI o Microsoft Foundry. La trascrizione non consuma messaggi Claude o token e non conta verso i limiti mostrati in `/usage`. Consulta [data usage](/it/data-usage) per scoprire come Anthropic gestisce i tuoi dati.17La dettatura vocale trasmette l'audio registrato ai server di Anthropic per la trascrizione. L'audio non viene elaborato localmente. Il servizio di sintesi vocale è disponibile solo quando vi autenticate con un account Claude.ai e non è disponibile quando Claude Code è configurato per utilizzare direttamente una chiave API di Anthropic, Amazon Bedrock, Google Vertex AI o Microsoft Foundry. La trascrizione non consuma messaggi Claude o token e non conta verso i limiti mostrati in `/usage`. Consultate [data usage](/it/data-usage) per scoprire come Anthropic gestisce i vostri dati.

18 18 

19La dettatura vocale richiede anche l'accesso locale al microfono, quindi non funziona in ambienti remoti come [Claude Code sul web](/it/claude-code-on-the-web) o sessioni SSH. In WSL, la dettatura vocale richiede WSLg per l'accesso audio, che è incluso con WSL2 su Windows 11. Su Windows 10 o WSL1, esegui Claude Code in Windows nativo.19La dettatura vocale richiede anche l'accesso locale al microfono, quindi non funziona in ambienti remoti come [Claude Code sul web](/it/claude-code-on-the-web) o sessioni SSH. In WSL, la dettatura vocale richiede WSLg per l'accesso audio. WSLg è incluso con WSL2 quando installato da Microsoft Store su Windows 10 o 11. Se WSLg non è disponibile, ad esempio su WSL1, eseguite Claude Code in Windows nativo.

20 20 

21La registrazione audio utilizza un modulo nativo integrato su macOS, Linux e Windows. Su Linux, se il modulo nativo non riesce a caricarsi, Claude Code ricade su `arecord` da ALSA utils o `rec` da SoX. Se nessuno dei due è disponibile, `/voice` stampa un comando di installazione per il tuo gestore di pacchetti.21La registrazione audio utilizza un modulo nativo integrato su macOS, Linux e Windows. Su Linux, se il modulo nativo non riesce a caricarsi, Claude Code ricade su `arecord` da ALSA utils o `rec` da SoX. Se nessuno dei due è disponibile, `/voice` stampa un comando di installazione per il vostro gestore di pacchetti.

22 22 

23L'[estensione VS Code](/it/vs-code) di Claude Code supporta anche la dettatura vocale con lo stesso requisito di account Claude.ai. Non è disponibile nelle sessioni VS Code Remote, incluse SSH, Dev Containers e Codespaces, perché il microfono si trova sulla tua macchina locale e l'estensione viene eseguita sull'host remoto.23L'[estensione VS Code](/it/vs-code) di Claude Code supporta anche la dettatura vocale con lo stesso requisito di account Claude.ai. Non è disponibile nelle sessioni VS Code Remote, incluse SSH, Dev Containers e Codespaces, perché il microfono si trova sulla vostra macchina locale e l'estensione viene eseguita sull'host remoto.

24 24 

25## Abilita la dettatura vocale25## Abilita la dettatura vocale

26 26 


51}51}

52```52```

53 53 

54Mentre la dettatura vocale è abilitata, il footer di input mostra un suggerimento `hold Space to speak` quando il prompt è vuoto. Il testo del suggerimento è lo stesso in entrambe le modalità e non appare se hai un [status line personalizzato](/it/statusline) configurato.54Mentre la dettatura vocale è abilitata, il footer di input mostra un suggerimento `hold Space to speak` quando il prompt è vuoto. Il suggerimento riflette il tuo binding `voice:pushToTalk` corrente e si aggiorna se [riassegni il tasto di dettatura](#rebind-the-dictation-key). Il testo del suggerimento è lo stesso in entrambe le modalità e non appare se hai un [status line personalizzato](/it/statusline) configurato.

55 55 

56La trascrizione è ottimizzata per il vocabolario di codifica in entrambe le modalità. I termini di sviluppo comuni come `regex`, `OAuth`, `JSON` e `localhost` vengono riconosciuti correttamente e il nome del tuo progetto attuale e il nome del ramo git vengono aggiunti automaticamente come suggerimenti di riconoscimento.56La trascrizione è ottimizzata per il vocabolario di codifica in entrambe le modalità. I termini di sviluppo comuni come `regex`, `OAuth`, `JSON` e `localhost` vengono riconosciuti correttamente e il nome del tuo progetto attuale e il nome del ramo git vengono aggiunti automaticamente come suggerimenti di riconoscimento.

57 57 


155* **`Voice mode requires a Claude.ai account`**: sei autenticato con una chiave API o un provider di terze parti. Esegui `/login` per accedere con un account Claude.ai.155* **`Voice mode requires a Claude.ai account`**: sei autenticato con una chiave API o un provider di terze parti. Esegui `/login` per accedere con un account Claude.ai.

156* **`Microphone access is denied`**: concedi l'autorizzazione del microfono al tuo terminale nelle impostazioni di sistema. Su macOS, vai a Impostazioni di sistema → Privacy e sicurezza → Microfono e abilita la tua app terminale, quindi esegui `/voice` di nuovo. Su Windows, vai a Impostazioni → Privacy e sicurezza → Microfono e attiva l'accesso al microfono per le app desktop, quindi esegui `/voice` di nuovo. Se il tuo terminale non è elencato nelle impostazioni macOS, consulta [Terminale non elencato nelle impostazioni del microfono di macOS](#terminal-not-listed-in-macos-microphone-settings).156* **`Microphone access is denied`**: concedi l'autorizzazione del microfono al tuo terminale nelle impostazioni di sistema. Su macOS, vai a Impostazioni di sistema → Privacy e sicurezza → Microfono e abilita la tua app terminale, quindi esegui `/voice` di nuovo. Su Windows, vai a Impostazioni → Privacy e sicurezza → Microfono e attiva l'accesso al microfono per le app desktop, quindi esegui `/voice` di nuovo. Se il tuo terminale non è elencato nelle impostazioni macOS, consulta [Terminale non elencato nelle impostazioni del microfono di macOS](#terminal-not-listed-in-macos-microphone-settings).

157* **`No audio recording tool found` su Linux**: il modulo audio nativo non ha potuto caricarsi e nessun fallback è installato. Installa SoX con il comando mostrato nel messaggio di errore, ad esempio `sudo apt-get install sox`.157* **`No audio recording tool found` su Linux**: il modulo audio nativo non ha potuto caricarsi e nessun fallback è installato. Installa SoX con il comando mostrato nel messaggio di errore, ad esempio `sudo apt-get install sox`.

158* **`Voice mode could not find a working audio recorder in WSL`**: WSLg instrada l'audio attraverso PulseAudio piuttosto che un dispositivo ALSA, quindi SoX ha bisogno che il suo backend PulseAudio sia installato esplicitamente. Esegui `sudo apt install sox libsox-fmt-pulse`. L'installazione di `sox` da sola estrae il backend ALSA, che non può registrare su WSL perché non c'è alcun dispositivo `/dev/snd`.

159* **`Voice input is failing repeatedly and has been paused`**: la dettatura vocale ha riscontrato diversi errori di avvio di seguito e ha smesso di tentare nuove sessioni fino a quando una non avrà successo. Questo di solito significa che il microfono o lo stack audio su questo host non può catturare l'audio, ad esempio un server headless, una shell remota senza passthrough audio, o un'autorizzazione del microfono negata. Conferma un dispositivo di input funzionante, correggi la causa sottostante dalle voci precedenti, quindi attiva di nuovo la voce.

158* **Nulla accade quando tieni premuto `Space` in modalità pressione prolungata**: osserva l'input del prompt mentre tieni premuto. Se gli spazi continuano ad accumularsi, la dettatura vocale è probabilmente disattivata; esegui `/voice hold` per abilitarla. Se appare solo uno o due spazi e poi nulla, la dettatura vocale è attiva ma il rilevamento della pressione prolungata non si attiva. Il rilevamento della pressione prolungata richiede che il tuo terminale invii eventi di ripetizione dei tasti, quindi non può rilevare un tasto premuto se la ripetizione dei tasti è disabilitata a livello del sistema operativo. Passa a modalità tocco con `/voice tap` per evitare il requisito di ripetizione dei tasti.160* **Nulla accade quando tieni premuto `Space` in modalità pressione prolungata**: osserva l'input del prompt mentre tieni premuto. Se gli spazi continuano ad accumularsi, la dettatura vocale è probabilmente disattivata; esegui `/voice hold` per abilitarla. Se appare solo uno o due spazi e poi nulla, la dettatura vocale è attiva ma il rilevamento della pressione prolungata non si attiva. Il rilevamento della pressione prolungata richiede che il tuo terminale invii eventi di ripetizione dei tasti, quindi non può rilevare un tasto premuto se la ripetizione dei tasti è disabilitata a livello del sistema operativo. Passa a modalità tocco con `/voice tap` per evitare il requisito di ripetizione dei tasti.

159* **Toccare `Space` digita uno spazio invece di registrare in modalità tocco**: il primo tocco avvia la registrazione solo quando l'input del prompt è vuoto. Cancella prima l'input, oppure verifica di essere in modalità tocco eseguendo `/voice tap`.161* **Toccare `Space` digita uno spazio invece di registrare in modalità tocco**: il primo tocco avvia la registrazione solo quando l'input del prompt è vuoto. Cancella prima l'input, oppure verifica di essere in modalità tocco eseguendo `/voice tap`.

160* **`No audio detected from microphone`**: la registrazione è iniziata ma ha catturato il silenzio. Conferma che il dispositivo di input corretto è impostato come predefinito di sistema e che il suo livello di input non è disattivato o vicino a zero. Su Windows, apri Impostazioni → Sistema → Suono → Input e seleziona il tuo microfono. Su macOS, apri Impostazioni di sistema → Suono → Input.162* **`No audio detected from microphone`**: la registrazione è iniziata ma ha catturato il silenzio. Conferma che il dispositivo di input corretto è impostato come predefinito di sistema e che il suo livello di input non è disattivato o vicino a zero. Su Windows, apri Impostazioni → Sistema → Suono → Input e seleziona il tuo microfono. Su macOS, apri Impostazioni di sistema → Suono → Input.