SpyBara
Go Premium

Documentation 2026-09-24 22:57 UTC to 2026-09-25 23:58 UTC

105 files changed +9,104 −5,764. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

admin-setup.md +3 −3

Details

94Le impostazioni gestite possono bloccare gli strumenti, l'esecuzione sandbox, limitare i server MCP e le fonti di plugin e controllare quali hook vengono eseguiti. Ogni riga è una superficie di controllo con le chiavi di impostazione che la guidano.94Le impostazioni gestite possono bloccare gli strumenti, l'esecuzione sandbox, limitare i server MCP e le fonti di plugin e controllare quali hook vengono eseguiti. Ogni riga è una superficie di controllo con le chiavi di impostazione che la guidano.

95 95 

96| Controllo | Cosa fa | Impostazioni chiave |96| Controllo | Cosa fa | Impostazioni chiave |

97| :------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |97| :------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------- |

98| [Permission rules](/docs/it/permissions) | Consenti, chiedi o nega strumenti e comandi specifici | `permissions.allow`, `permissions.deny` |98| [Permission rules](/docs/it/permissions) | Consenti, chiedi o nega strumenti e comandi specifici | `permissions.allow`, `permissions.deny` |

99| [Permission lockdown](/docs/it/permissions#managed-only-settings) | Rendi le impostazioni gestite l'[unica fonte di impostazioni per le regole di autorizzazione](/docs/it/settings-reference#allowmanagedpermissionrulesonly). Disabilita `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |99| [Permission lockdown](/docs/it/permissions#managed-only-settings) | Rendi le impostazioni gestite l'[unica fonte di impostazioni per le regole di autorizzazione](/docs/it/settings-reference#allowmanagedpermissionrulesonly). Disabilita `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

100| [Starting permission mode](/docs/it/permission-modes#which-mode-a-session-starts-in) | Scegli la modalità di autorizzazione in cui iniziano le sessioni del terminale dei tuoi sviluppatori invece della modalità di autorizzazione iniziale integrata, o rimuovi la modalità automatica. L'estensione VS Code legge un `defaultMode` che imposti solo su piani Pro, Max e Team; [Switch permission modes](/docs/it/permission-modes#switch-permission-modes) elenca cosa legge l'estensione | `permissions.defaultMode`, `permissions.disableAutoMode` |100| [Starting permission mode](/docs/it/permission-modes#which-mode-a-session-starts-in) | Scegli la modalità di autorizzazione in cui iniziano le sessioni del terminale dei tuoi sviluppatori invece della modalità di autorizzazione iniziale integrata, o rimuovi la modalità automatica. L'estensione VS Code legge un `defaultMode` che imposti solo su piani Pro, Max e Team; [Switch permission modes](/docs/it/permission-modes#switch-permission-modes) elenca cosa legge l'estensione | `permissions.defaultMode`, `permissions.disableAutoMode` |

101| [Sandboxing](/docs/it/sandboxing) | Isolamento del filesystem e della rete a livello di sistema operativo con allowlist di domini | `sandbox.enabled`, `sandbox.network.allowedDomains` |101| [Sandboxing](/docs/it/sandboxing) | Isolamento del filesystem e della rete a livello di sistema operativo con allowlist di domini | `sandbox.enabled`, `sandbox.network.allowedDomains` |

102| [Managed policy CLAUDE.md](/docs/it/memory#deploy-organization-wide-claude-md) | Istruzioni a livello di organizzazione caricate in ogni sessione, non possono essere escluse | File nel percorso della policy gestita |102| [Managed policy CLAUDE.md](/docs/it/memory#deploy-organization-wide-claude-md) | Istruzioni a livello di organizzazione caricate in ogni sessione, non possono essere escluse | File nel percorso della policy gestita |

103| [MCP server control](/docs/it/managed-mcp) | Limitare quali server MCP gli utenti possono aggiungere o connettere, distribuire un set fisso, o fornire server remoti a ogni utente insieme ai loro | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, o un file `managed-mcp.json` distribuito |103| [MCP server control](/docs/it/managed-mcp) | Limitare quali server MCP gli utenti possono aggiungere o connettere, distribuire un set fisso, o fornire server remoti a ogni utente insieme ai loro | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, o un file `managed-mcp.json` distribuito |

104| [Plugin marketplace control](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) | Limitare quali fonti di marketplace gli utenti possono aggiungere e installare, rifiutare i flag CLI che caricano plugin, agent e server MCP per una singola esecuzione, bloccare le [fonti di plugin `command`](/docs/it/plugin-marketplaces#command-sources), e allowlist quali plugin dei marketplace possono essere suggeriti | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |104| [Plugin marketplace control](/docs/it/plugins/org#restrict-what-users-can-install) | Limitare quali fonti di marketplace gli utenti possono aggiungere e installare, rifiutare i flag CLI che caricano plugin, agent e server MCP per una singola esecuzione, bloccare le [fonti di plugin `command`](/docs/it/plugins/marketplace-reference#command-plugin-source), e allowlist quali plugin dei marketplace possono essere suggeriti | `strictKnownMarketplaces`, `blockedMarketplaces`, `disableSideloadFlags`, `disableCommandPluginSources`, `pluginSuggestionMarketplaces` |

105| [Customization lockdown](/docs/it/settings-reference#strictpluginonlycustomization) | Bloccare skills, agent, hook e server MCP da fonti utente e progetto, in modo che possano provenire solo da plugin o impostazioni gestite. Bloccare le skills interrompe anche la sincronizzazione dei [skills che i tuoi sviluppatori abilitano su claude.ai](/docs/it/skills#where-synced-skills-load) | `strictPluginOnlyCustomization` |105| [Customization lockdown](/docs/it/settings-reference#strictpluginonlycustomization) | Bloccare skills, agent, hook e server MCP da fonti utente e progetto, in modo che possano provenire solo da plugin o impostazioni gestite. Bloccare le skills interrompe anche la sincronizzazione dei [skills che i tuoi sviluppatori abilitano su claude.ai](/docs/it/skills#where-synced-skills-load) | `strictPluginOnlyCustomization` |

106| [Disable claude.ai sync](/docs/it/settings-reference#syncclaudeaiskills) | Impedire a Claude Code di caricare i [skills](/docs/it/skills#how-synced-skills-behave) e i [plugin](/docs/it/plugins-reference#synced-plugins) che i tuoi sviluppatori abilitano su claude.ai. Se disattivi Skills per la tua organizzazione su claude.ai, Claude Code interrompe la sincronizzazione di entrambi, e su v2.1.273 o successivo rimuove anche quelli già sincronizzati. Per interrompere uno dei due senza disattivare Skills, imposta la sua chiave su `false` nelle impostazioni gestite | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |106| [Disable claude.ai sync](/docs/it/settings-reference#syncclaudeaiskills) | Impedire a Claude Code di caricare i [skills](/docs/it/skills#how-synced-skills-behave) e i [plugin](/docs/it/plugins/loading#synced-plugins) che i tuoi sviluppatori abilitano su claude.ai. Se disattivi Skills per la tua organizzazione su claude.ai, Claude Code interrompe la sincronizzazione di entrambi, e su v2.1.273 o successivo rimuove anche quelli già sincronizzati. Per interrompere uno dei due senza disattivare Skills, imposta la sua chiave su `false` nelle impostazioni gestite | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

107| [Hook restrictions](/docs/it/settings-reference#allowmanagedhooksonly) | Limitare quali hook vengono eseguiti e limitare gli URL degli hook HTTP; consulta [cosa viene eseguito sotto `allowManagedHooksOnly`](/docs/it/settings-reference#what-runs-under-allowmanagedhooksonly) per l'elenco completo degli effetti | `allowManagedHooksOnly`, `allowedHttpHookUrls` |107| [Hook restrictions](/docs/it/settings-reference#allowmanagedhooksonly) | Limitare quali hook vengono eseguiti e limitare gli URL degli hook HTTP; consulta [cosa viene eseguito sotto `allowManagedHooksOnly`](/docs/it/settings-reference#what-runs-under-allowmanagedhooksonly) per l'elenco completo degli effetti | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

108| [Login enforcement](/docs/it/settings-reference#forceloginmethod) | Limitare l'accesso a un metodo specifico o a un'organizzazione Anthropic. La restrizione del metodo si applica all'estensione VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, e la schermata di accesso interattivo del terminale, raggiunta da `/login` o dall'onboarding al primo avvio, preseleziona il metodo senza applicarlo; Claude Code verifica l'organizzazione per gli accessi dell'account claude.ai nel terminale, nell'estensione VS Code e in Agent SDK, e non la verifica per gli accessi a Claude Console o per l'accesso al [gateway](/docs/it/claude-apps-gateway). Prima della v2.1.212, solo gli accessi al terminale applicavano entrambe le chiavi. Quando impostato, le sessioni autenticate da `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` vengono bloccate all'avvio; le sessioni dei provider cloud non sono interessate | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Login enforcement](/docs/it/settings-reference#forceloginmethod) | Limitare l'accesso a un metodo specifico o a un'organizzazione Anthropic. La restrizione del metodo si applica all'estensione VS Code, Agent SDK, `claude setup-token` e `/install-github-app`, e la schermata di accesso interattivo del terminale, raggiunta da `/login` o dall'onboarding al primo avvio, preseleziona il metodo senza applicarlo; Claude Code verifica l'organizzazione per gli accessi dell'account claude.ai nel terminale, nell'estensione VS Code e in Agent SDK, e non la verifica per gli accessi a Claude Console o per l'accesso al [gateway](/docs/it/claude-apps-gateway). Prima della v2.1.212, solo gli accessi al terminale applicavano entrambe le chiavi. Quando impostato, le sessioni autenticate da `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` o `apiKeyHelper` vengono bloccate all'avvio; le sessioni dei provider cloud non sono interessate | `forceLoginMethod`, `forceLoginOrgUUID` |

109| [Disable agent view](/docs/it/agent-view#how-background-sessions-are-hosted) | Disattivare `claude agents`, `--bg`, `/background` e il supervisore on-demand | `disableAgentView` |109| [Disable agent view](/docs/it/agent-view#how-background-sessions-are-hosted) | Disattivare `claude agents`, `--bg`, `/background` e il supervisore on-demand | `disableAgentView` |

Details

281 Modalità ignora autorizzazioni (`bypassPermissions`)281 Modalità ignora autorizzazioni (`bypassPermissions`)

282</h4>282</h4>

283 283 

284Approva automaticamente gli usi degli strumenti senza richiedere conferma, ad eccezione dei casi elencati nell'avviso di seguito. I hook vengono comunque eseguiti e possono bloccare le operazioni se necessario.284Approva automaticamente gli usi degli strumenti senza richiedere conferma, ad eccezione dei casi elencati nell'avviso di seguito. I hook vengono comunque eseguiti e possono bloccare le operazioni se necessario. Su Linux e macOS, Claude Code rifiuta di avviarsi in questa modalità come root o sotto `sudo` al di fuori di una [sandbox riconosciuta](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode), e la query non riesce prima del primo turno.

285 285 

286<Warning>286<Warning>

287 Utilizzare con estrema cautela. Claude ha accesso completo al sistema in questa modalità. Utilizzare solo in ambienti controllati in cui si fidano di tutte le possibili operazioni.287 Utilizzare con estrema cautela. Claude ha accesso completo al sistema in questa modalità. Utilizzare solo in ambienti controllati in cui si fidano di tutte le possibili operazioni.

Details

13* **Hooks**: gestori di eventi che rispondono all'uso degli strumenti e ad altri eventi13* **Hooks**: gestori di eventi che rispondono all'uso degli strumenti e ad altri eventi

14* **MCP servers**: integrazioni di strumenti esterni tramite Model Context Protocol14* **MCP servers**: integrazioni di strumenti esterni tramite Model Context Protocol

15 15 

16Per informazioni complete sulla struttura dei plugin e su come creare plugin, vedi [Plugins](/docs/it/plugins).16Per informazioni complete sulla struttura dei plugin e su come creare plugin, vedi [Plugins](/docs/it/plugins/overview).

17 17 

18<h2 id="loading-plugins">18<h2 id="loading-plugins">

19 Caricamento dei plugin19 Caricamento dei plugin


21 21 

22Carica i plugin fornendo i loro percorsi del file system locale nella configurazione delle opzioni. Il campo `type` deve essere `"local"`, l'unico valore che l'SDK accetta. L'SDK supporta il caricamento di più plugin da posizioni diverse.22Carica i plugin fornendo i loro percorsi del file system locale nella configurazione delle opzioni. Il campo `type` deve essere `"local"`, l'unico valore che l'SDK accetta. L'SDK supporta il caricamento di più plugin da posizioni diverse.

23 23 

24Per utilizzare un plugin distribuito tramite un [marketplace](/docs/it/plugin-marketplaces) o un repository remoto, scaricalo prima e fornisci il percorso della directory locale. Per il layout della directory di cui un plugin ha bisogno, vedi il [riferimento della struttura del plugin](#plugin-structure-reference) di seguito.24Per utilizzare un plugin distribuito tramite un [marketplace](/docs/it/plugins/overview) o un repository remoto, scaricalo prima e fornisci il percorso della directory locale. Per il layout della directory di cui un plugin ha bisogno, vedi il [riferimento della struttura del plugin](#plugin-structure-reference) di seguito.

25 25 

26<CodeGroup>26<CodeGroup>

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


138 ```138 ```

139</CodeGroup>139</CodeGroup>

140 140 

141<h2 id="using-plugin-skills">141<h2 id="use-plugin-skills">

142 Utilizzo delle skills dei plugin142 Utilizzo delle skills dei plugin

143</h2>143</h2>

144 144 


352 Vedi anche352 Vedi anche

353</h2>353</h2>

354 354 

355* [Plugins](/docs/it/plugins) - Guida completa allo sviluppo dei plugin355* [Plugins](/docs/it/plugins/overview) - Guida completa allo sviluppo dei plugin

356* [Plugins reference](/docs/it/plugins-reference) - Specifiche tecniche356* [Plugins reference](/docs/it/plugins/manifest-reference) - Specifiche tecniche

357* [Commands](/docs/it/agent-sdk/skills#dispatch-commands-by-name) - Invio dei comandi nell'SDK357* [Commands](/docs/it/agent-sdk/skills#dispatch-commands-by-name) - Invio dei comandi nell'SDK

358* [Subagents](/docs/it/agent-sdk/subagents) - Lavoro con agenti specializzati358* [Subagents](/docs/it/agent-sdk/subagents) - Lavoro con agenti specializzati

359* [Skills](/docs/it/agent-sdk/skills) - Utilizzo delle Agent Skills359* [Skills](/docs/it/agent-sdk/skills) - Utilizzo delle Agent Skills

Details

917| `cli_path` | `str \| Path \| None` | `None` | Percorso personalizzato all'eseguibile CLI di Claude Code |917| `cli_path` | `str \| Path \| None` | `None` | Percorso personalizzato all'eseguibile CLI di Claude Code |

918| `settings` | `str \| None` | `None` | Percorso al file di impostazioni o una stringa JSON inline |918| `settings` | `str \| None` | `None` | Percorso al file di impostazioni o una stringa JSON inline |

919| `add_dirs` | `list[str \| Path]` | `[]` | Directory aggiuntive a cui Claude può accedere. L'SDK passa ogni voce a Claude Code come `--add-dir`, quindi con l'impostazione della fonte `project` Claude Code [carica anche le skills, i comandi e i subagenti della directory](/docs/it/permissions#additional-directories-grant-file-access-not-configuration) |919| `add_dirs` | `list[str \| Path]` | `[]` | Directory aggiuntive a cui Claude può accedere. L'SDK passa ogni voce a Claude Code come `--add-dir`, quindi con l'impostazione della fonte `project` Claude Code [carica anche le skills, i comandi e i subagenti della directory](/docs/it/permissions#additional-directories-grant-file-access-not-configuration) |

920| `env` | `dict[str, str]` | `{}` | Variabili di ambiente unite in cima all'ambiente del processo ereditato. Vedi [Variabili di ambiente](/docs/it/env-vars) per le variabili che la CLI sottostante legge, e [Gestisci risposte API lente o bloccate](#handle-slow-or-stalled-api-responses) per le variabili relative ai timeout |920| `env` | `dict[str, str]` | `{}` | Variabili di ambiente unite in cima all'ambiente del processo ereditato. Vedi [Variabili di ambiente](/docs/it/env-vars) per le variabili che la CLI sottostante legge, e [Gestisci risposte API lente o bloccate](#handle-slow-or-stalled-api-responses) per le variabili relative ai timeout. Imposta `CLAUDE_AGENT_SDK_CLIENT_APP` per identificare la tua app nell'intestazione User-Agent |

921| `extra_args` | `dict[str, str \| None]` | `{}` | Argomenti CLI aggiuntivi da passare direttamente alla CLI |921| `extra_args` | `dict[str, str \| None]` | `{}` | Argomenti CLI aggiuntivi da passare direttamente alla CLI |

922| `max_buffer_size` | `int \| None` | `None` | Byte massimi durante il buffering dell'stdout della CLI |922| `max_buffer_size` | `int \| None` | `None` | Byte massimi durante il buffering dell'stdout della CLI |

923| `debug_stderr` | `Any` | `sys.stderr` | *Deprecato* - Oggetto simile a un file per l'output di debug. Usa il callback `stderr` invece |923| `debug_stderr` | `Any` | `sys.stderr` | *Deprecato* - L'SDK ignora questo valore. Usa il callback `stderr` per l'output stderr della CLI |

924| `stderr` | `Callable[[str], None] \| None` | `None` | Funzione di callback per l'output stderr dalla CLI |924| `stderr` | `Callable[[str], None] \| None` | `None` | Funzione di callback per l'output stderr dalla CLI |

925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Funzione di callback per l'autorizzazione dello strumento, invocata solo quando il [flusso di autorizzazione](/docs/it/agent-sdk/permissions#how-permissions-are-evaluated) ricade in un prompt. Non invocata per le chiamate auto-approvate da `allowed_tools`, regole di autorizzazione, o `permission_mode`. Una regola di autorizzazione non pre-approva le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves). Vedi [`CanUseTool`](#canusetool) per i dettagli |925| `can_use_tool` | [`CanUseTool`](#canusetool) ` \| None` | `None` | Funzione di callback per l'autorizzazione dello strumento, invocata solo quando il [flusso di autorizzazione](/docs/it/agent-sdk/permissions#how-permissions-are-evaluated) ricade in un prompt. Non invocata per le chiamate auto-approvate da `allowed_tools`, regole di autorizzazione, o `permission_mode`. Una regola di autorizzazione non pre-approva le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves). Vedi [`CanUseTool`](#canusetool) per i dettagli |

926| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurazioni hook per intercettare gli eventi |926| `hooks` | `dict[HookEvent, list[HookMatcher]] \| None` | `None` | Configurazioni hook per intercettare gli eventi |

927| `user` | `str \| None` | `None` | Identificatore utente |927| `user` | `str \| None` | `None` | Su piattaforme POSIX, l'account utente del sistema operativo in cui viene eseguito il subprocess Claude Code. Claude Code mantiene l'ambiente del processo genitore, incluso `HOME`, e viene eseguito in `cwd` |

928| `include_partial_messages` | `bool` | `False` | Includi eventi di streaming di messaggi parziali. Se abilitato, i messaggi [`StreamEvent`](#streamevent) vengono prodotti |928| `include_partial_messages` | `bool` | `False` | Includi eventi di streaming di messaggi parziali. Se abilitato, i messaggi [`StreamEvent`](#streamevent) vengono prodotti |

929| `include_hook_events` | `bool` | `False` | Includi eventi del ciclo di vita dei hook nel flusso di messaggi come oggetti `HookEventMessage` |929| `include_hook_events` | `bool` | `False` | Includi eventi del ciclo di vita dei hook nel flusso di messaggi come oggetti `HookEventMessage` |

930| `forward_subagent_text` | `bool` | `False` | Inoltra i blocchi di testo e pensiero dei subagenti nel flusso di messaggi. Senza questa opzione, Claude Code emette blocchi `tool_use` e `tool_result` dei subagenti ma non testo o pensiero. Richiede Python Agent SDK 0.2.140 o successivo |930| `forward_subagent_text` | `bool` | `False` | Inoltra i blocchi di testo e pensiero dei subagenti nel flusso di messaggi. Senza questa opzione, Claude Code emette blocchi `tool_use` e `tool_result` dei subagenti ma non testo o pensiero. Richiede Python Agent SDK 0.2.140 o successivo |


1885```1885```

1886 1886 

1887| Campo | Tipo | Descrizione |1887| Campo | Tipo | Descrizione |

1888| :------------------------ | :------------------------ | :-------------------------------------------------------------------------------------------------------------------------- |1888| :------------------------ | :------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1889| `status` | `RateLimitStatus` | Stato corrente. `"allowed_warning"` significa avvicinarsi al limite; `"rejected"` significa che il limite è stato raggiunto |1889| `status` | `RateLimitStatus` | Stato corrente, uno di `"allowed"`, `"allowed_warning"`, o `"rejected"`. `"allowed_warning"` significa avvicinarsi al limite; `"rejected"` significa che il limite è stato raggiunto |

1890| `resets_at` | `int \| None` | Timestamp Unix quando la finestra del limite di velocità si ripristina |1890| `resets_at` | `int \| None` | Timestamp Unix quando la finestra del limite di velocità si ripristina |

1891| `rate_limit_type` | `RateLimitType \| None` | Quale finestra del limite di velocità si applica |1891| `rate_limit_type` | `RateLimitType \| None` | Quale finestra del limite di velocità si applica |

1892| `utilization` | `float \| None` | Frazione del limite di velocità consumato (0.0 a 1.0) |1892| `utilization` | `float \| None` | Frazione del limite di velocità consumato (0.0 a 1.0) |

Details

275Questo è ciò che rende diverso l'Agent SDK: Claude esegue gli strumenti direttamente invece di chiederti di implementarli.275Questo è ciò che rende diverso l'Agent SDK: Claude esegue gli strumenti direttamente invece di chiederti di implementarli.

276 276 

277<Note>277<Note>

278 Se vedi un errore di autenticazione come `Not logged in` o `Invalid API key`, assicurati di aver impostato la variabile di ambiente `ANTHROPIC_API_KEY` nella shell in cui esegui il tuo agente. L'SDK non carica automaticamente i file `.env`. Vedi la [guida completa alla risoluzione dei problemi](/docs/it/troubleshooting) per ulteriore aiuto.278 Se vedi un errore di autenticazione come `Not logged in` o `Invalid API key`, assicurati di aver impostato la variabile di ambiente `ANTHROPIC_API_KEY` nella shell in cui esegui il tuo agente. L'SDK non carica automaticamente i file `.env`.

279 

280 Per le cause e le correzioni dietro questi e altri errori di autenticazione, vedi [Errori di autenticazione](/docs/it/errors#authentication-errors) nel riferimento degli errori.

279</Note>281</Note>

280 282 

281<h3 id="try-other-prompts">283<h3 id="try-other-prompts">


385* **[MCP servers](/docs/it/agent-sdk/mcp)**: connettiti a database, browser, API e altri sistemi esterni387* **[MCP servers](/docs/it/agent-sdk/mcp)**: connettiti a database, browser, API e altri sistemi esterni

386* **[Hosting](/docs/it/agent-sdk/hosting)**: distribuisci agenti a Docker, cloud e CI/CD388* **[Hosting](/docs/it/agent-sdk/hosting)**: distribuisci agenti a Docker, cloud e CI/CD

387* **[Example agents](https://github.com/anthropics/claude-agent-sdk-demos)**: vedi esempi completi: assistente email, agente di ricerca e altro389* **[Example agents](https://github.com/anthropics/claude-agent-sdk-demos)**: vedi esempi completi: assistente email, agente di ricerca e altro

388* **[Troubleshooting](/docs/it/agent-sdk/troubleshooting)**: risolvi gli errori di Agent SDK dal messaggio esatto che vedi390* **[Troubleshooting](/docs/it/agent-sdk/troubleshooting)**: risolvi gli errori quando la CLI non riesce ad avviarsi o esce, oppure un risultato arriva senza output strutturato

Details

4 4 

5# Risolvere i problemi dell'Agent SDK5# Risolvere i problemi dell'Agent SDK

6 6 

7> Correggi gli errori dell'Agent SDK in base al messaggio esatto che vedi, con la causa e la soluzione per ogni errore negli SDK TypeScript e Python.7> Correggi gli errori dell'Agent SDK quando la CLI di Claude Code non si avvia, il processo CLI esce, o un risultato riuscito arriva senza output strutturato.

8 8 

9Le voci in questa pagina sono organizzate in base all'errore che vedi. Ognuna indica la causa e cosa fare.9Questa pagina copre gli errori dell'Agent SDK nell'avvio della CLI, nell'uscita del processo CLI e negli output strutturati. Le voci in questa pagina sono associate all'errore che vedi. Ogni voce indica la causa e cosa fare.

10 

11I sintomi legati a una funzionalità, come un hook che non si attiva o una skill che non viene utilizzata, hanno una sezione di troubleshooting nella pagina di quella funzionalità. La tabella indica la sezione o la pagina che copre ogni sintomo:

12 

13| Sintomo | Vai a |

14| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |

15| Skills non trovate, una skill non viene utilizzata, errore `Invalid skill name` | [Troubleshooting delle skills](/docs/it/agent-sdk/skills#troubleshooting) |

16| Il server MCP mostra lo stato `failed`, gli strumenti non vengono chiamati, timeout di connessione, output dello strumento che supera il numero massimo di token consentiti | [Troubleshooting di MCP](/docs/it/agent-sdk/mcp#troubleshooting) |

17| Plugin non caricato, le skill del plugin non appaiono | [Troubleshooting dei plugin](/docs/it/agent-sdk/plugins#troubleshooting) |

18| Claude non delega ai subagent, gli agenti basati su filesystem non si caricano | [Troubleshooting dei subagent](/docs/it/agent-sdk/subagents#troubleshooting) |

19| Le opzioni di checkpointing non sono riconosciute, i messaggi dell'utente senza UUID, `No file checkpoint found`, `File rewinding is not enabled`, `ProcessTransport is not ready for writing` | [Troubleshooting del file checkpointing](/docs/it/agent-sdk/file-checkpointing#troubleshooting) |

20| Hook non si attiva, il matcher non filtra come previsto, timeout dell'hook, lo strumento viene bloccato inaspettatamente, l'input modificato non viene applicato, gli hook di sessione non disponibili in Python, i prompt di autorizzazione del subagent si moltiplicano, i loop di hook ricorsivi con i subagent, `systemMessage` non appare nell'output | [Correggere i problemi comuni](/docs/it/agent-sdk/hooks#fix-common-issues) nella pagina degli hook |

21| Un agente che funziona sulla tua macchina fallisce in un servizio distribuito o in un contenitore | [Risolvere i problemi di distribuzione](/docs/it/agent-sdk/hosting#troubleshoot-deployment-failures) |

22| `Not logged in`, `Invalid API key`, `API Error`, `429`, `There's an issue with the selected model` | [Riferimento degli errori](/docs/it/errors#find-your-error) |

23| `CLINotFoundError`, `CLIConnectionError`, `ProcessError`, `Claude Code process exited with code N`, `Claude Code returned an error result`, `structured_output` è `None` | [Avvio della CLI](#cli-startup), [Uscita del processo CLI](#cli-process-exit), e [Output strutturati](#structured-outputs) in questa pagina |

10 24 

11<h2 id="cli-startup">25<h2 id="cli-startup">

12 Avvio CLI26 Avvio CLI

agent-teams.md +1 −1

Details

118 118 

119L'impostazione predefinita è `"in-process"`. Impostate `"auto"` per abilitare split panes quando state già eseguendo all'interno di una sessione tmux, o quando il vostro terminale è iTerm2 con la CLI `it2` installata, altrimenti ricadete in in-process. L'impostazione `"tmux"` abilita la modalità split-pane e rileva automaticamente se utilizzare tmux o iTerm2 in base al vostro terminale.119L'impostazione predefinita è `"in-process"`. Impostate `"auto"` per abilitare split panes quando state già eseguendo all'interno di una sessione tmux, o quando il vostro terminale è iTerm2 con la CLI `it2` installata, altrimenti ricadete in in-process. L'impostazione `"tmux"` abilita la modalità split-pane e rileva automaticamente se utilizzare tmux o iTerm2 in base al vostro terminale.

120 120 

121A partire dalla versione 2.1.186, impostate `"iterm2"` per utilizzare esplicitamente i split panes nativi di iTerm2. Questa modalità richiede la [CLI `it2`](https://github.com/mkusaka/it2) e mostra un errore con il comando di installazione se `it2` è mancante. Il prompt di configurazione che offre di installare `it2` o passare a tmux appare sotto `"auto"` o `"tmux"` quando il vostro terminale è iTerm2 e tmux è disponibile come fallback.121Impostate `"iterm2"` per utilizzare esplicitamente i split panes nativi di iTerm2. Questa modalità richiede la [CLI `it2`](https://github.com/mkusaka/it2) e mostra un errore con il comando di installazione se `it2` è mancante. Il prompt di configurazione che offre di installare `it2` o passare a tmux appare sotto `"auto"` o `"tmux"` quando il vostro terminale è iTerm2 e tmux è disponibile come fallback.

122 122 

123Per sovrascrivere l'impostazione predefinita, impostate [`teammateMode`](/docs/it/settings-reference#teammatemode) in `~/.claude/settings.json`:123Per sovrascrivere l'impostazione predefinita, impostate [`teammateMode`](/docs/it/settings-reference#teammatemode) in `~/.claude/settings.json`:

124 124 

agent-view.md +2 −2

Details

724| :----------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |724| :----------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

727| [`--plugin-dir <path>`](/docs/it/plugins) | Carica un plugin da una directory locale |727| [`--plugin-dir <path>`](/docs/it/plugins/create#load-a-directory-or-archive-for-one-session) | Carica un plugin da una directory locale |

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

729| `--strict-mcp-config` | Usa solo i server MCP da `--mcp-config`, ignorando altre configurazioni MCP. Vedi [Controllo esclusivo con managed-mcp.json](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) per cosa fa il flag sotto un file MCP gestito |729| `--strict-mcp-config` | Usa solo i server MCP da `--mcp-config`, ignorando altre configurazioni MCP. Vedi [Controllo esclusivo con managed-mcp.json](/docs/it/managed-mcp#exclusive-control-with-managed-mcp-json) per cosa fa il flag sotto un file MCP gestito |

730 730 


1062| v2.1.257 | Un prompt nascosto con `Ctrl+S` dentro una sessione in background aperta [viene mantenuto con la sessione](#what-persists-across-restarts), quindi `Ctrl+S` lo ripristina dopo che il processo della sessione viene fermato e riavviato. Prima di questa versione, il nascondiglio viveva solo nel processo in esecuzione e veniva perso quando la sessione rimaneva inattiva abbastanza a lungo da far fermare il suo processo, o quando veniva fermata e poi riaperta. |1062| v2.1.257 | Un prompt nascosto con `Ctrl+S` dentro una sessione in background aperta [viene mantenuto con la sessione](#what-persists-across-restarts), quindi `Ctrl+S` lo ripristina dopo che il processo della sessione viene fermato e riavviato. Prima di questa versione, il nascondiglio viveva solo nel processo in esecuzione e veniva perso quando la sessione rimaneva inattiva abbastanza a lungo da far fermare il suo processo, o quando veniva fermata e poi riaperta. |

1063| v2.1.251 | In una sessione in background che non ha [spostato in un worktree](#how-file-edits-are-isolated), Claude e i subagent che genera possono modificare file all'interno di un worktree git collegato. |1063| v2.1.251 | In una sessione in background che non ha [spostato in un worktree](#how-file-edits-are-isolated), Claude e i subagent che genera possono modificare file all'interno di un worktree git collegato. |

1064| v2.1.251 | Claude Code inoltra un gateway del provider cloud esportato nella shell da cui invii, come `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL` con il suo flag di bypass dell'autenticazione, [al worker della sessione](#llm-gateway) nelle stesse condizioni di `ANTHROPIC_BASE_URL`. Prima di questa versione, se mettevi in background o inviavi da una shell autenticata solo attraverso tale gateway, ogni richiesta che la sessione faceva falliva, perché l'endpoint e il flag venivano eliminati dal suo ambiente. |1064| v2.1.251 | Claude Code inoltra un gateway del provider cloud esportato nella shell da cui invii, come `ANTHROPIC_VERTEX_BASE_URL` o `ANTHROPIC_BEDROCK_BASE_URL` con il suo flag di bypass dell'autenticazione, [al worker della sessione](#llm-gateway) nelle stesse condizioni di `ANTHROPIC_BASE_URL`. Prima di questa versione, se mettevi in background o inviavi da una shell autenticata solo attraverso tale gateway, ogni richiesta che la sessione faceva falliva, perché l'endpoint e il flag venivano eliminati dal suo ambiente. |

1065| v2.1.251 | Quando una sessione in background si avvia mentre un altro processo Claude Code sta aggiornando un [marketplace di plugin](/docs/it/plugin-marketplaces), come una sessione fratello che esegue l'[auto-aggiornamento del marketplace](/docs/it/discover-plugins#configure-auto-updates), Claude Code mantiene disponibili i plugin di quel marketplace. Prima di questa versione, tale sessione poteva avviarsi senza nessuna delle skill, agenti, hook e server MCP di quel marketplace e rimanere così per tutta la sua esecuzione. |1065| v2.1.251 | Quando una sessione in background si avvia mentre un altro processo Claude Code sta aggiornando un [marketplace di plugin](/docs/it/plugins/overview), come una sessione fratello che esegue l'[auto-aggiornamento del marketplace](/docs/it/plugins/install#keep-plugins-updated), Claude Code mantiene disponibili i plugin di quel marketplace. Prima di questa versione, tale sessione poteva avviarsi senza nessuna delle skill, agenti, hook e server MCP di quel marketplace e rimanere così per tutta la sua esecuzione. |

1066| v2.1.248 | `Shift+Enter` nell'[input di dispatch](#keyboard-shortcuts) inserisce una nuova riga, corrispondendo al prompt principale, e `Ctrl+Enter` invia e si collega immediatamente nei terminali dove l'overlay `?` elenca `ctrl+enter to start and open`. Prima di questa versione, `Shift+Enter` inviava e si collegava. |1066| v2.1.248 | `Shift+Enter` nell'[input di dispatch](#keyboard-shortcuts) inserisce una nuova riga, corrispondendo al prompt principale, e `Ctrl+Enter` invia e si collega immediatamente nei terminali dove l'overlay `?` elenca `ctrl+enter to start and open`. Prima di questa versione, `Shift+Enter` inviava e si collegava. |

1067| v2.1.248 | [Eliminare una sessione](#what-deleting-a-session-removes) ha successo quando i commit del worktree sono già sulla copia locale del ramo predefinito del tuo remote `origin` e il tuo checkout principale ha quel ramo estratto; prima di questa versione, il delete era rifiutato con `has commits that are not pushed anywhere`. |1067| v2.1.248 | [Eliminare una sessione](#what-deleting-a-session-removes) ha successo quando i commit del worktree sono già sulla copia locale del ramo predefinito del tuo remote `origin` e il tuo checkout principale ha quel ramo estratto; prima di questa versione, il delete era rifiutato con `has commits that are not pushed anywhere`. |

1068| v2.1.248 | Una sessione messa in background con `←` o `/background` tiene il [`git worktree lock`](/docs/it/worktrees#clean-up-subagent-and-background-session-worktrees) sul suo worktree mentre viene eseguita; prima di questa versione, mettere in background rilasciava il lock, e la pulizia o `git worktree remove` poteva rimuovere il worktree sotto la sessione in esecuzione. |1068| v2.1.248 | Una sessione messa in background con `←` o `/background` tiene il [`git worktree lock`](/docs/it/worktrees#clean-up-subagent-and-background-session-worktrees) sul suo worktree mentre viene eseguita; prima di questa versione, mettere in background rilasciava il lock, e la pulizia o `git worktree remove` poteva rimuovere il worktree sotto la sessione in esecuzione. |

agents.md +1 −1

Details

22 22 

23* [Worktrees](/docs/it/worktrees) danno a ogni sessione un checkout git separato, così le sessioni parallele non modificano mai gli stessi file. Usateli per le sessioni che eseguite voi stessi. Una sessione che inviate da visualizzazione agenti [si sposta nel suo proprio worktree prima di modificare i file](/docs/it/agent-view#how-file-edits-are-isolated), e i subagenti che generate possono ottenerne uno anche loro.23* [Worktrees](/docs/it/worktrees) danno a ogni sessione un checkout git separato, così le sessioni parallele non modificano mai gli stessi file. Usateli per le sessioni che eseguite voi stessi. Una sessione che inviate da visualizzazione agenti [si sposta nel suo proprio worktree prima di modificare i file](/docs/it/agent-view#how-file-edits-are-isolated), e i subagenti che generate possono ottenerne uno anche loro.

24* [Messaggistica tra sessioni](/docs/it/cross-session-messaging) consente a Claude di elencare e inviare messaggi alle Vostre altre sessioni Claude Code su questa macchina, su un'altra macchina, o [nel cloud](/docs/it/claude-code-on-the-web), così le sessioni che eseguite voi stessi possono passare risultati e stato tra di loro.24* [Messaggistica tra sessioni](/docs/it/cross-session-messaging) consente a Claude di elencare e inviare messaggi alle Vostre altre sessioni Claude Code su questa macchina, su un'altra macchina, o [nel cloud](/docs/it/claude-code-on-the-web), così le sessioni che eseguite voi stessi possono passare risultati e stato tra di loro.

25* [`/batch`](/docs/it/commands) è una [skill](/docs/it/skills) che ha Claude dividere un grande cambiamento in 5 a 30 subagenti isolati da worktree che ciascuno apre una pull request. È un uso confezionato di subagenti e worktrees, non uno stile di coordinamento separato.25* [`/batch`](/docs/it/commands) è una [skill](/docs/it/skills) che ha Claude dividere un grande cambiamento in 5 a 30 subagenti isolati da worktree. È un uso confezionato di subagenti e worktrees, non uno stile di coordinamento separato.

26 26 

27Alcuni altri strumenti eseguono Claude senza che voi guidiate ogni passaggio, ma risolvono un problema diverso rispetto alla divisione del lavoro tra agenti:27Alcuni altri strumenti eseguono Claude senza che voi guidiate ogni passaggio, ma risolvono un problema diverso rispetto alla divisione del lavoro tra agenti:

28 28 

Details

518 Utilizza l'endpoint Mantle518 Utilizza l'endpoint Mantle

519</h2>519</h2>

520 520 

521Mantle è un endpoint di Amazon Bedrock che serve i modelli Claude attraverso la forma API nativa di Anthropic piuttosto che l'API Invoke di Amazon Bedrock. Utilizza le stesse [credenziali AWS](#2-configure-aws-credentials), [autorizzazioni IAM](#iam-configuration), e configurazione [`awsAuthRefresh`](#advanced-credential-configuration).521Mantle è un endpoint di Amazon Bedrock che serve i modelli Claude attraverso la forma API nativa di Anthropic piuttosto che l'API Invoke di Amazon Bedrock. Utilizza le stesse [credenziali AWS](#2-configure-aws-credentials) e configurazione [`awsAuthRefresh`](#advanced-credential-configuration).

522 

523Mantle ha le sue proprie azioni IAM con il prefisso `bedrock-mantle:`, quindi le azioni `bedrock:` nella [configurazione IAM](#iam-configuration) non la coprono. Concedi alla tua identità IAM `bedrock-mantle:CreateInference` per l'inferenza e `bedrock-mantle:CountTokens` per il conteggio dei token. Vedi [Effettuare richieste di inferenza](https://docs.aws.amazon.com/bedrock/latest/userguide/inference.html) e [Conteggio dei token](https://docs.aws.amazon.com/bedrock/latest/userguide/count-tokens.html) nella documentazione AWS, e il [riferimento di autorizzazione del servizio](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrockpoweredbyawsmantle.html) per ogni azione Mantle.

522 524 

523<h3 id="enable-mantle">525<h3 id="enable-mantle">

524 Abilita Mantle526 Abilita Mantle


670 672 

671Se `/status` non mostra `Amazon Bedrock (Mantle)` dopo aver impostato `CLAUDE_CODE_USE_MANTLE`, la variabile non sta raggiungendo il processo. Conferma che sia esportata nella shell in cui hai lanciato `claude`, o impostala nel blocco `env` del tuo [file di impostazioni](/docs/it/settings).673Se `/status` non mostra `Amazon Bedrock (Mantle)` dopo aver impostato `CLAUDE_CODE_USE_MANTLE`, la variabile non sta raggiungendo il processo. Conferma che sia esportata nella shell in cui hai lanciato `claude`, o impostala nel blocco `env` del tuo [file di impostazioni](/docs/it/settings).

672 674 

673Un `403` dall'endpoint Mantle con credenziali valide significa che il tuo account AWS non ha ricevuto l'accesso al modello che hai richiesto. Contatta il tuo team di account AWS per richiedere l'accesso.675Cosa significa un `403` dall'endpoint Mantle dipende dal fatto che l'errore nomini un'azione IAM:

676 

677* Se l'errore nomina un'azione `bedrock-mantle:`, concedi alla tua identità IAM quell'azione.

678* Se l'errore non nomina alcuna azione e le tue credenziali sono valide, il tuo account AWS non ha ricevuto l'accesso al modello che hai richiesto. Contatta il tuo team di account AWS per richiedere l'accesso.

674 679 

675Un `400` che nomina l'ID del modello significa che quel modello non è servito su Mantle. Mantle ha il suo proprio lineup di modelli separato dal catalogo Amazon Bedrock standard, quindi gli ID del profilo di inferenza come `us.anthropic.claude-sonnet-4-6` non funzioneranno. Utilizza un ID nel formato Mantle, o abilita [entrambi gli endpoint](#run-mantle-alongside-the-invoke-api) in modo che Claude Code instrada ogni richiesta all'endpoint in cui il modello è disponibile.680Un `400` che nomina l'ID del modello significa che quel modello non è servito su Mantle. Mantle ha il suo proprio lineup di modelli separato dal catalogo Amazon Bedrock standard, quindi gli ID del profilo di inferenza come `us.anthropic.claude-sonnet-4-6` non funzioneranno. Utilizza un ID nel formato Mantle, o abilita [entrambi gli endpoint](#run-mantle-alongside-the-invoke-api) in modo che Claude Code instrada ogni richiesta all'endpoint in cui il modello è disponibile.

676 681 

Details

334 Eseguite `/plugin` per sfogliare il marketplace. I plugin aggiungono skill, strumenti e integrazioni senza configurazione.334 Eseguite `/plugin` per sfogliare il marketplace. I plugin aggiungono skill, strumenti e integrazioni senza configurazione.

335</Tip>335</Tip>

336 336 

337I [plugin](/docs/it/plugins) raggruppano skill, hook, subagent e server MCP in una singola unità installabile dalla comunità e da Anthropic. Se lavorate con un linguaggio tipizzato, installate un [plugin di code intelligence](/docs/it/discover-plugins#code-intelligence) per fornire a Claude la navigazione precisa dei simboli e il rilevamento automatico degli errori dopo le modifiche.337I [plugin](/docs/it/plugins/overview) raggruppano skill, hook, subagent e server MCP in una singola unità installabile dalla comunità e da Anthropic. Se lavorate con un linguaggio tipizzato, installate un [plugin di code intelligence](/docs/it/plugins/code-intelligence) per fornire a Claude la navigazione precisa dei simboli e il rilevamento automatico degli errori dopo le modifiche.

338 338 

339Per una guida sulla scelta tra skill, subagent, hook e MCP, consultate [Extend Claude Code](/docs/it/features-overview#match-features-to-your-goal).339Per una guida sulla scelta tra skill, subagent, hook e MCP, consultate [Extend Claude Code](/docs/it/features-overview#match-features-to-your-goal).

340 340 


541 Eseguite un ciclo attraverso le attività chiamando `claude -p` per ciascuna. Utilizzate `--allowedTools` per limitare i permessi per le operazioni batch.541 Eseguite un ciclo attraverso le attività chiamando `claude -p` per ciascuna. Utilizzate `--allowedTools` per limitare i permessi per le operazioni batch.

542</Tip>542</Tip>

543 543 

544Per migrazioni o analisi su larga scala, potete distribuire il lavoro tra molte invocazioni parallele di Claude. In un repository git, eseguite [`/batch <instruction>`](/docs/it/commands#all-commands) per fare in modo che Claude divida il cambiamento tra 5 e 30 subagent. Ogni subagent lavora nel suo worktree e apre una pull request. Per guidare il fan-out dal vostro script, eseguite un ciclo su `claude -p`:544Per migrazioni o analisi su larga scala, potete distribuire il lavoro tra molte invocazioni parallele di Claude. Eseguite [`/batch <instruction>`](/docs/it/commands#all-commands) per fare in modo che Claude divida il cambiamento tra 5 e 30 subagent. Ogni subagent lavora nel suo worktree. Per guidare il fan-out dal vostro script, eseguite un ciclo su `claude -p`:

545 545 

546<Steps>546<Steps>

547 <Step title="Generare un elenco di attività">547 <Step title="Generare un elenco di attività">

channels.md +9 −7

Details

45 Se l'installazione non riesce, abbina il messaggio che Claude Code segnala:45 Se l'installazione non riesce, abbina il messaggio che Claude Code segnala:

46 46 

47 * `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.47 * `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.

48 * Il plugin è [non trovato nel marketplace](/docs/it/discover-plugins#install-plugins): controlla il nome del plugin.48 * Il plugin è [non trovato nel marketplace](/docs/it/plugins/install#install-a-plugin): controlla il nome del plugin.

49 49 

50 Quando l'installazione chiede un ambito di installazione, scegli l'opzione di ambito utente in modo che il plugin sia disponibile in tutti i tuoi progetti. Controlla il riepilogo dell'installazione: se segnala `Run /reload-plugins to activate.`, vedi [Applica le modifiche del plugin senza riavviare](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) per rendere disponibile il comando di configurazione del plugin.50 Quando l'installazione chiede un ambito di installazione, scegli l'opzione di ambito utente in modo che il plugin sia disponibile in tutti i tuoi progetti. Controlla il riepilogo dell'installazione: se segnala `Run /reload-plugins to activate.`, vedi [Applica le modifiche del plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) per rendere disponibile il comando di configurazione del plugin.

51 </Step>51 </Step>

52 52 

53 <Step title="Configura il tuo token">53 <Step title="Configura il tuo token">


123 Se l'installazione non riesce, abbina il messaggio che Claude Code segnala:123 Se l'installazione non riesce, abbina il messaggio che Claude Code segnala:

124 124 

125 * `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.125 * `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.

126 * Il plugin è [non trovato nel marketplace](/docs/it/discover-plugins#install-plugins): controlla il nome del plugin.126 * Il plugin è [non trovato nel marketplace](/docs/it/plugins/install#install-a-plugin): controlla il nome del plugin.

127 127 

128 Quando l'installazione chiede un ambito di installazione, scegli l'opzione di ambito utente in modo che il plugin sia disponibile in tutti i tuoi progetti. Controlla il riepilogo dell'installazione: se segnala `Run /reload-plugins to activate.`, vedi [Applica le modifiche del plugin senza riavviare](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) per rendere disponibile il comando di configurazione del plugin.128 Quando l'installazione chiede un ambito di installazione, scegli l'opzione di ambito utente in modo che il plugin sia disponibile in tutti i tuoi progetti. Controlla il riepilogo dell'installazione: se segnala `Run /reload-plugins to activate.`, vedi [Applica le modifiche del plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) per rendere disponibile il comando di configurazione del plugin.

129 </Step>129 </Step>

130 130 

131 <Step title="Configura il tuo token">131 <Step title="Configura il tuo token">


188 Se l'installazione non riesce, abbina il messaggio che Claude Code segnala:188 Se l'installazione non riesce, abbina il messaggio che Claude Code segnala:

189 189 

190 * `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.190 * `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.

191 * Il plugin è [non trovato nel marketplace](/docs/it/discover-plugins#install-plugins): controlla il nome del plugin.191 * Il plugin è [non trovato nel marketplace](/docs/it/plugins/install#install-a-plugin): controlla il nome del plugin.

192 192 

193 Quando l'installazione chiede un ambito di installazione, scegli l'opzione di ambito utente in modo che il plugin sia disponibile in tutti i tuoi progetti. Se il riepilogo dell'installazione segnala `Run /reload-plugins to activate.`, puoi saltarlo qui, perché il riavvio nel passaggio successivo raccoglie il plugin.193 Quando l'installazione chiede un ambito di installazione, scegli l'opzione di ambito utente in modo che il plugin sia disponibile in tutti i tuoi progetti.

194 

195 Se il riepilogo dell'installazione segnala `Run /reload-plugins to activate.`, non è necessario agire qui, perché il riavvio nel passaggio successivo raccoglie il plugin.

194 </Step>196 </Step>

195 197 

196 <Step title="Riavvia con i canali abilitati">198 <Step title="Riavvia con i canali abilitati">


245 Se l'installazione fallisce, abbina il messaggio che Claude Code segnala:247 Se l'installazione fallisce, abbina il messaggio che Claude Code segnala:

246 248 

247 * `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.249 * `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.

248 * Il plugin [non si trova nel marketplace](/docs/it/discover-plugins#install-plugins): controlla il nome del plugin.250 * Il plugin [non si trova nel marketplace](/docs/it/plugins/install#install-a-plugin): controlla il nome del plugin.

249 251 

250 Quando l'installazione chiede un ambito di installazione, scegli l'opzione di ambito utente in modo che il plugin sia disponibile in tutti i tuoi progetti.252 Quando l'installazione chiede un ambito di installazione, scegli l'opzione di ambito utente in modo che il plugin sia disponibile in tutti i tuoi progetti.

251 253 

Details

191claude --dangerously-load-development-channels server:webhook191claude --dangerously-load-development-channels server:webhook

192```192```

193 193 

194Il bypass è per voce. Combinare questo flag con `--channels` non estende il bypass alle voci `--channels`. Durante l'anteprima di ricerca, la lista di approvazione approvata è curata da Anthropic, quindi il tuo canale rimane sul flag di sviluppo mentre lo costruisci e lo testi.194Il bypass è per voce. Combinare questo flag con `--channels` non estende il bypass alle voci `--channels`. Durante l'anteprima di ricerca, il tuo canale non è nella lista di approvazione approvata, quindi rimane sul flag di sviluppo mentre lo costruisci e lo testi.

195 195 

196<Note>196<Note>

197 Questo flag salta solo la lista di approvazione. La politica organizzativa `channelsEnabled` si applica comunque. Non usarla per eseguire canali da fonti non attendibili.197 Questo flag salta solo la lista di approvazione. La politica organizzativa `channelsEnabled` si applica comunque. Non usarla per eseguire canali da fonti non attendibili.


802 Pacchetto come plugin802 Pacchetto come plugin

803</h2>803</h2>

804 804 

805Per rendere il tuo canale installabile e condivisibile, avvolgilo in un [plugin](/docs/it/plugins) e pubblicalo in un [marketplace](/docs/it/plugin-marketplaces). Gli utenti lo installano con `/plugin install`, quindi lo abilitano per sessione con `--channels plugin:<name>@<marketplace>`.805Per rendere il tuo canale installabile e condivisibile, avvolgilo in un [plugin](/docs/it/plugins/overview) e pubblicalo in un [marketplace](/docs/it/plugins/overview). Gli utenti lo installano con `/plugin install`, quindi lo abilitano per sessione con `--channels plugin:<name>@<marketplace>`.

806 806 

807Un canale pubblicato nel tuo marketplace ha ancora bisogno di `--dangerously-load-development-channels` per essere eseguito, poiché non è nella [lista di approvazione](/docs/it/channels#supported-channels). La lista di approvazione predefinita è i plugin di canale in `claude-plugins-official`, che Anthropic cura a sua discrezione. I [moduli di invio in-app](/docs/it/plugins#submit-your-plugin-to-the-community-marketplace) aggiungono plugin al marketplace della comunità, che non è nella lista di approvazione dei canali.807Un canale pubblicato nel tuo marketplace ha ancora bisogno di `--dangerously-load-development-channels` per essere eseguito, poiché non è nella [lista di approvazione](/docs/it/channels#supported-channels). La lista di approvazione predefinita è i plugin di canale in `claude-plugins-official`. I [moduli di invio in-app](/docs/it/plugins/publish#submit-to-the-community-marketplace) aggiungono plugin al marketplace della comunità, che non è nella lista di approvazione dei canali.

808 808 

809Se stai lavorando con un contatto partner di Anthropic, contattalo per coordinare un'inserzione nel marketplace ufficiale. Nei piani Team ed Enterprise, un amministratore può invece includere il tuo plugin nella lista [`allowedChannelPlugins`](/docs/it/channels#restrict-which-channel-plugins-can-run) dell'organizzazione, che sostituisce la lista di approvazione predefinita di Anthropic.809Se stai lavorando con un contatto partner di Anthropic, contattalo per coordinare un'inserzione nel marketplace ufficiale. Nei piani Team ed Enterprise, un amministratore può invece includere il tuo plugin nella lista [`allowedChannelPlugins`](/docs/it/channels#restrict-which-channel-plugins-can-run) dell'organizzazione, che sostituisce la lista di approvazione predefinita di Anthropic.

810 810 


815* [Canali](/docs/it/channels) per installare e utilizzare Telegram, Discord, iMessage o la demo fakechat, e per abilitare i canali per un'organizzazione Team o Enterprise815* [Canali](/docs/it/channels) per installare e utilizzare Telegram, Discord, iMessage o la demo fakechat, e per abilitare i canali per un'organizzazione Team o Enterprise

816* [Implementazioni di canali funzionanti](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) per il codice del server completo con flussi di accoppiamento, strumenti di risposta e allegati di file816* [Implementazioni di canali funzionanti](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) per il codice del server completo con flussi di accoppiamento, strumenti di risposta e allegati di file

817* [MCP](/docs/it/mcp) per il protocollo sottostante che i server di canale implementano817* [MCP](/docs/it/mcp) per il protocollo sottostante che i server di canale implementano

818* [Plugin](/docs/it/plugins) per pacchettizzare il tuo canale in modo che gli utenti possano installarlo con `/plugin install`818* [Plugin](/docs/it/plugins/overview) per pacchettizzare il tuo canale in modo che gli utenti possano installarlo con `/plugin install`

Details

54 Riavvolgi oltre una conversazione cancellata54 Riavvolgi oltre una conversazione cancellata

55</h4>55</h4>

56 56 

57Se hai eseguito `/clear` in precedenza nello stesso processo Claude Code, il menu di riavvolgimento mostra una voce aggiuntiva in cima all'elenco etichettata `/resume <session-id> (previous session)`. Selezionala per riprendere la conversazione che era attiva prima che `/clear` venisse eseguito. La voce è disponibile fino a quando non esci da Claude Code o riprendi una sessione diversa, e richiede Claude Code v2.1.191 o versione successiva. Nelle versioni precedenti, esegui `/resume` e scegli la sessione precedente dall'elenco.57Se hai eseguito `/clear` in precedenza nello stesso processo Claude Code, il menu di riavvolgimento mostra una voce aggiuntiva in cima all'elenco etichettata `/resume <session-id> (previous session)`. Selezionala per riprendere la conversazione che era attiva prima che `/clear` venisse eseguito. La voce è disponibile fino a quando non esci da Claude Code o riprendi una sessione diversa.

58 58 

59<h4 id="guide-a-summary">59<h4 id="guide-a-summary">

60 Guida un riassunto60 Guida un riassunto

Details

452 Impostazioni che i blocchi non coprono452 Impostazioni che i blocchi non coprono

453</h4>453</h4>

454 454 

455Quattro impostazioni fornite dal padre passano il filtro anche con tutti e cinque i blocchi impostati. Secondo l'impostazione predefinita first-wins, il valore amministrativo che blocca quello del padre è quello nella fonte amministrativa con priorità più alta, tranne per `allowedMcpServers` mentre il [blocco del server MCP](#lock-behavior-across-sources) è attivo. Secondo l'opt-in di unione `managedSourcesBehavior`, [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) dice quale valore della fonte si applica invece.455Sei impostazioni fornite dal padre passano il filtro anche con tutti e cinque i blocchi impostati. Secondo l'impostazione predefinita first-wins, il valore amministrativo che blocca quello del padre è quello nella fonte amministrativa con priorità più alta, tranne per `allowedMcpServers` mentre il [blocco del server MCP](#lock-behavior-across-sources) è attivo. Secondo l'opt-in di unione `managedSourcesBehavior`, [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) dice quale valore della fonte si applica invece.

456 456 

457* **`forceLoginOrgUUID`**: Claude Code onora un valore fornito dal padre quando la fonte amministrativa con priorità più alta non imposta un UUID org. L'accesso al gateway non controlla questa chiave, quindi importa solo per le flotte che utilizzano anche accessi Anthropic di prima parte. Un UUID org nella fonte amministrativa con priorità più alta blocca il valore del padre ed è quello che Claude Code applica, quindi imposta `forceLoginOrgUUID` lì.457* **`forceLoginOrgUUID`**: Claude Code onora un valore fornito dal padre quando la fonte amministrativa con priorità più alta non imposta un UUID org. L'accesso al gateway non controlla questa chiave, quindi importa solo per le flotte che utilizzano anche accessi Anthropic di prima parte. Un UUID org nella fonte amministrativa con priorità più alta blocca il valore del padre ed è quello che Claude Code applica, quindi imposta `forceLoginOrgUUID` lì.

458* **`allowedMcpServers`**: Claude Code onora un elenco di autorizzazione fornito dal padre quando nessuna fonte amministrativa ne imposta uno. `allowManagedMcpServersOnly` non lo blocca, perché il blocco applica qualunque elenco vinca come valore gestito, incluso un elenco fornito dal padre quando nessuna fonte amministrativa ne imposta uno. Un elenco nella fonte amministrativa con priorità più alta blocca quello del padre ed è l'elenco che Claude Code applica, quindi imposta `allowedMcpServers` lì, accanto al blocco. Prima della v2.1.223, un valore per una delle due chiavi in qualsiasi fonte amministrativa bloccava quello del padre.458* **`allowedMcpServers`**: Claude Code onora un elenco di autorizzazione fornito dal padre quando nessuna fonte amministrativa ne imposta uno. `allowManagedMcpServersOnly` non lo blocca, perché il blocco applica qualunque elenco vinca come valore gestito, incluso un elenco fornito dal padre quando nessuna fonte amministrativa ne imposta uno. Un elenco nella fonte amministrativa con priorità più alta blocca quello del padre ed è l'elenco che Claude Code applica, quindi imposta `allowedMcpServers` lì, accanto al blocco. Prima della v2.1.223, un valore per una delle due chiavi in qualsiasi fonte amministrativa bloccava quello del padre.

459* **`availableModels`**: Claude Code onora un elenco di modelli fornito dal padre quando la fonte gestita vincente non ne imposta uno. Se la tua flotta limita i modelli, imposta `availableModels` nella fonte vincente.459* **`availableModels`**: Claude Code onora un elenco di modelli fornito dal padre quando la fonte gestita vincente non ne imposta uno. Se la tua flotta limita i modelli, imposta `availableModels` nella fonte vincente.

460* **`strictKnownMarketplaces`**: Claude Code onora un elenco di autorizzazione del marketplace di plugin fornito dal padre quando la fonte gestita vincente non ne imposta uno. Se la tua flotta limita i marketplace, imposta `strictKnownMarketplaces` nella fonte vincente. Richiede Claude Code v2.1.282 o successivo.

461* **`blockedMarketplaces`**: un elenco di blocco del marketplace fornito dal padre passa e si aggiunge a qualsiasi elenco di blocco che una fonte gestita imposta, poiché un elenco di blocco può solo limitare ulteriormente. Richiede Claude Code v2.1.282 o successivo.

460* **`strictPluginOnlyCustomization`**: questa chiave passa il filtro indipendentemente da qualsiasi blocco e fa sì che Claude Code ignori la personalizzazione personale dello sviluppatore, inclusi gli hooks protettivi. Nessun blocco lo blocca.462* **`strictPluginOnlyCustomization`**: questa chiave passa il filtro indipendentemente da qualsiasi blocco e fa sì che Claude Code ignori la personalizzazione personale dello sviluppatore, inclusi gli hooks protettivi. Nessun blocco lo blocca.

461 463 

462<h3 id="connect-claude-desktop">464<h3 id="connect-claude-desktop">

Details

219* **[Applicazione del limite di spesa](/docs/it/claude-apps-gateway-spend-limits#postgres-availability)**: fallisce aperto per impostazione predefinita durante l'interruzione, quindi l'inferenza continua a fluire; capovolgilo per fallire chiuso se preferisci bloccare piuttosto che eseguire senza misurazione219* **[Applicazione del limite di spesa](/docs/it/claude-apps-gateway-spend-limits#postgres-availability)**: fallisce aperto per impostazione predefinita durante l'interruzione, quindi l'inferenza continua a fluire; capovolgilo per fallire chiuso se preferisci bloccare piuttosto che eseguire senza misurazione

220* **Readiness**: `/readyz` segnala non-ready durante l'interruzione, quindi gli orchestrator che controllano il traffico sulla readiness rimuovono ogni replica dalla rotazione contemporaneamente. In quella topologia tutto il traffico, inclusa l'inferenza che il gateway potrebbe comunque servire, fallisce al load balancer fino al recupero di Postgres. La sonda di liveness su `/healthz` continua a passare, quindi le repliche non vengono riavviate. Punta la sonda di readiness a `/healthz` invece se preferisci che gli sviluppatori che hanno effettuato l'accesso continuino a lavorare attraverso un'interruzione dello store; il costo è che i nuovi accessi falliscono contro una replica che ancora segnala ready.220* **Readiness**: `/readyz` segnala non-ready durante l'interruzione, quindi gli orchestrator che controllano il traffico sulla readiness rimuovono ogni replica dalla rotazione contemporaneamente. In quella topologia tutto il traffico, inclusa l'inferenza che il gateway potrebbe comunque servire, fallisce al load balancer fino al recupero di Postgres. La sonda di liveness su `/healthz` continua a passare, quindi le repliche non vengono riavviate. Punta la sonda di readiness a `/healthz` invece se preferisci che gli sviluppatori che hanno effettuato l'accesso continuino a lavorare attraverso un'interruzione dello store; il costo è che i nuovi accessi falliscono contro una replica che ancora segnala ready.

221 221 

222Se il tuo IdP si arresta, le sessioni esistenti funzionano fino a `ttl_hours`, e i nuovi accessi e aggiornamenti falliscono. Imposta un `ttl_hours` più lungo se il tuo IdP ha frequenti finestre di manutenzione.222Se il tuo IdP si arresta, le sessioni esistenti funzionano fino a `ttl_hours`, i nuovi accessi falliscono, e un aggiornamento della sessione riceve una risposta di riprovare e continua una volta che l'IdP è di nuovo disponibile. Imposta un `ttl_hours` più lungo se il tuo IdP ha frequenti finestre di manutenzione.

223 223 

224<h3 id="jwt-secret-rotation">224<h3 id="jwt-secret-rotation">

225 Rotazione del segreto JWT225 Rotazione del segreto JWT

Details

218Il teletrasporto verifica questi requisiti prima di riprendere una sessione. Se un requisito non è soddisfatto, vedrai un errore o ti verrà chiesto di risolvere il problema.218Il teletrasporto verifica questi requisiti prima di riprendere una sessione. Se un requisito non è soddisfatto, vedrai un errore o ti verrà chiesto di risolvere il problema.

219 219 

220| Requisito | Dettagli |220| Requisito | Dettagli |

221| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |221| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

222| Stato git pulito | La tua directory di lavoro non deve avere modifiche non sottoposte a commit. Il teletrasporto ti chiede di archiviare le modifiche se necessario. |222| Stato git pulito | La tua directory di lavoro non deve avere modifiche non sottoposte a commit. Il teletrasporto ti chiede di archiviare le modifiche se necessario. |

223| Repository corretto | Devi eseguire `--teleport` da un checkout dello stesso repository, non da un fork. Se lo esegui da un checkout di un repository diverso, Claude Code mostra un errore che nomina sia il repository della sessione che il tuo checkout. Se Claude Code non riesce ad analizzare il tuo remoto in un nome host, ad esempio un alias host SSH come `git@work:owner/repo.git`, ti chiede di confermare e accetta il checkout quando il proprietario del remoto e il nome del repository corrispondono al repository della sessione. |223| Repository corretto | Devi eseguire `--teleport` da un checkout dello stesso repository, non da un fork. Se lo esegui da un checkout di un repository diverso, Claude Code mostra un errore che nomina sia il repository della sessione che il repository del tuo checkout. Prima della v2.1.219, l'errore non nominava il repository del tuo checkout. Se Claude Code non riesce ad analizzare il tuo remoto in un nome host, ad esempio un alias host SSH come `git@work:owner/repo.git`, ti chiede di confermare e accetta il checkout quando il proprietario del remoto e il nome del repository corrispondono al repository della sessione. |

224| Ramo disponibile | Il ramo dalla sessione cloud deve essere stato inviato al remoto. Il teletrasporto lo recupera e lo controlla automaticamente. |224| Ramo disponibile | Il ramo dalla sessione cloud deve essere stato inviato al remoto. Il teletrasporto lo recupera e lo controlla automaticamente. |

225| Stesso account | Devi essere autenticato allo stesso account claude.ai utilizzato nella sessione cloud. |225| Stesso account | Devi essere autenticato allo stesso account claude.ai utilizzato nella sessione cloud. |

226 226 

Details

1451L'explorer copre i file che crei e modifichi. Alcuni file correlati si trovano altrove:1451L'explorer copre i file che crei e modifichi. Alcuni file correlati si trovano altrove:

1452 1452 

1453| File | Posizione | Scopo |1453| File | Posizione | Scopo |

1454| ----------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |1454| ----------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1455| `managed-settings.json` | A livello di sistema, varia in base al sistema operativo | Impostazioni applicate dall'azienda che non puoi ignorare, a parte [eccezioni ristrette](/docs/it/settings#security-keys-where-the-stricter-value-applies). Vedi [dove salvare il file](/docs/it/managed-settings#deploy-a-managed-settings-file) e [quale fonte gestita Claude Code utilizza](/docs/it/managed-settings#precedence-within-the-managed-tier). |1455| `managed-settings.json` | A livello di sistema, varia in base al sistema operativo | Impostazioni applicate dall'azienda che non puoi ignorare, a parte [eccezioni ristrette](/docs/it/settings#security-keys-where-the-stricter-value-applies). Vedi [dove salvare il file](/docs/it/managed-settings#deploy-a-managed-settings-file) e [quale fonte gestita Claude Code utilizza](/docs/it/managed-settings#precedence-within-the-managed-tier). |

1456| `CLAUDE.local.md` | Radice del progetto | Le tue preferenze private per questo progetto, caricate insieme a CLAUDE.md. Crealo manualmente e aggiungilo a `.gitignore`. |1456| `CLAUDE.local.md` | Radice del progetto | Le tue preferenze private per questo progetto, caricate insieme a CLAUDE.md. Crealo manualmente e aggiungilo a `.gitignore`. |

1457| `AGENTS.md` | Radice del progetto, `.claude/`, o qualsiasi directory | Istruzioni di progetto che scrivi per gli agenti di codifica AI. Claude Code può [caricarlo](/docs/it/memory#agents-md) autonomamente o insieme a `CLAUDE.md`. |1457| `AGENTS.md` | Radice del progetto, `.claude/`, o qualsiasi directory | Istruzioni di progetto che scrivi per gli agenti di codifica AI. Claude Code può [caricarlo](/docs/it/memory#agents-md) autonomamente o insieme a `CLAUDE.md`. |

1458| Plugin installati | `~/.claude/plugins` | Marketplace clonati, versioni plugin installate, il record di installazione `installed_plugins.json` e dati per plugin, gestiti dai comandi `claude plugin`. I plugin [sincronizzati dal tuo account claude.ai](/docs/it/plugins-reference#synced-plugins) vengono scaricati in `~/.claude/plugins/synced/`. Per un plugin installato da un marketplace con [fonte `command`](/docs/it/plugin-marketplaces#command-sources) in modalità link, Claude Code memorizza i link qui invece di una copia, e i file del plugin rimangono nella directory che il comando stampa. Una fonte `command` richiede Claude Code v2.1.229 o successivo. Un plugin elencato per percorso relativo in un marketplace di directory locale [carica in posizione](/docs/it/plugins-reference#plugin-caching-and-file-resolution) dalla sua directory di origine piuttosto che da una copia cache. Vedi [plugin caching](/docs/it/plugins-reference#plugin-caching-and-file-resolution) per come le versioni orfane vengono pulite. |1458| Plugin installati | `~/.claude/plugins` | Marketplace clonati, versioni plugin installate, il record di installazione `installed_plugins.json` e dati per plugin, gestiti dai comandi `claude plugin`. I plugin [sincronizzati dal tuo account claude.ai](/docs/it/plugins/loading#synced-plugins) vengono scaricati in `~/.claude/plugins/synced/`. Per un plugin installato da un marketplace con [fonte `command`](/docs/it/plugins/marketplace-reference#command-plugin-source) in modalità link, Claude Code memorizza i link qui invece di una copia, e i file del plugin rimangono nella directory che il comando stampa. Una fonte `command` richiede Claude Code v2.1.229 o successivo. Un plugin elencato per percorso relativo in un marketplace di directory locale [carica in posizione](/docs/it/plugins/loading#find-plugins-on-disk) dalla sua directory di origine piuttosto che da una copia cache. Vedi [plugin caching](/docs/it/plugins/loading#find-plugins-on-disk) per come le versioni orfane vengono pulite. |

1459 1459 

1460`~/.claude` contiene anche dati che Claude Code scrive mentre lavori: trascrizioni, cronologia dei prompt, snapshot dei file, cache e log. Vedi [dati dell'applicazione](#application-data) di seguito.1460`~/.claude` contiene anche dati che Claude Code scrive mentre lavori: trascrizioni, cronologia dei prompt, snapshot dei file, cache e log. Vedi [dati dell'applicazione](#application-data) di seguito.

1461 1461 


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

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

1531 1531 

1532Gli agenti forniti in un [plugin](/docs/it/plugins-reference#plugin-agent-frontmatter) rispettano un sottoinsieme dei campi subagent.1532Gli agenti forniti in un [plugin](/docs/it/plugins/components#agents) rispettano un sottoinsieme dei campi subagent.

1533 1533 

1534<h2 id="troubleshoot-configuration">1534<h2 id="troubleshoot-configuration">

1535 Risolvi i problemi di configurazione1535 Risolvi i problemi di configurazione


1568| `feedback-bundles/` | Archivi di trascrizione redatti scritti da `/feedback` su provider di terze parti o quando nessuna credenziale Anthropic è configurata, per l'invio al tuo team di account Anthropic |1568| `feedback-bundles/` | Archivi di trascrizione redatti scritti da `/feedback` su provider di terze parti o quando nessuna credenziale Anthropic è configurata, per l'invio al tuo team di account Anthropic |

1569| `feedback/drafts/` | [Feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior) in coda in attesa della tua revisione in `/feedback`. Pulito dopo `cleanupPeriodDays` o 30 giorni, a seconda di quale sia più breve. Quando la coda raggiunge il limite di 10 bozze, Claude Code elimina la bozza più vecchia per fare spazio. |1569| `feedback/drafts/` | [Feedback redatto da Claude](/docs/it/tools-reference#sendfeedback-tool-behavior) in coda in attesa della tua revisione in `/feedback`. Pulito dopo `cleanupPeriodDays` o 30 giorni, a seconda di quale sia più breve. Quando la coda raggiunge il limite di 10 bozze, Claude Code elimina la bozza più vecchia per fare spazio. |

1570| `usage-data/` | `report.html` e copie di report con timestamp scritte da [`/insights`](/docs/it/costs#analyze-your-usage-patterns), più dati di analisi per sessione memorizzati nella cache utilizzati per costruirli |1570| `usage-data/` | `report.html` e copie di report con timestamp scritte da [`/insights`](/docs/it/costs#analyze-your-usage-patterns), più dati di analisi per sessione memorizzati nella cache utilizzati per costruirli |

1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/it/skills#how-synced-skills-behave) e [plugins](/docs/it/plugins-reference#synced-plugins) sincronizzati da claude.ai che Claude Code ha rimosso, ad esempio dopo che ne hai disattivato uno su claude.ai o hai smesso di sincronizzare. I file rimangono qui in modo che tu possa recuperarli fino a quando la pulizia non li elimina |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/it/skills#how-synced-skills-behave) e [plugins](/docs/it/plugins/loading#synced-plugins) che il sync da claude.ai ha rimosso, ad esempio dopo che ne hai disattivato uno su claude.ai o hai smesso di sincronizzare. I file rimangono qui in modo che tu possa recuperarli fino a quando la pulizia non li elimina |

1572| `todos/`, `statsig/`, `logs/` | Directory legacy da versioni precedenti. Non più scritte. La pulizia rimuove i loro contenuti e poi la directory vuota. |1572| `todos/`, `statsig/`, `logs/` | Directory legacy da versioni precedenti. Non più scritte. La pulizia rimuove i loro contenuti e poi la directory vuota. |

1573 1573 

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


1678Puoi anche eliminare manualmente uno qualsiasi dei percorsi di dati dell'applicazione sopra, a parte i [file di stato da mantenere](#state-files-to-keep). Le nuove sessioni non sono interessate. La tabella di seguito mostra cosa perdi per le sessioni passate.1678Puoi anche eliminare manualmente uno qualsiasi dei percorsi di dati dell'applicazione sopra, a parte i [file di stato da mantenere](#state-files-to-keep). Le nuove sessioni non sono interessate. La tabella di seguito mostra cosa perdi per le sessioni passate.

1679 1679 

1680| Elimina | Perdi |1680| Elimina | Perdi |

1681| -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1681| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1682| `~/.claude/projects/` | Ripresa, continuazione e rewind per le sessioni passate, e memoria automatica per ogni progetto |1682| `~/.claude/projects/` | Ripresa, continuazione e rewind per le sessioni passate, e memoria automatica per ogni progetto |

1683| `~/.claude/history.jsonl` | Richiamo del prompt con freccia su, ricerca nella cronologia `Ctrl+R` e completamento dei comandi shell `!` |1683| `~/.claude/history.jsonl` | Richiamo del prompt con freccia su, ricerca nella cronologia `Ctrl+R` e completamento dei comandi shell `!` |

1684| `~/.claude/paste-cache/` | Testo incollato nei prompt richiamati; vedi [incolla contenuto di grandi dimensioni](/docs/it/terminal-config#paste-large-content) |1684| `~/.claude/paste-cache/` | Testo incollato nei prompt richiamati; vedi [incolla contenuto di grandi dimensioni](/docs/it/terminal-config#paste-large-content) |


1692| `~/.claude/cache/changelog.md` | Nulla. Aggiornato in background. |1692| `~/.claude/cache/changelog.md` | Nulla. Aggiornato in background. |

1693| `~/.claude/policy-limits.json` | Nulla. Aggiornato automaticamente. |1693| `~/.claude/policy-limits.json` | Nulla. Aggiornato automaticamente. |

1694| `~/.claude/tasks/` | Elenchi di attività che una sessione ripresa raccoglierebbe |1694| `~/.claude/tasks/` | Elenchi di attività che una sessione ripresa raccoglierebbe |

1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | La possibilità di recuperare [skills sincronizzate](/docs/it/skills#how-synced-skills-behave) e [plugins sincronizzati](/docs/it/plugins-reference#synced-plugins) che Claude Code ha rimosso |1695| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | La possibilità di recuperare [skills sincronizzate](/docs/it/skills#how-synced-skills-behave) e [plugins sincronizzati](/docs/it/plugins/loading#synced-plugins) che Claude Code ha rimosso |

1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nulla di visibile all'utente |1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Nulla di visibile all'utente |

1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nulla. Directory legacy non scritte dalle versioni correnti. |1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Nulla. Directory legacy non scritte dalle versioni correnti. |

1698 1698 

Details

240 240 

241Claude Code esegue anche questo comando all'avvio quando non riesce a convalidare le credenziali AWS esistenti e mostra l'output del comando in un pannello `Authentication` fino al completamento dell'accesso.241Claude Code esegue anche questo comando all'avvio quando non riesce a convalidare le credenziali AWS esistenti e mostra l'output del comando in un pannello `Authentication` fino al completamento dell'accesso.

242 242 

243Con `awsAuthRefresh` configurato, eseguire `/login`, selezionare **3rd-party platform**, quindi selezionare **Claude Platform on AWS · refresh credentials** in **Using 3rd-party platforms**. Claude Code esegue il comando configurato e rilegge le credenziali AWS senza un riavvio. Questa opzione richiede Claude Code v2.1.186 o successivo.243Con `awsAuthRefresh` configurato, eseguire `/login`, selezionare **3rd-party platform**, quindi selezionare **Claude Platform on AWS · refresh credentials** in **Using 3rd-party platforms**. Claude Code esegue il comando configurato e rilegge le credenziali AWS senza un riavvio.

244 244 

245**Opzione B: Chiave API dell'area di lavoro**245**Opzione B: Chiave API dell'area di lavoro**

246 246 

claude-projects.md +45 −43

Details

10 Projects è in beta pubblica sui piani Pro e Max e sta venendo implementato gradualmente, a partire da account che hanno utilizzato [sessioni cloud](/docs/it/claude-code-on-the-web) e non hanno progetti esistenti in claude.ai chat o Cowork. Non sono ancora disponibili sui piani Team o Enterprise. Se **Projects** non appare nella barra laterale su [claude.ai/code](https://claude.ai/code) o nella scheda Code dell'[app desktop](/docs/it/desktop), l'implementazione non ha ancora raggiunto il tuo account, e puoi [unirti alla lista d'attesa](https://claude.com/form/projects). [Esegui agenti in parallelo](/docs/it/agents) elenca cosa puoi utilizzare nel frattempo.10 Projects è in beta pubblica sui piani Pro e Max e sta venendo implementato gradualmente, a partire da account che hanno utilizzato [sessioni cloud](/docs/it/claude-code-on-the-web) e non hanno progetti esistenti in claude.ai chat o Cowork. Non sono ancora disponibili sui piani Team o Enterprise. Se **Projects** non appare nella barra laterale su [claude.ai/code](https://claude.ai/code) o nella scheda Code dell'[app desktop](/docs/it/desktop), l'implementazione non ha ancora raggiunto il tuo account, e puoi [unirti alla lista d'attesa](https://claude.com/form/projects). [Esegui agenti in parallelo](/docs/it/agents) elenca cosa puoi utilizzare nel frattempo.

11</Note>11</Note>

12 12 

13Un progetto è una conversazione in corso dove Claude coordina un flusso di lavoro correlato per voi. Gli dite cosa deve essere fatto e lui avvia un thread per ogni attività. Ogni thread è una [sessione cloud](/docs/it/claude-code-on-the-web): Claude Code in esecuzione nel cloud piuttosto che sulla vostra macchina. I thread vengono eseguiti in parallelo e continuano dopo che chiudete il laptop, e potete controllarli e guidarli dal vostro telefono.13Un progetto è una conversazione in corso dove Claude coordina un flusso di lavoro correlato per voi. Gli dite cosa deve essere fatto e lui avvia un thread per ogni attività.

14 

15Ogni thread è solitamente una [sessione cloud](/docs/it/claude-code-on-the-web): Claude Code in esecuzione nel cloud piuttosto che sulla vostra macchina. Quando un'attività ha bisogno di qualcosa che solo il vostro computer ha, potete chiedere a Claude di eseguire quel thread sul vostro computer invece attraverso [Remote Control](/docs/it/remote-control). I thread vengono eseguiti in parallelo e potete controllarli e guidarli dal vostro telefono. I thread cloud continuano dopo che chiudete il laptop.

14 16 

15Senza un progetto, eseguire più sessioni significa fare il coordinamento da solo: decidi su cosa lavora ciascuno, ripeti lo stesso contesto all'inizio di ciascuno, e controlli indietro per vedere quale è terminato o ha bisogno di una risposta. Con un progetto, invece:17Senza un progetto, eseguire più sessioni significa fare il coordinamento da solo: decidi su cosa lavora ciascuno, ripeti lo stesso contesto all'inizio di ciascuno, e controlli indietro per vedere quale è terminato o ha bisogno di una risposta. Con un progetto, invece:

16 18 

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

18* **Imposta il contesto una volta**: ogni nuovo thread inizia con i repository, le istruzioni e la memoria del progetto, quindi una regola che dichiari una volta, come quale branch scegliere come target, raggiunge tutti loro.20* **Imposta il contesto una volta**: ogni nuovo thread inizia con le istruzioni del progetto, quindi una regola che dichiari una volta, come quale branch scegliere come target, raggiunge tutti loro.

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

20 22 

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


37 Quando qualcos'altro si adatta meglio39 Quando qualcos'altro si adatta meglio

38</h3>40</h3>

39 41 

40I thread funzionano su repository GitHub e sui file, cartelle e cartelle Google Drive che carichi nel progetto, non su file o strumenti che esistono solo sulla tua macchina. Qualcos'altro si adatta meglio in questi casi:42I thread cloud funzionano su repository GitHub e sui file, cartelle e cartelle Google Drive che carichi nel progetto, non su file o strumenti che esistono solo sulla tua macchina. Se un'attività ha bisogno della tua macchina, chiedi a Claude di eseguire il suo thread lì attraverso [Remote Control](/docs/it/remote-control). [Limitations](#limitations) elenca di cosa ha bisogno. Qualcos'altro si adatta meglio in questi casi:

41 43 

42* **Un'attività che rientra in una sessione**: "Correggi il test di login instabile." Avvia una [cloud session](/docs/it/claude-code-on-the-web) tu stesso.44* **Un'attività che rientra in una sessione**: "Correggi il test di login instabile." Avvia una [cloud session](/docs/it/claude-code-on-the-web) tu stesso.

43* **Lavoro che ha bisogno di strumenti o servizi che solo la tua macchina può raggiungere**: un database locale, un emulatore di dispositivo, un'API dietro il tuo VPN. Usa una sessione locale, o [agent view](/docs/it/agent-view) per eseguirne diversi contemporaneamente. Se il lavoro ha bisogno solo di file locali, caricali nel progetto invece.45* **Lavoro dove ogni attività ha bisogno della tua macchina**: un database locale, un emulatore di dispositivo, o un'API dietro il tuo VPN. Usa una sessione locale, o [agent view](/docs/it/agent-view) per eseguirne diversi contemporaneamente. Se il lavoro ha bisogno solo di file locali, caricali nel progetto invece.

44* **Un'attività che si ripete in un programma senza conversazione intorno**: "Pubblica un rapporto di dipendenza ogni lunedì." Crea una [routine](/docs/it/routines) da sola.46* **Un'attività che si ripete in un programma senza conversazione intorno**: "Pubblica un rapporto di dipendenza ogni lunedì." Crea una [routine](/docs/it/routines) da sola.

45* **Più persone che danno a Claude lavoro e lo guidano insieme in un canale Slack**: vedi [Claude Tag](https://claude.com/docs/claude-tag/overview).47* **Più persone che danno a Claude lavoro e lo guidano insieme in un canale Slack**: vedi [Claude Tag](https://claude.com/docs/claude-tag/overview).

46 48 

47Un progetto attinge ai stessi limiti di piano delle tue altre sessioni Claude Code e li utilizza più velocemente. [Usage and cost](#usage-and-cost) copre cosa attinge al tuo piano e come mantenerlo basso.49Un progetto attinge ai stessi limiti di piano delle tue altre sessioni Claude Code e li utilizza più velocemente. [Usage and cost](#usage-and-cost) copre cosa attinge al tuo piano e come mantenerlo basso.

48 50 

49<h2 id="how-a-project-is-organized">51<h2 id="how-a-project-is-organized">

50 Come è organizzato un project52 Come è organizzato un progetto

51</h2>53</h2>

52 54 

53Un project è una conversazione di coordinamento con Claude più i thread che avvia per fare il lavoro. Queste sono le sue parti:55Un progetto è una conversazione coordinata con Claude più i thread che avvia per svolgere il lavoro. Queste sono le sue parti:

54 56 

55* **La conversazione del project**: una sessione di lunga durata dove Claude agisce come coordinatore. Prende quello che invii, decide cosa diventa un thread e tiene traccia di ogni thread che ha avviato. Vede cosa i thread riportano, non ogni passo che compiono.57* **La conversazione del progetto**: una sessione di lunga durata in cui Claude agisce come coordinatore. Prende quello che invii, decide cosa diventa un thread e tiene traccia di ogni thread che ha avviato. Vede cosa riferiscono i thread, non ogni passaggio che compiono.

56* **Thread**: i lavoratori. Ognuno è una [sessione cloud](/docs/it/claude-code-on-the-web) separata con la propria finestra di contesto che fa un pezzo di lavoro sul proprio branch, apre una pull request quando il lavoro lo richiede, e riporta alla conversazione quando finisce.58* **Thread**: i lavoratori. Ognuno è una sessione separata con la propria finestra di contesto che svolge un pezzo di lavoro e riferisce alla conversazione quando finisce. Un thread cloud lavora sul proprio ramo e apre una pull request quando il lavoro lo richiede.

57* **Quello con cui ogni thread inizia**:59* **Quello con cui ogni thread cloud inizia**:

58 * I repository e i file del project, più le sue [istruzioni e memoria](#give-a-project-standing-context)60 * I repository e i file del progetto, più le sue [istruzioni e memoria](#give-a-project-standing-context)

59 * Il `CLAUDE.md` e le skills in [ognuno dei repository del project](#what-threads-pick-up-from-your-repositories), e in un project con un repository, anche le regole di permesso e gli hook di quel repository61 * Il `CLAUDE.md` e le skills in [ogni repository del progetto](#what-threads-pick-up-from-your-repositories), e in un progetto con un repository, anche le regole di permesso e gli hooks di quel repository

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

61 * Un [cloud environment](#choose-an-environment-for-threads) che imposta il suo accesso di rete, le variabili di ambiente, le credenziali API e gli strumenti installati63 * Un [ambiente cloud](#choose-an-environment-for-threads) che imposta il suo accesso di rete, le variabili di ambiente, le credenziali API e gli strumenti installati

62* **Il riquadro Overview**: dove [vedi tutti i thread contemporaneamente](#see-what-needs-you-in-overview) e quali di loro ti servono. Le sue altre schede sono **Library** per i file che hai aggiunto e i file che i thread hanno prodotto, **Pull requests** per quelli che i thread hanno aperto, e **Routines** per il lavoro programmato nel project.64* **Il riquadro Overview**: dove [vedi tutti i thread contemporaneamente](#see-what-needs-you-in-overview) e quali di loro hanno bisogno di te. Le sue altre schede sono **Library** per i file che hai aggiunto e i file che i thread hanno prodotto, **Pull requests** per quelli che i thread hanno aperto, e **Routines** per il lavoro programmato nel progetto.

63 65 

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

65 67 

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

67 69 

68<Frame>70<Frame>

69 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="Diagramma di un project. Scrivi nella conversazione del project, dove Claude risponde o avvia un thread. Ogni thread è una sessione cloud che lavora sul proprio branch e pull request. Il riquadro Overview elenca i thread per stato, come pronto per la revisione, in attesa di te e in lavoro." width="600" height="250" data-path="images/claude-projects-overview.svg" />71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=dbf446f69f0bbdb9961d21af207cb93b" className="dark:hidden" alt="Diagram of a project. You write in the project conversation, where Claude answers or starts a thread. Each cloud thread works on its own branch and pull request. The Overview pane lists threads by state, such as ready for review, waiting on you, and working." width="600" height="250" data-path="images/claude-projects-overview.svg" />

70 72 

71 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="Diagramma di un project. Scrivi nella conversazione del project, dove Claude risponde o avvia un thread. Ogni thread è una sessione cloud che lavora sul proprio branch e pull request. Il riquadro Overview elenca i thread per stato, come pronto per la revisione, in attesa di te e in lavoro." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />73 <img src="https://mintcdn.com/claude-code/e8CLbxM17eD7cAiv/images/claude-projects-overview-dark.svg?fit=max&auto=format&n=e8CLbxM17eD7cAiv&q=85&s=549a5ba9fea8433729babc37a1f6e9c8" className="hidden dark:block" alt="Diagram of a project. You write in the project conversation, where Claude answers or starts a thread. Each cloud thread works on its own branch and pull request. The Overview pane lists threads by state, such as ready for review, waiting on you, and working." width="600" height="250" data-path="images/claude-projects-overview-dark.svg" />

72</Frame>74</Frame>

73 75 

74<h2 id="create-a-project">76<h2 id="create-a-project">


90 92 

91* **Piano**: sei su Pro o Max e **Projects** appare nella tua barra laterale.93* **Piano**: sei su Pro o Max e **Projects** appare nella tua barra laterale.

92* **GitHub, se il project lavorerà su codice**: il tuo codice è su github.com piuttosto che su GitHub Enterprise Server, GitLab o Bitbucket, il tuo account GitHub connesso ha accesso push, e l'app Claude GitHub è installata su di esso. Se hai connesso GitHub con [`/web-setup`](/docs/it/web-quickstart#connect-from-your-terminal), quel token lascia che le tue altre sessioni cloud raggiungano un repository ma non è sufficiente per i thread del project, che hanno bisogno dell'app Claude GitHub. [Configura l'accesso a GitHub](#set-up-github-access) ha i passaggi.94* **GitHub, se il project lavorerà su codice**: il tuo codice è su github.com piuttosto che su GitHub Enterprise Server, GitLab o Bitbucket, il tuo account GitHub connesso ha accesso push, e l'app Claude GitHub è installata su di esso. Se hai connesso GitHub con [`/web-setup`](/docs/it/web-quickstart#connect-from-your-terminal), quel token lascia che le tue altre sessioni cloud raggiungano un repository ma non è sufficiente per i thread del project, che hanno bisogno dell'app Claude GitHub. [Configura l'accesso a GitHub](#set-up-github-access) ha i passaggi.

93* **Rete, credenziali e strumenti**: questi provengono dal [cloud environment](#choose-an-environment-for-threads) del project. L'ambiente predefinito raggiunge già [registri di pacchetti comuni](/docs/it/cloud-environments#default-allowed-domains), quindi controlla questo solo se il lavoro ha bisogno di altri domini, un segreto o uno strumento che non è preinstallato. Se il lavoro ha bisogno di un server MCP, controlla che appaia come connesso nei tuoi [connectors claude.ai](https://claude.ai/customize/connectors).95* **Rete, credenziali e strumenti**: per i thread cloud, questi provengono dal [cloud environment](#choose-an-environment-for-threads) del project. L'ambiente predefinito raggiunge già [registri di pacchetti comuni](/docs/it/cloud-environments#default-allowed-domains), quindi controlla questo solo se il lavoro ha bisogno di altri domini, un segreto o uno strumento che non è preinstallato. Se il lavoro ha bisogno di un server MCP, controlla che appaia come connesso nei tuoi [connectors claude.ai](https://claude.ai/customize/connectors).

94 96 

95<h3 id="start-a-new-project-from-scratch">97<h3 id="start-a-new-project-from-scratch">

96 Avvia un nuovo project da zero98 Avvia un nuovo project da zero


279 Fornire contesto permanente al progetto281 Fornire contesto permanente al progetto

280</h2>282</h2>

281 283 

282La memoria del progetto, le istruzioni del progetto e i repository, i file e l'ambiente del progetto portano il contesto tra i thread. Imposti ciascuno una sola volta e si applica a ogni nuovo thread.284La memoria del progetto, le istruzioni del progetto e i repository, i file e l'ambiente del progetto portano il contesto tra i thread. Imposti ciascuno una sola volta.

283 285 

284| Contesto | Cosa contiene | Come lo imposti |286| Contesto | Cosa contiene | Come lo imposti |

285| :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |287| :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

288| Repository, file e ambiente | I repository che ogni thread clona, le cartelle e i file che ogni thread può leggere in `/mnt/project-files`, e l'ambiente cloud in cui vengono eseguiti i thread | Repository e ambiente in **Project settings > Environment**, oppure chiedi a Claude nella conversazione di aggiungere un repository al progetto. File e cartelle da **Add** nella scheda **Library** in **Overview** |290| Repository, file e ambiente | I repository che ogni thread cloud clona, le cartelle e i file che può leggere in `/mnt/project-files`, e l'ambiente cloud in cui vengono eseguiti i thread | Repository e ambiente in **Project settings > Environment**, oppure chiedi a Claude nella conversazione di aggiungere un repository al progetto. File e cartelle da **Add** nella scheda **Library** in **Overview** |

289 291 

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

291 293 

292<h3 id="write-project-instructions">294<h3 id="write-project-instructions">

293 Scrivi le istruzioni del progetto295 Scrivi le istruzioni del progetto


312- Non eseguire merge, force-push o modificare la configurazione CI senza chiedermi nel thread.314- Non eseguire merge, force-push o modificare la configurazione CI senza chiedermi nel thread.

313```315```

314 316 

315Le regole su un repository, come i suoi comandi di build, appartengono al `CLAUDE.md` di quel repository, che ogni thread legge quando il repository fa parte del progetto. Una volta che il lavoro è in corso, quando correggi un thread, chiedi anche a Claude di ricordare la correzione: va nella [memoria del progetto](#give-a-project-standing-context) e i thread successivi iniziano con essa.317Le regole su un repository, come i suoi comandi di build, appartengono al `CLAUDE.md` di quel repository, che ogni thread cloud legge quando il repository fa parte del progetto. Una volta che il lavoro è in corso, quando correggi un thread, chiedi anche a Claude di ricordare la correzione: va nella [memoria del progetto](#give-a-project-standing-context) e i thread successivi iniziano con essa.

316 318 

317<h3 id="decide-which-repositories-to-add">319<h3 id="decide-which-repositories-to-add">

318 Decidi quali repository aggiungere320 Decidi quali repository aggiungere

319</h3>321</h3>

320 322 

321I repository che aggiungi a un progetto vengono forniti con tutto ciò che contengono, il loro codice, `CLAUDE.md` e skills, in ogni thread. I repository che non aggiungi sono comunque raggiungibili: un thread può aggiungerne uno a se stesso quando il suo compito lo richiede. La maggior parte dei progetti utilizza entrambi:323I repository che aggiungi a un progetto vengono forniti con tutto ciò che contengono, il loro codice, `CLAUDE.md` e skills, in ogni thread cloud. I repository che non aggiungi sono comunque raggiungibili: un thread cloud può aggiungerne uno a se stesso quando il suo compito lo richiede. La maggior parte dei progetti utilizza entrambi:

322 324 

323* **Aggiungilo al progetto**, nella finestra di dialogo **New project**, in **Project settings > Environment**, oppure chiedendo a Claude nella conversazione di aggiungerlo al progetto. Ogni thread da quel momento in poi lo clona e inizia con il suo `CLAUDE.md` e le sue skills caricati, indipendentemente dal fatto che il compito lo tocchi o meno. Passare da un repository a diversi cambia anche ciò che i thread prendono dal `.claude/settings.json` di ogni repository; vedi [What threads pick up from your repositories](#what-threads-pick-up-from-your-repositories).325* **Aggiungilo al progetto**, nella finestra di dialogo **New project**, in **Project settings > Environment**, oppure chiedendo a Claude nella conversazione di aggiungerlo al progetto. Ogni thread da quel momento in poi lo clona e inizia con il suo `CLAUDE.md` e le sue skills caricati, indipendentemente dal fatto che il compito lo tocchi o meno. Passare da un repository a diversi cambia anche ciò che i thread prendono dal `.claude/settings.json` di ogni repository; vedi [What threads pick up from your repositories](#what-threads-pick-up-from-your-repositories).

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

325 327 

326Un progetto non ha bisogno di un repository affatto. I suoi thread possono comunque fare ricerche, scrivere documenti, scrivere ed eseguire codice nella loro sandbox, e consegnare file alla scheda **Library**. Un thread lì può anche aggiungere un repository a se stesso quando un compito lo richiede.328Un progetto non ha bisogno di un repository affatto. I suoi thread cloud possono comunque fare ricerche, scrivere documenti, scrivere ed eseguire codice nella loro sandbox, e consegnare file alla scheda **Library**. Un thread cloud lì può anche aggiungere un repository a se stesso quando un compito lo richiede.

327 329 

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

329 331 


333 Cosa i thread prendono dai tuoi repository335 Cosa i thread prendono dai tuoi repository

334</h3>336</h3>

335 337 

336Ogni thread clona ogni repository nel progetto e carica `CLAUDE.md` e skills da tutti loro. Le regole di permesso, gli hook e `env` provengono solo dal `.claude/settings.json` nella directory in cui il thread inizia: all'interno del repository quando il progetto ne ha uno, e sopra i cloni quando ne ha diversi, dove il file di nessun repository viene letto per loro.338Ogni thread cloud clona ogni repository nel progetto e carica `CLAUDE.md` e skills da tutti loro. Le regole di permesso, gli hook e `env` provengono solo dal `.claude/settings.json` nella directory in cui il thread inizia: all'interno del repository quando il progetto ne ha uno, e sopra i cloni quando ne ha diversi, dove il file di nessun repository viene letto per loro.

337 339 

338| In ogni repository | Un repository | Diversi repository |340| In ogni repository | Un repository | Diversi repository |

339| :------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------- |341| :------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------- |


348 Scegli un ambiente per i thread350 Scegli un ambiente per i thread

349</h3>351</h3>

350 352 

351Ogni nuovo thread inizia nell'[ambiente cloud](/docs/it/cloud-environments) del progetto. L'ambiente imposta quali domini i thread possono raggiungere, quali variabili di ambiente hanno, quali credenziali API vengono aggiunte alle loro richieste, e cosa lo script di setup installa prima che Claude inizi. I thread utilizzano un ambiente predefinito ospitato da Anthropic fino a quando non ne scegli uno in **Project settings > Environment**.353Ogni nuovo thread cloud inizia nell'[ambiente cloud](/docs/it/cloud-environments) del progetto. L'ambiente imposta quali domini i thread possono raggiungere, quali variabili di ambiente hanno, quali credenziali API vengono aggiunte alle loro richieste, e cosa lo script di setup installa prima che Claude inizi. I thread cloud utilizzano un ambiente predefinito ospitato da Anthropic fino a quando non ne scegli uno in **Project settings > Environment**.

352 354 

353Se i thread hanno bisogno di raggiungere un'API interna o un registro di pacchetti privato, o hanno bisogno di un token che la tua macchina normalmente contiene, cambia l'ambiente piuttosto che il progetto: vedi [Network access](/docs/it/cloud-environments#network-access), [Add API credentials](/docs/it/cloud-environments#add-api-credentials), e [Setup scripts](/docs/it/cloud-environments#setup-scripts).355Se i thread cloud hanno bisogno di raggiungere un'API interna o un registro di pacchetti privato, o hanno bisogno di un token che la tua macchina normalmente contiene, cambia l'ambiente piuttosto che il progetto: vedi [Network access](/docs/it/cloud-environments#network-access), [Add API credentials](/docs/it/cloud-environments#add-api-credentials), e [Setup scripts](/docs/it/cloud-environments#setup-scripts).

354 356 

355<h3 id="get-skills-plugins-connectors-and-tools-into-threads">357<h3 id="get-skills-plugins-connectors-and-tools-into-threads">

356 Ottieni skills, plugin, connettori e strumenti nei thread358 Ottieni skills, plugin, connettori e strumenti nei thread

357</h3>359</h3>

358 360 

359I thread sono sessioni cloud, quindi non hanno le skills, i server MCP, i plugin e gli strumenti installati solo sulla tua macchina. Per rendere ciascuno di questi disponibile ai thread:361I thread cloud non hanno le skills, i server MCP, i plugin e gli strumenti installati solo sulla tua macchina. Un thread che Claude esegue sulla tua macchina attraverso [Remote Control](/docs/it/remote-control) utilizza ciò che è installato lì. Per rendere ciascuno di questi disponibile ai thread cloud:

360 362 

361* Skills, subagenti e comandi: eseguine il commit in un repository che hai aggiunto al progetto, ad esempio una skill in `.claude/skills/<skill-name>/SKILL.md`. Ogni thread clona ogni repository nel progetto e carica `.claude/skills/`, `.claude/agents/` e `.claude/commands/` da ciascuno di loro, quindi una skill sottoposta a commit in un repository è disponibile in ogni nuovo thread. I thread caricano anche le skills che abiliti per il tuo account claude.ai.363* Skills, subagenti e comandi: eseguine il commit in un repository che hai aggiunto al progetto, ad esempio una skill in `.claude/skills/<skill-name>/SKILL.md`. Ogni thread cloud clona ogni repository nel progetto e carica `.claude/skills/`, `.claude/agents/` e `.claude/commands/` da ciascuno di loro, quindi una skill sottoposta a commit in un repository è disponibile in ogni nuovo thread cloud. I thread cloud caricano anche le skills che abiliti per il tuo account claude.ai.

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

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

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

365 367 

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

367 369 

368<h2 id="project-settings-reference">370<h2 id="project-settings-reference">

369 Riferimento delle impostazioni del project371 Riferimento delle impostazioni del project


434 Come i project si relazionano ad altre funzioni Claude Code436 Come i project si relazionano ad altre funzioni Claude Code

435</h2>437</h2>

436 438 

437Diverse funzioni Claude Code permettono a più di una sessione di funzionare contemporaneamente, quindi eseguire il lavoro in parallelo non è di per sé quello per cui è un project. In un project, Claude avvia e traccia le sessioni invece di te, ognuno inizia dagli stessi repository, istruzioni e memoria, e il lavoro vive nel cloud finché dura. Ecco come ogni funzione vicina si connette a un project:439Diverse funzioni Claude Code permettono a più di una sessione di funzionare contemporaneamente, quindi eseguire il lavoro in parallelo non è di per sé quello per cui è un project. In un project, Claude avvia e traccia le sessioni invece di te, e ognuno inizia dalle stesse istruzioni. Ecco come ogni funzione vicina si connette a un project:

438 440 

439* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) è Claude nei canali Slack del tuo team, su piani Team e Enterprise. Chiunque in un canale può dargli lavoro, tutti nel canale lo vedono e lo guidano, e usa connessioni che un admin ha configurato per quel canale. Un project è solo tuo: sei l'unico che gli invia lavoro o vede i suoi thread, usa il tuo accesso GitHub e i tuoi connectors, ed è su Pro e Max. [Come Claude Tag differisce da Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) ha il confronto fianco a fianco.441* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) è Claude nei canali Slack del tuo team, su piani Team e Enterprise. Chiunque in un canale può dargli lavoro, tutti nel canale lo vedono e lo guidano, e usa connessioni che un admin ha configurato per quel canale. Un project è solo tuo: sei l'unico che gli invia lavoro o vede i suoi thread, usa il tuo accesso GitHub e i tuoi connectors, ed è su Pro e Max. [Come Claude Tag differisce da Cowork e Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) ha il confronto fianco a fianco.

440* **Sessioni cloud**: ogni thread è una [sessione cloud](/docs/it/claude-code-on-the-web), avviata e tracciata da Claude invece che da te. Una sessione cloud che hai avviato da solo può diventare un project o alimentarne uno attraverso [**Continue as a project** o **Move to project**](#start-from-an-existing-cloud-session).442* **Sessioni cloud**: ogni thread è una [sessione cloud](/docs/it/claude-code-on-the-web) a meno che non chiedi a Claude di eseguirla sulla tua macchina. In entrambi i casi, Claude la avvia e la traccia invece di te. Una sessione cloud che hai avviato da solo può diventare un project o alimentarne uno attraverso [**Continue as a project** o **Move to project**](#start-from-an-existing-cloud-session).

441* **Routine**: quando chiedi il lavoro programmato in un project, Claude crea una [routine](/docs/it/routines) che viene eseguita come thread in quel project e appare sulla sua scheda **Routines**. Le routine che crei al di fuori di un project continuano a funzionare da sole.443* **Routine**: quando chiedi il lavoro programmato in un project, Claude crea una [routine](/docs/it/routines) che viene eseguita come thread in quel project e appare sulla sua scheda **Routines**. Le routine che crei al di fuori di un project continuano a funzionare da sole.

442* **Sessioni locali e agent view**: le sessioni nel tuo terminale, IDE o nell'ambiente locale dell'app desktop vengono eseguite sulla tua macchina e non possono far parte di un project. [Agent view](/docs/it/agent-view) è una schermata per tracciare più di quelle sessioni locali; non ha un coordinatore.444* **Sessioni locali e agent view**: una sessione che avvii da solo nel tuo terminale, IDE o nell'ambiente locale dell'app desktop non può essere aggiunta a un project. Un project raggiunge la tua macchina solo eseguendo un thread lì attraverso [Remote Control](/docs/it/remote-control). [Agent view](/docs/it/agent-view) è una schermata per tracciare diverse sessioni locali che hai avviato da solo; non ha un coordinatore.

443* **Worktrees**: un [worktree](/docs/it/worktrees) dà a ogni sessione locale la sua copia di lavoro di un repository in modo che le sessioni parallele sulla tua macchina non si sovrascrivano a vicenda. I thread non ne hanno bisogno: ogni thread clona i suoi repository nella sua sandbox cloud e lavora sul suo branch.445* **Worktrees**: un [worktree](/docs/it/worktrees) dà a ogni sessione locale la sua copia di lavoro di un repository in modo che le sessioni parallele sulla tua macchina non si sovrascrivano a vicenda. I thread cloud non ne hanno bisogno: ognuno clona i suoi repository nella sua sandbox cloud e lavora sul suo branch.

444* **Agent teams**: un [agent team](/docs/it/agent-teams) è una sessione che avvia sessioni di compagno per un singolo compito, sulla tua macchina o dentro una sessione cloud, e finisce con quel compito.446* **Agent teams**: un [agent team](/docs/it/agent-teams) è una sessione che avvia sessioni di compagno per un singolo compito, sulla tua macchina o dentro una sessione cloud, e finisce con quel compito.

445* **Projects in claude.ai chat e Cowork**: l'[esperienza Projects precedente](https://support.claude.com/en/articles/9517075-what-are-projects), che raggruppa conversazioni e file di riferimento senza thread o un coordinatore. Questi project continuano a funzionare come fanno oggi fino a quando l'esperienza riprogettata li raggiunge.447* **Projects in claude.ai chat e Cowork**: l'[esperienza Projects precedente](https://support.claude.com/en/articles/9517075-what-are-projects), che raggruppa conversazioni e file di riferimento senza thread o un coordinatore. Questi project continuano a funzionare come fanno oggi fino a quando l'esperienza riprogettata li raggiunge.

446 448 


451</h2>453</h2>

452 454 

453* I project sono disponibili su claude.ai/code, nell'app desktop e nell'app mobile di Claude, non nel CLI del terminale o attraverso Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Il comando [`claude project`](/docs/it/cli-reference) del CLI, che gestisce lo stato locale di Claude Code per una directory, non è correlato.455* I project sono disponibili su claude.ai/code, nell'app desktop e nell'app mobile di Claude, non nel CLI del terminale o attraverso Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Il comando [`claude project`](/docs/it/cli-reference) del CLI, che gestisce lo stato locale di Claude Code per una directory, non è correlato.

454* I thread del project sono [sessioni cloud](/docs/it/claude-code-on-the-web) con Anthropic come fornitore di modello. [Sicurezza](/docs/it/security) e [Utilizzo dei dati](/docs/it/data-usage) coprono come le sessioni cloud sono isolate e cosa viene conservato.456* I thread del project sono [sessioni cloud](/docs/it/claude-code-on-the-web), o sessioni sulla vostra macchina attraverso [Remote Control](/docs/it/remote-control), con Anthropic come fornitore di modello in entrambi i casi. [Sicurezza](/docs/it/security) e [Utilizzo dei dati](/docs/it/data-usage) coprono come le sessioni cloud sono isolate e cosa viene conservato, e [Connessione e sicurezza](/docs/it/remote-control#connection-and-security) copre come un thread sulla vostra macchina si connette e cosa viene archiviato.

455* Una sessione locale non può far parte di un project.457* Non potete aggiungere una sessione che avete avviato voi stessi sulla vostra macchina a un project. Per consentire a un project di eseguire un thread sulla vostra macchina, collegate la cartella su cui dovrebbe lavorare attraverso [Remote Control](/docs/it/remote-control#requirements): attivate Remote Control in **Settings > Claude Code** nell'app desktop di Claude, oppure eseguite `claude remote-control` nella cartella e lasciatela in esecuzione. Quella macchina ha bisogno di Claude Code v2.1.280 o successivo. Un project inoltre non può eseguire un thread sulla vostra macchina mentre **Require trusted devices** è attivato nelle vostre impostazioni di claude.ai.

456* La sandbox di un thread si mette in pausa tra i turni e riprende quando il thread continua. Se la sandbox non può essere ripresa, il thread continua da un clone fresco, quindi i cambiamenti non committati possono essere persi. Su compiti lunghi, chiedi a Claude di committare e spingere il lavoro in corso.458* La sandbox di un thread cloud si mette in pausa tra i turni e riprende quando il thread continua. Se la sandbox non può essere ripresa, il thread continua da un clone fresco, quindi i cambiamenti non committati possono essere persi. Su compiti lunghi, chiedete a Claude di committare e spingere il lavoro in corso.

457* Un project appartiene a un utente. Non puoi condividere un project o i suoi thread con un altro utente, e le trascrizioni dei thread non hanno l'opzione di condivisione che hanno altre sessioni cloud. Non ci sono controlli a livello di organizzazione per i project durante la beta.459* Un project appartiene a un utente. Non puoi condividere un project o i suoi thread con un altro utente, e le trascrizioni dei thread non hanno l'opzione di condivisione che hanno altre sessioni cloud. Non ci sono controlli a livello di organizzazione per i project durante la beta.

458* Un thread appartiene all'unico project che l'ha avviato. Non puoi spostare o copiare un thread in un altro project, o spostarlo fuori per stare da solo. [**Move to project**](#start-from-an-existing-cloud-session) va solo nell'altro modo: porta il lavoro di una sessione cloud in un project.460* Un thread appartiene all'unico project che l'ha avviato. Non puoi spostare o copiare un thread in un altro project, o spostarlo fuori per stare da solo. [**Move to project**](#start-from-an-existing-cloud-session) va solo nell'altro modo: porta il lavoro di una sessione cloud in un project.

459 461 


467 Un thread sembra bloccato469 Un thread sembra bloccato

468</h3>470</h3>

469 471 

470Claude non pubblica ogni passo che un thread compie, quindi un thread che mostra come in esecuzione senza nuovi messaggi nella conversazione del project di solito sta ancora funzionando. Un nuovo thread provisiona anche il suo [cloud environment](/docs/it/cloud-environments) prima che Claude inizi, quindi il suo primo aggiornamento richiede un momento. Apri il thread per leggere la sua trascrizione. Se il thread sta aspettando un prompt di permesso, rispondi lì.472Claude non pubblica ogni passo che un thread compie, quindi un thread che mostra come in esecuzione senza nuovi messaggi nella conversazione del project di solito sta ancora funzionando. Un nuovo thread cloud provisiona anche il suo [cloud environment](/docs/it/cloud-environments) prima che Claude inizi, quindi il suo primo aggiornamento richiede un momento. Apri il thread per leggere la sua trascrizione. Se il thread sta aspettando un prompt di permesso, rispondi lì.

471 473 

472<h3 id="threads-guessed-or-stalled-instead-of-asking">474<h3 id="threads-guessed-or-stalled-instead-of-asking">

473 I thread hanno indovinato o si sono bloccati invece di chiedere475 I thread hanno indovinato o si sono bloccati invece di chiedere

Details

27 Installa il plugin27 Installa il plugin

28</h2>28</h2>

29 29 

30In una sessione Claude Code, installa dal [marketplace ufficiale Anthropic](/docs/it/discover-plugins#official-anthropic-marketplace):30In una sessione Claude Code, installa dal [marketplace ufficiale Anthropic](/docs/it/plugins/anthropic-marketplaces):

31 31 

32```text theme={null}32```text theme={null}

33/plugin install claude-security@claude-plugins-official33/plugin install claude-security@claude-plugins-official

34```34```

35 35 

36Il comando apre i dettagli del plugin, dove scegli un [ambito di installazione](/docs/it/discover-plugins#install-plugins) per avviare l'installazione.36Il comando apre i dettagli del plugin, dove scegli un [ambito di installazione](/docs/it/plugins/install#install-a-plugin) per avviare l'installazione.

37 37 

38Se l'installazione non riesce, la soluzione dipende dal messaggio che Claude Code segnala:38Se l'installazione non riesce, la soluzione dipende dal messaggio che Claude Code segnala:

39 39 

40* Se segnala `Marketplace "claude-plugins-official" not found`, aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.40* Se segnala `Marketplace "claude-plugins-official" not found`, aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.

41* Se segnala che non riesce a [trovare il plugin nel marketplace](/docs/it/discover-plugins#install-plugins), controlla il nome del plugin per eventuali errori di digitazione.41* Se segnala che non riesce a [trovare il plugin nel marketplace](/docs/it/plugins/install#install-a-plugin), controlla il nome del plugin per eventuali errori di digitazione.

42 42 

43Controlla il riepilogo dell'installazione. Se segnala `Run /reload-plugins to activate.`, consulta [Applica le modifiche del plugin senza riavviare](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) per attivare il plugin nella tua sessione corrente.43Controlla il riepilogo dell'installazione. Se segnala `Run /reload-plugins to activate.`, consulta [Applica le modifiche del plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) per attivare il plugin nella tua sessione corrente.

44 44 

45Una volta che il plugin è attivo, sei pronto a [scansionare e correggere il tuo codebase](#scan-and-fix-your-codebase).45Una volta che il plugin è attivo, sei pronto a [scansionare e correggere il tuo codebase](#scan-and-fix-your-codebase).

46 46 


168* [Code Review](/docs/it/code-review): configura la revisione multi-agente al momento della PR168* [Code Review](/docs/it/code-review): configura la revisione multi-agente al momento della PR

169* [Claude Security](https://claude.com/product/claude-security): il servizio gestito che monitora i repository connessi169* [Claude Security](https://claude.com/product/claude-security): il servizio gestito che monitora i repository connessi

170* [Sicurezza di Claude Code](/docs/it/security): come Claude Code affronta la fiducia, i permessi e i salvaguardie170* [Sicurezza di Claude Code](/docs/it/security): come Claude Code affronta la fiducia, i permessi e i salvaguardie

171* [Scopri e installa plugin](/docs/it/discover-plugins#official-anthropic-marketplace): sfoglia altri plugin ufficiali171* [Install and manage plugins](/docs/it/plugins/install): trova e installa altri plugin dal marketplace ufficiale

claude-tag.md +0 −11 deleted

File Deleted View Diff

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# Claude Tag

6 

7> Porta Claude nei canali Slack del tuo team con Claude Tag e trova la documentazione di configurazione e utilizzo su claude.com.

8 

9[Claude Tag](https://claude.com/product/tag) è un'integrazione Slack che esegue `@Claude` nei canali del tuo team come identità condivisa dell'organizzazione con accesso configurato dall'amministratore. Chiunque in un canale può taggare `@Claude` in un thread e assegnargli un'attività. Leggi la [documentazione di Claude Tag](https://claude.com/docs/claude-tag/overview) su claude.com per configurarlo e iniziare a utilizzarlo.

10 

11Claude Tag è disponibile sui piani Team ed Enterprise ed è distinto dal precedente [Claude Code in Slack](/docs/it/slack), che esegue ogni sessione con l'account di un singolo utente. Sui piani Pro e Max, dove Claude Tag non è disponibile, Claude Code in Slack rimane il percorso di configurazione.

Details

37| `claude import [source]` | Avvia una sessione interattiva che esegue [`/import`](/docs/it/commands#all-commands) per portare la configurazione da altri agenti di codifica in Claude Code. Accetta le stesse opzioni `--dry-run` e `--yes` del comando. Non disponibile su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o Claude Platform su AWS. Anche non disponibile quando disattivi il [recupero dei feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching). Richiede Claude Code v2.1.213 o successivo | `claude import codex --dry-run` |37| `claude import [source]` | Avvia una sessione interattiva che esegue [`/import`](/docs/it/commands#all-commands) per portare la configurazione da altri agenti di codifica in Claude Code. Accetta le stesse opzioni `--dry-run` e `--yes` del comando. Non disponibile su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o Claude Platform su AWS. Anche non disponibile quando disattivi il [recupero dei feature flag](/docs/it/env-vars#features-that-need-feature-flag-fetching). Richiede Claude Code v2.1.213 o successivo | `claude import codex --dry-run` |

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

39| `claude mcp` | Configura server Model Context Protocol (MCP) | Vedi la [documentazione MCP di Claude Code](/docs/it/mcp). |39| `claude mcp` | Configura server Model Context Protocol (MCP) | Vedi la [documentazione MCP di Claude Code](/docs/it/mcp). |

40| `claude mcp login <name>` | Esegui il flusso OAuth di un server MCP configurato senza aprire il pannello interattivo `/mcp`. Funziona per server HTTP, SSE e connettori claude.ai. Aggiungi `--no-browser` su SSH per stampare l'URL di autorizzazione invece di aprire un browser, quindi incolla l'URL di reindirizzamento al prompt. Richiede Claude Code v2.1.186 o successivo. Vedi [Autentica dalla riga di comando](/docs/it/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | Esegui il flusso OAuth di un server MCP configurato senza aprire il pannello interattivo `/mcp`. Funziona per server HTTP, SSE e connettori claude.ai. Aggiungi `--no-browser` su SSH per stampare l'URL di autorizzazione invece di aprire un browser, quindi incolla l'URL di reindirizzamento al prompt. Vedi [Autentica dalla riga di comando](/docs/it/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | Cancella le credenziali OAuth archiviate per un server MCP. Richiede Claude Code v2.1.186 o successivo | `claude mcp logout sentry` |41| `claude mcp logout <name>` | Cancella le credenziali OAuth archiviate per un server MCP | `claude mcp logout sentry` |

42| `claude plugin` | Gestisci i [plugins](/docs/it/plugins) di Claude Code. Alias: `claude plugins`. Vedi il [riferimento plugin](/docs/it/plugins-reference#cli-commands-reference) per i sottocomandi | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | Gestisci i [plugins](/docs/it/plugins/overview) di Claude Code. Alias: `claude plugins`. Vedi il [riferimento plugin](/docs/it/plugins/cli-reference#claude-plugin-commands) per i sottocomandi | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | Elimina tutto lo stato locale di Claude Code per un progetto: trascrizioni, elenchi di attività, log di debug, cronologia delle modifiche ai file, righe della cronologia dei prompt e la voce del progetto in `~/.claude.json`. Ometti `[path]` per scegliere da un elenco interattivo. Flag: `--dry-run` per visualizzare un'anteprima, `-y`/`--yes` per saltare la conferma, `-i`/`--interactive` per confermare ogni elemento, `--all` per ogni progetto. Vedi [Cancella dati locali](/docs/it/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude project purge [path]` | Elimina tutto lo stato locale di Claude Code per un progetto: trascrizioni, elenchi di attività, log di debug, cronologia delle modifiche ai file, righe della cronologia dei prompt e la voce del progetto in `~/.claude.json`. Ometti `[path]` per scegliere da un elenco interattivo. Flag: `--dry-run` per visualizzare un'anteprima, `-y`/`--yes` per saltare la conferma, `-i`/`--interactive` per confermare ogni elemento, `--all` per ogni progetto. Vedi [Cancella dati locali](/docs/it/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |

44| `claude remote-control` | Avvia un server [Remote Control](/docs/it/remote-control) per controllare Claude Code da Claude.ai o dall'app Claude. Viene eseguito in modalità server (nessuna sessione interattiva locale). Vedi [Flag modalità server](/docs/it/remote-control#start-a-remote-control-session). Dopo aver interrotto il server, puoi ripristinare le sessioni che stava servendo. Vedi [Riprendi sessioni dopo aver interrotto il server](/docs/it/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | Avvia un server [Remote Control](/docs/it/remote-control) per controllare Claude Code da Claude.ai o dall'app Claude. Viene eseguito in modalità server (nessuna sessione interattiva locale). Vedi [Flag modalità server](/docs/it/remote-control#start-a-remote-control-session). Dopo aver interrotto il server, puoi ripristinare le sessioni che stava servendo. Vedi [Riprendi sessioni dopo aver interrotto il server](/docs/it/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | Riavvia una [sessione in background](/docs/it/agent-view#manage-sessions-from-the-shell), in esecuzione o interrotta, mantenendo la sua conversazione intatta. Usa `--all` per riavviare ogni sessione in esecuzione, ad esempio per raccogliere un binario Claude Code aggiornato | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | Riavvia una [sessione in background](/docs/it/agent-view#manage-sessions-from-the-shell), in esecuzione o interrotta, mantenendo la sua conversazione intatta. Usa `--all` per riavviare ogni sessione in esecuzione, ad esempio per raccogliere un binario Claude Code aggiornato | `claude respawn 7c5dcf5d` |


60Personalizza il comportamento di Claude Code con questi flag da riga di comando. `claude --help` non elenca ogni flag, quindi l'assenza di un flag da `--help` non significa che non sia disponibile.60Personalizza il comportamento di Claude Code con questi flag da riga di comando. `claude --help` non elenca ogni flag, quindi l'assenza di un flag da `--help` non significa che non sia disponibile.

61 61 

62| Flag | Descrizione | Esempio |62| Flag | Descrizione | Esempio |

63| :---------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |63| :---------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |

64| `--add-dir` | Aggiungi directory di lavoro aggiuntive per consentire a Claude di leggere e modificare file. Concede l'accesso ai file; Claude Code [non scopre](/docs/it/permissions#additional-directories-grant-file-access-not-configuration) la maggior parte della configurazione `.claude/` da queste directory. Convalida che ogni percorso esista come directory. Non puoi aggiungere la maggior parte dei [percorsi di rete](/docs/it/errors#working-directory-is-a-network-path), come `\\server\share`. Per mantenere queste directory tra le sessioni, imposta [`permissions.additionalDirectories`](/docs/it/settings-reference#permissions-additionaldirectories) nelle impostazioni | `claude --add-dir ../apps ../lib` |64| `--add-dir` | Aggiungi directory di lavoro aggiuntive per consentire a Claude di leggere e modificare file. Concede l'accesso ai file; Claude Code [non scopre](/docs/it/permissions#additional-directories-grant-file-access-not-configuration) la maggior parte della configurazione `.claude/` da queste directory. Convalida che ogni percorso esista come directory. Non puoi aggiungere la maggior parte dei [percorsi di rete](/docs/it/errors#working-directory-is-a-network-path), come `\\server\share`. Per mantenere queste directory tra le sessioni, imposta [`permissions.additionalDirectories`](/docs/it/settings-reference#permissions-additionaldirectories) nelle impostazioni | `claude --add-dir ../apps ../lib` |

65| `--advisor <model>` | Abilita lo [strumento advisor](/docs/it/advisor) lato server per questa sessione con un alias di modello, `fable`, `opus`, o `sonnet`, o un ID modello completo. Ha la precedenza sull'impostazione `advisorModel` per la sessione. `fable` richiede [accesso a Fable](/docs/it/advisor#choose-an-advisor-model) | `claude --advisor opus` |65| `--advisor <model>` | Abilita lo [strumento advisor](/docs/it/advisor) lato server per questa sessione con un alias di modello, `fable`, `opus`, o `sonnet`, o un ID modello completo. Ha la precedenza sull'impostazione `advisorModel` per la sessione. `fable` richiede [accesso a Fable](/docs/it/advisor#choose-an-advisor-model) | `claude --advisor opus` |

66| `--agent` | Specifica un agente per la sessione corrente (sostituisce l'impostazione `agent`) | `claude --agent my-custom-agent` |66| `--agent` | Specifica un agente per la sessione corrente (sostituisce l'impostazione `agent`) | `claude --agent my-custom-agent` |


73| `--append-system-prompt-file` | Carica testo di prompt di sistema aggiuntivo da un file e aggiungi al prompt predefinito | `claude --append-system-prompt-file ./extra-rules.txt` |73| `--append-system-prompt-file` | Carica testo di prompt di sistema aggiuntivo da un file e aggiungi al prompt predefinito | `claude --append-system-prompt-file ./extra-rules.txt` |

74| `--autocompact <auto\|tokens>` | Imposta la [finestra auto-compact](/docs/it/model-config#set-the-auto-compact-window) per questa sessione senza modificare le impostazioni salvate. Accetta gli stessi valori di `/autocompact`; quella sezione copre i moduli di valore e cosa sostituisce il flag. Richiede Claude Code v2.1.221 o successivo | `claude --autocompact 500k` |74| `--autocompact <auto\|tokens>` | Imposta la [finestra auto-compact](/docs/it/model-config#set-the-auto-compact-window) per questa sessione senza modificare le impostazioni salvate. Accetta gli stessi valori di `/autocompact`; quella sezione copre i moduli di valore e cosa sostituisce il flag. Richiede Claude Code v2.1.221 o successivo | `claude --autocompact 500k` |

75| `--ax-screen-reader` | Renderizza l'output compatibile con lo screen reader: testo piatto senza bordi decorativi o animazioni. Forza il renderer classico, quindi l'impostazione [`tui`](/docs/it/settings-reference#tui) non ha effetto; le [sessioni in background](/docs/it/agent-view) allegate ancora si rendono a schermo intero. Ha la precedenza su [`CLAUDE_AX_SCREEN_READER`](/docs/it/env-vars) e l'impostazione [`axScreenReader`](/docs/it/settings-reference#axscreenreader). Richiede Claude Code v2.1.181 o successivo | `claude --ax-screen-reader` |75| `--ax-screen-reader` | Renderizza l'output compatibile con lo screen reader: testo piatto senza bordi decorativi o animazioni. Forza il renderer classico, quindi l'impostazione [`tui`](/docs/it/settings-reference#tui) non ha effetto; le [sessioni in background](/docs/it/agent-view) allegate ancora si rendono a schermo intero. Ha la precedenza su [`CLAUDE_AX_SCREEN_READER`](/docs/it/env-vars) e l'impostazione [`axScreenReader`](/docs/it/settings-reference#axscreenreader). Richiede Claude Code v2.1.181 o successivo | `claude --ax-screen-reader` |

76| `--bare` | Modalità minima: salta l'auto-scoperta di hook, skill, comandi personalizzati, subagenti, plugin, server MCP, memoria automatica e CLAUDE.md in modo che le chiamate con script inizino più velocemente. Le skill in una directory che passi con `--add-dir` si caricano comunque. Claude ha accesso agli strumenti Bash, lettura file e modifica file. Imposta [`CLAUDE_CODE_SIMPLE`](/docs/it/env-vars). Vedi [modalità bare](/docs/it/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |76| `--bare` | Modalità minima: salta l'auto-scoperta di hooks, skills, comandi personalizzati, subagenti, plugin installati, server MCP, memoria automatica e CLAUDE.md in modo che le chiamate con script inizino più velocemente. Le skills in una directory che passi con `--add-dir` si caricano comunque. Claude ha accesso agli strumenti Bash, lettura file e modifica file. Imposta [`CLAUDE_CODE_SIMPLE`](/docs/it/env-vars). Vedi [modalità bare](/docs/it/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

77| `--betas` | Intestazioni beta da includere nelle richieste API (solo utenti con chiave API) | `claude --betas interleaved-thinking` |77| `--betas` | Intestazioni beta da includere nelle richieste API (solo utenti con chiave API) | `claude --betas interleaved-thinking` |

78| `--bg`, `--background` | Avvia la sessione come [agente in background](/docs/it/agent-view) e ritorna immediatamente. Stampa l'ID della sessione e i comandi di gestione. Combina con `--exec` per eseguire un comando shell come lavoro in background invece di una sessione Claude, o con `--agent` per eseguire un subagente specifico. Non può essere combinato con `-p`/`--print`; vedi il [riferimento degli errori](/docs/it/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |78| `--bg`, `--background` | Avvia la sessione come [agente in background](/docs/it/agent-view) e ritorna immediatamente. Stampa l'ID della sessione e i comandi di gestione. Combina con `--exec` per eseguire un comando shell come lavoro in background invece di una sessione Claude, o con `--agent` per eseguire un subagente specifico. Non può essere combinato con `-p`/`--print`; vedi il [riferimento degli errori](/docs/it/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

79| `--channels` | (Anteprima di ricerca) Server MCP le cui notifiche di [canale](/docs/it/channels) Claude dovrebbe ascoltare in questa sessione. Elenco separato da spazi di voci `plugin:<name>@<marketplace>`. Richiede l'autenticazione Anthropic tramite claude.ai o una chiave API Console | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (Anteprima di ricerca) Server MCP le cui notifiche di [canale](/docs/it/channels) Claude dovrebbe ascoltare in questa sessione. Elenco separato da spazi di voci `plugin:<name>@<marketplace>`. Richiede l'autenticazione Anthropic tramite claude.ai o una chiave API Console | `claude --channels plugin:my-notifier@my-marketplace` |


84| `--dangerously-skip-permissions` | Salta i prompt di permesso. Equivalente a `--permission-mode bypassPermissions`. Vedi [modalità di permesso](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) per quello che questo fa e non salta. Per le sessioni avviate con `--bg`, la modalità [persiste quando il supervisore riavvia la sessione](/docs/it/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |84| `--dangerously-skip-permissions` | Salta i prompt di permesso. Equivalente a `--permission-mode bypassPermissions`. Vedi [modalità di permesso](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) per quello che questo fa e non salta. Per le sessioni avviate con `--bg`, la modalità [persiste quando il supervisore riavvia la sessione](/docs/it/agent-view#permission-mode-model-and-effort) | `claude --dangerously-skip-permissions` |

85| `--debug` | Abilita la modalità debug con filtro di categoria opzionale, come `--debug='mcp,startup'` o `--debug='!1p'`. Il filtro si lega solo nella forma `=`; un filtro separato da spazi abilita la modalità debug senza filtrare | `claude --debug='mcp,startup'` |85| `--debug` | Abilita la modalità debug con filtro di categoria opzionale, come `--debug='mcp,startup'` o `--debug='!1p'`. Il filtro si lega solo nella forma `=`; un filtro separato da spazi abilita la modalità debug senza filtrare | `claude --debug='mcp,startup'` |

86| `--debug-file <path>` | Scrivi i log di debug in un percorso di file specifico. Abilita implicitamente la modalità debug. Ha la precedenza su `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |86| `--debug-file <path>` | Scrivi i log di debug in un percorso di file specifico. Abilita implicitamente la modalità debug. Ha la precedenza su `CLAUDE_CODE_DEBUG_LOGS_DIR` | `claude --debug-file /tmp/claude-debug.log` |

87| `--disable-slash-commands` | Disabilita tutte le skill e i comandi per questa sessione | `claude --disable-slash-commands` |87| `--disable-slash-commands` | Disabilita tutte le skills e i comandi per questa sessione | `claude --disable-slash-commands` |

88| `--disallowedTools`, `--disallowed-tools` | Regole di negazione. Un nome di strumento nudo rimuove gli strumenti corrispondenti dal contesto di Claude: `"Edit"` rimuove Edit, `"*"` rimuove ogni strumento, e `"mcp__*"` rimuove ogni strumento MCP. Una regola con ambito come `Bash(rm *)` lascia lo strumento disponibile e nega solo le chiamate che corrispondono [come scritto](/docs/it/permissions#bash-rule-limits). Una regola che nomina [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior) non può rimuoverla mentre rimane qualsiasi altro strumento | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |88| `--disallowedTools`, `--disallowed-tools` | Regole di negazione. Un nome di strumento nudo rimuove gli strumenti corrispondenti dal contesto di Claude: `"Edit"` rimuove Edit, `"*"` rimuove ogni strumento, e `"mcp__*"` rimuove ogni strumento MCP. Una regola con ambito come `Bash(rm *)` lascia lo strumento disponibile e nega solo le chiamate che corrispondono [come scritto](/docs/it/permissions#bash-rule-limits). Una regola che nomina [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior) non può rimuoverla mentre rimane qualsiasi altro strumento | `"Bash(git log *)" "Bash(git diff *)" "Edit"` |

89| `--effort` | Imposta il [livello di sforzo](/docs/it/model-config#adjust-effort-level) per la sessione corrente. Opzioni: `low`, `medium`, `high`, `xhigh`, `max`, o `ultracode`. I livelli disponibili dipendono dal modello. `ultracode` richiede uno sforzo `xhigh` con [ultracode](/docs/it/workflows#let-claude-decide-with-ultracode) attivato, e richiede Claude Code v2.1.203 o successivo. Sostituisce le impostazioni [`modelSettings`](/docs/it/settings-reference#modelsettings) e [`effortLevel`](/docs/it/settings-reference#effortlevel) per questa sessione e non persiste | `claude --effort high` |89| `--effort` | Imposta il [livello di sforzo](/docs/it/model-config#adjust-effort-level) per la sessione corrente. Opzioni: `low`, `medium`, `high`, `xhigh`, `max`, o `ultracode`. I livelli disponibili dipendono dal modello. `ultracode` richiede uno sforzo `xhigh` con [ultracode](/docs/it/workflows#let-claude-decide-with-ultracode) attivato, e richiede Claude Code v2.1.203 o successivo. Sostituisce le impostazioni [`modelSettings`](/docs/it/settings-reference#modelsettings) e [`effortLevel`](/docs/it/settings-reference#effortlevel) per questa sessione e non persiste | `claude --effort high` |

90| `--enable-auto-mode` | Rimosso in v2.1.111. La modalità auto è ora nel ciclo `Shift+Tab` per impostazione predefinita; usa `--permission-mode auto` per iniziare in essa | `claude --permission-mode auto` |90| `--enable-auto-mode` | Rimosso in v2.1.111. La modalità auto è ora nel ciclo `Shift+Tab` per impostazione predefinita; usa `--permission-mode auto` per iniziare in essa | `claude --permission-mode auto` |


114| `--permission-mode` | Inizia in una [modalità di permesso](/docs/it/permission-modes) specificata. Accetta `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, o `manual` come alias per `default`. L'alias `manual` seleziona la modalità di permesso che l'interfaccia utente etichetta Manual e richiede Claude Code v2.1.200 o successivo; `claude --help` la elenca al posto di `default`, e entrambi i valori funzionano. Sostituisce `defaultMode` dai file di impostazioni. Senza questo flag o `--dangerously-skip-permissions`, una nuova sessione inizia nella modalità di permesso descritta in [quale modalità di permesso inizia una sessione](/docs/it/permission-modes#which-mode-a-session-starts-in). Per `-p`, è `default` quando nulla è configurato | `claude --permission-mode plan` |114| `--permission-mode` | Inizia in una [modalità di permesso](/docs/it/permission-modes) specificata. Accetta `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, o `manual` come alias per `default`. L'alias `manual` seleziona la modalità di permesso che l'interfaccia utente etichetta Manual e richiede Claude Code v2.1.200 o successivo; `claude --help` la elenca al posto di `default`, e entrambi i valori funzionano. Sostituisce `defaultMode` dai file di impostazioni. Senza questo flag o `--dangerously-skip-permissions`, una nuova sessione inizia nella modalità di permesso descritta in [quale modalità di permesso inizia una sessione](/docs/it/permission-modes#which-mode-a-session-starts-in). Per `-p`, è `default` quando nulla è configurato | `claude --permission-mode plan` |

115| `--permission-prompt-tool` | Specifica uno strumento MCP per gestire i prompt di permesso in modalità non interattiva. Claude Code attende che il server MCP di quello strumento si connetta prima di eseguire il primo turno, fino al timeout di avvio [`MCP_TIMEOUT`](/docs/it/env-vars), 30 secondi per impostazione predefinita. <br /><br />Lo strumento di prompt non può approvare uno strumento MCP contrassegnato come [richiedente interazione dell'utente](/docs/it/mcp#require-approval-for-a-specific-tool): Claude Code converte un risultato `allow` per uno in una negazione. Questa restrizione richiede Claude Code v2.1.199 o successivo | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |115| `--permission-prompt-tool` | Specifica uno strumento MCP per gestire i prompt di permesso in modalità non interattiva. Claude Code attende che il server MCP di quello strumento si connetta prima di eseguire il primo turno, fino al timeout di avvio [`MCP_TIMEOUT`](/docs/it/env-vars), 30 secondi per impostazione predefinita. <br /><br />Lo strumento di prompt non può approvare uno strumento MCP contrassegnato come [richiedente interazione dell'utente](/docs/it/mcp#require-approval-for-a-specific-tool): Claude Code converte un risultato `allow` per uno in una negazione. Questa restrizione richiede Claude Code v2.1.199 o successivo | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

116| `--permission-prompts` | Imposta chi risponde ai prompt di permesso in modalità print. Con l'impostazione predefinita `host`, Claude Code li invia all'host dell'Agent SDK o allo strumento `--permission-prompt-tool`. Passa `none` quando nessuno può rispondere, e Claude Code li nega invece. Vedi [Disattiva i prompt di permesso nelle esecuzioni incustodite](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs). Richiede Claude Code v2.1.259 o successivo | `claude -p --permission-prompts none "query"` |116| `--permission-prompts` | Imposta chi risponde ai prompt di permesso in modalità print. Con l'impostazione predefinita `host`, Claude Code li invia all'host dell'Agent SDK o allo strumento `--permission-prompt-tool`. Passa `none` quando nessuno può rispondere, e Claude Code li nega invece. Vedi [Disattiva i prompt di permesso nelle esecuzioni incustodite](/docs/it/headless#turn-off-permission-prompts-in-unattended-runs). Richiede Claude Code v2.1.259 o successivo | `claude -p --permission-prompts none "query"` |

117| `--plugin-dir` | Carica un plugin da una directory o un archivio `.zip`, o diversi da una [cartella di plugin](/docs/it/plugins#test-your-plugins-locally), solo per questa sessione. Ogni flag accetta un percorso. Ripeti il flag per più percorsi: `--plugin-dir A --plugin-dir B.zip`. Passare una cartella di plugin richiede Claude Code v2.1.265 o successivo | `claude --plugin-dir ./my-plugin` |117| `--plugin-dir` | Carica un plugin da una directory o un archivio `.zip`, o diversi da una [cartella di plugin](/docs/it/plugins/create#load-a-directory-or-archive-for-one-session), solo per questa sessione. Ogni flag accetta un percorso. Ripeti il flag per più percorsi: `--plugin-dir A --plugin-dir B.zip`. Passare una cartella di plugin richiede Claude Code v2.1.265 o successivo | `claude --plugin-dir ./my-plugin` |

118| `--plugin-url` | Recupera un archivio plugin `.zip` da un URL solo per questa sessione. Ripeti il flag per più plugin, o passa URL separati da spazi in un singolo valore tra virgolette | `claude --plugin-url https://example.com/plugin.zip` |118| `--plugin-url` | Recupera un archivio plugin `.zip` da un URL solo per questa sessione. Ripeti il flag per più plugin, o passa URL separati da spazi in un singolo valore tra virgolette | `claude --plugin-url https://example.com/plugin.zip` |

119| `--print`, `-p` | Stampa la risposta senza modalità interattiva (vedi la [documentazione dell'Agent SDK](/docs/it/agent-sdk/overview) per i dettagli di utilizzo programmatico) | `claude -p "query"` |119| `--print`, `-p` | Stampa la risposta senza modalità interattiva (vedi la [documentazione dell'Agent SDK](/docs/it/agent-sdk/overview) per i dettagli di utilizzo programmatico) | `claude -p "query"` |

120| `--prompt-suggestions` | Emetti un messaggio `prompt_suggestion` con un prompt utente successivo previsto dopo ogni turno che ne genera uno; le conversazioni molto brevi possono non produrne. Richiede `--print`, `--output-format stream-json`, e `--verbose`. Vedi [Suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |120| `--prompt-suggestions` | Emetti un messaggio `prompt_suggestion` con un prompt utente successivo previsto dopo ogni turno che ne genera uno; le conversazioni molto brevi possono non produrne. Richiede `--print`, `--output-format stream-json`, e `--verbose`. Vedi [Suggerimenti di prompt](/docs/it/interactive-mode#prompt-suggestions) | `claude -p --prompt-suggestions --output-format stream-json --verbose "query"` |


125| `--replay-user-messages` | Ri-emetti i messaggi dell'utente da stdin su stdout per il riconoscimento. Richiede `--input-format stream-json` e `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |125| `--replay-user-messages` | Ri-emetti i messaggi dell'utente da stdin su stdout per il riconoscimento. Richiede `--input-format stream-json` e `--output-format stream-json` | `claude -p --input-format stream-json --output-format stream-json --verbose --replay-user-messages` |

126| `--restricted` | Inizia in modalità ristretta. Usalo quando un harness di valutazione guida `claude` su una macchina condivisa e Claude Code non deve eseguire comandi o leggere le impostazioni utente e progetto di quella macchina. Claude Code rimuove gli strumenti integrati che eseguono comandi o codice, e WebFetch, a meno che non li nomini individualmente in `--tools`, non attraverso il preset `default`. Confina anche gli strumenti file integrati alle [directory di lavoro](/docs/it/permissions#working-directories), carica solo [impostazioni gestite](/docs/it/managed-settings) e `--settings`, rifiuta [`bypassPermissions`](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode), e [rifiuta di creare sessioni cloud](/docs/it/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Richiede Claude Code v2.1.248 o successivo | `claude --restricted -p "query"` |126| `--restricted` | Inizia in modalità ristretta. Usalo quando un harness di valutazione guida `claude` su una macchina condivisa e Claude Code non deve eseguire comandi o leggere le impostazioni utente e progetto di quella macchina. Claude Code rimuove gli strumenti integrati che eseguono comandi o codice, e WebFetch, a meno che non li nomini individualmente in `--tools`, non attraverso il preset `default`. Confina anche gli strumenti file integrati alle [directory di lavoro](/docs/it/permissions#working-directories), carica solo [impostazioni gestite](/docs/it/managed-settings) e `--settings`, rifiuta [`bypassPermissions`](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode), e [rifiuta di creare sessioni cloud](/docs/it/errors#cloud-sessions-cannot-be-created-from-a-restricted-session). Richiede Claude Code v2.1.248 o successivo | `claude --restricted -p "query"` |

127| `--resume`, `-r` | Riprendi una sessione specifica per ID o nome, o mostra un selettore interattivo per scegliere una sessione. Al posto di un ID, puoi passare il percorso assoluto al file di [trascrizione](/docs/it/sessions#where-transcripts-are-stored) `.jsonl` di una sessione. Il selettore e la ricerca per nome includono le sessioni che hanno aggiunto questa directory con `/add-dir`. Quando passi un ID di sessione, Claude Code cerca nella directory del progetto corrente e nei suoi git worktrees, quindi in ogni altro progetto su questa macchina. Prima di v2.1.223, la ricerca per ID copriva solo la directory del progetto corrente e i suoi git worktrees. Le [sessioni in background](/docs/it/agent-view) appaiono nel selettore contrassegnate con `bg` | `claude --resume auth-refactor` |127| `--resume`, `-r` | Riprendi una sessione specifica per ID o nome, o mostra un selettore interattivo per scegliere una sessione. Al posto di un ID, puoi passare il percorso assoluto al file di [trascrizione](/docs/it/sessions#where-transcripts-are-stored) `.jsonl` di una sessione. Il selettore e la ricerca per nome includono le sessioni che hanno aggiunto questa directory con `/add-dir`. Quando passi un ID di sessione, Claude Code cerca nella directory del progetto corrente e nei suoi git worktrees, quindi in ogni altro progetto su questa macchina. Prima di v2.1.223, la ricerca per ID copriva solo la directory del progetto corrente e i suoi git worktrees. Le [sessioni in background](/docs/it/agent-view) appaiono nel selettore contrassegnate con `bg` | `claude --resume auth-refactor` |

128| `--safe-mode` | Inizia con tutte le personalizzazioni disabilitate per risolvere i problemi di una configurazione interrotta: CLAUDE.md, skill, plugin, hook, server MCP, comandi e agenti personalizzati, stili di output, flussi di lavoro, temi personalizzati, scorciatoie da tastiera personalizzate, comandi della barra di stato e suggerimento di file, server LSP, e memoria automatica non si caricano. L'autenticazione, la selezione del modello, gli strumenti integrati e i permessi funzionano normalmente, il che differisce da [`--bare`](/docs/it/headless#start-faster-with-bare-mode). La politica delle impostazioni gestite si applica comunque, inclusi gli hook configurati dalla politica, la barra di stato e i comandi di suggerimento di file; i plugin gestiti, le skill gestite, CLAUDE.md gestito, e i server MCP configurati dalla politica non lo fanno. Utile per verificare se una personalizzazione è quello che attiva il [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback). Imposta [`CLAUDE_CODE_SAFE_MODE`](/docs/it/env-vars) | `claude --safe-mode` |128| `--safe-mode` | Inizia con tutte le personalizzazioni disabilitate per risolvere i problemi di una configurazione interrotta: CLAUDE.md, skills, plugins, hooks, server MCP, comandi e agenti personalizzati, stili di output, flussi di lavoro, temi personalizzati, scorciatoie da tastiera personalizzate, comandi della barra di stato e suggerimento di file, server LSP, e memoria automatica non si caricano. L'autenticazione, la selezione del modello, gli strumenti integrati e i permessi funzionano normalmente, il che differisce da [`--bare`](/docs/it/headless#start-faster-with-bare-mode). La politica delle impostazioni gestite si applica comunque, inclusi gli hook configurati dalla politica, la barra di stato e i comandi di suggerimento di file; i plugin gestiti, le skills gestite, CLAUDE.md gestito, e i server MCP configurati dalla politica non lo fanno. Utile per verificare se una personalizzazione è quello che attiva il [fallback automatico del modello](/docs/it/model-config#automatic-model-fallback). Imposta [`CLAUDE_CODE_SAFE_MODE`](/docs/it/env-vars) | `claude --safe-mode` |

129| `--session-id` | Usa un ID di sessione specifico per la conversazione (deve essere un UUID valido) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |129| `--session-id` | Usa un ID di sessione specifico per la conversazione (deve essere un UUID valido) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | Elenco separato da virgole delle fonti di impostazione da caricare (`user`, `project`, `local`) | `claude --setting-sources user,project` |130| `--setting-sources` | Elenco separato da virgole delle fonti di impostazione da caricare (`user`, `project`, `local`) | `claude --setting-sources user,project` |

131| `--settings` | Percorso a un file JSON di impostazioni o una stringa JSON inline. I valori che imposti qui sostituiscono le stesse chiavi nei tuoi file `settings.json` per questa sessione. Le chiavi che ometti mantengono i loro valori basati su file. Il file deve essere un file regolare non più grande di 2 MiB. Vedi [precedenza delle impostazioni](/docs/it/settings#settings-precedence) | `claude --settings ./settings.json` |131| `--settings` | Percorso a un file JSON di impostazioni o una stringa JSON inline. I valori che imposti qui sostituiscono le stesse chiavi nei tuoi file `settings.json` per questa sessione. Le chiavi che ometti mantengono i loro valori basati su file. Il file deve essere un file regolare non più grande di 2 MiB. Vedi [precedenza delle impostazioni](/docs/it/settings#settings-precedence) | `claude --settings ./settings.json` |


134| `--system-prompt-file` | Carica il prompt di sistema da un file, sostituendo il prompt predefinito | `claude --system-prompt-file ./custom-prompt.txt` |134| `--system-prompt-file` | Carica il prompt di sistema da un file, sostituendo il prompt predefinito | `claude --system-prompt-file ./custom-prompt.txt` |

135| `--system-prompt-snapshot` | Passa `off` per ricostruire il prompt di sistema su ogni richiesta invece di riutilizzare il prompt [registrato sulla prima richiesta della conversazione](#system-prompt-flags-in-resumed-conversations), ad esempio mentre iteri sul testo `--append-system-prompt` tra le esecuzioni `--continue`. Richiede Claude Code v2.1.257 o successivo | `claude --system-prompt-snapshot off` |135| `--system-prompt-snapshot` | Passa `off` per ricostruire il prompt di sistema su ogni richiesta invece di riutilizzare il prompt [registrato sulla prima richiesta della conversazione](#system-prompt-flags-in-resumed-conversations), ad esempio mentre iteri sul testo `--append-system-prompt` tra le esecuzioni `--continue`. Richiede Claude Code v2.1.257 o successivo | `claude --system-prompt-snapshot off` |

136| `--teleport` | Riprendi una [sessione cloud](/docs/it/claude-code-on-the-web) nel tuo terminale locale | `claude --teleport` |136| `--teleport` | Riprendi una [sessione cloud](/docs/it/claude-code-on-the-web) nel tuo terminale locale | `claude --teleport` |

137| `--teammate-mode` | Imposta come i compagni di squadra del [team di agenti](/docs/it/agent-teams) si visualizzano: `in-process` (predefinito), `auto`, `tmux`, o `iterm2` (aggiunto in v2.1.186). Sostituisce l'impostazione [`teammateMode`](/docs/it/settings-reference#teammatemode) per questa sessione. Vedi [Scegli una modalità di visualizzazione](/docs/it/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |137| `--teammate-mode` | Imposta come i compagni di squadra del [team di agenti](/docs/it/agent-teams) si visualizzano: `in-process` (predefinito), `auto`, `tmux`, o `iterm2`. Sostituisce l'impostazione [`teammateMode`](/docs/it/settings-reference#teammatemode) per questa sessione. Vedi [Scegli una modalità di visualizzazione](/docs/it/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` |

138| `--tmux` | Crea una sessione tmux per il worktree. Richiede `--worktree`. Usa i riquadri nativi di iTerm2 quando disponibili; passa `--tmux=classic` per tmux tradizionale | `claude -w feature-auth --tmux` |138| `--tmux` | Crea una sessione tmux per il worktree. Richiede `--worktree`. Usa i riquadri nativi di iTerm2 quando disponibili; passa `--tmux=classic` per tmux tradizionale | `claude -w feature-auth --tmux` |

139| `--tools` | Limita quali strumenti integrati Claude può usare. Usa `""` per disabilitare tutti, `"default"` per il set predefinito, o nomi di strumenti come `"Bash,Edit,Read"`. Su macOS, Linux e WSL, il set predefinito lascia fuori `Glob` e `Grep`, come descritto sotto [Comportamento dello strumento Glob](/docs/it/tools-reference#glob-tool-behavior). Se nomini uno degli [strumenti di tracciamento delle attività](/docs/it/tools-reference#task-tool-availability) qui, Claude Code opta anche la sessione in. Il flag non influisce sugli strumenti MCP; per negare anche quelli, usa `--disallowedTools "mcp__*"`. Un elenco che omette [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior) non lo rimuove; `""` lo rimuove solo quando non rimangono strumenti MCP | `claude --tools "Bash,Edit,Read"` |139| `--tools` | Limita quali strumenti integrati Claude può usare. Usa `""` per disabilitare tutti, `"default"` per il set predefinito, o nomi di strumenti come `"Bash,Edit,Read"`. Su macOS, Linux e WSL, il set predefinito lascia fuori `Glob` e `Grep`, come descritto sotto [Comportamento dello strumento Glob](/docs/it/tools-reference#glob-tool-behavior). Se nomini uno degli [strumenti di tracciamento delle attività](/docs/it/tools-reference#task-tool-availability) qui, Claude Code opta anche la sessione in. Il flag non influisce sugli strumenti MCP; per negare anche quelli, usa `--disallowedTools "mcp__*"`. Un elenco che omette [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior) non lo rimuove; `""` lo rimuove solo quando non rimangono strumenti MCP | `claude --tools "Bash,Edit,Read"` |

140| `--verbose` | Abilita la registrazione dettagliata, mostra l'output completo turno per turno. Sostituisce l'impostazione [`viewMode`](/docs/it/settings-reference#viewmode) per questa sessione | `claude --verbose` |140| `--verbose` | Abilita la registrazione dettagliata, mostra l'output completo turno per turno. Sostituisce l'impostazione [`viewMode`](/docs/it/settings-reference#viewmode) per questa sessione | `claude --verbose` |

Details

300| I vostri server MCP `.mcp.json` del repository | Sì, in una sessione con un repository | Parte del clone, trovato dalla directory di lavoro della sessione |300| I vostri server MCP `.mcp.json` del repository | Sì, in una sessione con un repository | Parte del clone, trovato dalla directory di lavoro della sessione |

301| Il vostro `.claude/rules/` del repository | Sì | Parte del clone |301| Il vostro `.claude/rules/` del repository | Sì | Parte del clone |

302| Il vostro `.claude/skills/`, `.claude/agents/`, `.claude/commands/` del repository | Sì | Parte del clone |302| Il vostro `.claude/skills/`, `.claude/agents/`, `.claude/commands/` del repository | Sì | Parte del clone |

303| Plugin e marketplace dichiarati nel vostro `.claude/settings.json` del repository | No | Una sessione cloud non installa i plugin che un repository attiva sotto [`enabledPlugins`](/docs/it/settings-reference#enabledplugins), inclusi quelli dai marketplace che elenca sotto [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces). Abilitate il plugin per il vostro account claude.ai invece, in modo che Claude Code lo carichi come [plugin sincronizzato](/docs/it/plugins-reference#synced-plugins) |303| Plugin e marketplace dichiarati nel vostro `.claude/settings.json` del repository | No | Una sessione cloud non installa i plugin che un repository attiva sotto [`enabledPlugins`](/docs/it/settings-reference#enabledplugins), inclusi quelli dai marketplace che elenca sotto [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces) |

304| Le [impostazioni gestite dal server](/docs/it/server-managed-settings) della vostra organizzazione | Sì | Recuperate dai server di Anthropic quando la sessione inizia. Consultate [Copertura della superficie](/docs/it/model-config#surface-coverage) per come `availableModels` viene applicato nelle sessioni cloud. Le impostazioni distribuite al vostro dispositivo tramite MDM o file di impostazioni gestite non si applicano, perché la sessione viene eseguita su una VM gestita da Anthropic; in un [ambiente self-hosted](/docs/it/self-hosted-environments), le sessioni leggono anche il file di impostazioni gestite nell'immagine runner, per [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) |304| Le [impostazioni gestite dal server](/docs/it/server-managed-settings) della vostra organizzazione | Sì | Recuperate dai server di Anthropic quando la sessione inizia. Consultate [Copertura della superficie](/docs/it/model-config#surface-coverage) per come `availableModels` viene applicato nelle sessioni cloud. Le impostazioni distribuite al vostro dispositivo tramite MDM o file di impostazioni gestite non si applicano, perché la sessione viene eseguita su una VM gestita da Anthropic; in un [ambiente self-hosted](/docs/it/self-hosted-environments), le sessioni leggono anche il file di impostazioni gestite nell'immagine runner, per [come Claude Code combina le fonti gestite](/docs/it/managed-settings#how-claude-code-combines-managed-sources) |

305| Il vostro `~/.claude/CLAUDE.md` utente | No | Vive sulla vostra macchina, non nel repository |305| Il vostro `~/.claude/CLAUDE.md` utente | No | Vive sulla vostra macchina, non nel repository |

306| Il vostro `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` utente | No | Vivono sulla vostra macchina, non nel repository. Sottoponete a commit nel directory `.claude/` del repository. Le sessioni cloud caricano automaticamente le skill che abilitate su claude.ai |306| Il vostro `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` utente | No | Vivono sulla vostra macchina, non nel repository. Sottoponete a commit nel directory `.claude/` del repository. Le sessioni cloud caricano automaticamente le skill che abilitate su claude.ai |

307| Plugin abilitati solo nelle vostre impostazioni utente | No | L'`enabledPlugins` con ambito utente vive in `~/.claude/settings.json` sulla vostra macchina. Abilitateli per il vostro account claude.ai invece, in modo che Claude Code li carichi come [plugin sincronizzati](/docs/it/plugins-reference#synced-plugins) |307| Plugin abilitati solo nelle vostre impostazioni utente | No | L'`enabledPlugins` con ambito utente vive in `~/.claude/settings.json` sulla vostra macchina |

308| Server MCP che avete aggiunto con `claude mcp add` all'ambito locale predefinito o all'ambito utente | No | Quelli scrivono su `~/.claude.json` sulla vostra macchina, non nel repository. Aggiungete il server con `claude mcp add --scope project`, che scrive il [`.mcp.json`](/docs/it/mcp#project-scope) del repository, e sottoponete a commit quel file. Una sessione con un repository lo carica |308| Server MCP che avete aggiunto con `claude mcp add` all'ambito locale predefinito o all'ambito utente | No | Quelli scrivono su `~/.claude.json` sulla vostra macchina, non nel repository. Aggiungete il server con `claude mcp add --scope project`, che scrive il [`.mcp.json`](/docs/it/mcp#project-scope) del repository, e sottoponete a commit quel file. Una sessione con un repository lo carica |

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

310| Chiavi API e token per i servizi che Claude chiama | Sui piani Pro e Max, come [credenziali API](#add-api-credentials) | Aggiungete la chiave una volta sull'ambiente e il proxy dell'agente la allega alle richieste per gli host che elencate. Una chiave che il proxy dell'agente [non può allegare](#requests-that-never-get-the-credential), o qualsiasi chiave su un piano Team o Enterprise, rimane in una variabile di ambiente |310| Chiavi API e token per i servizi che Claude chiama | Sui piani Pro e Max, come [credenziali API](#add-api-credentials) | Aggiungete la chiave una volta sull'ambiente e il proxy dell'agente la allega alle richieste per gli host che elencate. Una chiave che il proxy dell'agente [non può allegare](#requests-that-never-get-the-credential), o qualsiasi chiave su un piano Team o Enterprise, rimane in una variabile di ambiente |

commands.md +4 −4

Details

61| `/autocompact [auto\|<tokens>]` | Impostare la finestra auto-compact: quanto piena diventa la finestra di contesto prima che Claude Code compatti automaticamente. Passate una dimensione come `500k`, o `auto` per tornare alla finestra ottimizzata per il vostro modello. Claude Code salva il valore nelle impostazioni utente e lo applica alla sessione corrente. Consultate [Impostare la finestra auto-compact](/docs/it/model-config#set-the-auto-compact-window) per i valori accettati e cosa lo sostituisce. Senza un argomento, apre una finestra di dialogo che mostra la finestra corrente. Richiede Claude Code v2.1.221 o successivo |61| `/autocompact [auto\|<tokens>]` | Impostare la finestra auto-compact: quanto piena diventa la finestra di contesto prima che Claude Code compatti automaticamente. Passate una dimensione come `500k`, o `auto` per tornare alla finestra ottimizzata per il vostro modello. Claude Code salva il valore nelle impostazioni utente e lo applica alla sessione corrente. Consultate [Impostare la finestra auto-compact](/docs/it/model-config#set-the-auto-compact-window) per i valori accettati e cosa lo sostituisce. Senza un argomento, apre una finestra di dialogo che mostra la finestra corrente. Richiede Claude Code v2.1.221 o successivo |

62| `/autofix-pr [prompt]` | Avviare una sessione di [Claude Code sul web](/docs/it/claude-code-on-the-web#auto-fix-pull-requests) che monitora il PR del ramo corrente e spinge correzioni quando CI fallisce o i revisori lasciano commenti. Rileva il PR aperto dal vostro ramo estratto con `gh pr view`; per monitorare un PR diverso, estraete prima il suo ramo. Per impostazione predefinita, la sessione cloud viene istruita a correggere ogni fallimento CI e commento di revisione; passate un prompt per darle istruzioni diverse, ad esempio `/autofix-pr only fix lint and type errors`. Richiede la CLI `gh` e l'accesso a [Claude Code sul web](/docs/it/claude-code-on-the-web) |62| `/autofix-pr [prompt]` | Avviare una sessione di [Claude Code sul web](/docs/it/claude-code-on-the-web#auto-fix-pull-requests) che monitora il PR del ramo corrente e spinge correzioni quando CI fallisce o i revisori lasciano commenti. Rileva il PR aperto dal vostro ramo estratto con `gh pr view`; per monitorare un PR diverso, estraete prima il suo ramo. Per impostazione predefinita, la sessione cloud viene istruita a correggere ogni fallimento CI e commento di revisione; passate un prompt per darle istruzioni diverse, ad esempio `/autofix-pr only fix lint and type errors`. Richiede la CLI `gh` e l'accesso a [Claude Code sul web](/docs/it/claude-code-on-the-web) |

63| `/background [prompt]` | Staccare la sessione corrente per eseguirla come [agente in background](/docs/it/agent-view) e liberare questo terminale. Passate un prompt per inviare un'istruzione in più prima di staccare. Monitorate la sessione con `claude agents`. Per copiare la conversazione in una nuova sessione in background mentre questa continua a funzionare, usate `/fork`. Alias: `/bg` |63| `/background [prompt]` | Staccare la sessione corrente per eseguirla come [agente in background](/docs/it/agent-view) e liberare questo terminale. Passate un prompt per inviare un'istruzione in più prima di staccare. Monitorate la sessione con `claude agents`. Per copiare la conversazione in una nuova sessione in background mentre questa continua a funzionare, usate `/fork`. Alias: `/bg` |

64| `/batch <instruction>` | **[Skill](/docs/it/skills#bundled-skills).** Orchestrare modifiche su larga scala in un codebase in parallelo. Ricerca il codebase, scompone il lavoro in 5-30 unità indipendenti e presenta un piano. Una volta approvato, avvia un [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) per unità in un [git worktree](/docs/it/worktrees) isolato. Ogni subagent implementa la sua unità, esegue i test e apre una pull request. Richiede un repository git. Esempio: `/batch migrate src/ from JavaScript to TypeScript` |64| `/batch <instruction>` | **[Skill](/docs/it/skills#bundled-skills).** Orchestrare modifiche su larga scala in un codebase in parallelo. Ricerca il codebase, scompone il lavoro in 5-30 unità indipendenti e presenta un piano. Una volta approvato, avvia un [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) per unità in un [git worktree](/docs/it/worktrees) isolato. Ogni subagent implementa la sua unità, esegue i test e apre una pull request. Richiede un repository git o un [hook `WorktreeCreate`](/docs/it/worktrees#non-git-version-control) che crea i worktree. Al di fuori di un repository git, `/batch` richiede Claude Code v2.1.281 o successivo. Esempio: `/batch migrate src/ from JavaScript to TypeScript` |

65| `/branch [name]` | Creare un ramo della conversazione corrente a questo punto, in modo da poter provare una direzione diversa senza perdere la conversazione così com'è. Vi sposta nel ramo e preserva l'originale, al quale potete tornare con `/resume`. Per eseguire una copia come [sessione in background](/docs/it/agent-view) separata invece di spostarvi in essa, usate `/fork`; per affidare un'attività laterale a un [subagent](/docs/it/sub-agents) che riporta di nuovo in questa conversazione, usate `/subtask` |65| `/branch [name]` | Creare un ramo della conversazione corrente a questo punto, in modo da poter provare una direzione diversa senza perdere la conversazione così com'è. Vi sposta nel ramo e preserva l'originale, al quale potete tornare con `/resume`. Per eseguire una copia come [sessione in background](/docs/it/agent-view) separata invece di spostarvi in essa, usate `/fork`; per affidare un'attività laterale a un [subagent](/docs/it/sub-agents) che riporta di nuovo in questa conversazione, usate `/subtask` |

66| `/btw [question]` | Fare una [domanda laterale](/docs/it/interactive-mode#side-questions-with-%2Fbtw) sulla sessione corrente senza aggiungerla alla conversazione. Se eseguite `/btw` senza una domanda, Claude Code mostra la vostra domanda laterale più recente in modo da poter sfogliare le risposte precedenti; se non ne avete ancora fatta una, Claude Code stampa una riga di utilizzo. Prima della v2.1.212, `/btw` richiedeva una domanda |66| `/btw [question]` | Fare una [domanda laterale](/docs/it/interactive-mode#side-questions-with-%2Fbtw) sulla sessione corrente senza aggiungerla alla conversazione. Se eseguite `/btw` senza una domanda, Claude Code mostra la vostra domanda laterale più recente in modo da poter sfogliare le risposte precedenti; se non ne avete ancora fatta una, Claude Code stampa una riga di utilizzo. Prima della v2.1.212, `/btw` richiedeva una domanda |

67| `/bug [report]` | Segnalare un bug o condividere la vostra conversazione. Scegliete quanta cronologia della sessione includere e confermate su una schermata di consenso prima che qualsiasi cosa venga inviata. Quando siete connessi ad Anthropic su una connessione di prima parte, il rapporto va ad Anthropic; su un provider di terze parti, o senza credenziali Anthropic, Claude Code scrive il rapporto in un [archivio locale sotto `~/.claude/feedback-bundles/`](/docs/it/data-usage#telemetry-services) che inoltrate voi stessi. Nell'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box), `/bug` apre invece la finestra di dialogo di feedback dell'estensione; richiede Claude Code v2.1.229 o successivo. Quando lo eseguite mentre Claude sta rispondendo, Claude Code apre la finestra di dialogo immediatamente. Prima della v2.1.232, Claude Code metteva in coda il comando fino al termine del turno. Alias: `/share`. Prima della v2.1.212, `/bug` e `/share` erano alias di `/feedback` |67| `/bug [report]` | Segnalare un bug o condividere la vostra conversazione. Scegliete quanta cronologia della sessione includere e confermate su una schermata di consenso prima che qualsiasi cosa venga inviata. Quando siete connessi ad Anthropic su una connessione di prima parte, il rapporto va ad Anthropic; su un provider di terze parti, o senza credenziali Anthropic, Claude Code scrive il rapporto in un [archivio locale sotto `~/.claude/feedback-bundles/`](/docs/it/data-usage#telemetry-services) che inoltrate voi stessi. Nell'[estensione VS Code](/docs/it/vs-code#use-the-prompt-box), `/bug` apre invece la finestra di dialogo di feedback dell'estensione; richiede Claude Code v2.1.229 o successivo. Quando lo eseguite mentre Claude sta rispondendo, Claude Code apre la finestra di dialogo immediatamente. Prima della v2.1.232, Claude Code metteva in coda il comando fino al termine del turno. Alias: `/share`. Prima della v2.1.212, `/bug` e `/share` erano alias di `/feedback` |

68| `/cd <path>` | Spostare questa sessione in una nuova directory di lavoro, mantenendo la conversazione. Digitate un percorso parziale per vedere i suggerimenti di directory corrispondenti; premete `Tab` per accettarne uno. I suggerimenti richiedono Claude Code v2.1.206 o successivo. Per quello che Claude Code applica dalla nuova directory non appena vi spostate, e come `/cd` differisce da `/add-dir`, consultate [Spostare la sessione in un'altra directory](/docs/it/permissions#move-the-session-to-another-directory) |68| `/cd <path>` | Spostare questa sessione in una nuova directory di lavoro, mantenendo la conversazione. Digitate un percorso parziale per vedere i suggerimenti di directory corrispondenti; premete `Tab` per accettarne uno. I suggerimenti richiedono Claude Code v2.1.206 o successivo. Per quello che Claude Code applica dalla nuova directory non appena vi spostate, e come `/cd` differisce da `/add-dir`, consultate [Spostare la sessione in un'altra directory](/docs/it/permissions#move-the-session-to-another-directory) |

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

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/it/skills#bundled-skills).** Caricare il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del vostro progetto. Si attiva anche automaticamente quando il vostro codice importa `anthropic` o `@anthropic-ai/sdk`. Eseguite `migrate` per aggiornare il codice Claude API esistente a un modello più recente. Eseguite `upgrade` per spostare la dipendenza Anthropic SDK del vostro progetto attraverso una versione principale, attualmente il pacchetto Python `anthropic` da 0.x a 1.x. Eseguite `managed-agents-onboard` per una procedura guidata che crea un nuovo Managed Agent. Eseguite `prompt-audit` per contrassegnare le istruzioni scritte per modelli più vecchi nei vostri prompt, skill e descrizioni di strumenti e proporre correzioni come diff. Eseguite `cost-optimize` per profilare dove va la spesa Claude API del vostro progetto e proporre risparmi da opzioni come prompt caching, riduzione di token di input e output non necessari, elaborazione batch, sforzo e scelta del modello, una modifica alla volta. Eseguite `build-eval` per costruire un set di eval per la vostra app basata su Claude, e `hillclimb` per migliorare iterativamente l'app rispetto a un eval esistente. Il sottocomando `prompt-audit` richiede Claude Code v2.1.221 o successivo, `upgrade` richiede v2.1.236 o successivo, `cost-optimize` richiede v2.1.247 o successivo, e `build-eval` e `hillclimb` richiedono v2.1.259 o successivo |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/it/skills#bundled-skills).** Caricare il materiale di riferimento di [Claude API](https://platform.claude.com/docs/en/api/overview) e [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) per il linguaggio del vostro progetto. Si attiva anche automaticamente quando il vostro codice importa `anthropic` o `@anthropic-ai/sdk`. Eseguite `migrate` per aggiornare il codice Claude API esistente a un modello più recente. Eseguite `upgrade` per spostare la dipendenza Anthropic SDK del vostro progetto attraverso una versione principale, attualmente il pacchetto Python `anthropic` da 0.x a 1.x. Eseguite `managed-agents-onboard` per una procedura guidata che crea un nuovo Managed Agent. Eseguite `prompt-audit` per contrassegnare le istruzioni scritte per modelli più vecchi nei vostri prompt, skill e descrizioni di strumenti e proporre correzioni come diff. Eseguite `cost-optimize` per profilare dove va la spesa Claude API del vostro progetto e proporre risparmi da opzioni come prompt caching, riduzione di token di input e output non necessari, elaborazione batch, sforzo e scelta del modello, una modifica alla volta. Eseguite `build-eval` per costruire un set di eval per la vostra app basata su Claude, e `hillclimb` per migliorare iterativamente l'app rispetto a un eval esistente. Il sottocomando `prompt-audit` richiede Claude Code v2.1.221 o successivo, `upgrade` richiede v2.1.236 o successivo, `cost-optimize` richiede v2.1.247 o successivo, e `build-eval` e `hillclimb` richiedono v2.1.259 o successivo |

71| `/clear [name]` | Avviare una nuova conversazione con contesto vuoto. Passate un nome per etichettare la conversazione precedente nel selettore `/resume`. Per liberare contesto continuando la stessa conversazione, usate `/compact` invece. Riprendete la conversazione precedente con `/resume`, o, nello stesso processo Claude Code, ripristinatela dal [menu di rewind della voce sessione precedente](/docs/it/checkpointing#rewind-past-a-cleared-conversation). La voce di rewind richiede Claude Code v2.1.191 o successivo. Alias: `/reset`, `/new` |71| `/clear [name]` | Avviare una nuova conversazione con contesto vuoto. Passate un nome per etichettare la conversazione precedente nel selettore `/resume`. Per liberare contesto continuando la stessa conversazione, usate `/compact` invece. Riprendete la conversazione precedente con `/resume`, o, nello stesso processo Claude Code, ripristinatela dal [menu di rewind della voce sessione precedente](/docs/it/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/it/skills#bundled-skills).** Rivedere il diff corrente, o un numero PR, ramo o percorso che passate, per bug di correttezza. A seconda del vostro modello e livello di sforzo, la revisione copre anche opportunità di pulizia. Passate `--fix` per applicare i risultati, `--comment` per pubblicarli sulla PR GitHub o sulla merge request GitLab, o `ultra` per eseguire una profonda [revisione cloud](/docs/it/ultrareview). La pubblicazione su una merge request GitLab richiede Claude Code v2.1.257 o successivo. Con `ultra` su un target PR `github.com`, passate `--post` per preselezionare [la pubblicazione dei risultati finiti sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request) nella finestra di dialogo di avvio; `--post` richiede Claude Code v2.1.227 o successivo. Consultate [Rivedere un diff localmente](/docs/it/code-review#review-a-diff-locally) per i livelli di sforzo, il targeting e come si relaziona a `/simplify`. Alias: `/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/it/skills#bundled-skills).** Rivedere il diff corrente, o un numero PR, ramo o percorso che passate, per bug di correttezza. A seconda del vostro modello e livello di sforzo, la revisione copre anche opportunità di pulizia. Passate `--fix` per applicare i risultati, `--comment` per pubblicarli sulla PR GitHub o sulla merge request GitLab, o `ultra` per eseguire una profonda [revisione cloud](/docs/it/ultrareview). La pubblicazione su una merge request GitLab richiede Claude Code v2.1.257 o successivo. Con `ultra` su un target PR `github.com`, passate `--post` per preselezionare [la pubblicazione dei risultati finiti sulla PR](/docs/it/ultrareview#post-findings-to-the-pull-request) nella finestra di dialogo di avvio; `--post` richiede Claude Code v2.1.227 o successivo. Consultate [Rivedere un diff localmente](/docs/it/code-review#review-a-diff-locally) per i livelli di sforzo, il targeting e come si relaziona a `/simplify`. Alias: `/review` |

73| `/color [color\|default]` | Impostare il colore della barra dei prompt per la sessione corrente. Colori disponibili: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usate `default` per ripristinare, o eseguite senza argomento per scegliere un colore casuale. Quando [Remote Control](/docs/it/remote-control) è connesso, il colore si sincronizza con claude.ai/code. Disponibile anche in modalità non interattiva (`-p`); richiede Claude Code v2.1.205 o successivo |73| `/color [color\|default]` | Impostare il colore della barra dei prompt per la sessione corrente. Colori disponibili: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Usate `default` per ripristinare, o eseguite senza argomento per scegliere un colore casuale. Quando [Remote Control](/docs/it/remote-control) è connesso, il colore si sincronizza con claude.ai/code. Disponibile anche in modalità non interattiva (`-p`); richiede Claude Code v2.1.205 o successivo |

74| `/compact [instructions]` | Liberare contesto riassumendo la conversazione finora. Facoltativamente passate istruzioni di focus per il riassunto. Consultate [come la compattazione gestisce regole, skill e file di memoria](/docs/it/context-window#what-survives-compaction) |74| `/compact [instructions]` | Liberare contesto riassumendo la conversazione finora. Facoltativamente passate istruzioni di focus per il riassunto. Consultate [come la compattazione gestisce regole, skill e file di memoria](/docs/it/context-window#what-survives-compaction) |


116| `/passes` | Condividere una settimana gratuita di Claude Code con gli amici. Visibile solo se il vostro account è idoneo |116| `/passes` | Condividere una settimana gratuita di Claude Code con gli amici. Visibile solo se il vostro account è idoneo |

117| `/permissions` | Gestire le regole di autorizzazione, chiedi e nega per i permessi degli strumenti. Apre una finestra di dialogo interattiva dove potete visualizzare le regole per ambito, aggiungere o rimuovere regole, gestire le directory di lavoro e rivedere i [rifiuti automatici recenti](/docs/it/auto-mode-config#review-denials). Potete anche visualizzare e modificare le [regole del classificatore auto mode](/docs/it/auto-mode-config#edit-rules-from-permissions) dalla scheda **Auto mode** della finestra di dialogo. Quando lo eseguite mentre Claude sta rispondendo, Claude Code apre la finestra di dialogo immediatamente e applica i vostri cambiamenti a partire dalla prossima chiamata di strumento di Claude nello stesso turno. Prima della v2.1.234, Claude Code metteva in coda il comando fino al termine del turno. Alias: `/allowed-tools` |117| `/permissions` | Gestire le regole di autorizzazione, chiedi e nega per i permessi degli strumenti. Apre una finestra di dialogo interattiva dove potete visualizzare le regole per ambito, aggiungere o rimuovere regole, gestire le directory di lavoro e rivedere i [rifiuti automatici recenti](/docs/it/auto-mode-config#review-denials). Potete anche visualizzare e modificare le [regole del classificatore auto mode](/docs/it/auto-mode-config#edit-rules-from-permissions) dalla scheda **Auto mode** della finestra di dialogo. Quando lo eseguite mentre Claude sta rispondendo, Claude Code apre la finestra di dialogo immediatamente e applica i vostri cambiamenti a partire dalla prossima chiamata di strumento di Claude nello stesso turno. Prima della v2.1.234, Claude Code metteva in coda il comando fino al termine del turno. Alias: `/allowed-tools` |

118| `/plan [description]` | Entrare direttamente in plan mode dal prompt. Passate una descrizione facoltativa per entrare in plan mode e iniziare immediatamente con quel compito, ad esempio `/plan fix the auth bug` |118| `/plan [description]` | Entrare direttamente in plan mode dal prompt. Passate una descrizione facoltativa per entrare in plan mode e iniziare immediatamente con quel compito, ad esempio `/plan fix the auth bug` |

119| `/plugin [subcommand]` | Gestire i [plugin](/docs/it/plugins) di Claude Code. Eseguite senza argomento per aprire il menu dei plugin, o passate un sottocomando come `list`, `install`, `enable`, o `disable` per agire direttamente. Claude Code può attivare un plugin durante l'installazione; il [riassunto dell'installazione](/docs/it/discover-plugins#install-plugins) vi dice se lo ha fatto o se eseguire `/reload-plugins` |119| `/plugin [subcommand]` | Gestire i [plugin](/docs/it/plugins/overview) di Claude Code. Eseguite senza argomento per aprire il menu dei plugin, o passate un sottocomando come `list`, `install`, `enable`, o `disable` per agire direttamente. Claude Code può attivare un plugin durante l'installazione; il [riassunto dell'installazione](/docs/it/plugins/install#install-a-plugin) vi dice se lo ha fatto o se eseguire `/reload-plugins` |

120| `/powerup` | Scoprire le funzionalità di Claude Code attraverso lezioni interattive veloci con demo animate |120| `/powerup` | Scoprire le funzionalità di Claude Code attraverso lezioni interattive veloci con demo animate |

121| `/pr-comments [PR]` | Rimosso nella v2.1.91. Chiedete direttamente a Claude di visualizzare i commenti della pull request invece. Nelle versioni precedenti, recupera e visualizza i commenti da una pull request GitHub; rileva automaticamente il PR per il ramo corrente, o passate un URL o numero PR. Richiede la CLI `gh` |121| `/pr-comments [PR]` | Rimosso nella v2.1.91. Chiedete direttamente a Claude di visualizzare i commenti della pull request invece. Nelle versioni precedenti, recupera e visualizza i commenti da una pull request GitHub; rileva automaticamente il PR per il ramo corrente, o passate un URL o numero PR. Richiede la CLI `gh` |

122| `/privacy-settings` | Visualizzare e aggiornare le vostre impostazioni di privacy. Disponibile solo per gli abbonati ai piani Pro e Max |122| `/privacy-settings` | Visualizzare e aggiornare le vostre impostazioni di privacy. Disponibile solo per gli abbonati ai piani Pro e Max |


124| `/rate-limit-options` | Mostrare i modi per continuare a lavorare quando un limite di utilizzo claude.ai blocca una richiesta: aspettare e [continuare automaticamente quando il limite si ripristina](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset), aggiungere [crediti di utilizzo](/docs/it/costs#add-usage-credits-to-your-subscription), o aggiornare il vostro piano. Claude Code può anche aprire questo menu autonomamente quando raggiungete un limite al vostro terminale. Consultate [Disattivare la continuazione automatica](/docs/it/interactive-mode#turn-automatic-continue-off). Richiede un abbonamento claude.ai. Non appare nel menu dei comandi; digitate per intero. Le righe di attesa e continuazione richiedono Claude Code v2.1.234 o successivo |124| `/rate-limit-options` | Mostrare i modi per continuare a lavorare quando un limite di utilizzo claude.ai blocca una richiesta: aspettare e [continuare automaticamente quando il limite si ripristina](/docs/it/interactive-mode#wait-for-a-usage-limit-to-reset), aggiungere [crediti di utilizzo](/docs/it/costs#add-usage-credits-to-your-subscription), o aggiornare il vostro piano. Claude Code può anche aprire questo menu autonomamente quando raggiungete un limite al vostro terminale. Consultate [Disattivare la continuazione automatica](/docs/it/interactive-mode#turn-automatic-continue-off). Richiede un abbonamento claude.ai. Non appare nel menu dei comandi; digitate per intero. Le righe di attesa e continuazione richiedono Claude Code v2.1.234 o successivo |

125| `/recap` | Generare un riassunto di una riga della sessione corrente su richiesta. Consultate [Recap della sessione](/docs/it/interactive-mode#session-recap) per il recap automatico che appare dopo che siete stati assenti |125| `/recap` | Generare un riassunto di una riga della sessione corrente su richiesta. Consultate [Recap della sessione](/docs/it/interactive-mode#session-recap) per il recap automatico che appare dopo che siete stati assenti |

126| `/release-notes` | Visualizzare il changelog in un selettore di versione interattivo. Selezionate una versione specifica per vedere le sue note di rilascio, o scegliete di mostrare tutte le versioni. Le note appaiono nel vostro trascritto senza entrare nella conversazione che Claude vede |126| `/release-notes` | Visualizzare il changelog in un selettore di versione interattivo. Selezionate una versione specifica per vedere le sue note di rilascio, o scegliete di mostrare tutte le versioni. Le note appaiono nel vostro trascritto senza entrare nella conversazione che Claude vede |

127| `/reload-plugins [--force]` | Ricaricare tutti i [plugin](/docs/it/plugins) attivi per applicare le modifiche in sospeso senza riavviare. Segnala i conteggi per ogni componente ricaricato e contrassegna eventuali errori di caricamento. Quando il ricaricamento cambierebbe quali strumenti MCP sono caricati e invaliderebbe la cache del prompt, il comando avverte e salta a meno che non passiate `--force`. Disponibile anche in modalità non interattiva (`-p`), l'Agent SDK e l'app desktop, dove viene eseguito solo su input digitato direttamente nella sessione e non applica le modifiche del server MCP del plugin; richiede Claude Code v2.1.260 o successivo. Consultate [Applicare le modifiche del plugin senza riavviare](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) |127| `/reload-plugins [--force]` | Ricaricare tutti i [plugin](/docs/it/plugins/overview) attivi per applicare le modifiche in sospeso senza riavviare. Segnala i conteggi per ogni componente ricaricato e contrassegna eventuali errori di caricamento. Quando il ricaricamento cambierebbe quali strumenti MCP sono caricati e invaliderebbe la cache del prompt, il comando avverte e salta a meno che non passiate `--force`. Disponibile anche in modalità non interattiva (`-p`), l'Agent SDK e l'app desktop, dove viene eseguito solo su input digitato direttamente nella sessione e non applica le modifiche del server MCP del plugin; richiede Claude Code v2.1.260 o successivo. Consultate [Applicare le modifiche del plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) |

128| `/reload-skills` | Scansionare di nuovo le directory [skill](/docs/it/skills) e comandi in modo che le skill aggiunte o modificate su disco durante la sessione diventino disponibili senza riavviare. Segnala quante skill sono disponibili e quante sono state aggiunte o rimosse |128| `/reload-skills` | Scansionare di nuovo le directory [skill](/docs/it/skills) e comandi in modo che le skill aggiunte o modificate su disco durante la sessione diventino disponibili senza riavviare. Segnala quante skill sono disponibili e quante sono state aggiunte o rimosse |

129| `/remote-control` | Rendere questa sessione disponibile per [Remote Control](/docs/it/remote-control) da claude.ai. Eseguirlo mentre disconnessi stampa che Remote Control richiede un abbonamento claude.ai e vi dice come accedere; prima della v2.1.206 segnalava `Unknown command: /remote-control`. Alias: `/rc` |129| `/remote-control` | Rendere questa sessione disponibile per [Remote Control](/docs/it/remote-control) da claude.ai. Eseguirlo mentre disconnessi stampa che Remote Control richiede un abbonamento claude.ai e vi dice come accedere; prima della v2.1.206 segnalava `Unknown command: /remote-control`. Alias: `/rc` |

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

Details

110 110 

111 * Sii specifico su ciò che stai cercando111 * Sii specifico su ciò che stai cercando

112 * Usa il linguaggio del dominio dal progetto112 * Usa il linguaggio del dominio dal progetto

113 * Installa un [plugin di code intelligence](/docs/it/discover-plugins#code-intelligence) per il tuo linguaggio per dare a Claude una navigazione precisa "go to definition" e "find references"113 * Installa un [plugin di code intelligence](/docs/it/plugins/code-intelligence) per il tuo linguaggio per dare a Claude una navigazione precisa "go to definition" e "find references"

114</Tip>114</Tip>

115 115 

116***116***


329 329 

330 1. Trascina e rilascia un'immagine nella finestra di Claude Code330 1. Trascina e rilascia un'immagine nella finestra di Claude Code

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

332 3. Fornisci un percorso di immagine a Claude. Ad esempio, "Analyze this image: /path/to/your/image.png"332 3. Fornisci un percorso di immagine a Claude, ad esempio "Analyze this image: /path/to/your/image.png"

333 </Step>333 </Step>

334 334 

335 <Step title="Chiedere a Claude di analizzare l'immagine">335 <Step title="Chiedere a Claude di analizzare l'immagine">

costs.md +1 −1

Details

290 Installa plugin di intelligenza del codice per i linguaggi tipizzati290 Installa plugin di intelligenza del codice per i linguaggi tipizzati

291</h3>291</h3>

292 292 

293I [plugin di intelligenza del codice](/docs/it/discover-plugins#code-intelligence) danno a Claude una navigazione precisa dei simboli invece della ricerca basata su testo, riducendo le letture di file non necessarie quando si esplora codice sconosciuto. Una singola chiamata "vai alla definizione" sostituisce quello che altrimenti potrebbe essere un grep seguito dalla lettura di più file candidati. I server di linguaggio installati segnalano anche gli errori di tipo automaticamente dopo le modifiche, quindi Claude cattura gli errori senza eseguire un compilatore.293I [plugin di intelligenza del codice](/docs/it/plugins/code-intelligence) danno a Claude una navigazione precisa dei simboli invece della ricerca basata su testo, riducendo le letture di file non necessarie quando si esplora codice sconosciuto. Una singola chiamata "vai alla definizione" sostituisce quello che altrimenti potrebbe essere un grep seguito dalla lettura di più file candidati. I server di linguaggio installati segnalano anche gli errori di tipo automaticamente dopo le modifiche, quindi Claude cattura gli errori senza eseguire un compilatore.

294 294 

295<h3 id="offload-processing-to-hooks-and-skills">295<h3 id="offload-processing-to-hooks-and-skills">

296 Offload dell'elaborazione agli hook e alle skills296 Offload dell'elaborazione agli hook e alle skills

Details

109| Hook non si attiva mai | `matcher` è un array JSON invece di una stringa | Usa una singola stringa con `\|` per corrispondere a più strumenti, ad esempio `"Edit\|Write"`. Vedi [matcher patterns](/docs/it/hooks#matcher-patterns). |109| Hook non si attiva mai | `matcher` è un array JSON invece di una stringa | Usa una singola stringa con `\|` per corrispondere a più strumenti, ad esempio `"Edit\|Write"`. Vedi [matcher patterns](/docs/it/hooks#matcher-patterns). |

110| Hook non si attiva mai | `matcher` utilizza `,` come separatore su una versione precedente a v2.1.191 | Claude Code v2.1.191 o successivo tratta `,` come separatore di elenco come `\|`. Le versioni precedenti valutano una virgola come carattere letterale, quindi `"Edit,Write"` non corrisponde a nulla. Usa `\|` invece, o aggiorna Claude Code. |110| Hook non si attiva mai | `matcher` utilizza `,` come separatore su una versione precedente a v2.1.191 | Claude Code v2.1.191 o successivo tratta `,` come separatore di elenco come `\|`. Le versioni precedenti valutano una virgola come carattere letterale, quindi `"Edit,Write"` non corrisponde a nulla. Usa `\|` invece, o aggiorna Claude Code. |

111| Hook non si attiva mai | Il valore di `matcher` è minuscolo, ad esempio `"bash"` | La corrispondenza è sensibile alle maiuscole. I nomi degli strumenti sono capitalizzati: `Bash`, `Edit`, `Write`, `Read`. |111| Hook non si attiva mai | Il valore di `matcher` è minuscolo, ad esempio `"bash"` | La corrispondenza è sensibile alle maiuscole. I nomi degli strumenti sono capitalizzati: `Bash`, `Edit`, `Write`, `Read`. |

112| Hook non si attiva mai | Gli hooks sono definiti in un file autonomo invece di `settings.json` | Non esiste un file di hooks autonomo per la configurazione del progetto o dell'utente. Definisci gli hooks sotto la chiave `"hooks"` in `settings.json`. Solo i [plugins](/docs/it/plugins-reference#hooks) caricano un file separato `hooks/hooks.json`. Vedi [hook configuration](/docs/it/hooks). |112| Hook non si attiva mai | Gli hooks sono definiti in un file autonomo invece di `settings.json` | Non esiste un file di hooks autonomo per la configurazione del progetto o dell'utente. Definisci gli hooks sotto la chiave `"hooks"` in `settings.json`. Solo i [plugins](/docs/it/plugins/components#hooks) caricano un file separato `hooks/hooks.json`. Vedi [hook configuration](/docs/it/hooks). |

113| Permissions, hooks o env impostati globalmente vengono ignorati | La configurazione è stata aggiunta a `~/.claude.json` | `~/.claude.json` contiene lo stato dell'app e gli interruttori dell'interfaccia utente. `permissions`, `hooks` e `env` appartengono a `~/.claude/settings.json`. Questi sono due file diversi. |113| Permissions, hooks o env impostati globalmente vengono ignorati | La configurazione è stata aggiunta a `~/.claude.json` | `~/.claude.json` contiene lo stato dell'app e gli interruttori dell'interfaccia utente. `permissions`, `hooks` e `env` appartengono a `~/.claude/settings.json`. Questi sono due file diversi. |

114| Un valore di `settings.json` sembra ignorato | La stessa chiave è impostata in `settings.local.json` | `settings.local.json` sostituisce `settings.json`, e entrambi sostituiscono `~/.claude/settings.json`. Vedi [settings precedence](/docs/it/settings#settings-precedence). |114| Un valore di `settings.json` sembra ignorato | La stessa chiave è impostata in `settings.local.json` | `settings.local.json` sostituisce `settings.json`, e entrambi sostituiscono `~/.claude/settings.json`. Vedi [settings precedence](/docs/it/settings#settings-precedence). |

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

desktop.md +6 −6

Details

472 472 

473Connetti servizi esterni, aggiungi flussi di lavoro riutilizzabili, personalizza il comportamento di Claude e configura server di anteprima. Per gestire connettori, skills e plugin in un unico posto, fai clic su **Customize** nella barra laterale. La scheda [Cowork](https://claude.com/product/cowork) nell'app Desktop estrae i suoi skills, plugin e connettori da questa configurazione Customize, che si sincronizza tramite il tuo account claude.ai, non dalla directory `~/.claude` della CLI.473Connetti servizi esterni, aggiungi flussi di lavoro riutilizzabili, personalizza il comportamento di Claude e configura server di anteprima. Per gestire connettori, skills e plugin in un unico posto, fai clic su **Customize** nella barra laterale. La scheda [Cowork](https://claude.com/product/cowork) nell'app Desktop estrae i suoi skills, plugin e connettori da questa configurazione Customize, che si sincronizza tramite il tuo account claude.ai, non dalla directory `~/.claude` della CLI.

474 474 

475Claude Code carica anche gli skills e i plugin abilitati per il tuo account claude.ai nelle sessioni di terminale in cui accedi con lo stesso account. Vedi [Skills synced from claude.ai](/docs/it/skills#how-synced-skills-behave) e [Plugins synced from claude.ai](/docs/it/plugins-reference#synced-plugins).475Claude Code carica anche gli skills e i plugin abilitati per il tuo account claude.ai nelle sessioni di terminale in cui accedi con lo stesso account. Vedi [Skills synced from claude.ai](/docs/it/skills#how-synced-skills-behave) e [Plugins synced from claude.ai](/docs/it/plugins/loading#synced-plugins).

476 476 

477<h3 id="connect-external-tools">477<h3 id="connect-external-tools">

478 Connetti strumenti esterni478 Connetti strumenti esterni


490 Usa skills490 Usa skills

491</h3>491</h3>

492 492 

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

494 494 

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

496 496 


502 Installa plugin502 Installa plugin

503</h3>503</h3>

504 504 

505[Plugins](/docs/it/plugins) sono pacchetti riutilizzabili che aggiungono skills, agent, hooks, MCP servers e configurazioni LSP a Claude Code. Puoi installare plugin dall'app desktop senza usare il terminale.505[Plugins](/docs/it/plugins/overview) sono pacchetti riutilizzabili che aggiungono skills, agent, hooks, MCP servers e configurazioni LSP a Claude Code. Puoi installare plugin dall'app desktop senza usare il terminale.

506 506 

507Per le sessioni locali e [SSH](#ssh-sessions), fai clic sul pulsante **+** accanto alla casella del prompt e seleziona **Plugins** per vedere i tuoi plugin installati e i loro skills. Per aggiungere un plugin, seleziona **Add plugin** dal sottomenu per aprire il browser dei plugin, che mostra i plugin disponibili dai tuoi [marketplace](/docs/it/plugin-marketplaces) configurati incluso il marketplace ufficiale di Anthropic. Seleziona **Manage plugins** per abilitare, disabilitare o disinstallare plugin.507Per le sessioni locali e [SSH](#ssh-sessions), fai clic sul pulsante **+** accanto alla casella del prompt e seleziona **Plugins** per vedere i tuoi plugin installati e i loro skills. Per aggiungere un plugin, seleziona **Add plugin** dal sottomenu per aprire il browser dei plugin, che mostra i plugin disponibili dai tuoi [marketplace](/docs/it/plugins/overview) configurati incluso il marketplace ufficiale di Anthropic. Seleziona **Manage plugins** per abilitare, disabilitare o disinstallare plugin.

508 508 

509Puoi limitare i plugin al tuo account utente, a un progetto specifico o solo locali. Se la tua organizzazione gestisce i plugin centralmente, quei plugin sono disponibili nelle sessioni desktop nello stesso modo in cui lo sono nella CLI.509Puoi limitare i plugin al tuo account utente, a un progetto specifico o solo locali. Se la tua organizzazione gestisce i plugin centralmente, quei plugin sono disponibili nelle sessioni desktop nello stesso modo in cui lo sono nella CLI.

510 510 

511Il browser dei plugin non è disponibile nelle sessioni cloud e i plugin che installi dall'app desktop non sono disponibili per le sessioni cloud. Una sessione cloud inoltre non installa plugin che il file `.claude/settings.json` del repository dichiara, come spiega [What carries over from your setup](/docs/it/cloud-environments#what-carries-over-from-your-setup). Per usare un plugin in una sessione cloud, abilitalo per il tuo account claude.ai in modo che Claude Code lo carichi come [plugin sincronizzato](/docs/it/plugins-reference#synced-plugins). I plugin non sono disponibili nelle sessioni WSL. Per il riferimento completo dei plugin inclusa la creazione dei tuoi plugin, vedi [plugins](/docs/it/plugins).511Il browser dei plugin non è disponibile nelle sessioni cloud e i plugin che installi dall'app desktop non sono disponibili per le sessioni cloud. Una sessione cloud inoltre non installa plugin che il file `.claude/settings.json` del repository dichiara, come spiega [What carries over from your setup](/docs/it/cloud-environments#what-carries-over-from-your-setup). I plugin non sono disponibili nelle sessioni WSL. Per il riferimento completo dei plugin inclusa la creazione dei tuoi plugin, vedi [plugins](/docs/it/plugins/overview).

512 512 

513<h3 id="configure-preview-servers">513<h3 id="configure-preview-servers">

514 Configura server di anteprima514 Configura server di anteprima


1023| Modalità di autorizzazione | Tutte le modalità inclusa `dontAsk` | Manuale, Accetta modifiche, Plan e Auto. Bypass permissions appare nel selettore di modalità una volta abilitato: tramite l'interruttore Impostazioni su piani Pro e Max, o tramite la politica organizzativa su piani Team ed Enterprise |1023| Modalità di autorizzazione | Tutte le modalità inclusa `dontAsk` | Manuale, Accetta modifiche, Plan e Auto. Bypass permissions appare nel selettore di modalità una volta abilitato: tramite l'interruttore Impostazioni su piani Pro e Max, o tramite la politica organizzativa su piani Team ed Enterprise |

1024| [Provider di terze parti](/docs/it/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API di Anthropic per impostazione predefinita. Per il routing tramite gateway, vedi [connetti l'app desktop a un gateway](/docs/it/llm-gateway-connect#desktop-app). Per eseguire la scheda Code su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM self-hosted, vedi [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). |1024| [Provider di terze parti](/docs/it/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API di Anthropic per impostazione predefinita. Per il routing tramite gateway, vedi [connetti l'app desktop a un gateway](/docs/it/llm-gateway-connect#desktop-app). Per eseguire la scheda Code su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry o un gateway LLM self-hosted, vedi [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). |

1025| [MCP servers](/docs/it/mcp) | Configura nei file di impostazioni | UI Connectors per sessioni locali e SSH, o file di impostazioni |1025| [MCP servers](/docs/it/mcp) | Configura nei file di impostazioni | UI Connectors per sessioni locali e SSH, o file di impostazioni |

1026| [Plugins](/docs/it/plugins) | Comando `/plugin` | UI gestore plugin |1026| [Plugins](/docs/it/plugins/overview) | Comando `/plugin` | UI gestore plugin |

1027| @mention file | Basato su testo | Con autocomplete; sessioni locali e SSH solo |1027| @mention file | Basato su testo | Con autocomplete; sessioni locali e SSH solo |

1028| Allegati di file | Non disponibile | Immagini, PDF |1028| Allegati di file | Non disponibile | Immagini, PDF |

1029| Isolamento della sessione | Flag [`--worktree`](/docs/it/cli-reference) | Opzione **worktree** quando si avvia una sessione |1029| Isolamento della sessione | Flag [`--worktree`](/docs/it/cli-reference) | Opzione **worktree** quando si avvia una sessione |

discover-plugins.md +0 −651 deleted

File Deleted View Diff

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# Scopri e installa plugin precostruiti tramite marketplace

6 

7> Trova e installa plugin dai marketplace per estendere Claude Code con nuove skills, agenti e funzionalità.

8 

9I plugin estendono Claude Code con skills, agenti, hooks e MCP servers. I marketplace dei plugin sono cataloghi che vi aiutano a scoprire e installare queste estensioni senza doverle costruire da soli.

10 

11Potete anche abilitare i plugin su claude.ai, per voi stessi o tramite la vostra organizzazione. Claude Code sincronizza quelli nelle vostre sessioni senza un'installazione da marketplace, come [Plugin sincronizzati da claude.ai](/docs/it/plugins-reference#synced-plugins) descrive.

12 

13Cercate di creare e distribuire il vostro marketplace? Consultate [Creare e distribuire un marketplace di plugin](/docs/it/plugin-marketplaces).

14 

15<h2 id="how-marketplaces-work">

16 Come funzionano i marketplace

17</h2>

18 

19Un marketplace è un catalogo di plugin che qualcun altro ha creato e condiviso. Utilizzare un marketplace è un processo in due fasi:

20 

21<Steps>

22 <Step title="Aggiungere il marketplace">

23 Questo registra il catalogo con Claude Code in modo che possiate sfogliare ciò che è disponibile. Nessun plugin viene installato ancora.

24 </Step>

25 

26 <Step title="Installare singoli plugin">

27 Sfogliate il catalogo e installate i plugin che desiderate.

28 </Step>

29</Steps>

30 

31<h2 id="official-anthropic-marketplace">

32 Marketplace ufficiale Anthropic

33</h2>

34 

35Il marketplace ufficiale Anthropic (`claude-plugins-official`) viene aggiunto automaticamente da Claude Code la prima volta che lo avviate in modo interattivo. Se Claude Code non riesce ad aggiungerlo, ad esempio perché la vostra rete blocca il download o una [politica del marketplace](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) ha bloccato un tentativo precedente, aggiungetelo voi stessi con `/plugin marketplace add anthropics/claude-plugins-official`.

36 

37Per sfogliare ciò che è disponibile, eseguite `/plugin` e andate alla scheda **Discover**, oppure visualizzate il catalogo su [claude.com/plugins](https://claude.com/plugins).

38 

39Per installare un plugin dal marketplace ufficiale, utilizzate `/plugin install <name>@claude-plugins-official`. Ad esempio, per installare l'integrazione GitHub:

40 

41```shell theme={null}

42/plugin install github@claude-plugins-official

43```

44 

45`/plugin` apre un pannello interattivo nella CLI del terminale. Se Claude risponde che `/plugin` non è disponibile in questo ambiente, installate il plugin in un altro modo:

46 

47* **App desktop Claude**: utilizzate il [browser dei plugin](/docs/it/desktop#install-plugins).

48* **Estensione VS Code**: installate dalla [finestra di dialogo **Manage plugins**](/docs/it/vs-code#manage-plugins).

49* **Sessioni cloud**: abilitate il plugin per il vostro account claude.ai in modo che Claude Code lo carichi come [plugin sincronizzato](/docs/it/plugins-reference#synced-plugins).

50 

51Se l'installazione non riesce, abbinate il messaggio che Claude Code segnala:

52 

53* `Marketplace "claude-plugins-official" not found`: aggiungete il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprovate l'installazione.

54* Il plugin [non è trovato nel marketplace](#install-plugins): controllate il nome del plugin.

55 

56<Note>

57 Il marketplace ufficiale è curato da Anthropic e l'inclusione è a discrezione di Anthropic. I moduli di invio in-app aggiungono plugin al [marketplace della comunità](#community-marketplace), non a quello ufficiale. Per distribuire plugin in modo indipendente, [create il vostro marketplace](/docs/it/plugin-marketplaces) e condividetelo con gli utenti.

58</Note>

59 

60Il marketplace ufficiale include diverse categorie di plugin:

61 

62<h3 id="code-intelligence">

63 Code intelligence

64</h3>

65 

66I plugin di code intelligence abilitano lo strumento LSP integrato di Claude Code, dando a Claude la capacità di saltare alle definizioni, trovare riferimenti e vedere errori di tipo immediatamente dopo le modifiche. Questi plugin configurano connessioni [Language Server Protocol](https://microsoft.github.io/language-server-protocol/), la stessa tecnologia che alimenta la code intelligence di VS Code. Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), Claude Code non avvia i language server dei plugin, quindi Claude non ottiene lo strumento LSP lì.

67 

68Installate il binario del language server dalla tabella sottostante prima di utilizzare questi plugin; il plugin non lo installa per voi. Se avete già un language server installato, Claude potrebbe chiedervi di installare il plugin corrispondente quando aprite un progetto.

69 

70| Linguaggio | Plugin | Binario richiesto |

71| :--------- | :------------------ | :--------------------------- |

72| C/C++ | `clangd-lsp` | `clangd` |

73| C# | `csharp-lsp` | `csharp-ls` |

74| Go | `gopls-lsp` | `gopls` |

75| Java | `jdtls-lsp` | `jdtls` |

76| Kotlin | `kotlin-lsp` | `kotlin-language-server` |

77| Lua | `lua-lsp` | `lua-language-server` |

78| PHP | `php-lsp` | `intelephense` |

79| Python | `pyright-lsp` | `pyright-langserver` |

80| Rust | `rust-analyzer-lsp` | `rust-analyzer` |

81| Swift | `swift-lsp` | `sourcekit-lsp` |

82| TypeScript | `typescript-lsp` | `typescript-language-server` |

83 

84Potete anche [creare il vostro plugin LSP](/docs/it/plugins-reference#lsp-servers) per altri linguaggi.

85 

86<Note>

87 Se vedete `Executable not found in $PATH` nella scheda `/plugin` Errors dopo aver installato un plugin, installate il binario che la tabella [code intelligence](#code-intelligence) elenca per quel plugin.

88</Note>

89 

90<h4 id="what-claude-gains-from-code-intelligence-plugins">

91 Cosa Claude guadagna dai plugin di code intelligence

92</h4>

93 

94Una volta che un plugin di code intelligence è installato e il suo binario del language server è disponibile, Claude guadagna due capacità:

95 

96* **Diagnostica automatica**: dopo ogni modifica di file che Claude fa, il language server segnala errori e avvisi, quindi Claude vede errori di tipo, import mancanti e problemi di sintassi senza eseguire un compilatore o linter. Se Claude introduce un errore, lo nota e lo corregge nello stesso turno.

97* **Navigazione del codice**: Claude può utilizzare il language server per saltare alle definizioni, trovare riferimenti, ottenere informazioni sul tipo al passaggio del mouse, elencare simboli, trovare implementazioni e tracciare gerarchie di chiamate. Queste operazioni danno a Claude una navigazione più precisa rispetto alla ricerca basata su grep, anche se la disponibilità può variare a seconda del linguaggio e dell'ambiente.

98 

99Non è necessario configurare la diagnostica oltre all'installazione del plugin. Per leggerla voi stessi, premete **Ctrl+O** quando Claude Code mostra un indicatore come **Found 3 new diagnostic issues in 2 files**.

100 

101Se riscontrate problemi, consultate [Risoluzione dei problemi di code intelligence](#code-intelligence-issues).

102 

103<h3 id="external-integrations">

104 Integrazioni esterne

105</h3>

106 

107Questi plugin raggruppano [MCP servers](/docs/it/mcp) preconfigurati in modo che possiate connettere Claude a servizi esterni senza configurazione manuale:

108 

109* **Controllo del codice sorgente**: `github`, `gitlab`

110* **Gestione dei progetti**: `atlassian` (Jira/Confluence), `asana`, `linear`, `notion`

111* **Design**: `figma`

112* **Infrastruttura**: `vercel`, `firebase`, `supabase`

113* **Comunicazione**: `slack`

114* **Monitoraggio**: `sentry`

115 

116<h3 id="automatic-security-review">

117 Revisione automatica della sicurezza

118</h3>

119 

120Il plugin `security-guidance` esamina ogni modifica che Claude fa per individuare vulnerabilità comuni e istruisce Claude a correggere ciò che trova nella stessa sessione. Consultate [Rilevare problemi di sicurezza mentre Claude scrive il codice](/docs/it/security-guidance) per vedere cosa controlla e come aggiungere regole specifiche del progetto.

121 

122<h3 id="development-workflows">

123 Flussi di lavoro di sviluppo

124</h3>

125 

126Plugin che aggiungono skills e agenti per attività di sviluppo comuni:

127 

128* **commit-commands**: Flussi di lavoro di commit Git inclusi commit, push e creazione di PR

129* **pr-review-toolkit**: Agenti specializzati per la revisione delle pull request

130* **agent-sdk-dev**: Strumenti per la costruzione con Claude Agent SDK

131* **plugin-dev**: Toolkit per la creazione dei vostri plugin

132 

133<h3 id="output-styles">

134 Stili di output

135</h3>

136 

137Personalizzate come Claude risponde:

138 

139* **explanatory-output-style**: Approfondimenti educativi sulle scelte di implementazione

140* **learning-output-style**: Modalità di apprendimento interattivo per la costruzione di competenze

141 

142<h2 id="community-marketplace">

143 Marketplace della comunità

144</h2>

145 

146Il marketplace della comunità su [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) ospita plugin di terze parti che hanno superato la convalida automatica e lo screening di sicurezza di Anthropic. Ogni plugin è fissato a uno specifico commit SHA nel catalogo. A differenza del marketplace ufficiale, lo aggiungete manualmente:

147 

148```shell theme={null}

149/plugin marketplace add anthropics/claude-plugins-community

150```

151 

152Quindi installate i plugin da esso utilizzando il nome del marketplace `claude-community`:

153 

154```shell theme={null}

155/plugin install <plugin-name>@claude-community

156```

157 

158Per inviare il vostro plugin al marketplace della comunità, consultate [Inviare il vostro plugin al marketplace della comunità](/docs/it/plugins#submit-your-plugin-to-the-community-marketplace) nella guida di creazione dei plugin.

159 

160<h2 id="try-it-add-the-demo-marketplace">

161 Provate: aggiungere il marketplace demo

162</h2>

163 

164Anthropic mantiene anche un [marketplace di plugin demo](https://github.com/anthropics/claude-code/tree/main/plugins) (`claude-code-plugins`) con plugin di esempio che mostrano cosa è possibile con il sistema di plugin. A differenza del marketplace ufficiale, dovete aggiungere questo manualmente.

165 

166<Steps>

167 <Step title="Aggiungere il marketplace">

168 Da Claude Code, eseguite il comando `plugin marketplace add` per il marketplace `anthropics/claude-code`:

169 

170 ```shell theme={null}

171 /plugin marketplace add anthropics/claude-code

172 ```

173 

174 Questo scarica il catalogo del marketplace e rende i suoi plugin disponibili per voi.

175 </Step>

176 

177 <Step title="Sfogliare i plugin disponibili">

178 Eseguite `/plugin` per aprire il gestore dei plugin. Questo apre un'interfaccia a schede che potete scorrere utilizzando **Tab**, o **Shift+Tab** per andare indietro:

179 

180 * **Discover**: sfogliate i plugin disponibili da tutti i vostri marketplace

181 * **Installed**: visualizzate e gestite i vostri plugin installati

182 * **Marketplaces**: aggiungete, rimuovete o aggiornate i vostri marketplace aggiunti

183 * **Errors**: visualizzate eventuali errori di caricamento dei plugin

184 * **Stats**: consultate [quanto costa ogni vostra skill in contesto e con quale frequenza viene utilizzata](/docs/it/skills#find-unused-skills), nelle sessioni in cui `/skill-doctor` è disponibile

185 

186 Andate alla scheda **Discover** per vedere i plugin dal marketplace che avete appena aggiunto. Quando l'amministratore ha inserito il marketplace nella lista consentita tramite l'impostazione gestita [`pluginSuggestionMarketplaces`](/docs/it/settings-reference#pluginsuggestionmarketplaces), i plugin contrassegnati come rilevanti per la vostra directory di lavoro corrente sono fissati in alto con un'etichetta **suggested for this directory**.

187 </Step>

188 

189 <Step title="Installare un plugin">

190 Selezionate un plugin per visualizzare i suoi dettagli. Il riquadro dei dettagli mostra cosa contiene il plugin e quanto costa:

191 

192 * Una stima di **Context cost** in modo da poter vedere quanti token il plugin aggiungerà alla vostra [finestra di contesto](/docs/it/features-overview#understand-context-costs) ad ogni turno

193 * La data di **Last updated** del plugin

194 * Una sezione **Will install** che elenca i comandi, gli agenti, le skills, gli hook e i server MCP e LSP del plugin, in modo che possiate rivedere esattamente cosa aggiunge prima di installare

195 

196 Non tutti i plugin forniscono i dati dietro questi campi. Per i plugin da marketplace locali o personalizzati, potreste non vedere le righe **Context cost** e **Last updated**, e la sezione **Will install** potrebbe mostrare **Components will be discovered at installation** invece.

197 

198 Scegliete un ambito di installazione:

199 

200 * **User scope**: installate per voi stessi in tutti i progetti

201 * **Project scope**: installate per tutti i collaboratori su questo repository

202 * **Local scope**: installate per voi stessi solo in questo repository

203 

204 Ad esempio, selezionate **commit-commands**, un plugin che aggiunge skills di flusso di lavoro git, e installatelo nel vostro ambito utente.

205 

206 Potete anche avviare l'installazione dalla riga di comando:

207 

208 ```shell theme={null}

209 /plugin install commit-commands@claude-code-plugins

210 ```

211 

212 Consultate [File di impostazioni](/docs/it/settings#where-settings-live) per saperne di più sugli ambiti.

213 </Step>

214 

215 <Step title="Utilizzare il vostro nuovo plugin">

216 Se il riepilogo dell'installazione riporta `Run /reload-plugins to activate.`, Claude Code esegue quindi quel ricaricamento per voi. Se il ricaricamento avverte che il vostro prossimo messaggio rileggerebbe la conversazione, eseguite `/reload-plugins --force` per attivare il plugin.

217 

218 Le skills dei plugin sono nello spazio dei nomi del nome del plugin, quindi **commit-commands** fornisce skills come `/commit-commands:commit`.

219 

220 Provate eseguendo una modifica a un file e eseguendo:

221 

222 ```shell theme={null}

223 /commit-commands:commit

224 ```

225 

226 Questo mette in stage le vostre modifiche, genera un messaggio di commit e crea il commit.

227 

228 Ogni plugin funziona diversamente. Controllate i dettagli del plugin nella scheda **Discover** per vedere i comandi e le skills che fornisce, oppure visitate la sua homepage per indicazioni sull'utilizzo.

229 </Step>

230</Steps>

231 

232<h2 id="add-marketplaces">

233 Aggiungere marketplace

234</h2>

235 

236Utilizzate il comando `/plugin marketplace add` per aggiungere marketplace da diverse fonti.

237 

238<Tip>

239 **Scorciatoie**: Potete utilizzare `/plugin market` invece di `/plugin marketplace` e `rm` invece di `remove`.

240</Tip>

241 

242* **Repository GitHub**: formato `owner/repo`, ad esempio `anthropics/claude-code`

243* **URL Git**: qualsiasi URL di repository git, inclusi GitLab, Bitbucket e server self-hosted

244* **Percorsi locali**: directory o percorsi diretti ai file `marketplace.json`

245* **URL remoti**: URL diretti ai file `marketplace.json` ospitati

246* **claude.ai**: marketplace ospitati su claude.ai per il vostro account, come la libreria di plugin della vostra organizzazione, che [aggiungete per nome dalla scheda **Marketplaces** o dalla vostra shell](#add-from-claude-ai) piuttosto che per fonte

247 

248<h3 id="add-from-github">

249 Aggiungere da GitHub

250</h3>

251 

252Aggiungete un repository GitHub che contiene un file `.claude-plugin/marketplace.json` utilizzando il formato `owner/repo`, dove `owner` è il nome utente GitHub o l'organizzazione e `repo` è il nome del repository.

253 

254Ad esempio, `anthropics/claude-code` si riferisce al repository `claude-code` di proprietà di `anthropics`:

255 

256```shell theme={null}

257/plugin marketplace add anthropics/claude-code

258```

259 

260<h3 id="add-from-other-git-hosts">

261 Aggiungere da altri host Git

262</h3>

263 

264Aggiungete un repository git marketplace fornendo l'URL completo. Per un URL `https://`, se includere il suffisso `.git` dipende dall'host:

265 

266* **`github.com` e `gitlab.com`**: Claude Code riconosce un URL di repository con o senza il suffisso `.git` e lo clona. L'aggiunta di un URL `gitlab.com` senza il suffisso richiede Claude Code v2.1.232 o versioni successive. Prima della v2.1.232, Claude Code lo trattava come un collegamento diretto a un file `marketplace.json` ospitato.

267* **Azure DevOps**: omettete il suffisso. Claude Code clona qualsiasi URL il cui percorso contiene `/_git/`. Se aggiungete `.git` a un percorso `/_git/`, il clone fallisce.

268* **Ogni altro host, inclusi server GitLab auto-gestiti**: includete il suffisso `.git` in modo che Claude Code cloni il repository piuttosto che trattare l'URL come un collegamento diretto a un file `marketplace.json` ospitato. Per un host i cui URL di clone non portano il suffisso, come AWS CodeCommit, aggiungete il marketplace come voce git in [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces). Claude Code clona una voce git indipendentemente dal fatto che il suo URL termini con `.git`.

269 

270Claude Code clona anche un URL `gitlab.com` con sottogruppi annidati, come `https://gitlab.com/group/subgroup/project`.

271 

272Includete il prefisso `https://`. Claude Code v2.1.196 e versioni successive rifiutano un host digitato senza di esso, come `gitlab.com/company/plugins.git`, come una scorciatoia GitHub `owner/repo` non valida, e l'errore vi dice di aggiungere il prefisso. Le versioni precedenti lo leggono male come un percorso di repository GitHub e falliscono al momento del clone.

273 

274Utilizzando HTTPS:

275 

276```shell theme={null}

277/plugin marketplace add https://gitlab.com/company/plugins.git

278```

279 

280Utilizzando SSH:

281 

282```shell theme={null}

283/plugin marketplace add git@gitlab.com:company/plugins.git

284```

285 

286Claude Code clona un indirizzo SSH indipendentemente dal fatto che termini con `.git`.

287 

288Per aggiungere un branch o tag specifico, aggiungete `#` seguito dal ref:

289 

290```shell theme={null}

291/plugin marketplace add https://gitlab.com/company/plugins.git#v1.0.0

292```

293 

294<h3 id="add-from-local-paths">

295 Aggiungere da percorsi locali

296</h3>

297 

298Aggiungete una directory locale che contiene un file `.claude-plugin/marketplace.json`:

299 

300```shell theme={null}

301/plugin marketplace add ./my-marketplace

302```

303 

304Potete anche aggiungere un percorso diretto a un file `marketplace.json`:

305 

306```shell theme={null}

307/plugin marketplace add ./path/to/marketplace.json

308```

309 

310<h3 id="add-from-remote-urls">

311 Aggiungere da URL remoti

312</h3>

313 

314Aggiungete un file `marketplace.json` remoto tramite URL:

315 

316```shell theme={null}

317/plugin marketplace add https://example.com/marketplace.json

318```

319 

320<Note>

321 I marketplace basati su URL hanno alcune limitazioni rispetto ai marketplace basati su Git. Se riscontrate errori durante l'installazione di plugin da un marketplace basato su URL, consultate [Risoluzione dei problemi](/docs/it/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).

322</Note>

323 

324<h3 id="add-from-claude-ai">

325 Aggiungere da claude.ai

326</h3>

327 

328Nelle sessioni di terminal in cui [i plugin si sincronizzano dal vostro account claude.ai](/docs/it/plugins-reference#synced-plugins), claude.ai può anche elencare i marketplace per voi, come la libreria di plugin della vostra organizzazione e i vostri caricamenti su claude.ai. `claude plugin marketplace list` li stampa in una sezione `From claude.ai:`, e la scheda **Marketplaces** di `/plugin` li elenca. Selezionatene uno lì per aggiungerlo. L'aggiunta di un marketplace da claude.ai richiede Claude Code v2.1.273 o versioni successive.

329 

330Per aggiungerne uno dalla vostra shell, eseguite `claude plugin marketplace add` con il flag `--claudeai` e il nome mostrato nell'elenco:

331 

332```bash theme={null}

333claude plugin marketplace add --claudeai claudeai-organization-library

334```

335 

336Claude Code registra il marketplace con un nome locale che inizia con `claudeai-`, derivato dal nome con cui claude.ai lo elenca: un marketplace elencato come "Organization library" si registra come `claudeai-organization-library`. Installate i suoi plugin con quel nome, ad esempio con `claude plugin install <plugin>@claudeai-organization-library`.

337 

338Se vi disconnettete o vi connettete con un account diverso, il marketplace rimane configurato ma non mostra plugin, e i plugin che avete già installato da esso continuano a caricarsi.

339 

340La sezione `From claude.ai:` può anche elencare marketplace basati su git condivisi tramite claude.ai. Li aggiungete con il comando ordinario `marketplace add`, utilizzando la fonte che l'elenco stampa.

341 

342<h2 id="install-plugins">

343 Installare plugin

344</h2>

345 

346Una volta aggiunti i marketplace, potete installare un plugin per nome. Per un marketplace che non avete ancora aggiunto, potete invece [aggiungerlo e installare in un unico comando](#add-a-marketplace-and-install-in-one-command).

347 

348Per installare per nome:

349 

350```shell theme={null}

351/plugin install plugin-name@marketplace-name

352```

353 

354Il comando apre i dettagli di quel plugin, dove scegliete un [ambito di installazione](/docs/it/settings#where-settings-live). Vedrete le stesse scelte quando eseguite `/plugin`, andate alla scheda **Discover** e premete **Enter** su un plugin:

355 

356* **User scope**: installate per voi stessi in tutti i progetti

357* **Project scope**: installate per tutti i collaboratori su questo repository, che aggiunge il plugin a `.claude/settings.json`

358* **Local scope**: installate per voi stessi solo in questo repository, non condiviso con i collaboratori

359 

360Per installare senza un passaggio interattivo, utilizzate il comando shell [`claude plugin install`](/docs/it/plugins-reference#plugin-install), che installa nell'ambito utente a meno che non passiate `--scope`. Per un plugin con una [fonte `command`](/docs/it/plugin-marketplaces#how-users-accept-the-command), passate `--yes` per accettare il comando che visualizza.

361 

362Potete anche vedere plugin con ambito **managed**. Questi sono installati dagli amministratori tramite [impostazioni gestite](/docs/it/managed-settings) e non possono essere modificati.

363 

364Claude Code cerca il plugin nella sua copia locale del catalogo del marketplace. Il modo in cui nominate il plugin controlla se Claude Code aggiorna prima quella copia:

365 

366* **Con un nome di marketplace**: quando installate `plugin-name@marketplace-name`, in una sessione o con `claude plugin install`, Claude Code aggiorna quel marketplace prima della ricerca. Claude Code esegue l'aggiornamento anche se avete disattivato [l'aggiornamento automatico](#configure-auto-updates) per il marketplace o impostato `DISABLE_AUTOUPDATER`. Prima della v2.1.232, Claude Code non aggiornava il marketplace prima della ricerca. Claude Code salta questo aggiornamento quando:

367 * Il marketplace non è stato [aggiunto da GitHub, un altro host Git, un URL remoto](#add-marketplaces), o [claude.ai](#add-from-claude-ai).

368 * Una [directory seed](/docs/it/plugin-marketplaces#pre-populate-plugins-for-containers) fornisce il marketplace.

369 * Claude Code ha aggiornato il marketplace negli ultimi 30 secondi.

370 * Avete impostato [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/it/env-vars).

371 * [Le impostazioni gestite](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) bloccano il marketplace, nel qual caso Claude Code rifiuta anche l'installazione.

372* **Solo nome del plugin**: quando eseguite `/plugin install plugin-name` in una sessione, Claude Code aggiorna solo i marketplace che [aggiorna anche in background](#configure-auto-updates), e solo dopo che la ricerca non ha avuto successo. Quando eseguite `claude plugin install plugin-name`, Claude Code legge i cataloghi memorizzati nella cache senza aggiornare. Per installare un plugin pubblicato dopo il vostro ultimo aggiornamento, eseguite `/plugin marketplace update <marketplace-name>` in una sessione o [`claude plugin marketplace update <marketplace-name>`](/docs/it/plugin-marketplaces#plugin-marketplace-update) nella vostra shell, quindi riprovate l'installazione.

373 

374Se l'aggiornamento prima di un'installazione denominata non riesce, ad esempio perché siete offline, Claude Code cerca il plugin nel catalogo memorizzato nella cache comunque. `claude plugin install` segnala `marketplace not refreshed` nel suo messaggio di successo, e `/plugin install` mostra l'errore sopra i dettagli del plugin o nel suo messaggio di non trovato.

375 

376Quando installate dall'interfaccia `/plugin`, il riepilogo dell'installazione vi dice se il plugin è attivo nella vostra sessione corrente:

377 

378* `Plugin is now active.`: Claude Code ha attivato il plugin come parte dell'installazione.

379* `Run /reload-plugins to activate.`: il plugin non è ancora attivo, perché attivarlo [invaliderebbe la cache del prompt](/docs/it/prompt-caching#enabling-or-disabling-a-plugin) o perché il tentativo di attivazione non è riuscito. Claude Code quindi esegue `/reload-plugins` per voi. Se quel ricaricamento avverte sulla cache del prompt, eseguite `/reload-plugins --force` per [attivare il plugin comunque](#apply-plugin-changes-without-restarting).

380* Se il plugin non riesce a caricarsi, il riepilogo segnala l'errore e la scheda **Errors** di `/plugin` mostra il dettaglio.

381 

382Prima della v2.1.221, nessuna installazione aveva effetto nella sessione corrente finché non eseguivate `/reload-plugins` o riavviavate.

383 

384Il comando shell `claude plugin install` non viene eseguito in una sessione, quindi Claude Code carica i plugin che installa la prossima volta che avviate Claude Code, o quando eseguite `/reload-plugins` in una sessione già aperta.

385 

386<Warning>

387 Assicuratevi di fidarvi di un plugin prima di installarlo. Anthropic non controlla quali MCP server, file o altro software sono inclusi nei plugin e non può verificare che funzionino come previsto. Controllate la homepage di ogni plugin per ulteriori informazioni.

388</Warning>

389 

390<h3 id="add-a-marketplace-and-install-in-one-command">

391 Aggiungere un marketplace e installare in un unico comando

392</h3>

393 

394Per installare un plugin da un marketplace che non avete ancora aggiunto, nominate la fonte del marketplace con `--marketplace`. Richiede Claude Code v2.1.275 o successivo.

395 

396```shell theme={null}

397/plugin install quality-review-plugin --marketplace your-org/plugins

398```

399 

400La fonte assume [le stesse forme di `/plugin marketplace add`](#add-marketplaces), come GitHub `owner/repo`, un URL git o un percorso locale, tranne che non può contenere spazi. Fornite il nome del plugin senza un suffisso `@marketplace`.

401 

402Claude Code mostra la fonte che ha risolto e vi chiede di confermare prima di aggiungere il marketplace. Rifiutare annulla l'installazione e non aggiunge nulla. Una volta aggiunto il marketplace, i dettagli del plugin si aprono e scegliete un [ambito di installazione](/docs/it/settings#where-settings-live). Se la fonte corrisponde a un marketplace che avete già aggiunto, Claude Code salta la conferma e apre i dettagli del plugin in quel marketplace.

403 

404<h2 id="manage-installed-plugins">

405 Gestire i plugin installati

406</h2>

407 

408Eseguite `/plugin` e andate alla scheda **Installed** per visualizzare, abilitare, disabilitare o disinstallare i vostri plugin. L'elenco è raggruppato per ambito e ordinato in modo che vediate prima i problemi: i plugin con errori di caricamento o dipendenze non risolte appaiono in alto, seguiti dai vostri preferiti, con i plugin disabilitati ripiegati dietro un'intestazione compressa in fondo.

409 

410Dall'elenco potete:

411 

412* premere `f` per contrassegnare come preferito o rimuovere il contrassegno dal plugin selezionato

413* digitare per filtrare per nome o descrizione del plugin

414* premere Enter per aprire la vista dettagli di un plugin e abilitare, disabilitare o disinstallarlo

415 

416Claude Code elenca anche i [plugin sincronizzati dal vostro account claude.ai](/docs/it/plugins-reference#synced-plugins) nella scheda **Installed**, con `synced` come loro fonte. Potete abilitare o disabilitare uno lì a meno che la vostra organizzazione non lo abbia contrassegnato come obbligatorio. Per rimuoverne uno, disattivatelo su claude.ai. I plugin sincronizzati appaiono nelle sessioni di terminale su Claude Code v2.1.273 o versioni successive.

417 

418Quando disinstallate un plugin che il `.claude/settings.json` di un progetto abilita, Claude Code chiede quale ambito intendete: disabilitarlo solo per voi, il che scrive un override nel vostro `.claude/settings.local.json` e lascia il plugin installato per il progetto, oppure disinstallarlo per tutti, il che lo rimuove dal `.claude/settings.json` condiviso.

419 

420La vista dettagli mostra i componenti che il plugin contribuisce: comandi, skills, agenti, hooks, server MCP e server LSP. Lo stesso inventario è disponibile dalla riga di comando con `claude plugin details`.

421 

422Claude Code elenca anche i plugin del marketplace che avete installato voi stessi ma non avete utilizzato negli ultimi due settimane, in un arco di almeno 10 sessioni, sotto un'intestazione **Not used recently** nella scheda **Installed**. La vista dettagli mostra una riga **Last used** per ogni plugin. Utilizzate questi elementi per trovare i plugin che aggiungono ancora costi di avvio e contesto anche se non li utilizzate più, quindi disabilitateli o disinstallateli.

423 

424Due tipi di plugin non vengono mai elencati come inutilizzati:

425 

426* plugin che la vostra organizzazione gestisce o che caricate con `--plugin-dir`

427* plugin che contribuiscono un tema, uno stile di output, un monitor o un workflow, poiché forniscono valore senza un'invocazione da tracciare

428 

429L'intestazione **Not used recently** e la riga **Last used** sono entrambe nascoste quando la vostra organizzazione limita i marketplace con [`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces).

430 

431Un [language server](/docs/it/plugins#add-lsp-servers-to-your-plugin) di un plugin conta come utilizzato quando fornisce diagnostica o risponde a una richiesta di navigazione del codice, quindi un plugin LSP il cui server è attivo nelle vostre sessioni non viene elencato come inutilizzato. Prima di v2.1.203, l'attività del language server non poteva essere conteggiata come utilizzo, quindi i plugin che contribuiscono un server LSP erano esenti dal gruppo interamente, allo stesso modo in cui i plugin di tema e stile di output lo sono ancora.

432 

433La prima sessione su una versione che conta l'attività del language server reimposta anche il record di utilizzo di ogni plugin LSP che non aveva ancora registrato alcun utilizzo, quindi Claude Code non giudica un plugin che avete installato in precedenza come inutilizzato in base ai dati registrati prima che l'attività del suo server fosse tracciata.

434 

435Quando installate un plugin che dichiara dipendenze, l'output dell'installazione elenca quali dipendenze sono state installate automaticamente insieme ad esso.

436 

437Potete anche gestire i plugin con comandi diretti:

438 

439* Quando eseguite `/plugin disable`, `/plugin enable` o `/plugin uninstall`, Claude Code apre il pannello dei plugin per applicare la modifica e lo lascia aperto. Premete **Esc** per chiudere il pannello prima di digitare un altro comando. [Applicare le modifiche dei plugin senza riavviare](#apply-plugin-changes-without-restarting) descrive quando la modifica ha effetto nella vostra sessione.

440* Per gli script, utilizzate invece i comandi shell `claude plugin`, che non aprono il pannello.

441 

442Elencate i plugin installati senza aprire il menu:

443 

444```shell theme={null}

445/plugin list

446```

447 

448Passate `--enabled` o `--disabled` per mostrare solo i plugin in quello stato.

449 

450Disabilitate un plugin senza disinstallarlo:

451 

452```shell theme={null}

453/plugin disable plugin-name@marketplace-name

454```

455 

456Riabilitate un plugin disabilitato:

457 

458```shell theme={null}

459/plugin enable plugin-name@marketplace-name

460```

461 

462In questi identificatori, `plugin-name` è il `name` del plugin nella [voce del marketplace](/docs/it/plugin-marketplaces#plugin-entries), che può differire dal `name` nel `plugin.json` del plugin stesso.

463 

464A partire da Claude Code v2.1.195, **Enable** e **Disable** nell'interfaccia `/plugin` funzionano per i plugin i cui due nomi differiscono, e `/plugin enable` e `/plugin disable` accettano entrambi i nomi. Quando disabilitate un tale plugin in una versione precedente, Claude Code segnala `already disabled` e lo lascia abilitato.

465 

466Rimuovete completamente un plugin:

467 

468```shell theme={null}

469/plugin uninstall plugin-name@marketplace-name

470```

471 

472L'opzione `--scope` vi consente di indirizzare un ambito specifico con comandi CLI:

473 

474```shell theme={null}

475claude plugin install formatter@your-org --scope project

476claude plugin uninstall formatter@your-org --scope project

477```

478 

479<h3 id="apply-plugin-changes-without-restarting">

480 Applicare le modifiche dei plugin senza riavviare

481</h3>

482 

483Quando chiudete il menu `/plugin`, Claude Code esegue `/reload-plugins` per voi per applicare le modifiche che avete apportato, come l'installazione, l'abilitazione, la disabilitazione e la disinstallazione dei plugin. Se il ricaricamento invaliderebbe la [cache del prompt](/docs/it/prompt-caching#enabling-or-disabling-a-plugin), avvisa e lascia le modifiche in sospeso; eseguite `/reload-plugins --force` per applicarle comunque. Se Claude sta ancora rispondendo quando chiudete il menu, il ricaricamento viene eseguito dopo che la risposta è terminata.

484 

485Per le modifiche dei plugin che avvengono al di fuori del menu, eseguite `/reload-plugins` voi stessi. Queste modifiche includono:

486 

487* Un comando `claude plugin` che avete eseguito in un altro terminale

488* Modifiche a un plugin che avete caricato con [`--plugin-dir`](/docs/it/plugins#test-your-plugins-locally) mentre lo sviluppate

489* Un plugin [aggiornamento automatico](#configure-auto-updates) la cui notifica vi chiede di ricaricare

490* Una [sincronizzazione dal vostro account claude.ai](/docs/it/plugins-reference#synced-plugins) che ha aggiunto, aggiornato o rimosso un plugin e ha mostrato una notifica che vi chiede di ricaricare

491* Una modifica in una cartella [`--plugin-dir`](/docs/it/plugins#test-your-plugins-locally) che Claude Code ha mantenuto perché applicarla invaliderebbe la cache del prompt

492 

493Prima di v2.1.268, i plugin che avete abilitato, disabilitato o disinstallato nel menu, e le installazioni che non si sono attivate durante l'installazione, rimanevano in sospeso fino a quando non eseguivate `/reload-plugins`.

494 

495`/reload-plugins` viene eseguito anche in sessioni senza un terminale interattivo, come l'app desktop, l'Agent SDK e la [modalità non interattiva](/docs/it/headless) con `-p`. Richiede Claude Code v2.1.260 o versioni successive. Due limiti si applicano in quelle sessioni:

496 

497* Il comando viene eseguito solo quando lo digitate direttamente nella sessione, ad esempio nel prompt `-p` o nella casella di prompt dell'app desktop. Quando lo inviate tramite una connessione remota, ad esempio [Remote Control](/docs/it/remote-control) o un messaggio di chat inoltrato, il comando rifiuta senza ricaricare nulla.

498* Il ricaricamento non connette o disconnette i server MCP dei plugin. Quelle modifiche avranno effetto nella vostra prossima sessione.

499 

500Claude Code ricarica tutti i plugin attivi e mostra i conteggi per i plugin, le skills, gli agenti, gli hooks, i server MCP dei plugin e i server LSP dei plugin, omettendo il conteggio dei server MCP dei plugin in una sessione senza un terminale interattivo. Nel conteggio delle skills, Claude Code include ogni skill che un plugin fornisce: sia le sue voci `commands/` che le sue skills `SKILL.md`. Prima di v2.1.246, Claude Code conteggiava solo le voci `commands/`, quindi poteva ricaricare le skills `SKILL.md` di un plugin e comunque segnalare `0 skills` nel riepilogo.

501 

502Il ricaricamento ha un costo in token sulla richiesta successiva: i componenti appena caricati si annunciano nel contenuto aggiunto alla conversazione, mentre la cronologia esistente continua a leggere dalla cache del prompt. Un plugin che fornisce server MCP costa di più quando i suoi strumenti non sono differiti dalla [ricerca degli strumenti](/docs/it/mcp#scale-with-mcp-tool-search): il cambiamento invalida la cache e la richiesta successiva rilegge l'intera conversazione. Consultate [abilitazione o disabilitazione di un plugin](/docs/it/prompt-caching#enabling-or-disabling-a-plugin) per i dettagli.

503 

504<h2 id="manage-marketplaces">

505 Gestire i marketplace

506</h2>

507 

508Potete gestire i marketplace tramite l'interfaccia interattiva `/plugin` o con comandi CLI.

509 

510<h3 id="use-the-interactive-interface">

511 Utilizzare l'interfaccia interattiva

512</h3>

513 

514Eseguite `/plugin` e andate alla scheda **Marketplaces** per:

515 

516* Visualizzare tutti i vostri marketplace aggiunti con le loro fonti e stato

517* Aggiungere nuovi marketplace

518* Aggiornare gli elenchi dei marketplace per recuperare i plugin più recenti

519* Rimuovere i marketplace di cui non avete più bisogno

520 

521<h3 id="use-cli-commands">

522 Utilizzare comandi CLI

523</h3>

524 

525Potete anche gestire i marketplace con comandi diretti.

526 

527Elencate tutti i marketplace configurati:

528 

529```shell theme={null}

530/plugin marketplace list

531```

532 

533Aggiornate gli elenchi dei plugin da un marketplace:

534 

535```shell theme={null}

536/plugin marketplace update marketplace-name

537```

538 

539Rimuovete un marketplace:

540 

541```shell theme={null}

542/plugin marketplace remove marketplace-name

543```

544 

545<Warning>

546 La rimozione di un marketplace disinstallerà tutti i plugin che avete installato da esso.

547</Warning>

548 

549<h3 id="configure-auto-updates">

550 Configurare gli aggiornamenti automatici

551</h3>

552 

553Claude Code può aggiornare automaticamente i marketplace e i loro plugin installati in background dopo l'avvio. Quando l'aggiornamento automatico è abilitato per un marketplace, Claude Code aggiorna i dati del marketplace e aggiorna i plugin installati alle loro versioni più recenti su disco.

554 

555Claude Code verifica gli aggiornamenti del marketplace e dei plugin dopo l'avvio della sessione, con un ritardo casuale fino a dieci minuti, quindi la sessione in esecuzione continua a utilizzare le versioni caricate all'avvio. Se sono stati aggiornati plugin, vedrete una notifica che vi chiede di eseguire `/reload-plugins`, oppure le nuove versioni si caricano al prossimo avvio.

556 

557L'aggiornamento automatico esclude anche un plugin la cui voce del marketplace dichiara un `headersHelper`: Claude Code [non esegue il comando né scarica l'archivio](/docs/it/plugin-marketplaces#installs-and-updates-that-refuse-the-command-instead-of-asking) su quel percorso; quella sezione dice quando Claude Code elenca il plugin nella scheda Errors di `/plugin` in modo che possiate aggiornarlo dalla sua vista.

558 

559Claude Code aggiorna i plugin che hanno una [fonte `command`](/docs/it/plugin-marketplaces#command-sources) secondo una cadenza separata dall'impostazione di aggiornamento automatico del marketplace e da `DISABLE_AUTOUPDATER`. Invece, [riesegue il comando una volta per sessione](/docs/it/plugin-marketplaces#when-claude-code-re-runs-the-command) e installa l'output come nuova versione del plugin quando il suo [hash](/docs/it/plugins-reference#version-management) è cambiato.

560 

561Attivate/disattivate l'aggiornamento automatico per singoli marketplace tramite l'interfaccia utente:

562 

5631. Eseguite `/plugin` per aprire il gestore dei plugin

5642. Selezionate **Marketplaces**

5653. Scegliete un marketplace dall'elenco

5664. Selezionate **Enable auto-update** o **Disable auto-update**

567 

568`claude-plugins-official`, la maggior parte degli altri marketplace ufficiali Anthropic e [marketplace aggiunti da claude.ai](#add-from-claude-ai) hanno l'aggiornamento automatico abilitato per impostazione predefinita. I marketplace di terze parti e di sviluppo locale hanno l'aggiornamento automatico disabilitato per impostazione predefinita.

569 

570Gli amministratori possono anche impostare `"autoUpdate": true` su ogni voce [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces) nelle impostazioni gestite per abilitare l'aggiornamento automatico per un marketplace dell'organizzazione senza richiedere a ogni utente di attivarlo.

571 

572Per disabilitare gli aggiornamenti automatici per Claude Code e per i plugin recuperati dai marketplace, impostate la variabile di ambiente `DISABLE_AUTOUPDATER`. I plugin con una [fonte `command`](/docs/it/plugin-marketplaces#command-sources) seguono la loro propria risoluzione una volta per sessione. Consultate [Aggiornamenti automatici](/docs/it/setup#auto-updates) per i dettagli.

573 

574Per mantenere gli aggiornamenti automatici dei plugin abilitati mentre disabilitate gli aggiornamenti di Claude Code, impostate `FORCE_AUTOUPDATE_PLUGINS=1` insieme a `DISABLE_AUTOUPDATER`:

575 

576```bash theme={null}

577export DISABLE_AUTOUPDATER=1

578export FORCE_AUTOUPDATE_PLUGINS=1

579```

580 

581<h2 id="configure-team-marketplaces">

582 Configurare i marketplace del team

583</h2>

584 

585Gli amministratori del team possono configurare l'installazione automatica del marketplace per i progetti aggiungendo la configurazione del marketplace a `.claude/settings.json`. Una volta che un membro del team [si fida della cartella del repository](/docs/it/permissions#what-runs-before-you-trust-a-folder), Claude Code aggiunge questi marketplace senza un ulteriore prompt.

586 

587A partire da Claude Code v2.1.195, l'aggiunta del marketplace non installa i plugin che provengono da una fonte esterna, su qualsiasi percorso che carica i plugin. Un plugin che solo il file `.claude/settings.json` del progetto abilita, e che proviene da una fonte esterna come un repository GitHub o un pacchetto npm, non si carica fino a quando il membro del team non lo installa. Fino ad allora, Claude Code segnala il plugin come non installato e mostra il comando `claude plugin install` da eseguire.

588 

589Aggiungete `extraKnownMarketplaces` al file `.claude/settings.json` del vostro progetto:

590 

591```json theme={null}

592{

593 "extraKnownMarketplaces": {

594 "my-team-tools": {

595 "source": {

596 "source": "github",

597 "repo": "your-org/claude-plugins"

598 }

599 }

600 }

601}

602```

603 

604Per le opzioni di configurazione complete incluse `extraKnownMarketplaces` e `enabledPlugins`, consultate [Impostazioni dei plugin](/docs/it/settings-reference#plugin-settings).

605 

606<h2 id="security">

607 Sicurezza

608</h2>

609 

610I plugin e i marketplace sono componenti altamente affidabili che possono eseguire codice arbitrario sulla vostra macchina con i vostri privilegi utente. Installate solo plugin e aggiungete marketplace da fonti di cui vi fidate. Le organizzazioni possono limitare quali marketplace gli utenti sono autorizzati ad aggiungere utilizzando [restrizioni gestite dei marketplace](/docs/it/plugin-marketplaces#managed-marketplace-restrictions).

611 

612<h2 id="troubleshooting">

613 Risoluzione dei problemi

614</h2>

615 

616<h3 id="/plugin-command-not-recognized">

617 Comando /plugin non riconosciuto

618</h3>

619 

620Se vedete "unknown command" o il comando `/plugin` non appare:

621 

6221. **Controllate la vostra versione**: Eseguite `claude --version` per vedere cosa è installato.

6232. **Aggiornate Claude Code**:

624 * **Homebrew**: `brew upgrade claude-code`, oppure `brew upgrade claude-code@latest` se avete installato quel cask

625 * **npm**: `npm install -g @anthropic-ai/claude-code@latest`

626 * **Programma di installazione nativo**: Rieseguite il comando di installazione da [Setup](/docs/it/setup)

6273. **Riavviate Claude Code**: dopo l'aggiornamento, riavviate il vostro terminale ed eseguite `claude` di nuovo.

628 

629<h3 id="common-issues">

630 Problemi comuni

631</h3>

632 

633Se le skill dei plugin non appaiono, cancellate la cache con `rm -rf ~/.claude/plugins/cache`, riavviate Claude Code e reinstallate il plugin.

634 

635Per la risoluzione dettagliata dei problemi con soluzioni, consultate [Risoluzione dei problemi](/docs/it/plugin-marketplaces#troubleshooting) nella guida del marketplace. Per gli strumenti di debug, consultate [Strumenti di debug e sviluppo](/docs/it/plugins-reference#debugging-and-development-tools).

636 

637<h3 id="code-intelligence-issues">

638 Problemi di code intelligence

639</h3>

640 

641* **Language server non avviato**: verificate che il binario sia installato e disponibile nel vostro `$PATH`. Controllate la scheda `/plugin` Errors per i dettagli.

642* **Utilizzo elevato della memoria**: i language server come `rust-analyzer` e `pyright` possono consumare memoria significativa su progetti di grandi dimensioni. Se riscontrate problemi di memoria, disabilitate il plugin con `/plugin disable <plugin-name>` e affidatevi invece agli strumenti di ricerca integrati di Claude.

643* **Diagnostica falsa positiva nei monorepo**: i language server possono segnalare errori di import non risolti per i pacchetti interni se l'area di lavoro non è configurata correttamente. Questi non influiscono sulla capacità di Claude di modificare il codice.

644 

645<h2 id="next-steps">

646 Passaggi successivi

647</h2>

648 

649* **Costruite i vostri plugin**: Consultate [Plugin](/docs/it/plugins) per creare skills, agenti e hook

650* **Create un marketplace**: Consultate [Creare un marketplace di plugin](/docs/it/plugin-marketplaces) per distribuire plugin al vostro team o comunità

651* **Riferimento tecnico**: Consultate [Riferimento dei plugin](/docs/it/plugins-reference) per le specifiche complete

env-vars.md +1 −1

Details

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` è abilitato, secondi tra i promemoria a Claude di controllare i [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) ancora in esecuzione. Accetta un numero intero semplice da `1` a `86400` solo; qualsiasi altro valore o ortografia legge come non impostato. Quando non impostato, non ci sono promemoria di check-in. Richiede Claude Code v2.1.248 o successivo |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` è abilitato, secondi tra i promemoria a Claude di controllare i [subagent in background](/docs/it/sub-agents#run-subagents-in-foreground-or-background) ancora in esecuzione. Accetta un numero intero semplice da `1` a `86400` solo; qualsiasi altro valore o ortografia legge come non impostato. Quando non impostato, non ci sono promemoria di check-in. Richiede Claude Code v2.1.248 o successivo |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Impostare la [finestra di auto-compattazione](/docs/it/model-config#set-the-auto-compact-window) in token, da `100000` a `1000000`. Accetta un numero intero semplice come `500000` solo: un valore come `500k` legge come `500` e si limita al minimo di 100K. La finestra effettiva è anche limitata alla finestra di contesto del modello. Ha la precedenza sul comando `/autocompact`, il flag `--autocompact` e l'impostazione `autoCompactWindow`. La percentuale `used_percentage` della linea di stato misura sempre contro la finestra di contesto completa del modello, quindi una volta impostata questa variabile, quella percentuale non indica più quando verrà eseguita la compattazione |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Impostare la [finestra di auto-compattazione](/docs/it/model-config#set-the-auto-compact-window) in token, da `100000` a `1000000`. Accetta un numero intero semplice come `500000` solo: un valore come `500k` legge come `500` e si limita al minimo di 100K. La finestra effettiva è anche limitata alla finestra di contesto del modello. Ha la precedenza sul comando `/autocompact`, il flag `--autocompact` e l'impostazione `autoCompactWindow`. La percentuale `used_percentage` della linea di stato misura sempre contro la finestra di contesto completa del modello, quindi una volta impostata questa variabile, quella percentuale non indica più quando verrà eseguita la compattazione |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sostituire la [connessione IDE](/docs/it/vs-code) automatica. Per impostazione predefinita, Claude Code si connette automaticamente quando avviato all'interno del terminale integrato di un IDE supportato. Impostare su `false` per impedire questo. Impostare su `true` per forzare un tentativo di connessione quando l'auto-rilevamento fallisce, ad esempio quando tmux oscura il terminale genitore. Ha la precedenza sull'impostazione di configurazione globale [`autoConnectIde`](/docs/it/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Sostituire la [connessione IDE](/docs/it/vs-code) automatica. Per impostazione predefinita, Claude Code si connette automaticamente quando avviato all'interno del terminale integrato di un IDE supportato. Impostare su `false` per impedire questo. Impostare su `true` per forzare un tentativo di connessione quando l'auto-rilevamento fallisce, ad esempio quando tmux oscura il terminale genitore. Ha la precedenza sull'impostazione di configurazione globale [`autoConnectIde`](/docs/it/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controlla se Claude Code chiede al server di [rivedere le azioni della modalità auto](/docs/it/permission-modes#server-side-classifier-review). Quando non impostato, Claude Code chiede al server su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e Claude Platform on AWS, e quando puntate `ANTHROPIC_BASE_URL` a un gateway LLM o proxy. Impostare su `0` per utilizzare le richieste del classificatore di Claude Code. Non letto su una connessione diretta all'API Anthropic. Richiede Claude Code v2.1.271 o successivo; chiedere al server per impostazione predefinita richiede v2.1.278 o successivo |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controlla se Claude Code chiede al server di [rivedere le azioni della modalità auto](/docs/it/permission-modes#server-side-classifier-review). Impostare su `0` per utilizzare le richieste del classificatore di Claude Code. Su una connessione diretta all'API Anthropic, richiede v2.1.281 o successivo. La sezione collegata elenca quali sessioni chiedono al server quando la variabile non è impostata e da quale versione. Richiede Claude Code v2.1.271 o successivo |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo in millisecondi che Claude Code aspetta affinché la catena del provider di credenziali predefinito AWS produca credenziali prima che la richiesta fallisca con [`AWS default-chain credential resolve timed out`](/docs/it/errors#aws-default-chain-credential-resolve-timed-out) (predefinito: `60000`). Aumentare quando un passaggio nella vostra catena ha legittimamente bisogno di più tempo, come un accesso SSO basato su browser con MFA attraverso un wrapper come `aws-vault`. Si applica ovunque Claude Code firmi con la catena predefinita: [Amazon Bedrock](/docs/it/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/it/claude-platform-on-aws), e l'[endpoint Mantle](/docs/it/amazon-bedrock#use-the-mantle-endpoint). Richiede Claude Code v2.1.207 o successivo |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo in millisecondi che Claude Code aspetta affinché la catena del provider di credenziali predefinito AWS produca credenziali prima che la richiesta fallisca con [`AWS default-chain credential resolve timed out`](/docs/it/errors#aws-default-chain-credential-resolve-timed-out) (predefinito: `60000`). Aumentare quando un passaggio nella vostra catena ha legittimamente bisogno di più tempo, come un accesso SSO basato su browser con MFA attraverso un wrapper come `aws-vault`. Si applica ovunque Claude Code firmi con la catena predefinita: [Amazon Bedrock](/docs/it/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/it/claude-platform-on-aws), e l'[endpoint Mantle](/docs/it/amazon-bedrock#use-the-mantle-endpoint). Richiede Claude Code v2.1.207 o successivo |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Impostare su `0` per disattivare il [diff dei file che sono cambiati mentre un comando Bash era in esecuzione](/docs/it/hooks#bash), o `1` per registrarlo in ogni modalità di autorizzazione. Ha la precedenza sull'impostazione [`bashEditDiffEnabled`](/docs/it/settings-reference#basheditdiffenabled). Richiede Claude Code v2.1.269 o successivo |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Impostare su `0` per disattivare il [diff dei file che sono cambiati mentre un comando Bash era in esecuzione](/docs/it/hooks#bash), o `1` per registrarlo in ogni modalità di autorizzazione. Ha la precedenza sull'impostazione [`bashEditDiffEnabled`](/docs/it/settings-reference#basheditdiffenabled). Richiede Claude Code v2.1.269 o successivo |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Impostare su `0` per fare in modo che una sessione non interattiva segnali uno stato di inattività al suo host alla fine di ogni turno, anche mentre il lavoro in background è ancora in esecuzione. Per impostazione predefinita, la sessione continua a segnalare uno stato di esecuzione oltre la fine del turno mentre il lavoro in background come un agente in background o un'esecuzione di [workflow](/docs/it/workflows) è ancora attivo. Questo impedisce a un host che osserva lo stato, come un elenco di sessioni remote, di annunciare che Claude sta aspettando il vostro input a metà lavoro. I comandi shell in background, come un server di sviluppo, non mantengono lo stato di esecuzione. Il predefinito dello stato di esecuzione e l'opt-out di `0` richiedono Claude Code v2.1.269 o successivo; su versioni precedenti, impostare `1` per mantenere lo stato di esecuzione |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Impostare su `0` per fare in modo che una sessione non interattiva segnali uno stato di inattività al suo host alla fine di ogni turno, anche mentre il lavoro in background è ancora in esecuzione. Per impostazione predefinita, la sessione continua a segnalare uno stato di esecuzione oltre la fine del turno mentre il lavoro in background come un agente in background o un'esecuzione di [workflow](/docs/it/workflows) è ancora attivo. Questo impedisce a un host che osserva lo stato, come un elenco di sessioni remote, di annunciare che Claude sta aspettando il vostro input a metà lavoro. I comandi shell in background, come un server di sviluppo, non mantengono lo stato di esecuzione. Il predefinito dello stato di esecuzione e l'opt-out di `0` richiedono Claude Code v2.1.269 o successivo; su versioni precedenti, impostare `1` per mantenere lo stato di esecuzione |

errors.md +144 −15

Details

36| `Auto mode could not evaluate this action and is blocking it for safety` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |36| `Auto mode could not evaluate this action and is blocking it for safety` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |

37| `Auto mode classifier transcript exceeded context window` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |37| `Auto mode classifier transcript exceeded context window` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |

38| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |38| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Errori del server](#auto-mode-cannot-determine-the-safety-of-an-action) |

39| `The server-side auto mode classifier gave no verdict` | [Errori del server](#the-server-returned-no-safety-verdict) |

40| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [Errori del server](#the-server-returned-no-safety-verdict) |

39| `Agent terminated early due to an API error` | [Errori del server](#agent-terminated-early-due-to-an-api-error) |41| `Agent terminated early due to an API error` | [Errori del server](#agent-terminated-early-due-to-an-api-error) |

40| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Limiti di utilizzo](#youve-hit-your-session-limit) |42| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Limiti di utilizzo](#youve-hit-your-session-limit) |

41| `Usage credits required for 1M context` | [Limiti di utilizzo](#usage-credits-required-for-1m-context) |43| `Usage credits required for 1M context` | [Limiti di utilizzo](#usage-credits-required-for-1m-context) |


154| `API Error: 400 orphaned tool_result in conversation history` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |156| `API Error: 400 orphaned tool_result in conversation history` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |

155| `API Error: 400 duplicate tool_use ID in conversation history` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |157| `API Error: 400 duplicate tool_use ID in conversation history` | [Errori di richiesta](#tool-use-or-thinking-block-mismatch) |

156| `[Unsupported tool content removed]` | [Errori di richiesta](#unsupported-tool-content-removed) |158| `[Unsupported tool content removed]` | [Errori di richiesta](#unsupported-tool-content-removed) |

159| `role 'system' must precede an 'assistant' message` | [Errori di richiesta](#role-system-must-precede-an-assistant-message) |

160| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Errori di richiesta](#invalid-encrypted-content-in-search-result-block) |

157| `server_tool_use.name: Input should be` on every turn of a resumed session | [Errori di richiesta](#unsupported-tool-content-removed) |161| `server_tool_use.name: Input should be` on every turn of a resumed session | [Errori di richiesta](#unsupported-tool-content-removed) |

158| `<model> can't help with this. Start a new session to continue` | [Errori di richiesta](#usage-policy-refusal) |162| `<model> can't help with this. Start a new session to continue` | [Errori di richiesta](#usage-policy-refusal) |

159| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Errori di richiesta](#usage-policy-refusal) |163| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Errori di richiesta](#usage-policy-refusal) |


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

172| `Error: Settings file exceeds the 2MiB limit` | [Errori della riga di comando](#settings-file-exceeds-the-2mib-limit) |176| `Error: Settings file exceeds the 2MiB limit` | [Errori della riga di comando](#settings-file-exceeds-the-2mib-limit) |

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

178| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Errori della riga di comando](#temp-directory-refused-or-cannot-be-created) |

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

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

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


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

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

216| `Marketplace "<name>" is already added from a different source` | [Errori dei plugin](#marketplace-is-already-added-from-a-different-source) |221| `Marketplace "<name>" is already added from a different source` | [Errori dei plugin](#marketplace-is-already-added-from-a-different-source) |

222| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Errori dei plugin](#marketplace-name-is-another-spelling-of-a-reserved-name) |

217| `references ${user_config.*} in a shell-form command` | [Errori dei plugin](#plugin-command-references-user-config) |223| `references ${user_config.*} in a shell-form command` | [Errori dei plugin](#plugin-command-references-user-config) |

218| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Errori dei plugin](#plugin-command-references-user-config) |224| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Errori dei plugin](#plugin-command-references-user-config) |

219| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Errori dei plugin](#plugin-command-references-user-config) |225| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Errori dei plugin](#plugin-command-references-user-config) |


566* In una sessione interattiva, approvate o negate l'azione nel prompt che appare572* In una sessione interattiva, approvate o negate l'azione nel prompt che appare

567* In una sessione interattiva, eseguite `/compact` per ridurre la dimensione della conversazione in modo che le azioni successive si adattino di nuovo alla finestra del classificatore573* In una sessione interattiva, eseguite `/compact` per ridurre la dimensione della conversazione in modo che le azioni successive si adattino di nuovo alla finestra del classificatore

568 574 

575<h3 id="the-server-returned-no-safety-verdict">

576 The server returned no safety verdict

577</h3>

578 

579Sotto [server-side classifier review](/docs/it/permission-modes#server-side-classifier-review), auto mode nega un'azione quando il server non dà un verdetto per essa. Il rifiuto nomina una categoria tra parentesi quando Claude Code può determinarne una, come `(timed out)`:

580 

581```text theme={null}

582The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

583```

584 

585Il resto del messaggio dice a Claude se un nuovo tentativo può aiutare. Prima di alcuni di questi rifiuti, Claude Code aspetta in modo che il prossimo tentativo di Claude non segua subito. Durante l'attesa in una sessione interattiva, lo spinner mostra `Auto mode check unavailable` con un conto alla rovescia, e premere `Esc` interrompe il turno.

586 

587Dopo dieci risposte di fila senza verdetto, auto mode interrompe il turno:

588 

589```text theme={null}

590Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.

591```

592 

593Il messaggio di arresto appare in un posto diverso in ogni tipo di sessione:

594 

595* In una sessione interattiva, il messaggio appare come un avviso nella trascrizione e il turno termina

596* In un'esecuzione `-p` [non-interactive](/docs/it/headless), l'esecuzione termina e segnala un errore di esecuzione. Con l'output di testo predefinito, il messaggio stampa su stderr.

597* Quando un [subagent](/docs/it/sub-agents) ha raggiunto il limite, il subagent si ferma prima di finire, e Claude riceve quello che ha prodotto con una nota che auto mode l'ha fermato

598 

599**Cosa fare:**

600 

601* Inviate un altro messaggio per far riprovare a Claude. Il conteggio delle risposte ricomincia da capo.

602* Se l'arresto si ripete e le vostre richieste passano attraverso un [LLM gateway or proxy](/docs/it/llm-gateway), controllate se taglia le risposte di streaming corte o le riscrive. [Server-side classifier review](/docs/it/permission-modes#server-side-classifier-review) dice quale comportamento del gateway causa rifiuti, e la [gateway compatibility guide](/docs/it/llm-gateway-protocol#feature-pass-through) elenca cosa passare attraverso invariato.

603* Impostate `CLAUDE_CODE_AUTO_MODE_SERVER=0` prima di avviare Claude Code per utilizzare le sue richieste di classificatore. Prima della v2.1.281, Claude Code non leggeva la variabile su una connessione diretta a Anthropic API.

604* Per approvare le azioni voi stessi, [switch out of auto mode](/docs/it/permission-modes#switch-permission-modes)

605 

606Prima della v2.1.280, Claude Code negava ogni azione da una risposta senza verdetto immediatamente e non interrompeva mai il turno.

607 

569<h3 id="agent-terminated-early-due-to-an-api-error">608<h3 id="agent-terminated-early-due-to-an-api-error">

570 Agent terminated early due to an API error609 Agent terminated early due to an API error

571</h3>610</h3>


2391* Nessuna azione necessaria quando vedete la riga segnaposto. La sessione continua senza il contenuto rimosso.2430* Nessuna azione necessaria quando vedete la riga segnaposto. La sessione continua senza il contenuto rimosso.

2392* Se ogni turno di una sessione ripresa fallisce con l'errore 400 invece, eseguite `claude update` e riprendete la sessione di nuovo. Le versioni precedenti alla v2.1.246 non rimuovono il contenuto.2431* Se ogni turno di una sessione ripresa fallisce con l'errore 400 invece, eseguite `claude update` e riprendete la sessione di nuovo. Le versioni precedenti alla v2.1.246 non rimuovono il contenuto.

2393 2432 

2433<h3 id="role-system-must-precede-an-assistant-message">

2434 role 'system' deve precedere un messaggio 'assistant'

2435</h3>

2436 

2437L'API ha rifiutato la richiesta con un 400 perché un messaggio di sistema si trova in una posizione nella conversazione che non accetta:

2438 

2439```text theme={null}

2440API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...

2441```

2442 

2443Claude Code invia parte del suo testo di promemoria e allegato come messaggi di sistema all'interno della conversazione. Quando l'API rifiuta la posizione di uno, Claude Code ritenta la richiesta una volta con quel testo inviato come messaggi utente ordinari. Le diciture di posizionamento fratello dell'API, come `use the top-level 'system' parameter for the initial system prompt`, ricevono lo stesso recupero.

2444 

2445Quando l'errore appare, il messaggio di sistema rifiutato non è uno che Claude Code può rimuovere. Questo solitamente significa che un proxy o [gateway LLM](/docs/it/llm-gateway) tra Claude Code e l'API ha aggiunto un messaggio di sistema proprio o ha riordinato la conversazione.

2446 

2447**Cosa fare:**

2448 

2449* Eseguite `/clear` per avviare una conversazione nuova. Se l'errore ritorna anche lì, la causa è sul percorso della richiesta, non nella conversazione salvata.

2450* Se l'errore si ripete ad ogni turno dietro un proxy o gateway configurato attraverso [`ANTHROPIC_BASE_URL`](/docs/it/env-vars), connettetevi senza il proxy per confermare la fonte, e segnalate l'errore a chi lo gestisce

2451 

2452Prima della v2.1.280, Claude Code non riconosceva questa dicitura, quindi l'errore appariva anche quando il messaggio di sistema rifiutato era uno che Claude Code stesso inviava, e ogni turno successivo della conversazione falliva allo stesso modo.

2453 

2454<h3 id="invalid-encrypted-content-in-search-result-block">

2455 Contenuto crittografato non valido nel blocco search\_result

2456</h3>

2457 

2458L'API ha rifiutato la richiesta con un 400 perché la cronologia della conversazione contiene contenuto di ricerca web ospitato che non può decrittare. La dicitura nomina il campo che non può leggere:

2459 

2460```text theme={null}

2461API Error: 400 messages.21.content.0: Invalid `encrypted_content` in `search_result` block

2462API Error: 400 messages.21.content.3.citations.0: Invalid `encrypted_index` in `text` block

2463API Error: 400 Failed to decrypt web search result content

2464```

2465 

2466I risultati dallo [strumento di ricerca web](/docs/it/tools-reference#websearch-tool-behavior) ospitato dell'API portano campi crittografati che solo l'API può leggere. L'API rifiuta una richiesta che riproduce contenuto che non può decrittare, come contenuto prodotto per un'organizzazione diversa.

2467 

2468Lo strumento [WebSearch](/docs/it/tools-reference#websearch-tool-behavior) proprio di Claude Code registra i risultati di ricerca come testo semplice, quindi questi blocchi solitamente raggiungono una conversazione attraverso un proxy o [gateway LLM](/docs/it/llm-gateway) che ha eseguito la ricerca web ospitata stesso.

2469 

2470I blocchi rifiutati rimangono nella cronologia della conversazione, quindi ogni turno successivo e `/compact` falliscono allo stesso modo.

2471 

2472**Cosa fare:**

2473 

2474* Eseguite `/clear` o avviate una nuova sessione; la nuova conversazione non porta i blocchi rifiutati

2475* Se eseguite Claude Code dietro un proxy o gateway, segnalate l'errore a chi lo gestisce

2476 

2394<h3 id="usage-policy-refusal">2477<h3 id="usage-policy-refusal">

2395 Rifiuto della politica di utilizzo2478 Rifiuto della politica di utilizzo

2396</h3>2479</h3>


2627* Se la directory è stata ricreata nello stesso percorso, la tua shell ne tiene ancora quella eliminata. Esegui `cd "$PWD"` o esci e rientra nella directory, quindi esegui di nuovo `claude`2710* Se la directory è stata ricreata nello stesso percorso, la tua shell ne tiene ancora quella eliminata. Esegui `cd "$PWD"` o esci e rientra nella directory, quindi esegui di nuovo `claude`

2628* Per `EPERM` su macOS, esci dalla tua app terminale con Cmd+Q, aprila di nuovo, torna a quella cartella, ed esegui `claude`. Se `ls` in quella cartella continua a fallire, apri **System Settings > Privacy & Security > Files and Folders**, attiva la cartella per la tua app terminale, quindi riapri il terminale2711* Per `EPERM` su macOS, esci dalla tua app terminale con Cmd+Q, aprila di nuovo, torna a quella cartella, ed esegui `claude`. Se `ls` in quella cartella continua a fallire, apri **System Settings > Privacy & Security > Files and Folders**, attiva la cartella per la tua app terminale, quindi riapri il terminale

2629 2712 

2713<h3 id="temp-directory-refused-or-cannot-be-created">

2714 La directory temporanea è stata rifiutata o non può essere creata

2715</h3>

2716 

2717Su macOS e Linux, Claude Code crea una directory temporanea privata all'avvio, `claude-<uid>` sotto la directory temporanea di sistema o l'override [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars). Quando la directory non può essere creata, o una voce già in quel percorso fallisce i controlli di sicurezza, Claude Code stampa il fallimento su stderr e esce con codice 1 piuttosto che avviare la sessione:

2718 

2719```text wrap theme={null}

2720ENOSPC: no space left on device, mkdir '/tmp/claude-501'

2721 

2722Temp directory /tmp/claude-501 is not a directory (may be an attacker-planted symlink). Refusing to use it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2723 

2724Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to use it — another user may have pre-created it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2725 

2726Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

2727```

2728 

2729**Cosa fare:**

2730 

2731* Per `ENOSPC`, libera spazio su disco sul volume che contiene la directory temporanea

2732* Per le forme `Refusing to use it`, rimuovi la voce denominata stessa, non quello a cui un link punta, e avvia di nuovo Claude Code; per la forma `owned by uid`, solo un amministratore o quell'utente può rimuoverla

2733* Per `is not readable`, esegui `chmod 0700` sulla directory denominata, o rimuovila e avvia di nuovo

2734* In uno qualsiasi di questi casi, imposta [`CLAUDE_CODE_TMPDIR`](/docs/it/env-vars) a una directory che controlli e avvia di nuovo Claude Code, lasciando il percorso rifiutato da solo

2735 

2630<h3 id="directory-couldnt-be-resolved-to-a-real-location">2736<h3 id="directory-couldnt-be-resolved-to-a-real-location">

2631 La directory non potrebbe essere risolta a una posizione reale2737 La directory non potrebbe essere risolta a una posizione reale

2632</h3>2738</h3>


2952 3058 

2953* Un errore di battitura, come `/hepl` per `/help`. [How the command menu matches what you type](/docs/it/commands#how-the-command-menu-matches-what-you-type) copre la scelta di una corrispondenza vicina prima di inviare3059* Un errore di battitura, come `/hepl` per `/help`. [How the command menu matches what you type](/docs/it/commands#how-the-command-menu-matches-what-you-type) copre la scelta di una corrispondenza vicina prima di inviare

2954* Un comando che esiste ma non è disponibile in questa sessione perché un requisito non è soddisfatto, come la tua piattaforma, piano, o metodo di autenticazione. Le voci di risoluzione dei problemi per [`/web-setup`](/docs/it/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) e [`/schedule`](/docs/it/routines#schedule-returns-unknown-command) affrontano due casi comuni. Alcuni comandi rispondono con il loro messaggio quando la politica della tua organizzazione li disabilita, come [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3060* Un comando che esiste ma non è disponibile in questa sessione perché un requisito non è soddisfatto, come la tua piattaforma, piano, o metodo di autenticazione. Le voci di risoluzione dei problemi per [`/web-setup`](/docs/it/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) e [`/schedule`](/docs/it/routines#schedule-returns-unknown-command) affrontano due casi comuni. Alcuni comandi rispondono con il loro messaggio quando la politica della tua organizzazione li disabilita, come [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

2955* Un comando da un [plugin](/docs/it/plugins) o [server MCP](/docs/it/mcp#use-mcp-prompts-as-commands) che non è installato o connesso in questa sessione3061* Un comando da un [plugin](/docs/it/plugins/overview) o [server MCP](/docs/it/mcp#use-mcp-prompts-as-commands) che non è installato o connesso in questa sessione

2956 3062 

2957Claude Code risponde a un nome `/` non corrispondente in questo modo solo in una sessione terminale interattiva. In ogni altra sessione, invia il prompt a Claude come messaggio normale invece, con una nota che il comando non è stato eseguito e un elenco di comandi che Claude può eseguire nella sessione. Quelle sessioni includono:3063Claude Code risponde a un nome `/` non corrispondente in questo modo solo in una sessione terminale interattiva. In ogni altra sessione, invia il prompt a Claude come messaggio normale invece, con una nota che il comando non è stato eseguito e un elenco di comandi che Claude può eseguire nella sessione. Quelle sessioni includono:

2958 3064 


3282 Errori dei plugin3388 Errori dei plugin

3283</h2>3389</h2>

3284 3390 

3285Questi errori provengono dalla configurazione di [plugin](/docs/it/plugins) e [marketplace](/docs/it/plugin-marketplaces). Per i problemi dei plugin che non producono uno dei messaggi in questa pagina, come un URL del marketplace che non si carica o un plugin che si installa ma non appare, vedere [Risoluzione dei problemi dei plugin](/docs/it/discover-plugins#troubleshooting).3391Questi errori provengono dalla configurazione di [plugin](/docs/it/plugins/overview) e [marketplace](/docs/it/plugins/overview). Per i problemi dei plugin che non producono uno dei messaggi in questa pagina, come un URL del marketplace che non si carica o un plugin che si installa ma non appare, vedere [Risoluzione dei problemi dei plugin](/docs/it/plugins/troubleshooting).

3286 3392 

3287<h3 id="plugin-eval-is-currently-in-early-access">3393<h3 id="plugin-eval-is-currently-in-early-access">

3288 plugin eval is currently in early access3394 plugin eval is currently in early access


3309 Marketplace is registered from an untrusted source3415 Marketplace is registered from an untrusted source

3310</h3>3416</h3>

3311 3417 

3312Il marketplace è registrato con un nome che è [riservato per i marketplace ufficiali di Anthropic](/docs/it/plugin-marketplaces#marketplace-schema), ma la sua fonte registrata non è un repository GitHub di `anthropics`. Claude Code ri-controlla i nomi riservati ogni volta che carica o aggiorna un marketplace, quindi il marketplace e i plugin installati da esso smettono di caricarsi. Prima della v2.1.205, il nome era controllato solo quando il marketplace veniva aggiunto, quindi una voce registrata prima che il suo nome diventasse riservato continuava a caricarsi.3418Il marketplace è registrato con un nome che è [riservato per i marketplace ufficiali di Anthropic](/docs/it/plugins/marketplace-reference#marketplace-file), ma la sua fonte registrata non è un repository GitHub di `anthropics`. Claude Code ri-controlla i nomi riservati ogni volta che carica o aggiorna un marketplace, quindi il marketplace e i plugin installati da esso smettono di caricarsi. Prima della v2.1.205, il nome era controllato solo quando il marketplace veniva aggiunto, quindi una voce registrata prima che il suo nome diventasse riservato continuava a caricarsi.

3313 3419 

3314```text theme={null}3420```text theme={null}

3315Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.3421Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.


3321 3427 

3322* Se il marketplace è già registrato, eseguite `claude plugin marketplace remove <name>`, quindi aggiungetelo di nuovo dal repository ufficiale `github.com/anthropics`3428* Se il marketplace è già registrato, eseguite `claude plugin marketplace remove <name>`, quindi aggiungetelo di nuovo dal repository ufficiale `github.com/anthropics`

3323* Se pubblicate un marketplace di terze parti che ha utilizzato il nome prima che diventasse riservato, rinominatelo e chiedete agli utenti di aggiungerlo di nuovo dalla vostra fonte3429* Se pubblicate un marketplace di terze parti che ha utilizzato il nome prima che diventasse riservato, rinominatelo e chiedete agli utenti di aggiungerlo di nuovo dalla vostra fonte

3324* Vedere l'elenco dei nomi riservati in [Marketplace schema](/docs/it/plugin-marketplaces#marketplace-schema)3430* Vedere l'elenco dei nomi riservati in [Marketplace schema](/docs/it/plugins/marketplace-reference#marketplace-file)

3431 

3432<h3 id="marketplace-name-is-another-spelling-of-a-reserved-name">

3433 Marketplace name is another spelling of a reserved name

3434</h3>

3435 

3436Il nome del marketplace non è di per sé un nome riservato, ma Claude Code lo tratta come un'altra ortografia di uno. [Reserved names](/docs/it/plugins/marketplace-reference#reserved-name-spellings) elenca quali ortografie contano come un nome riservato. Claude Code rifiuta tale nome quando aggiungete il marketplace:

3437 

3438```text theme={null}

3439Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.

3440```

3441 

3442Quando un marketplace è già registrato con tale nome, la sua voce smette di caricarsi, e `/plugin`, `claude plugin install`, e `claude plugin update` avvertono:

3443 

3444```text wrap theme={null}

3445known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins

3446```

3447 

3448Quando il nome avrebbe bisogno di quoting della shell, il rifiuto al momento dell'aggiunta recita `This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be.`

3449 

3450**Cosa fare:**

3451 

3452* Rinominate il marketplace con un nome che non ortografia un nome riservato e aggiungetelo di nuovo

3453* Per l'avvertimento di voce ignorata, eseguite il comando `claude plugin marketplace remove` che fornisce, o rimuovete la voce da `~/.claude/plugins/known_marketplaces.json`

3325 3454 

3326<h3 id="marketplace-is-already-added-from-a-different-source">3455<h3 id="marketplace-is-already-added-from-a-different-source">

3327 Marketplace is already added from a different source3456 Marketplace is already added from a different source

3328</h3>3457</h3>

3329 3458 

3330Avete confermato l'aggiunta di un marketplace tramite [`/plugin install <plugin> --marketplace <source>`](/docs/it/discover-plugins#add-a-marketplace-and-install-in-one-command), e il catalogo che Claude Code ha recuperato da quella fonte nomina se stesso con lo stesso nome di un marketplace che avete già aggiunto da una fonte diversa. Claude Code mantiene il marketplace esistente invece di sostituirlo, e il plugin non viene installato.3459Avete confermato l'aggiunta di un marketplace tramite [`/plugin install <plugin> --marketplace <source>`](/docs/it/plugins/install#add-a-marketplace-and-install-in-one-command), e il catalogo che Claude Code ha recuperato da quella fonte nomina se stesso con lo stesso nome di un marketplace che avete già aggiunto da una fonte diversa. Claude Code mantiene il marketplace esistente invece di sostituirlo, e il plugin non viene installato.

3331 3460 

3332```text theme={null}3461```text theme={null}

3333Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.3462Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.


3342 Plugin command references user\_config in a shell command3471 Plugin command references user\_config in a shell command

3343</h3>3472</h3>

3344 3473 

3345Un hook del plugin, [monitor](/docs/it/plugins-reference#monitors), o un comando MCP [`headersHelper`](/docs/it/mcp#use-dynamic-headers-for-custom-authentication) fa riferimento a un'[opzione del plugin](/docs/it/plugins-reference#user-configuration) `${user_config.KEY}`, e la stringa sostituita verrebbe passata a una shell. Un valore configurato contenente `$(...)`, backtick, o `;` verrebbe eseguito come codice lì, quindi Claude Code rifiuta di avviare il componente invece di sostituire il valore. Il controllo viene eseguito sul modello di comando, quindi l'errore appare anche quando nessun valore è ancora configurato. Prima della v2.1.207, il valore veniva sostituito nel comando della shell.3474Un hook del plugin, [monitor](/docs/it/plugins/components#monitors), o un comando MCP [`headersHelper`](/docs/it/mcp#use-dynamic-headers-for-custom-authentication) fa riferimento a un'[opzione del plugin](/docs/it/plugins/manifest-reference#user-configuration) `${user_config.KEY}`, e la stringa sostituita verrebbe passata a una shell. Un valore configurato contenente `$(...)`, backtick, o `;` verrebbe eseguito come codice lì, quindi Claude Code rifiuta di avviare il componente invece di sostituire il valore. Il controllo viene eseguito sul modello di comando, quindi l'errore appare anche quando nessun valore è ancora configurato. Prima della v2.1.207, il valore veniva sostituito nel comando della shell.

3346 3475 

3347La formulazione dipende da quale superficie ha fatto riferimento all'opzione. Un hook in forma shell segnala:3476La formulazione dipende da quale superficie ha fatto riferimento all'opzione. Un hook in forma shell segnala:

3348 3477 


3372 Plugin archive integrity check failed3501 Plugin archive integrity check failed

3373</h3>3502</h3>

3374 3503 

3375La voce del marketplace del plugin utilizza una [fonte `archive`](/docs/it/plugin-marketplaces#zip-archives) con un pin `sha256`, e il digest del file scaricato non corrisponde al pin. Claude Code rifiuta l'installazione, quindi nulla cambia nella cache del plugin. La mancata corrispondenza ha tre possibili cause:3504La voce del marketplace del plugin utilizza una [fonte `archive`](/docs/it/plugins/marketplace-reference#archive-plugin-source) con un pin `sha256`, e il digest del file scaricato non corrisponde al pin. Claude Code rifiuta l'installazione, quindi nulla cambia nella cache del plugin. La mancata corrispondenza ha tre possibili cause:

3376 3505 

3377* Il file all'URL è cambiato dopo che l'autore ha calcolato il pin3506* Il file all'URL è cambiato dopo che l'autore ha calcolato il pin

3378* L'autore ha inserito il digest sbagliato nella voce del marketplace3507* L'autore ha inserito il digest sbagliato nella voce del marketplace


3392 Path escapes plugin directory3521 Path escapes plugin directory

3393</h3>3522</h3>

3394 3523 

3395Un percorso del componente del plugin, dichiarato nel `plugin.json` del plugin o nella sua [voce del marketplace](/docs/it/plugin-marketplaces#plugin-entries), si risolve al di fuori della directory del plugin stesso. Claude Code elimina quel percorso e carica il resto del plugin. Il nome del componente nel messaggio, come `commands` o `hooks`, nomina il campo che ha dichiarato il percorso.3524Un percorso del componente del plugin, dichiarato nel `plugin.json` del plugin o nella sua [voce del marketplace](/docs/it/plugins/marketplace-reference#plugin-entries), si risolve al di fuori della directory del plugin stesso. Claude Code elimina quel percorso e carica il resto del plugin. Il nome del componente nel messaggio, come `commands` o `hooks`, nomina il campo che ha dichiarato il percorso.

3396 3525 

3397```text theme={null}3526```text theme={null}

3398commands path escapes plugin directory: ./../shared.md3527commands path escapes plugin directory: ./../shared.md


3400 3529 

3401Nell'output del comando `claude plugin`, lo stesso errore recita `Path escapes plugin directory: ./../shared.md (commands)`.3530Nell'output del comando `claude plugin`, lo stesso errore recita `Path escapes plugin directory: ./../shared.md (commands)`.

3402 3531 

3403Claude Code rifiuta sia un percorso che punta al di fuori del plugin come scritto, come `../shared-utils`, sia un symlink che porta al di fuori del plugin e non è uno che le [regole dei symlink del marketplace](/docs/it/plugins-reference#share-files-within-a-marketplace-with-symlinks) consentono. Per un symlink, il messaggio dice anche dove il percorso si risolve:3532Claude Code rifiuta sia un percorso che punta al di fuori del plugin come scritto, come `../shared-utils`, sia un symlink che porta al di fuori del plugin e non è uno che le [regole dei symlink del marketplace](/docs/it/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks) consentono. Per un symlink, il messaggio dice anche dove il percorso si risolve:

3404 3533 

3405```text theme={null}3534```text theme={null}

3406commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory3535commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory


3421* Spostate il file referenziato all'interno della directory del plugin e puntate il percorso ad esso con un percorso relativo `./`3550* Spostate il file referenziato all'interno della directory del plugin e puntate il percorso ad esso con un percorso relativo `./`

3422* Se il percorso è un symlink a un file al di fuori del plugin, sostituite il symlink con una copia del file3551* Se il percorso è un symlink a un file al di fuori del plugin, sostituite il symlink con una copia del file

3423* Se il messaggio dice che il percorso contiene una barra rovesciata, scrivete il percorso con barre in avanti, ad esempio `./commands/deploy.md`3552* Se il messaggio dice che il percorso contiene una barra rovesciata, scrivete il percorso con barre in avanti, ad esempio `./commands/deploy.md`

3424* Per condividere file con altri plugin nello stesso marketplace, collegateli con un symlink all'interno della directory del plugin, seguendo le [regole dei symlink](/docs/it/plugins-reference#share-files-within-a-marketplace-with-symlinks)3553* Per condividere file con altri plugin nello stesso marketplace, collegateli con un symlink all'interno della directory del plugin, seguendo le [regole dei symlink](/docs/it/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

3425 3554 

3426<h3 id="path-could-not-be-checked">3555<h3 id="path-could-not-be-checked">

3427 Path could not be checked3556 Path could not be checked


3429 3558 

3430Claude Code ha chiesto al sistema operativo se un percorso del plugin esiste e ha ricevuto un errore diverso da "non trovato", quindi non carica ciò che il percorso nomina. Quanto del plugin si carica dipende da quale percorso ha fallito:3559Claude Code ha chiesto al sistema operativo se un percorso del plugin esiste e ha ricevuto un errore diverso da "non trovato", quindi non carica ciò che il percorso nomina. Quanto del plugin si carica dipende da quale percorso ha fallito:

3431 3560 

3432* Una delle [cartelle dei componenti predefinite](/docs/it/plugins-reference#file-locations-reference) di un plugin, come la cartella `skills/`, il file `monitors/monitors.json`, o uno [`SKILL.md` alla radice del plugin](/docs/it/plugins-reference#skills): gli altri componenti del plugin si caricano comunque3561* Una delle [cartelle dei componenti predefinite](/docs/it/plugins/manifest-reference#standard-layout) di un plugin, come la cartella `skills/`, il file `monitors/monitors.json`, o uno [`SKILL.md` alla radice del plugin](/docs/it/plugins/components#skills): gli altri componenti del plugin si caricano comunque

3433* La directory del plugin stesso: nulla da quel plugin si carica3562* La directory del plugin stesso: nulla da quel plugin si carica

3434 3563 

3435Non vedete questo errore per un percorso che non esiste affatto. In `/plugin`, l'errore appare sotto il plugin e nomina il percorso e il codice che il sistema operativo ha restituito:3564Non vedete questo errore per un percorso che non esiste affatto. In `/plugin`, l'errore appare sotto il plugin e nomina il percorso e il codice che il sistema operativo ha restituito:


3459 Marketplace entry path does not stay inside the marketplace directory3588 Marketplace entry path does not stay inside the marketplace directory

3460</h3>3589</h3>

3461 3590 

3462La [voce del marketplace](/docs/it/plugin-marketplaces#plugin-entries) del plugin dichiara un percorso di origine che Claude Code non può risolvere a una posizione all'interno della directory del marketplace stesso, quindi il plugin non si installa o non si carica. Il rifiuto copre:3591La [voce del marketplace](/docs/it/plugins/marketplace-reference#plugin-entries) del plugin dichiara un percorso di origine che Claude Code non può risolvere a una posizione all'interno della directory del marketplace stesso, quindi il plugin non si installa o non si carica. Il rifiuto copre:

3463 3592 

3464* Un percorso di voce che è assoluto, esce dal marketplace con `..`, o è scritto come un percorso di rete3593* Un percorso di voce che è assoluto, esce dal marketplace con `..`, o è scritto come un percorso di rete

3465* Su macOS e Linux, un percorso di voce che contiene una barra rovesciata in qualsiasi punto dopo il `./` iniziale3594* Su macOS e Linux, un percorso di voce che contiene una barra rovesciata in qualsiasi punto dopo il `./` iniziale

3466* Una voce in un marketplace recuperato da una fonte remota, come git o un URL, che raggiunge il suo target attraverso un symlink che si risolve al di fuori della directory del marketplace3595* Una voce in un marketplace recuperato da una fonte remota, come git o un URL, che raggiunge il suo target attraverso un symlink che si risolve al di fuori della directory del marketplace

3467* Una voce relativa in un marketplace aggiunto da un URL diretto al suo `marketplace.json`: Claude Code scarica solo quel file, quindi nessun file di plugin locale esiste per il percorso da nominare. Vedere [Plugins with relative paths fail in URL-based marketplaces](/docs/it/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)3596* Una voce relativa in un marketplace aggiunto da un URL diretto al suo `marketplace.json`: Claude Code scarica solo quel file, quindi nessun file di plugin locale esiste per il percorso da nominare. Vedere [Plugins with relative paths fail in URL-based marketplaces](/docs/it/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces)

3468 3597 

3469`claude plugin install` segnala il rifiuto così:3598`claude plugin install` segnala il rifiuto così:

3470 3599 


3481**Cosa fare:**3610**Cosa fare:**

3482 3611 

3483* Se mantenete il marketplace, scrivete il `source` della voce come un percorso relativo semplice con barre in avanti, come `./plugins/my-plugin`, e mantenete qualsiasi symlink che attraversa puntato all'interno della directory del marketplace3612* Se mantenete il marketplace, scrivete il `source` della voce come un percorso relativo semplice con barre in avanti, come `./plugins/my-plugin`, e mantenete qualsiasi symlink che attraversa puntato all'interno della directory del marketplace

3484* Se avete aggiunto il marketplace da un URL diretto, le voci relative non possono risolversi. Chiedete all'autore del marketplace di utilizzare [un'altra fonte di plugin](/docs/it/plugin-marketplaces#plugin-sources), o aggiungete il marketplace dal suo repository git invece3613* Se avete aggiunto il marketplace da un URL diretto, le voci relative non possono risolversi. Chiedete all'autore del marketplace di utilizzare [un'altra fonte di plugin](/docs/it/plugins/marketplace-reference#plugin-sources), o aggiungete il marketplace dal suo repository git invece

3485 3614 

3486<h3 id="failed-to-load-marketplace-configuration">3615<h3 id="failed-to-load-marketplace-configuration">

3487 Failed to load marketplace configuration3616 Failed to load marketplace configuration


3511 Plugin is required by your organization3640 Plugin is required by your organization

3512</h3>3641</h3>

3513 3642 

3514Avete eseguito `claude plugin disable`, o utilizzato la scheda **Installed** di `/plugin`, per disattivare un [plugin sincronizzato da claude.ai](/docs/it/plugins-reference#synced-plugins) che la vostra organizzazione contrassegna come obbligatorio:3643Avete eseguito `claude plugin disable`, o utilizzato la scheda **Installed** di `/plugin`, per disattivare un [plugin sincronizzato da claude.ai](/docs/it/plugins/loading#synced-plugins) che la vostra organizzazione contrassegna come obbligatorio:

3515 3644 

3516```text theme={null}3645```text theme={null}

3517Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.3646Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

Details

32* [CLI](/docs/it/quickstart) e [Agent SDK](/docs/it/agent-sdk/overview)32* [CLI](/docs/it/quickstart) e [Agent SDK](/docs/it/agent-sdk/overview)

33* Estensioni [VS Code](/docs/it/vs-code) e [JetBrains](/docs/it/jetbrains)33* Estensioni [VS Code](/docs/it/vs-code) e [JetBrains](/docs/it/jetbrains)

34* [Subagents](/docs/it/sub-agents), [hooks](/docs/it/hooks-guide), [commands](/docs/it/commands) e [skills](/docs/it/skills)34* [Subagents](/docs/it/sub-agents), [hooks](/docs/it/hooks-guide), [commands](/docs/it/commands) e [skills](/docs/it/skills)

35* Memoria [CLAUDE.md](/docs/it/memory), [plugins](/docs/it/plugins) e [server MCP](/docs/it/mcp)35* Memoria [CLAUDE.md](/docs/it/memory), [plugins](/docs/it/plugins/overview) e [server MCP](/docs/it/mcp)

36* [Checkpoints](/docs/it/checkpointing), [sandboxing](/docs/it/sandboxing) e [Workflows](/docs/it/workflows)36* [Checkpoints](/docs/it/checkpointing), [sandboxing](/docs/it/sandboxing) e [Workflows](/docs/it/workflows)

37* Metriche [OpenTelemetry](/docs/it/monitoring-usage) e il [file di impostazioni gestito](/docs/it/managed-settings#delivery-mechanisms)37* Metriche [OpenTelemetry](/docs/it/monitoring-usage) e il [file di impostazioni gestito](/docs/it/managed-settings#delivery-mechanisms)

38 38 

Details

29* **[Dynamic workflows](/docs/it/workflows)** eseguono molti subagents da uno script che Claude scrive, restituendo un risultato29* **[Dynamic workflows](/docs/it/workflows)** eseguono molti subagents da uno script che Claude scrive, restituendo un risultato

30* **[Cross-session messaging](/docs/it/cross-session-messaging)** consente a Claude di passare un messaggio da una delle vostre sessioni a un'altra30* **[Cross-session messaging](/docs/it/cross-session-messaging)** consente a Claude di passare un messaggio da una delle vostre sessioni a un'altra

31* **[Hooks](/docs/it/hooks-guide)** eseguono il vostro script, richiesta HTTP, chiamata a strumento MCP, prompt o subagent quando Claude Code raggiunge un evento del ciclo di vita31* **[Hooks](/docs/it/hooks-guide)** eseguono il vostro script, richiesta HTTP, chiamata a strumento MCP, prompt o subagent quando Claude Code raggiunge un evento del ciclo di vita

32* **[Plugins](/docs/it/plugins)** e **[marketplaces](/docs/it/plugin-marketplaces)** confezionano e distribuiscono queste funzionalità32* **[Plugins](/docs/it/plugins/overview)** e **[marketplaces](/docs/it/plugins/overview)** confezionano e distribuiscono queste funzionalità

33 33 

34[Skills](/docs/it/skills) sono l'estensione più flessibile. Una skill è un file markdown contenente conoscenze, flussi di lavoro o istruzioni. Potete invocare skills con un comando come `/deploy`, oppure Claude può caricarle automaticamente quando rilevante. Le skills possono essere eseguite nella vostra conversazione attuale o in un contesto isolato tramite subagents.34[Skills](/docs/it/skills) sono l'estensione più flessibile. Una skill è un file markdown contenente conoscenze, flussi di lavoro o istruzioni. Potete invocare skills con un comando come `/deploy`, oppure Claude può caricarle automaticamente quando rilevante. Le skills possono essere eseguite nella vostra conversazione attuale o in un contesto isolato tramite subagents.

35 35 


52| **Hook** | Script, richiesta HTTP, chiamata a strumento MCP, prompt o subagent attivati da eventi | Automazione che deve essere eseguita su ogni evento corrispondente | Eseguire ESLint dopo ogni modifica di file |52| **Hook** | Script, richiesta HTTP, chiamata a strumento MCP, prompt o subagent attivati da eventi | Automazione che deve essere eseguita su ogni evento corrispondente | Eseguire ESLint dopo ogni modifica di file |

53| **[Artifact](/docs/it/artifacts)** | Pubblicare l'output della sessione come pagina web privata e interattiva | Output che desiderate vedere o condividere visivamente piuttosto che come testo di terminale | Una timeline di incidente che si aggiorna mentre Claude indaga |53| **[Artifact](/docs/it/artifacts)** | Pubblicare l'output della sessione come pagina web privata e interattiva | Output che desiderate vedere o condividere visivamente piuttosto che come testo di terminale | Una timeline di incidente che si aggiorna mentre Claude indaga |

54 54 

55**[Plugins](/docs/it/plugins)** sono il livello di confezionamento. Un plugin raggruppa skills, hooks, subagents e server MCP in una singola unità installabile. Le skills dei plugin hanno uno spazio dei nomi (come `/my-plugin:review`) in modo che più plugin possano coesistere. Utilizzate i plugin quando desiderate riutilizzare la stessa configurazione su più repository o distribuire ad altri tramite un **[marketplace](/docs/it/plugin-marketplaces)**.55**[Plugins](/docs/it/plugins/overview)** sono il livello di confezionamento. Un plugin raggruppa skills, hooks, subagents e server MCP in una singola unità installabile. Le skills dei plugin hanno uno spazio dei nomi (come `/my-plugin:review`) in modo che più plugin possano coesistere. Utilizzate i plugin quando desiderate riutilizzare la stessa configurazione su più repository o distribuire ad altri tramite un **[marketplace](/docs/it/plugins/overview)**.

56 56 

57<h3 id="build-your-setup-over-time">57<h3 id="build-your-setup-over-time">

58 Costruite la vostra configurazione nel tempo58 Costruite la vostra configurazione nel tempo


61Non è necessario configurare tutto in anticipo. Ogni funzionalità ha un trigger riconoscibile, e la maggior parte dei team le aggiunge approssimativamente in questo ordine:61Non è necessario configurare tutto in anticipo. Ogni funzionalità ha un trigger riconoscibile, e la maggior parte dei team le aggiunge approssimativamente in questo ordine:

62 62 

63| Trigger | Aggiungete |63| Trigger | Aggiungete |

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

65| Claude sbaglia una convenzione o un comando due volte | Aggiungetelo a [CLAUDE.md](/docs/it/memory) |65| Claude sbaglia una convenzione o un comando due volte | Aggiungetelo a [CLAUDE.md](/docs/it/memory) |

66| Continuate a chiedere a Claude di essere più breve, spiegare di più o rispondere nello stesso formato | Impostate uno [stile di output](/docs/it/output-styles) |66| Continuate a chiedere a Claude di essere più breve, spiegare di più o rispondere nello stesso formato | Impostate uno [stile di output](/docs/it/output-styles) |

67| Continuate a digitare lo stesso prompt per avviare un compito | Salvatelo come [skill](/docs/it/skills) invocabile dall'utente |67| Continuate a digitare lo stesso prompt per avviare un compito | Salvatelo come [skill](/docs/it/skills) invocabile dall'utente |

68| Incollate lo stesso playbook o procedura multi-step in chat per la terza volta | Catturatelo come [skill](/docs/it/skills) |68| Incollate lo stesso playbook o procedura multi-step in chat per la terza volta | Catturatelo come [skill](/docs/it/skills) |

69| Continuate a copiare dati da una scheda del browser che Claude non può vedere | Collegate quel sistema come [server MCP](/docs/it/mcp) |69| Continuate a copiare dati da una scheda del browser che Claude non può vedere | Collegate quel sistema come [server MCP](/docs/it/mcp) |

70| Claude legge molti file per trovare dove un simbolo è definito o utilizzato | Installate un [plugin di code intelligence](/docs/it/discover-plugins#code-intelligence) per il vostro linguaggio |70| Claude legge molti file per trovare dove un simbolo è definito o utilizzato | Installate un [plugin di code intelligence](/docs/it/plugins/code-intelligence) per il vostro linguaggio |

71| Un compito secondario inonda la vostra conversazione con output che non consulterete di nuovo | Indirizzatelo attraverso un [subagent](/docs/it/sub-agents) |71| Un compito secondario inonda la vostra conversazione con output che non consulterete di nuovo | Indirizzatelo attraverso un [subagent](/docs/it/sub-agents) |

72| Desiderate che qualcosa accada ogni volta senza chiedere | Scrivete un [hook](/docs/it/hooks-guide) |72| Desiderate che qualcosa accada ogni volta senza chiedere | Scrivete un [hook](/docs/it/hooks-guide) |

73| Un secondo repository ha bisogno della stessa configurazione | Confezionatelo come [plugin](/docs/it/plugins) |73| Un secondo repository ha bisogno della stessa configurazione | Confezionatelo come [plugin](/docs/it/plugins/overview) |

74 74 

75Gli stessi trigger vi dicono quando aggiornare ciò che avete già. Un errore ripetuto o un commento di revisione ricorrente è una modifica di CLAUDE.md, non una correzione una tantum in chat. Un flusso di lavoro che continuate a modificare manualmente è una skill che ha bisogno di un'altra revisione.75Gli stessi trigger vi dicono quando aggiornare ciò che avete già. Un errore ripetuto o un commento di revisione ricorrente è una modifica di CLAUDE.md, non una correzione una tantum in chat. Un flusso di lavoro che continuate a modificare manualmente è una skill che ha bisogno di un'altra revisione.

76 76 


207Le funzionalità possono essere definite a più livelli: a livello di utente, per progetto, tramite plugins o tramite politiche gestite. Potete anche annidare file CLAUDE.md in sottodirectory o posizionare skills in pacchetti specifici di un monorepo. Quando la stessa funzionalità esiste a più livelli, ecco come si stratificano:207Le funzionalità possono essere definite a più livelli: a livello di utente, per progetto, tramite plugins o tramite politiche gestite. Potete anche annidare file CLAUDE.md in sottodirectory o posizionare skills in pacchetti specifici di un monorepo. Quando la stessa funzionalità esiste a più livelli, ecco come si stratificano:

208 208 

209* **I file CLAUDE.md** sono additivi: tutti i livelli contribuiscono contenuti al contesto di Claude simultaneamente. I file dalla vostra directory di lavoro e sopra si caricano all'avvio; le sottodirectory si caricano mentre lavorate in esse. Quando le istruzioni entrano in conflitto, Claude usa il giudizio per riconciliarle. Consultate [come i file CLAUDE.md si caricano](/docs/it/memory#how-claude-md-files-load).209* **I file CLAUDE.md** sono additivi: tutti i livelli contribuiscono contenuti al contesto di Claude simultaneamente. I file dalla vostra directory di lavoro e sopra si caricano all'avvio; le sottodirectory si caricano mentre lavorate in esse. Quando le istruzioni entrano in conflitto, Claude usa il giudizio per riconciliarle. Consultate [come i file CLAUDE.md si caricano](/docs/it/memory#how-claude-md-files-load).

210* **Skills e subagents** si sovrascrivono per nome: quando lo stesso nome esiste a più livelli, una definizione vince in base alla priorità (gestito > utente > progetto per skills; gestito > flag CLI > progetto > utente > plugin per subagents). Le skills dei plugin sono [con spazio dei nomi](/docs/it/plugins#add-skills-to-your-plugin) per evitare conflitti. Consultate [scoperta delle skills](/docs/it/skills#resolve-skills-that-share-a-name) e [ambito del subagent](/docs/it/sub-agents#choose-the-subagent-scope).210* **Skills e subagents** si sovrascrivono per nome: quando lo stesso nome esiste a più livelli, una definizione vince in base alla priorità (gestito > utente > progetto per skills; gestito > flag CLI > progetto > utente > plugin per subagents). Le skills dei plugin sono [con spazio dei nomi](/docs/it/plugins/components#skills) per evitare conflitti. Consultate [scoperta delle skills](/docs/it/skills#resolve-skills-that-share-a-name) e [ambito del subagent](/docs/it/sub-agents#choose-the-subagent-scope).

211* **I server MCP** si sovrascrivono per nome: locale > progetto > utente. Consultate [ambito MCP](/docs/it/mcp#scope-hierarchy-and-precedence).211* **I server MCP** si sovrascrivono per nome: locale > progetto > utente. Consultate [ambito MCP](/docs/it/mcp#scope-hierarchy-and-precedence).

212* **Hooks** si uniscono: tutti gli hooks registrati si attivano per i loro eventi corrispondenti indipendentemente dalla fonte. Consultate [hooks](/docs/it/hooks-guide).212* **Hooks** si uniscono: tutti gli hooks registrati si attivano per i loro eventi corrispondenti indipendentemente dalla fonte. Consultate [hooks](/docs/it/hooks-guide).

213 213 


304 304 

305 **Costo del contesto:** Basso. Le ricerche di simboli spesso sostituiscono letture di file ampie, quindi l'uso netto del contesto può diminuire.305 **Costo del contesto:** Basso. Le ricerche di simboli spesso sostituiscono letture di file ampie, quindi l'uso netto del contesto può diminuire.

306 306 

307 <Tip>Lo strumento LSP è inattivo fino a quando non installate un [plugin di code intelligence](/docs/it/discover-plugins#code-intelligence) per il vostro linguaggio.</Tip>307 <Tip>Lo strumento LSP è inattivo fino a quando non installate un [plugin di code intelligence](/docs/it/plugins/code-intelligence) per il vostro linguaggio.</Tip>

308 </Tab>308 </Tab>

309 309 

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


370 Automatizzate i flussi di lavoro con gli hooks370 Automatizzate i flussi di lavoro con gli hooks

371 </Card>371 </Card>

372 372 

373 <Card title="Plugins" icon="puzzle-piece" href="/docs/it/plugins">373 <Card title="Plugins" icon="puzzle-piece" href="/docs/it/plugins/overview">

374 Confezionate e condividete set di funzionalità374 Confezionate e condividete set di funzionalità

375 </Card>375 </Card>

376 376 

377 <Card title="Marketplaces" icon="store" href="/docs/it/plugin-marketplaces">377 <Card title="Marketplaces" icon="store" href="/docs/it/plugins/create-marketplace">

378 Ospitate e distribuite raccolte di plugin378 Ospitate e distribuite raccolte di plugin

379 </Card>379 </Card>

380</CardGroup>380</CardGroup>

fullscreen.md +11 −10

Details

96 Usare il mouse96 Usare il mouse

97</h2>97</h2>

98 98 

99Il rendering a schermo intero acquisisce gli eventi del mouse e li gestisce all'interno di Claude Code:99Il rendering a schermo intero cattura gli eventi del mouse e li gestisce all'interno di Claude Code:

100 100 

101* **Fare clic nell'input del prompt** per posizionare il cursore in qualsiasi punto del testo che state digitando.101* **Fare clic nell'input del prompt** per posizionare il cursore in qualsiasi punto del testo che state digitando.

102* **Fare clic su un suggerimento nell'elenco dei comandi `/` o dei file `@`** per accettarlo. Passare il mouse evidenzia la riga sotto il cursore.102* **Fare clic su un suggerimento nel comando `/` o nell'elenco di file `@`** per accettarlo. Passare il mouse evidenzia la riga sotto il cursore.

103* **Fare clic su un'opzione in un menu di selezione** per sceglierla. Questo copre i prompt di autorizzazione, `/model`, `/config` e altri dialoghi che mostrano un elenco di opzioni. Passare il mouse mostra un puntatore sulla riga sotto il cursore. Richiede Claude Code v2.1.187 o successivo.103* **Fare clic su un'opzione in un menu di selezione** per sceglierla. Questo copre i prompt di autorizzazione, `/model`, `/config` e altri dialoghi che mostrano un elenco di opzioni. Passare il mouse mostra un puntatore sulla riga sotto il cursore.

104* **Fare clic su un'opzione in un menu di selezione multipla** per attivarla/disattivarla, e fare clic sul pulsante di invio per confermare le scelte. Fare clic su una riga di testo libero, come la riga `Other` in una domanda a scelta multipla, mette a fuoco il suo campo di input in modo da poter digitare una risposta. Richiede Claude Code v2.1.208 o successivo.104* **Fare clic su un'opzione in un menu di selezione multipla** per attivarla/disattivarla, e fare clic sul pulsante di invio per confermare le scelte. Fare clic su una riga di testo libero, come la riga `Other` in una domanda a scelta multipla, mette a fuoco il suo campo di input in modo da poter digitare una risposta. Richiede Claude Code v2.1.208 o successivo.

105* **Fare clic sul valore di un'impostazione nel pannello `/config`** per modificarlo, e scorrere l'elenco delle impostazioni con la rotella del mouse. Richiede Claude Code v2.1.271 o successivo.105* **Fare clic sul valore di un'impostazione nel pannello `/config`** per modificarlo, e scorrere l'elenco delle impostazioni con la rotella del mouse. Richiede Claude Code v2.1.271 o successivo.

106* **Fare clic su un risultato dello strumento compresso** per espanderlo e visualizzare l'output completo. Fare clic di nuovo per comprimerlo. La chiamata dello strumento e il suo risultato si espandono insieme. Solo i messaggi che hanno più da mostrare sono cliccabili.106* **Scorrere un menu di selezione o selezione multipla con la rotella del mouse** quando ha più opzioni di quante ne mostri contemporaneamente, come l'elenco `/model` in una finestra del terminale breve. La rotella scorre l'elenco mentre il puntatore si trova sopra le sue opzioni. Richiede Claude Code v2.1.280 o successivo.

107 * Fare clic espande anche l'output di un comando shell `!`, sia un risultato troncato precedente che la riga di progresso in tempo reale mentre il comando è in esecuzione. Richiede Claude Code v2.1.257 o successivo.107* **Fare clic su un risultato dello strumento compresso** per espanderlo e vedere l'output completo. Fare clic di nuovo per comprimerlo. La chiamata dello strumento e il suo risultato si espandono insieme. Solo i messaggi che hanno più da mostrare sono cliccabili.

108* **Tenere premuto `Cmd` su macOS, o `Ctrl` su Linux e Windows, e fare clic su un URL o un percorso di file** per aprirlo. Gli URL semplici `http://` e `https://` si aprono nel vostro browser, e i percorsi di file nell'output dello strumento, come quelli stampati dopo un Edit o Write, si aprono nell'applicazione predefinita. Un semplice clic senza il modificatore non apre i link, corrispondendo al comportamento nativo del terminale.108 * Fare clic espande anche l'output di un comando shell `!`, sia un risultato troncato più vecchio che la riga di progresso in tempo reale mentre il comando è in esecuzione. Richiede Claude Code v2.1.257 o successivo.

109 * Claude Code esegue il rendering di un percorso di rete (UNC), come `\\server\share\file.ts`, come testo semplice senza link, perché aprire un percorso di rete può inviare le vostre credenziali Windows all'host che nomina.109* **Tenere premuto `Cmd` su macOS, o `Ctrl` su Linux e Windows, e fare clic su un URL o un percorso di file** per aprirlo. Gli URL semplici `http://` e `https://` si aprono nel browser, e i percorsi di file nell'output dello strumento, come quelli stampati dopo un Edit o Write, si aprono nell'applicazione predefinita. Un semplice clic senza il modificatore non apre i link, corrispondendo al comportamento nativo del terminale.

110 * Alcuni terminali macOS inoltrano `Cmd`+clic all'app in esecuzione invece di aprire il link stessi, e il protocollo del mouse del terminale non ha modo di codificare il tasto `Cmd`, quindi Claude Code riceve un semplice clic. In Ghostty, e in Warp su macOS, Claude Code lo rileva e consente a un semplice clic su un link di aprirlo, e tenere premuto `Cmd` funziona ancora.110 * Claude Code esegue il rendering di un percorso di rete (UNC), come `\\server\share\file.ts`, come testo semplice senza link, perché aprire un percorso di rete può inviare le credenziali di Windows all'host che nomina.

111 * Alcuni terminali macOS inoltrano `Cmd`+clic all'app in esecuzione invece di aprire il link da soli, e il protocollo del mouse del terminale non ha modo di codificare il tasto `Cmd`, quindi Claude Code riceve un semplice clic. In Ghostty, e in Warp su macOS, Claude Code lo rileva e consente a un semplice clic su un link di aprirlo, e tenere premuto `Cmd` funziona ancora.

111 * Nel terminale integrato di VS Code e in terminali simili basati su xterm.js, Claude Code si affida al gestore di link del terminale stesso, che utilizza lo stesso gesto.112 * Nel terminale integrato di VS Code e in terminali simili basati su xterm.js, Claude Code si affida al gestore di link del terminale stesso, che utilizza lo stesso gesto.

112* **Fare clic e trascinare** per selezionare il testo in qualsiasi punto della conversazione. Un doppio clic seleziona una parola, corrispondendo ai confini delle parole di iTerm2 in modo che un percorso di file si selezioni come un'unità. Un doppio clic su un URL seleziona l'intero URL, incluso lo schema. Un triplo clic seleziona la riga.113* **Fare clic e trascinare** per selezionare il testo in qualsiasi punto della conversazione. Un doppio clic seleziona una parola, corrispondendo ai confini delle parole di iTerm2 in modo che un percorso di file si selezioni come un'unità. Un doppio clic su un URL seleziona l'intero URL, incluso lo schema. Un triplo clic seleziona la riga.

113* **Scorrere con la rotella del mouse** per muoversi attraverso la conversazione.114* **Scorrere con la rotella del mouse** per muoversi attraverso la conversazione.

114 115 

115Il testo selezionato viene copiato automaticamente negli appunti al rilascio del mouse. Per disattivare questa funzione, attivate Copy on select in `/config`.116Il testo selezionato viene copiato automaticamente negli appunti al rilascio del mouse. Per disattivare questa funzione, attivate/disattivate Copy on select in `/config`.

116 117 

117Con Copy on select disattivato, premete `Ctrl+Shift+c` per copiare manualmente. Su terminali che supportano il protocollo della tastiera kitty, come kitty, WezTerm, Ghostty e iTerm2, funziona anche `Cmd+c`. Se avete una selezione attiva, `Ctrl+c` copia invece di annullare.118Con Copy on select disattivato, premete `Ctrl+Shift+c` per copiare manualmente. Su terminali che supportano il protocollo della tastiera kitty, come kitty, WezTerm, Ghostty e iTerm2, funziona anche `Cmd+c`. Se avete una selezione attiva, `Ctrl+c` copia invece di annullare.

118 119 


122 123 

123* **`Esc`**: Claude Code esegue l'azione usuale del tasto, come interrompere la risposta in esecuzione o chiudere un dialogo aperto, e la selezione rimane evidenziata.124* **`Esc`**: Claude Code esegue l'azione usuale del tasto, come interrompere la risposta in esecuzione o chiudere un dialogo aperto, e la selezione rimane evidenziata.

124* **`PgUp`, `PgDn`, `Ctrl+Home`, `Ctrl+End`, o `Shift`, `Alt` o `Option`, o `Cmd`, `Win`, o `Super` con un tasto freccia, `Home`, o `End`**: la selezione rimane.125* **`PgUp`, `PgDn`, `Ctrl+Home`, `Ctrl+End`, o `Shift`, `Alt` o `Option`, o `Cmd`, `Win`, o `Super` con un tasto freccia, `Home`, o `End`**: la selezione rimane.

125* **Qualsiasi altro tasto, inclusi i tasti freccia semplici, `Enter`, e i caratteri digitati**: Claude Code cancella la selezione.126* **Qualsiasi altro tasto, inclusi i tasti freccia semplici, `Enter` e i caratteri digitati**: Claude Code cancella la selezione.

126* **Un tasto associato a [`selection:clear`](/docs/it/keybindings#scroll-actions)**: Claude Code cancella la selezione, anche quando il tasto è `Esc` o un altro tasto che altrimenti la mantiene. L'azione non ha un binding predefinito.127* **Un tasto associato a [`selection:clear`](/docs/it/keybindings#scroll-actions)**: Claude Code cancella la selezione, anche quando il tasto è `Esc` o un altro tasto che altrimenti la mantiene. L'azione non ha un binding predefinito.

127 128 

128In [modalità trascrizione](#search-and-review-the-conversation), i tasti di navigazione e ricerca elencati lì mantengono anche la selezione.129In [modalità trascrizione](#search-and-review-the-conversation), i tasti di navigazione e ricerca elencati lì mantengono anche la selezione.

Details

50* Esegui `/install-github-app` di nuovo. Quando il repository ha già un `claude.yml`, seleziona **Update workflow file with latest version**. Claude Code spinge copie fresche dei file di flusso di lavoro a un nuovo ramo e apre la pull request, come un primo install.50* Esegui `/install-github-app` di nuovo. Quando il repository ha già un `claude.yml`, seleziona **Update workflow file with latest version**. Claude Code spinge copie fresche dei file di flusso di lavoro a un nuovo ramo e apre la pull request, come un primo install.

51* Aggiungi l'argomento `--comment` e la riga `claude_args` dall'[esempio del flusso di lavoro di revisione](#run-a-skill) al file archiviato da solo, che mantiene qualsiasi altra modifica che hai fatto ad esso.51* Aggiungi l'argomento `--comment` e la riga `claude_args` dall'[esempio del flusso di lavoro di revisione](#run-a-skill) al file archiviato da solo, che mantiene qualsiasi altra modifica che hai fatto ad esso.

52 52 

53Dopo aver installato l'app GitHub, Claude Code chiede se continuare con la configurazione di GitHub Actions. Scegli **Skip for now** per fermarti con solo l'app GitHub installata. Esegui `/install-github-app` di nuovo in seguito per completare i passaggi del flusso di lavoro e del secret. Prima della v2.1.187, Claude Code procedeva direttamente alla selezione del flusso di lavoro.53Dopo aver installato l'app GitHub, Claude Code chiede se continuare con la configurazione di GitHub Actions. Scegli **Skip for now** per fermarti con solo l'app GitHub installata. Esegui `/install-github-app` di nuovo in seguito per completare i passaggi del flusso di lavoro e del secret.

54 54 

55<Note>55<Note>

56 * Quando installi l'app GitHub, le concedi diverse autorizzazioni. Vedi [Autorizzazioni dell'app GitHub](#github-app-permissions) per l'insieme completo56 * Quando installi l'app GitHub, le concedi diverse autorizzazioni. Vedi [Autorizzazioni dell'app GitHub](#github-app-permissions) per l'insieme completo


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

238 238 

239* Per una skill nella directory `.claude/skills/` del tuo repository, esegui `actions/checkout` prima del passo `anthropics/claude-code-action` in modo che i file della skill siano disponibili sul runner, quindi passa `/skill-name` come `prompt`.239* Per una skill nella directory `.claude/skills/` del tuo repository, esegui `actions/checkout` prima del passo `anthropics/claude-code-action` in modo che i file della skill siano disponibili sul runner, quindi passa `/skill-name` come `prompt`.

240* Per una skill inclusa in un [plugin](/docs/it/plugins), installa il plugin con gli input `plugin_marketplaces` e `plugins`, quindi passa lo `/plugin-name:skill-name` con namespace come `prompt`. L'input `plugins` accetta `plugin-name@marketplace-name`, dove il nome del marketplace proviene dal manifesto del marketplace stesso piuttosto che dall'URL del suo repository.240* Per una skill inclusa in un [plugin](/docs/it/plugins/overview), installa il plugin con gli input `plugin_marketplaces` e `plugins`, quindi passa lo `/plugin-name:skill-name` con namespace come `prompt`. L'input `plugins` accetta `plugin-name@marketplace-name`, dove il nome del marketplace proviene dal manifesto del marketplace stesso piuttosto che dall'URL del suo repository.

241 241 

242Il seguente flusso di lavoro installa il plugin `code-review` ed esegue la sua skill quando una pull request viene aperta, aggiornata, riaperta o contrassegnata come pronta per la revisione. Esegue lo stesso plugin del flusso di lavoro di revisione dallo setup rapido. Usa un flusso di lavoro come questo quando vuoi controllare il prompt, il modello e i trigger da solo. Per revisioni automatiche senza mantenere un file di flusso di lavoro, vedi [Code Review](/docs/it/code-review). Su repository pubblici, GitHub trattiene i secret dalle esecuzioni attivate da pull request di fork, quindi la revisione viene eseguita solo su pull request da rami nello stesso repository.242Il seguente flusso di lavoro installa il plugin `code-review` ed esegue la sua skill quando una pull request viene aperta, aggiornata, riaperta o contrassegnata come pronta per la revisione. Esegue lo stesso plugin del flusso di lavoro di revisione dallo setup rapido. Usa un flusso di lavoro come questo quando vuoi controllare il prompt, il modello e i trigger da solo. Per revisioni automatiche senza mantenere un file di flusso di lavoro, vedi [Code Review](/docs/it/code-review). Su repository pubblici, GitHub trattiene i secret dalle esecuzioni attivate da pull request di fork, quindi la revisione viene eseguita solo su pull request da rami nello stesso repository.

243 243 

Details

68Il manifesto configura l'app GitHub con i permessi e gli eventi webhook di seguito, che insieme coprono sessioni web, Code Review, Claude Security, marketplace di plugin e metriche di contribuzione:68Il manifesto configura l'app GitHub con i permessi e gli eventi webhook di seguito, che insieme coprono sessioni web, Code Review, Claude Security, marketplace di plugin e metriche di contribuzione:

69 69 

70| Permesso | Accesso | Utilizzato per |70| Permesso | Accesso | Utilizzato per |

71| :------------------- | :------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |71| :------------------- | :------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

72| Contents | Lettura e scrittura | Clonazione di repository e push di branch |72| Contents | Lettura e scrittura | Clonazione di repository e push di branch |

73| Pull requests | Lettura e scrittura | Creazione di PR e pubblicazione di commenti di revisione |73| Pull requests | Lettura e scrittura | Creazione di PR e pubblicazione di commenti di revisione |

74| Issues | Lettura e scrittura | Risposta a menzioni di problemi |74| Issues | Lettura e scrittura | Risposta a menzioni di problemi |

75| Checks | Lettura e scrittura | Pubblicazione di esecuzioni di controllo Code Review |75| Checks | Lettura e scrittura | Pubblicazione di esecuzioni di controllo Code Review |

76| Actions | Lettura | Lettura dello stato CI per auto-fix |76| Actions | Lettura | Lettura dello stato CI per auto-fix |

77| Commit statuses | Lettura | Lettura dello stato CI da provider che segnalano stati di commit invece di esecuzioni di controllo |77| Commit statuses | Lettura | Lettura dello stato CI da provider che segnalano stati di commit invece di esecuzioni di controllo |

78| Repository hooks | Lettura e scrittura | Creazione di un webhook su un repository marketplace di plugin quando **Sincronizza automaticamente** è attivato per un marketplace in [Impostazioni organizzazione > Plugin](https://claude.ai/admin-settings/plugins) |78| Repository hooks | Lettura e scrittura | Creazione di un webhook su un repository marketplace di plugin quando **Sincronizza automaticamente** è attivato per un marketplace in [**Impostazioni organizzazione > Plugin e skills**](https://claude.ai/admin-settings/skills?tab=marketplaces) |

79| Metadata | Lettura | Richiesto da GitHub per tutte le app |79| Metadata | Lettura | Richiesto da GitHub per tutte le app |

80| Organization members | Lettura | Corrispondenza dell'app GitHub di Claude su github.com, che la utilizza per verificare il ruolo dell'organizzazione di un utente che si connette quando si collega un'installazione |80| Organization members | Lettura | Corrispondenza dell'app GitHub di Claude su github.com, che la utilizza per verificare il ruolo dell'organizzazione di un utente che si connette quando si collega un'installazione |

81 81 


160 160 

161Claude Code esegue git in modo non interattivo e rifiuta le connessioni SSH agli host che non si trovano nel file `known_hosts` della macchina. Un URL HTTPS con un git credential helper evita il requisito `known_hosts`.161Claude Code esegue git in modo non interattivo e rifiuta le connessioni SSH agli host che non si trovano nel file `known_hosts` della macchina. Un URL HTTPS con un git credential helper evita il requisito `known_hosts`.

162 162 

163Vedi [Crea e distribuisci un marketplace di plugin](/docs/it/plugin-marketplaces) per la guida completa alla creazione di marketplace.163Vedi [Crea e distribuisci un marketplace di plugin](/docs/it/plugins/create-marketplace) per la guida completa alla creazione di marketplace.

164 164 

165<h3 id="pre-register-ghes-marketplaces-with-managed-settings">165<h3 id="pre-register-ghes-marketplaces-with-managed-settings">

166 Pre-registra i marketplace GHES con le impostazioni gestite166 Pre-registra i marketplace GHES con le impostazioni gestite


262 262 

263* [Claude Code sul web](/docs/it/claude-code-on-the-web): esegui sessioni Claude Code sull'infrastruttura cloud263* [Claude Code sul web](/docs/it/claude-code-on-the-web): esegui sessioni Claude Code sull'infrastruttura cloud

264* [Code Review](/docs/it/code-review): revisioni automatiche dei PR264* [Code Review](/docs/it/code-review): revisioni automatiche dei PR

265* [Marketplace di plugin](/docs/it/plugin-marketplaces): crea e distribuisci cataloghi di plugin265* [Marketplace di plugin](/docs/it/plugins/host-marketplace): crea e distribuisci cataloghi di plugin

266* [Analytics](/docs/it/analytics): traccia l'utilizzo e le metriche di contribuzione266* [Analytics](/docs/it/analytics): traccia l'utilizzo e le metriche di contribuzione

267* [Impostazioni gestite](/docs/it/settings): configurazione della policy a livello di organizzazione267* [Impostazioni gestite](/docs/it/settings): configurazione della policy a livello di organizzazione

268* [Configurazione di rete](/docs/it/network-config): requisiti di firewall e whitelist IP268* [Configurazione di rete](/docs/it/network-config): requisiti di firewall e whitelist IP

glossary.md +3 −3

Details

84 Bare mode84 Bare mode

85</h3>85</h3>

86 86 

87Con `--bare`, Claude Code si avvia senza caricare hooks, skills, comandi personalizzati, subagenti, plugin, server MCP, auto memory o CLAUDE.md, a parte gli skills in una directory che passi con `--add-dir`. Consigliato per CI e chiamate con script dove hai bisogno dello stesso risultato su ogni macchina.87Con `--bare`, Claude Code si avvia senza caricare hooks, skills, comandi personalizzati, subagenti, plugin installati, server MCP, auto memory o CLAUDE.md, a parte gli skills in una directory che passi con `--add-dir`. Consigliato per CI e chiamate con script dove hai bisogno dello stesso risultato su ogni macchina.

88 88 

89Scopri di più: [Avvia più velocemente con bare mode](/docs/it/headless#start-faster-with-bare-mode)89Scopri di più: [Avvia più velocemente con bare mode](/docs/it/headless#start-faster-with-bare-mode)

90 90 


332 Plugin332 Plugin

333</h3>333</h3>

334 334 

335Un bundle di skills, hooks, subagents e server MCP confezionati come una singola unità installabile. Le plugin skills sono spaziate dei nomi come `plugin-name:skill-name` in modo che più plugin coesistano. Distribuisci i plugin tra i team tramite un [marketplace](/docs/it/plugin-marketplaces).335Un bundle di skills, hooks, subagents e server MCP confezionati come una singola unità installabile. Le plugin skills sono spaziate dei nomi come `plugin-name:skill-name` in modo che più plugin coesistano. Distribuisci i plugin tra i team tramite un [marketplace](/docs/it/plugins/overview).

336 336 

337Scopri di più: [Plugins](/docs/it/plugins)337Scopri di più: [Plugins](/docs/it/plugins/overview)

338 338 

339<h3 id="project-trust">339<h3 id="project-trust">

340 Project trust340 Project trust

headless.md +1 −1

Details

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

39</h3>39</h3>

40 40 

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

42 42 

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

44 44 

hooks.md +11 −13

Details

259Il luogo in cui definisci un hook determina il suo ambito:259Il luogo in cui definisci un hook determina il suo ambito:

260 260 

261| Posizione | Ambito | Condivisibile |261| Posizione | Ambito | Condivisibile |

262| :--------------------------------------- | :-------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------- |262| :------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------- |

263| `~/.claude/settings.json` | Tutti i tuoi progetti | No, locale sulla tua macchina |263| `~/.claude/settings.json` | Tutti i tuoi progetti | No, locale sulla tua macchina |

264| `.claude/settings.json` | Singolo progetto | Sì, può essere committato nel repo |264| `.claude/settings.json` | Singolo progetto | Sì, può essere committato nel repo |

265| `.claude/settings.local.json` | Singolo progetto | No, gitignored quando Claude Code salva un'impostazione in esso |265| `.claude/settings.local.json` | Singolo progetto | No, gitignored quando Claude Code salva un'impostazione in esso |

266| Impostazioni di policy gestite | A livello di organizzazione | Sì, controllato dall'amministratore |266| Impostazioni di policy gestite | A livello di organizzazione | Sì, controllato dall'amministratore |

267| [Plugin](/docs/it/plugins) `hooks/hooks.json` | Quando il plugin è abilitato | Sì, incluso nel plugin |267| [Plugin](/docs/it/plugins/overview) `hooks/hooks.json` | Quando il plugin è abilitato | Sì, incluso nel plugin |

268| [Skill](/docs/it/skills) frontmatter | Il resto della sessione una volta che lo skill è invocato. Vedi [Hook in skill e agenti](#hooks-in-skills-and-agents) | Sì, definito nel file dello skill |268| [Skill](/docs/it/skills) frontmatter | Il resto della sessione una volta che lo skill è invocato. Vedi [Hook in skill e agenti](#hooks-in-skills-and-agents) | Sì, definito nel file dello skill |

269| [Subagent](/docs/it/sub-agents) frontmatter | Mentre quel subagent è in esecuzione | Sì, definito nel file del subagent |269| [Subagent](/docs/it/sub-agents) frontmatter | Mentre quel subagent è in esecuzione | Sì, definito nel file del subagent |

270 270 

271[Le sessioni cloud](/docs/it/claude-code-on-the-web) non leggono il tuo `~/.claude/settings.json` locale; gli hook lì provengono dal `.claude/settings.json` del repo in una sessione con un repository, dai plugin [sincronizzati dal tuo account claude.ai](/docs/it/plugins-reference#synced-plugins), e dalle impostazioni gestite dal server della tua organizzazione. In un [ambiente self-hosted](/docs/it/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code esegue anche gli hook che l'operatore ha seminato da `~/.claude/` dell'host runner, e esegue gli hook nel file di impostazioni gestite dell'immagine runner quando quel file è tra le [fonti gestite che Claude Code applica](/docs/it/managed-settings#how-claude-code-combines-managed-sources), il che per impostazione predefinita significa solo quando né le impostazioni gestite dal server né una policy Claude Code consegnata da MDM forniscono il livello gestito. Vedi [cosa viene trasferito dalla tua configurazione](/docs/it/cloud-environments#what-carries-over-from-your-setup) per quali file raggiungono una sessione cloud.271[Le sessioni cloud](/docs/it/claude-code-on-the-web) non leggono il tuo `~/.claude/settings.json` locale. In un [ambiente self-hosted](/docs/it/self-hosted-environments-configuration#permissions-and-tool-approval), Claude Code esegue anche gli hook che l'operatore ha seminato da `~/.claude/` dell'host runner, e esegue gli hook nel file di impostazioni gestite dell'immagine runner quando quel file è tra le [fonti gestite che Claude Code applica](/docs/it/managed-settings#how-claude-code-combines-managed-sources), il che per impostazione predefinita significa solo quando né le impostazioni gestite dal server né una policy Claude Code consegnata da MDM forniscono il livello gestito. Vedi [cosa viene trasferito dalla tua configurazione](/docs/it/cloud-environments#what-carries-over-from-your-setup) per quali file di impostazioni e plugin, e quindi quali hook, raggiungono una sessione cloud.

272 272 

273Per i dettagli sulla risoluzione dei file di impostazioni, vedi [settings](/docs/it/settings).273Per i dettagli sulla risoluzione dei file di impostazioni, vedi [settings](/docs/it/settings).

274 274 


278 278 

279* I tuoi hook utente, progetto, locale e plugin sono bloccati. Gli hook dai plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins` sono esenti279* I tuoi hook utente, progetto, locale e plugin sono bloccati. Gli hook dai plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins` sono esenti

280* Claude Code restringe anche le tue impostazioni [`statusLine`](/docs/it/statusline), [`fileSuggestion`](/docs/it/settings-reference#filesuggestion), e [`subagentStatusLine`](/docs/it/statusline#subagent-status-lines) alle impostazioni gestite280* Claude Code restringe anche le tue impostazioni [`statusLine`](/docs/it/statusline), [`fileSuggestion`](/docs/it/settings-reference#filesuggestion), e [`subagentStatusLine`](/docs/it/statusline#subagent-status-lines) alle impostazioni gestite

281* Claude Code disabilita anche i plugin con una [`command` source](/docs/it/plugin-marketplaces#command-sources), inclusi i plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins`, a meno che [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) non sia esplicitamente impostato su `false`. Le `command` sources richiedono Claude Code v2.1.229 o successivo281* Claude Code disabilita anche i plugin con una [`command` source](/docs/it/plugins/marketplace-reference#command-plugin-source), inclusi i plugin forzatamente abilitati nelle impostazioni gestite `enabledPlugins`, a meno che [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) non sia esplicitamente impostato su `false`. Le `command` sources richiedono Claude Code v2.1.229 o successivo

282* Claude Code blocca anche i comandi [`headersHelper`](/docs/it/plugin-marketplaces#authenticate-archive-downloads) del marketplace a meno che [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) non sia esplicitamente impostato su `false`, tranne per un marketplace che le impostazioni gestite stesse dichiarano282* Claude Code blocca anche i comandi [`headersHelper`](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) del marketplace a meno che [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) non sia esplicitamente impostato su `false`, tranne per un marketplace che le impostazioni gestite stesse dichiarano

283 283 

284Vedi [cosa viene eseguito sotto `allowManagedHooksOnly`](/docs/it/settings-reference#what-runs-under-allowmanagedhooksonly).284Vedi [cosa viene eseguito sotto `allowManagedHooksOnly`](/docs/it/settings-reference#what-runs-under-allowmanagedhooksonly).

285 285 


304 304 

305Un matcher sul percorso dell'espressione regolare viene testato con `RegExp.prototype.test` di JavaScript, che ha successo su una corrispondenza in qualsiasi punto del valore. `Edit.*` corrisponde sia a `Edit` che a `NotebookEdit`; racchiudi il pattern in `^` e `$`, come in `^Edit$`, quando hai bisogno di una corrispondenza di intera stringa.305Un matcher sul percorso dell'espressione regolare viene testato con `RegExp.prototype.test` di JavaScript, che ha successo su una corrispondenza in qualsiasi punto del valore. `Edit.*` corrisponde sia a `Edit` che a `NotebookEdit`; racchiudi il pattern in `^` e `$`, come in `^Edit$`, quando hai bisogno di una corrispondenza di intera stringa.

306 306 

307I separatori di virgola e la tolleranza dello spazio bianco circostante richiedono Claude Code v2.1.191 o successivo.

308 

309I trattini nel set di corrispondenza esatta richiedono Claude Code v2.1.195 o successivo. Nelle versioni precedenti un nome con trattino come `code-reviewer` viene valutato come un'espressione regolare non ancorata, quindi si attiva anche per `senior-code-reviewer`; ancoratelo come `^code-reviewer$` in quelle versioni per corrispondere solo a quel nome.307I trattini nel set di corrispondenza esatta richiedono Claude Code v2.1.195 o successivo. Nelle versioni precedenti un nome con trattino come `code-reviewer` viene valutato come un'espressione regolare non ancorata, quindi si attiva anche per `senior-code-reviewer`; ancoratelo come `^code-reviewer$` in quelle versioni per corrispondere solo a quel nome.

310 308 

311`FileChanged` e `StopFailure` utilizzano un set di corrispondenza esatta più ristretto di sole lettere, cifre, `_`, e `|`. Un trattino, spazio, o virgola in un matcher per questi due eventi lo mantiene sul percorso dell'espressione regolare, e solo `|` separa le alternative. Ogni altro evento con supporto matcher nella tabella che segue accetta `|` o `,`.309`FileChanged` e `StopFailure` utilizzano un set di corrispondenza esatta più ristretto di sole lettere, cifre, `_`, e `|`. Un trattino, spazio, o virgola in un matcher per questi due eventi lo mantiene sul percorso dell'espressione regolare, e solo `|` separa le alternative. Ogni altro evento con supporto matcher nella tabella che segue accetta `|` o `,`.


516 514 

517Entrambe le forme supportano gli stessi [placeholder di percorso](#reference-scripts-by-path), ed entrambe li esportano come variabili di ambiente `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT`, e `CLAUDE_PLUGIN_DATA` sul processo generato, quindi uno script può leggere `process.env.CLAUDE_PLUGIN_ROOT` indipendentemente da come è stato lanciato.515Entrambe le forme supportano gli stessi [placeholder di percorso](#reference-scripts-by-path), ed entrambe li esportano come variabili di ambiente `CLAUDE_PROJECT_DIR`, `CLAUDE_PLUGIN_ROOT`, e `CLAUDE_PLUGIN_DATA` sul processo generato, quindi uno script può leggere `process.env.CLAUDE_PLUGIN_ROOT` indipendentemente da come è stato lanciato.

518 516 

519Gli hook plugin inoltre sostituiscono i valori [`${user_config.*}`](/docs/it/plugins-reference#user-configuration), solo in exec form: il valore viene sostituito in `command` e in ogni elemento `args` come una stringa semplice, quindi nessuna shell lo ri-analizza.517Gli hook plugin inoltre sostituiscono i valori [`${user_config.*}`](/docs/it/plugins/manifest-reference#user-configuration), solo in exec form: il valore viene sostituito in `command` e in ogni elemento `args` come una stringa semplice, quindi nessuna shell lo ri-analizza.

520 518 

521Un hook plugin in shell form il cui `command` fa riferimento a `${user_config.*}` fallisce con un [errore](/docs/it/errors#plugin-command-references-user-config) invece di essere eseguito. Per utilizzare un valore di opzione da un hook in shell form, leggi la variabile di ambiente `$CLAUDE_PLUGIN_OPTION_<KEY>`, come `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` per un'opzione `webhook_url`, o imposta `args` per passare l'hook a exec form. Prima di v2.1.207, i comandi degli hook plugin in shell form sostituivano anche `${user_config.*}`.519Un hook plugin in shell form il cui `command` fa riferimento a `${user_config.*}` fallisce con un [errore](/docs/it/errors#plugin-command-references-user-config) invece di essere eseguito. Per utilizzare un valore di opzione da un hook in shell form, leggi la variabile di ambiente `$CLAUDE_PLUGIN_OPTION_<KEY>`, come `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL` per un'opzione `webhook_url`, o imposta `args` per passare l'hook a exec form. Prima di v2.1.207, i comandi degli hook plugin in shell form sostituivano anche `${user_config.*}`.

522 520 


647Utilizza questi placeholder per fare riferimento agli script degli hook relativi alla radice del progetto o del plugin, indipendentemente dalla directory di lavoro quando l'hook viene eseguito:645Utilizza questi placeholder per fare riferimento agli script degli hook relativi alla radice del progetto o del plugin, indipendentemente dalla directory di lavoro quando l'hook viene eseguito:

648 646 

649* `${CLAUDE_PROJECT_DIR}`: la radice del progetto dove è iniziata la sessione. Claude Code imposta anche questa variabile nell'ambiente dei [server MCP stdio](/docs/it/mcp#option-3-add-a-local-stdio-server) e dei server LSP dei plugin.647* `${CLAUDE_PROJECT_DIR}`: la radice del progetto dove è iniziata la sessione. Claude Code imposta anche questa variabile nell'ambiente dei [server MCP stdio](/docs/it/mcp#option-3-add-a-local-stdio-server) e dei server LSP dei plugin.

650* `${CLAUDE_PLUGIN_ROOT}`: la directory di installazione del plugin, per gli script raggruppati con un [plugin](/docs/it/plugins). Vedi [variabili di ambiente del plugin](/docs/it/plugins-reference#environment-variables) per come il percorso si comporta tra gli aggiornamenti.648* `${CLAUDE_PLUGIN_ROOT}`: la directory di installazione del plugin, per gli script raggruppati con un [plugin](/docs/it/plugins/overview). Vedi [variabili di ambiente del plugin](/docs/it/plugins/manifest-reference#environment-variables) per come il percorso si comporta tra gli aggiornamenti.

651* `${CLAUDE_PLUGIN_DATA}`: la [directory di dati persistenti](/docs/it/plugins-reference#persistent-data-directory) del plugin, per le dipendenze e lo stato che dovrebbero sopravvivere agli aggiornamenti del plugin.649* `${CLAUDE_PLUGIN_DATA}`: la [directory di dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data) del plugin, per le dipendenze e lo stato che dovrebbero sopravvivere agli aggiornamenti del plugin.

652 650 

653<Note>651<Note>

654 **I worktree sono diversi.** Se Claude entra in un [worktree](/docs/it/worktrees) durante la sessione, Claude Code mantiene `${CLAUDE_PROJECT_DIR}` dove era e passa il percorso del worktree ai tuoi hook in un modo diverso:652 **I worktree sono diversi.** Se Claude entra in un [worktree](/docs/it/worktrees) durante la sessione, Claude Code mantiene `${CLAUDE_PROJECT_DIR}` dove era e passa il percorso del worktree ai tuoi hook in un modo diverso:


709 }707 }

710 ```708 ```

711 709 

712 Vedi il [riferimento dei componenti del plugin](/docs/it/plugins-reference#hooks) per i dettagli sulla creazione degli hook del plugin.710 Vedi il [riferimento dei componenti del plugin](/docs/it/plugins/components#hooks) per i dettagli sulla creazione degli hook del plugin.

713 </Tab>711 </Tab>

714</Tabs>712</Tabs>

715 713 


1351 1349 

1352Al successo, `--init-only` non stampa nulla nel terminale. Per confermare che gli hook si sono eseguiti, inizia con `claude --debug-file <path> --init-only`, sostituendo `<path>` con una posizione di file di log, e controlla il log per le voci degli hook Setup e SessionStart.1350Al successo, `--init-only` non stampa nulla nel terminale. Per confermare che gli hook si sono eseguiti, inizia con `claude --debug-file <path> --init-only`, sostituendo `<path>` con una posizione di file di log, e controlla il log per le voci degli hook Setup e SessionStart.

1353 1351 

1354Poiché Setup non si attiva ad ogni lancio, un plugin che ha bisogno di una dipendenza installata non può fare affidamento solo su Setup. Il modello pratico è controllare la dipendenza al primo utilizzo e installare se assente, ad esempio un hook o una skill che testa per `${CLAUDE_PLUGIN_DATA}/node_modules` ed esegue `npm install` se assente. Vedi la [persistent data directory](/docs/it/plugins-reference#persistent-data-directory) per dove archiviare le dipendenze installate. Se distribuisci il tuo plugin tramite un marketplace, potresti non aver bisogno di questo modello: Claude Code [installa automaticamente le dipendenze dei pacchetti Node.js idonei](/docs/it/plugins-reference#node-js-package-dependencies) quando memorizza il plugin nella cache.1352Poiché Setup non si attiva ad ogni lancio, un plugin che ha bisogno di una dipendenza installata non può fare affidamento solo su Setup. Il modello pratico è controllare la dipendenza al primo utilizzo e installare se assente, ad esempio un hook o una skill che testa per `${CLAUDE_PLUGIN_DATA}/node_modules` ed esegue `npm install` se assente. Vedi la [persistent data directory](/docs/it/plugins/components#path-variables-and-persistent-data) per dove archiviare le dipendenze installate. Se distribuisci il tuo plugin tramite un marketplace, potresti non aver bisogno di questo modello: Claude Code [installa automaticamente le dipendenze dei pacchetti Node.js idonei](/docs/it/plugins/loading#node-js-package-dependencies) quando memorizza il plugin nella cache.

1355 1353 

1356<h4 id="setup-input">1354<h4 id="setup-input">

1357 Setup input1355 Setup input


2767| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |2765| :---------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- |

2768| `id` | Identificatore del compito cron |2766| `id` | Identificatore del compito cron |

2769| `schedule` | Espressione cron, ad esempio `0 9 * * 1-5` |2767| `schedule` | Espressione cron, ad esempio `0 9 * * 1-5` |

2770| `recurring` | `false` per i risvegli una tantum il cui programma codifica un singolo tempo di att ivazione, `true` per i compiti che si riattivano su ogni corrispondenza |2768| `recurring` | `false` per i risvegli una tantum il cui programma codifica un sing olo tempo di attivazione, `true` per i compiti che si riattivano su ogni corrispondenza |

2771| `prompt` | Prompt inviato quando il cron si attiva, limitato a 1000 caratteri con lo stesso marcatore `… [+N chars]` |2769| `prompt` | Prompt inviato quando il cron si attiva, limitato a 1000 caratteri con lo stesso marcatore `… [+N chars]` |

2772 2770 

2773Questo esempio mostra un input Stop con un compito shell in volo e un cron ricorrente:2771Questo esempio mostra un input Stop con un compito shell in volo e un cron ricorrente:

hooks-guide.md +2 −2

Details

10 10 

11Per decisioni che richiedono giudizio piuttosto che regole deterministiche, potete anche utilizzare [hooks basati su prompt](#prompt-based-hooks) o [hooks basati su agenti](#agent-based-hooks) che utilizzano un modello Claude per valutare le condizioni.11Per decisioni che richiedono giudizio piuttosto che regole deterministiche, potete anche utilizzare [hooks basati su prompt](#prompt-based-hooks) o [hooks basati su agenti](#agent-based-hooks) che utilizzano un modello Claude per valutare le condizioni.

12 12 

13Per altri modi di estendere Claude Code, consultate [skills](/docs/it/skills) per fornire a Claude istruzioni aggiuntive e comandi eseguibili, [subagents](/docs/it/sub-agents) per eseguire attività in contesti isolati, e [plugins](/docs/it/plugins) per pacchettizzare estensioni da condividere tra i progetti.13Per altri modi di estendere Claude Code, consultate [skills](/docs/it/skills) per fornire a Claude istruzioni aggiuntive e comandi eseguibili, [subagents](/docs/it/sub-agents) per eseguire attività in contesti isolati, e [plugins](/docs/it/plugins/overview) per pacchettizzare estensioni da condividere tra i progetti.

14 14 

15<Tip>15<Tip>

16 Questa guida copre i casi d'uso comuni e come iniziare. Per schemi di eventi completi, formati di input/output JSON e funzionalità avanzate come hooks asincroni e hooks di strumenti MCP, consultate il [riferimento Hooks](/docs/it/hooks).16 Questa guida copre i casi d'uso comuni e come iniziare. Per schemi di eventi completi, formati di input/output JSON e funzionalità avanzate come hooks asincroni e hooks di strumenti MCP, consultate il [riferimento Hooks](/docs/it/hooks).


710}710}

711```711```

712 712 

713Il matcher `"Edit|Write"` si attiva solo quando Claude utilizza lo strumento `Edit` o `Write`, non quando utilizza `Bash`, `Read`, o qualsiasi altro strumento. Su Claude Code v2.1.191 o successivo, una virgola separa le alternative allo stesso modo, quindi `"Edit, Write"` è equivalente. Consultate [Matcher patterns](/docs/it/hooks#matcher-patterns) per come i nomi semplici e le espressioni regolari vengono valutati.713Il matcher `"Edit|Write"` si attiva solo quando Claude utilizza lo strumento `Edit` o `Write`, non quando utilizza `Bash`, `Read`, o qualsiasi altro strumento. Una virgola separa le alternative allo stesso modo, quindi `"Edit, Write"` è equivalente. Consultate [Matcher patterns](/docs/it/hooks#matcher-patterns) per come i nomi semplici e le espressioni regolari vengono valutati.

714 714 

715<Note>715<Note>

716 Claude può anche creare o modificare file eseguendo comandi shell. Se il vostro hook deve vedere ogni modifica ai file, come per la scansione di conformità o il logging di audit, aggiungete un hook [`Stop`](/docs/it/hooks#stop) che scansiona l'albero di lavoro una volta per turno. Per una copertura per-chiamata invece, corrispondere anche a `Bash|PowerShell` e avere il vostro script elencare i file modificati e non tracciati con `git status --porcelain`. La sezione [PowerShell hook input](/docs/it/hooks#powershell) spiega perché corrispondere solo a `Bash` non è sufficiente. Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi lo ha scritto, utilizzate un hook [FileChanged](/docs/it/hooks#filechanged).716 Claude può anche creare o modificare file eseguendo comandi shell. Se il vostro hook deve vedere ogni modifica ai file, come per la scansione di conformità o il logging di audit, aggiungete un hook [`Stop`](/docs/it/hooks#stop) che scansiona l'albero di lavoro una volta per turno. Per una copertura per-chiamata invece, corrispondere anche a `Bash|PowerShell` e avere il vostro script elencare i file modificati e non tracciati con `git status --porcelain`. La sezione [PowerShell hook input](/docs/it/hooks#powershell) spiega perché corrispondere solo a `Bash` non è sufficiente. Per eseguire un hook quando un file specifico cambia su disco, indipendentemente da chi lo ha scritto, utilizzate un hook [FileChanged](/docs/it/hooks#filechanged).

Details

45Gli strumenti integrati generalmente rientrano in cinque categorie, ognuna rappresentante un diverso tipo di agenzia.45Gli strumenti integrati generalmente rientrano in cinque categorie, ognuna rappresentante un diverso tipo di agenzia.

46 46 

47| Categoria | Cosa Claude può fare |47| Categoria | Cosa Claude può fare |

48| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |48| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

49| **Operazioni su file** | Leggere file, modificare codice, creare nuovi file, rinominare e riorganizzare |49| **Operazioni su file** | Leggere file, modificare codice, creare nuovi file, rinominare e riorganizzare |

50| **Ricerca** | Trovare file per pattern, cercare contenuto con regex, esplorare basi di codice |50| **Ricerca** | Trovare file per pattern, cercare contenuto con regex, esplorare basi di codice |

51| **Esecuzione** | Eseguire comandi shell, avviare server, eseguire test, usare git |51| **Esecuzione** | Eseguire comandi shell, avviare server, eseguire test, usare git |

52| **Web** | Cercare il web, recuperare documentazione, cercare messaggi di errore |52| **Web** | Cercare il web, recuperare documentazione, cercare messaggi di errore |

53| **Intelligenza del codice** | Vedere errori di tipo e avvisi dopo le modifiche, saltare alle definizioni, trovare riferimenti (richiede [plugin di intelligenza del codice](/docs/it/discover-plugins#code-intelligence)) |53| **Intelligenza del codice** | Vedere errori di tipo e avvisi dopo le modifiche, saltare alle definizioni, trovare riferimenti (richiede [plugin di intelligenza del codice](/docs/it/plugins/code-intelligence)) |

54 54 

55Queste sono le capacità principali. Claude ha anche strumenti per generare subagents, farti domande e altri compiti di orchestrazione. Consulta [Strumenti disponibili per Claude](/docs/it/tools-reference) per l'elenco completo.55Queste sono le capacità principali. Claude ha anche strumenti per generare subagents, farti domande e altri compiti di orchestrazione. Consulta [Strumenti disponibili per Claude](/docs/it/tools-reference) per l'elenco completo.

56 56 

Details

32| `Ctrl+V` o `Cmd+V` (iTerm2) o `Alt+V` (Windows e WSL) | Incolla l'immagine dagli appunti | Inserisce un chip `[Image #N]` al cursore in modo da potervi fare riferimento posizionalmente nel tuo prompt. Su WSL, sia `Ctrl+V` che `Alt+V` sono associati; usa `Alt+V` se il tuo terminale intercetta `Ctrl+V` |32| `Ctrl+V` o `Cmd+V` (iTerm2) o `Alt+V` (Windows e WSL) | Incolla l'immagine dagli appunti | Inserisce un chip `[Image #N]` al cursore in modo da potervi fare riferimento posizionalmente nel tuo prompt. Su WSL, sia `Ctrl+V` che `Alt+V` sono associati; usa `Alt+V` se il tuo terminale intercetta `Ctrl+V` |

33| `Ctrl+B` | Attività in esecuzione in background | Mette in background i comandi Bash e gli agenti. Gli utenti di Tmux premono due volte |33| `Ctrl+B` | Attività in esecuzione in background | Mette in background i comandi Bash e gli agenti. Gli utenti di Tmux premono due volte |

34| `Ctrl+T` | Attiva/disattiva la lista di controllo delle attività di Claude | Mostra o nascondi la [lista di controllo delle attività di Claude](#task-list) nell'area di stato. Questo non è il visualizzatore delle attività in background; usa [`/tasks`](/docs/it/commands) per vedere le shell e i subagent in esecuzione |34| `Ctrl+T` | Attiva/disattiva la lista di controllo delle attività di Claude | Mostra o nascondi la [lista di controllo delle attività di Claude](#task-list) nell'area di stato. Questo non è il visualizzatore delle attività in background; usa [`/tasks`](/docs/it/commands) per vedere le shell e i subagent in esecuzione |

35| `Ctrl+S` | Nascondi o ripristina il prompt | Con testo nell'input, lo nasconde e cancella il prompt. Premuto di nuovo su un prompt vuoto, ripristina il testo nascosto, la posizione del cursore e il contenuto incollato |35| `Ctrl+S` | Nascondi o ripristina il prompt | Con testo nell'input, lo nasconde e cancella il prompt. Premuto di nuovo su un prompt vuoto, ripristina il testo nascosto, la posizione del cursore, il contenuto incollato e la modalità di input, quindi un `!` nascosto [comando shell](#shell-mode-with-prefix) ritorna in modalità shell |

36| `Ctrl+Z` | Sospendi Claude Code | Solo Unix. Sospende il processo alla tua shell; esegui `fg` per riprendere |36| `Ctrl+Z` | Sospendi Claude Code | Solo Unix. Sospende il processo alla tua shell; esegui `fg` per riprendere |

37| `Frecce sinistra/destra` | Cicla attraverso le schede della finestra di dialogo | Naviga tra le schede nelle finestre di dialogo dei permessi e nei menu |37| `Frecce sinistra/destra` | Cicla attraverso le schede della finestra di dialogo | Naviga tra le schede nelle finestre di dialogo dei permessi e nei menu |

38| `Tab` | Accetta un suggerimento di completamento automatico, o aggiungi un commento a una risposta di permesso | Mentre i suggerimenti di completamento automatico vengono visualizzati nell'input del prompt, accetta il suggerimento selezionato. Sulla maggior parte dei prompt di permesso, con **Sì** o **No** focalizzato, apre un campo di commento su quell'opzione e premendolo di nuovo chiude il campo. Vedi [aggiungi un commento quando rispondi a un prompt di permesso](/docs/it/permissions#add-a-comment-when-you-answer-a-permission-prompt) |38| `Tab` | Accetta un suggerimento di completamento automatico, o aggiungi un commento a una risposta di permesso | Mentre i suggerimenti di completamento automatico vengono visualizzati nell'input del prompt, accetta il suggerimento selezionato. Sulla maggior parte dei prompt di permesso, con **Sì** o **No** focalizzato, apre un campo di commento su quell'opzione e premendolo di nuovo chiude il campo. Vedi [aggiungi un commento quando rispondi a un prompt di permesso](/docs/it/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

39| `Frecce su/giù` o `Ctrl+P`/`Ctrl+N` | Sposta il cursore o naviga nella cronologia dei comandi | Quando l'input si estende su più di una riga visiva, sia avvolta che multilinea, prima sposta il cursore all'interno del prompt. Una volta che il cursore è sulla prima o ultima riga visiva, premendo di nuovo naviga nella cronologia dei comandi. Mentre hai messaggi in coda, `Su` dalla prima riga invece [li riporta indietro](#take-back-what-you-queued) |39| `Frecce su/giù` o `Ctrl+P`/`Ctrl+N` | Sposta il cursore o naviga nella cronologia dei comandi | Quando l'input si estende su più di una riga visiva, sia avvolta che multilinea, prima sposta il cursore all'interno del prompt. Una volta che il cursore è sulla prima o ultima riga visiva, premendo di nuovo naviga nella cronologia dei comandi. Mentre hai messaggi in coda, `Su` dalla prima riga invece [li riporta indietro](#take-back-what-you-queued) |

40| `Esc` | Interrompi Claude, o chiudi una finestra di dialogo | Arresta la risposta corrente o la chiamata dello strumento a metà turno in modo da poter reindirizzare. Claude mantiene il lavoro svolto finora. Se hai [messaggi in coda](#queue-messages-while-claude-works), Claude Code li invia dopo. Quando una finestra di dialogo è aperta, `Esc` chiude la finestra di dialogo. Su un prompt di permesso, `Esc` rifiuta l'azione, lo stesso di [**No** senza un commento](/docs/it/permissions#add-a-comment-when-you-answer-a-permission-prompt) |40| `Esc` | Interrompi Claude, o chiudi una finestra di dialogo | Arresta la risposta corrente o la chiamata dello strumento a metà turno in modo da poter reindirizzare. Claude mantiene il lavoro svolto finora. Se hai [messaggi in coda](#queue-messages-while-claude-works), Claude Code li invia dopo. Quando una finestra di dialogo è aperta, `Esc` chiude la finestra di dialogo. Su un prompt di permesso, `Esc` rifiuta l'azione, lo stesso di [**No** senza un commento](/docs/it/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

41| `Esc` + `Esc` | Cancella la bozza di input, o riavvolgi | Quando l'input del prompt contiene testo, doppio `Esc` lo cancella e salva la bozza nella cronologia in modo che `Su` la richiami. Quando l'input è vuoto, doppio `Esc` apre il [menu di riavvolgimento](/docs/it/checkpointing) per ripristinare o riassumere il codice e la conversazione da un punto precedente |41| `Esc` + `Esc` | Cancella la bozza di input, o riavvolgi | Quando l'input del prompt contiene testo, doppio `Esc` lo cancella e salva la bozza nella cronologia in modo che `Su` la richiami. Quando l'input è vuoto, doppio `Esc` apre il [menu di riavvolgimento](/docs/it/checkpointing) per ripristinare o riassumere il codice e la conversazione da un punto precedente |

42| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Invia i messaggi in coda adesso | Interrompe il turno corrente in modo che i tuoi [messaggi in coda](#queue-messages-while-claude-works), e la tua bozza con loro, escano subito invece di quando il turno termina. Nella [modalità shell](#shell-mode-with-prefix), il tasto mette in coda il tuo comando senza interrompere. Nei terminali che non segnalano tasti estesi, `Ctrl+Enter` arriva come semplice `Enter`; `Ctrl+X Ctrl+S` funziona in qualsiasi terminale. Richiede Claude Code v2.1.275 o versione successiva |42| `Ctrl+Enter` o `Ctrl+X Ctrl+S` | Invia i messaggi in coda adesso | Invia i tuoi [messaggi in coda](#queue-messages-while-claude-works), e la tua bozza con loro, subito. [Quando Claude Code invia quello che hai messo in coda](#when-claude-code-sends-what-you-queued) copre cosa succede al turno su cui Claude sta lavorando. Nella [modalità shell](#shell-mode-with-prefix), il tasto mette in coda il tuo comando. Nei terminali che non segnalano tasti estesi, `Ctrl+Enter` arriva come semplice `Enter`; `Ctrl+X Ctrl+S` funziona in qualsiasi terminale. Richiede Claude Code v2.1.275 o versione successiva |

43| `Shift+Tab`, o `Alt+M` su Windows quando il runtime Node o Bun non abilita la modalità di input VT | Cicla le modalità di permesso | Cicla attraverso `default` (etichettato Manual nell'indicatore di modalità), `acceptEdits`, `plan`, e, quando disponibile, `bypassPermissions` e poi `auto`. Da `auto`, il primo pressione passa a `default`. Vedi [modalità di permesso](/docs/it/permission-modes). Su un prompt di permesso del file, la stessa chiave chiude un [campo di commento](/docs/it/permissions#add-a-comment-when-you-answer-a-permission-prompt) aperto. Senza campo aperto, seleziona l'opzione che consente l'azione per il resto della sessione, quando il prompt offre quell'opzione |43| `Shift+Tab`, o `Alt+M` su Windows quando il runtime Node o Bun non abilita la modalità di input VT | Cicla le modalità di permesso | Cicla attraverso `default` (etichettato Manual nell'indicatore di modalità), `acceptEdits`, `plan`, e, quando disponibile, `bypassPermissions` e poi `auto`. Da `auto`, il primo pressione passa a `default`. Vedi [modalità di permesso](/docs/it/permission-modes). Su un prompt di permesso del file, la stessa chiave chiude un [campo di commento](/docs/it/permissions#add-a-comment-when-you-answer-a-permission-prompt) aperto. Senza campo aperto, seleziona l'opzione che consente l'azione per il resto della sessione, quando il prompt offre quell'opzione |

44| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambia modello | Cambia modelli senza cancellare il tuo prompt |44| `Option+P` (macOS) o `Alt+P` (Windows/Linux) | Cambia modello | Cambia modelli senza cancellare il tuo prompt |

45| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Attiva/disattiva il pensiero esteso | Abilita o disabilita la modalità di pensiero esteso. Non ha effetto su Opus 5.5 o i modelli Fable, che utilizzano sempre il pensiero esteso. Funziona su macOS senza configurare Option come Meta |45| `Option+T` (macOS) o `Alt+T` (Windows/Linux) | Attiva/disattiva il pensiero esteso | Abilita o disabilita la modalità di pensiero esteso. Non ha effetto su Opus 5.5 o i modelli Fable, che utilizzano sempre il pensiero esteso. Funziona su macOS senza configurare Option come Meta |


136 Comandi136 Comandi

137</h2>137</h2>

138 138 

139Digita `/` in Claude Code per visualizzare i comandi disponibili, oppure digita `/` seguito da qualsiasi lettera per filtrare. Il menu `/` elenca i comandi integrati, le [skills](/docs/it/skills) raggruppate e create dagli utenti, e i comandi forniti da [plugins](/docs/it/plugins) e [server MCP](/docs/it/mcp#use-mcp-prompts-as-commands). Non tutti i comandi integrati sono visibili a ogni utente poiché alcuni dipendono dalla tua piattaforma o dal tuo piano, e [alcuni comandi disponibili sono nascosti dal menu per scelta progettuale](/docs/it/commands#how-the-command-menu-matches-what-you-type) e vengono eseguiti quando digiti il loro nome completo.139Digita `/` in Claude Code per visualizzare i comandi disponibili, oppure digita `/` seguito da qualsiasi lettera per filtrare. Il menu `/` elenca i comandi integrati, le [skills](/docs/it/skills) raggruppate e create dagli utenti, e i comandi forniti da [plugins](/docs/it/plugins/overview) e [server MCP](/docs/it/mcp#use-mcp-prompts-as-commands). Non tutti i comandi integrati sono visibili a ogni utente poiché alcuni dipendono dalla tua piattaforma o dal tuo piano, e [alcuni comandi disponibili sono nascosti dal menu per scelta progettuale](/docs/it/commands#how-the-command-menu-matches-what-you-type) e vengono eseguiti quando digiti il loro nome completo.

140 140 

141Nel [rendering a schermo intero](/docs/it/fullscreen#use-the-mouse), il comando `/` e gli elenchi di suggerimenti file `@` rispondono anche al mouse: passare il mouse evidenzia una riga e fare clic la accetta.141Nel [rendering a schermo intero](/docs/it/fullscreen#use-the-mouse), il comando `/` e gli elenchi di suggerimenti file `@` rispondono anche al mouse: passare il mouse evidenzia una riga e fare clic la accetta.

142 142 


408* Messaggi: se accodate un messaggio mentre Claude sta eseguendo chiamate di strumenti, Claude Code lo passa a Claude non appena quelle chiamate di strumenti terminano, all'interno dello stesso turno. Quando il turno termina con messaggi ancora in coda, vengono inviati senza un altro pressione di tasto, nell'ordine in cui li avete digitati408* Messaggi: se accodate un messaggio mentre Claude sta eseguendo chiamate di strumenti, Claude Code lo passa a Claude non appena quelle chiamate di strumenti terminano, all'interno dello stesso turno. Quando il turno termina con messaggi ancora in coda, vengono inviati senza un altro pressione di tasto, nell'ordine in cui li avete digitati

409* Comandi e comandi shell: Claude Code li mantiene finché il turno non termina, quindi li esegue uno alla volta, mantenendo l'ordine in cui li avete accodati409* Comandi e comandi shell: Claude Code li mantiene finché il turno non termina, quindi li esegue uno alla volta, mantenendo l'ordine in cui li avete accodati

410 410 

411Per inviare ciò che avete accodato senza aspettare che il turno termini, premete `Ctrl+Enter`. Claude Code interrompe il turno, e i vostri messaggi in coda vengono inviati subito, con la vostra bozza accodata dietro di essi se ne avevate digitata una. In [modalità shell](#shell-mode-with-prefix), il tasto accoda il vostro comando senza interrompere il turno. Richiede Claude Code v2.1.275 o successivo.411Per inviare ciò che avete accodato senza aspettare, premete `Ctrl+Enter`. I vostri messaggi in coda vengono inviati subito, con la vostra bozza accodata dietro di essi se ne avevate digitata una. Richiede Claude Code v2.1.275 o successivo.

412 412 

413Nei terminali che non segnalano tasti estesi, `Ctrl+Enter` arriva come semplice `Enter` e accoda la bozza invece; `Ctrl+X Ctrl+S` funziona in qualsiasi terminale. Entrambi i tasti sono associazioni dell'[azione `chat:sendNow`](/docs/it/keybindings#chat-actions).413Se avete accodato un comando shell `!` davanti ai vostri messaggi, il tasto interrompe il turno. Altrimenti, ciò che accade al turno dipende da ciò che Claude sta facendo quando premete il tasto:

414 

415* Esecuzione di comandi shell, subagenti o altro lavoro che può spostarsi sullo [sfondo](#background-bash-commands): quel lavoro si sposta sullo sfondo e continua a essere eseguito, e Claude legge i vostri messaggi nello stesso turno

416* Solo la scrittura di una risposta, o l'esecuzione di qualcosa che non può spostarsi sullo sfondo: Claude Code interrompe il turno e invia i vostri messaggi dopo. Prima della v2.1.281, il tasto interrompeva il turno in entrambi i casi

417 

418In [modalità shell](#shell-mode-with-prefix), il tasto accoda solo il vostro comando. Nei terminali che non segnalano tasti estesi, `Ctrl+Enter` arriva come semplice `Enter` e accoda la bozza invece; `Ctrl+X Ctrl+S` funziona in qualsiasi terminale. Entrambi i tasti sono associazioni dell'[azione `chat:sendNow`](/docs/it/keybindings#chat-actions).

414 419 

415Premete `Esc` per interrompere il turno senza inviare la vostra bozza. Claude Code mantiene ciò che avete accodato e lo invia subito.420Premete `Esc` per interrompere il turno senza inviare la vostra bozza. Claude Code mantiene ciò che avete accodato e lo invia subito.

416 421 

keybindings.md +18 −2

Details

112Azioni disponibili nel contesto `Chat`:112Azioni disponibili nel contesto `Chat`:

113 113 

114| Azione | Predefinito | Descrizione |114| Azione | Predefinito | Descrizione |

115| :-------------------- | :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |115| :-------------------- | :------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

116| `chat:cancel` | Escape | Annulla l'input corrente |116| `chat:cancel` | Escape | Annulla l'input corrente |

117| `chat:clearInput` | Ctrl+L | Forza un ridisegno a schermo intero, preservando l'input e la conversazione |117| `chat:clearInput` | Ctrl+L | Forza un ridisegno a schermo intero, preservando l'input e la conversazione |

118| `chat:clearScreen` | Cmd+K | Uguale a `chat:clearInput`. Vedi [Cancella la conversazione](/docs/it/fullscreen#clear-the-conversation) per come Cmd+K si comporta su iTerm2 e Terminal.app |118| `chat:clearScreen` | Cmd+K | Uguale a `chat:clearInput`. Vedi [Cancella la conversazione](/docs/it/fullscreen#clear-the-conversation) per come Cmd+K si comporta su iTerm2 e Terminal.app |


123| `chat:thinkingToggle` | Meta+T | Attiva/disattiva il pensiero esteso |123| `chat:thinkingToggle` | Meta+T | Attiva/disattiva il pensiero esteso |

124| `chat:submit` | Invio | Invia il messaggio |124| `chat:submit` | Invio | Invia il messaggio |

125| `chat:queueSubmit` | Ctrl+X Invio | Invia il messaggio, contrassegnato per attendere il suo turno: mentre Claude sta lavorando, Claude Code lo [mette in coda](/docs/it/interactive-mode#queue-messages-while-claude-works) e non interrompe mai il turno. A differenza di `chat:submit`, invia la bozza anche mentre i suggerimenti di autocompletamento sono aperti. Richiede v2.1.247 o successiva |125| `chat:queueSubmit` | Ctrl+X Invio | Invia il messaggio, contrassegnato per attendere il suo turno: mentre Claude sta lavorando, Claude Code lo [mette in coda](/docs/it/interactive-mode#queue-messages-while-claude-works) e non interrompe mai il turno. A differenza di `chat:submit`, invia la bozza anche mentre i suggerimenti di autocompletamento sono aperti. Richiede v2.1.247 o successiva |

126| `chat:sendNow` | Ctrl+Invio, Ctrl+X Ctrl+S | Interrompi il turno in esecuzione in modo che i tuoi [messaggi in coda](/docs/it/interactive-mode#queue-messages-while-claude-works) e la tua bozza con essi vengano inviati subito. Quando non è in esecuzione nulla, invia la bozza, e nella [modalità shell](/docs/it/interactive-mode#shell-mode-with-prefix) mette in coda il comando senza interrompere. I terminali che non segnalano tasti estesi consegnano `Ctrl+Invio` come semplice `Invio`, quindi `Ctrl+X Ctrl+S` è il binding che funziona in qualsiasi terminale. Richiede v2.1.275 o successiva |126| `chat:sendNow` | Ctrl+Invio, Ctrl+X Ctrl+S | Invia i tuoi [messaggi in coda](/docs/it/interactive-mode#queue-messages-while-claude-works) e la tua bozza con essi subito. [Quando Claude Code invia quello che hai messo in coda](/docs/it/interactive-mode#when-claude-code-sends-what-you-queued) copre cosa succede al turno su cui Claude sta lavorando. Quando non è in esecuzione nulla, il tasto invia la bozza, e nella [modalità shell](/docs/it/interactive-mode#shell-mode-with-prefix) mette in coda solo il comando. I terminali che non segnalano tasti estesi consegnano `Ctrl+Invio` come semplice `Invio`, quindi `Ctrl+X Ctrl+S` è il binding che funziona in qualsiasi terminale. Richiede v2.1.275 o successiva |

127| `chat:newline` | Ctrl+J | Inserisci una nuova riga senza inviare |127| `chat:newline` | Ctrl+J | Inserisci una nuova riga senza inviare |

128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Annulla l'ultima azione |128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | Annulla l'ultima azione |

129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Apri nell'editor esterno. Il [dispatch input della visualizzazione dell'agente](/docs/it/agent-view#keyboard-shortcuts) segue anche i binding a singola pressione di tasto di questa azione |129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | Apri nell'editor esterno. Il [dispatch input della visualizzazione dell'agente](/docs/it/agent-view#keyboard-shortcuts) segue anche i binding a singola pressione di tasto di questa azione |


184}184}

185```185```

186 186 

187Con questi binding, `y` e `n` continuano a digitarsi come lettere mentre un [campo di testo](#text-fields) ha il focus.

188 

187Prima della v2.1.280, `y` era anche associato a `confirm:yes` e `n` a `confirm:no` per impostazione predefinita. Se hai creato il tuo `keybindings.json` con `/keybindings` prima della v2.1.280, il file elenca entrambi i binding e rimangono in vigore finché non elimini quelle due righe.189Prima della v2.1.280, `y` era anche associato a `confirm:yes` e `n` a `confirm:no` per impostazione predefinita. Se hai creato il tuo `keybindings.json` con `/keybindings` prima della v2.1.280, il file elenca entrambi i binding e rimangono in vigore finché non elimini quelle due righe.

188 190 

189<h3 id="permission-actions">191<h3 id="permission-actions">


634| Ctrl+A | Prefisso GNU screen |636| Ctrl+A | Prefisso GNU screen |

635| Ctrl+Z | Sospensione del processo Unix (SIGTSTP) |637| Ctrl+Z | Sospensione del processo Unix (SIGTSTP) |

636 638 

639<h2 id="text-fields">

640 Campi di testo

641</h2>

642 

643Se associate un carattere, una cifra o uno spazio semplice, potete comunque digitare quel carattere in un campo di testo all'interno di una finestra di dialogo o di un pannello. Uno di questi campi è la risposta `Other` a una domanda che Claude pone. Mentre il campo ha il focus, un tasto stampabile che premete senza Ctrl, Alt o Cmd va al campo, e Claude Code non lo confronta con le vostre associazioni.

644 

645Questi tasti eseguono comunque le loro associazioni mentre il campo ha il focus:

646 

647* Tasti che non digitano un carattere, come Enter, Escape, Tab e i tasti freccia

648* Qualsiasi tasto premuto con Ctrl, Alt o Cmd

649* Il secondo tasto di un [accordo](#chords) già in corso

650 

651Al prompt principale, Claude Code confronta ogni tasto rispetto ai contesti attivi, come `Chat`, e digita il tasto solo quando nessuna associazione lo cattura.

652 

637<h2 id="vim-mode-interaction">653<h2 id="vim-mode-interaction">

638 Interazione con la modalità Vim654 Interazione con la modalità Vim

639</h2>655</h2>

Details

202 Riduci le letture di file con code intelligence202 Riduci le letture di file con code intelligence

203</h3>203</h3>

204 204 

205In un codebase di grandi dimensioni, trovare dove un simbolo è definito o usato può costare molte letture di file e chiamate grep. I [plugin di code intelligence](/docs/it/discover-plugins#code-intelligence) collegano Claude a un language server in modo che possa saltare alle definizioni, trovare riferimenti e far emergere errori di tipo direttamente invece di scansionare l'albero.205In un codebase di grandi dimensioni, trovare dove un simbolo è definito o usato può costare molte letture di file e chiamate grep. I [plugin di code intelligence](/docs/it/plugins/code-intelligence) collegano Claude a un language server in modo che possa saltare alle definizioni, trovare riferimenti e far emergere errori di tipo direttamente invece di scansionare l'albero.

206 206 

207Il marketplace ufficiale ha plugin per TypeScript, Python, Go, Rust e altri linguaggi comuni. Eseguite il comando sottostante all'interno di una sessione Claude Code per installare il plugin TypeScript:207Il marketplace ufficiale ha plugin per TypeScript, Python, Go, Rust e altri linguaggi comuni. Eseguite il comando sottostante all'interno di una sessione Claude Code per installare il plugin TypeScript:

208 208 


213Se l'installazione fallisce, abbinate il messaggio che Claude Code segnala:213Se l'installazione fallisce, abbinate il messaggio che Claude Code segnala:

214 214 

215* `Marketplace "claude-plugins-official" not found`: aggiungete il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprovate l'installazione.215* `Marketplace "claude-plugins-official" not found`: aggiungete il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprovate l'installazione.

216* Il plugin [non è trovato nel marketplace](/docs/it/discover-plugins#install-plugins): controllate il nome del plugin.216* Il plugin [non è trovato nel marketplace](/docs/it/plugins/install#install-a-plugin): controllate il nome del plugin.

217 217 

218Per abilitare un plugin per tutti nel repository piuttosto che installarlo voi stessi, aggiungetelo all'impostazione di progetto [`enabledPlugins`](/docs/it/settings-reference#plugin-settings).218Per abilitare un plugin per tutti nel repository piuttosto che installarlo voi stessi, aggiungetelo all'impostazione di progetto [`enabledPlugins`](/docs/it/settings-reference#plugin-settings).

219 219 

220I plugin di code intelligence richiedono il binario del language server del linguaggio su ogni macchina dello sviluppatore. Vedi [quale binario richiede ogni linguaggio](/docs/it/discover-plugins#code-intelligence). L'installazione dal marketplace ufficiale richiede accesso di rete a GitHub, dove è ospitato il marketplace. Su una rete ristretta, [aggiungete il marketplace da un host Git interno o da un percorso locale](/docs/it/discover-plugins#add-from-other-git-hosts) invece.220I plugin di code intelligence richiedono il binario del language server del linguaggio su ogni macchina dello sviluppatore. Vedi [quale binario richiede ogni linguaggio](/docs/it/plugins/code-intelligence). L'installazione dal marketplace ufficiale richiede accesso di rete a GitHub, dove è ospitato il marketplace. Su una rete ristretta, [aggiungete il marketplace da un host Git interno o da un percorso locale](/docs/it/plugins/install#add-a-marketplace) invece.

221 221 

222Questo si abbina bene con `claudeMdExcludes` e le regole `Read` di negazione sopra. Quelli mantengono il contenuto irrilevante fuori dal contesto, e code intelligence impedisce a Claude di leggere attraverso quello che rimane per individuare una definizione.222Questo si abbina bene con `claudeMdExcludes` e le regole `Read` di negazione sopra. Quelli mantengono il contenuto irrilevante fuori dal contesto, e code intelligence impedisce a Claude di leggere attraverso quello che rimane per individuare una definizione.

223 223 


395 395 

396I nomi si caricano sempre, ma [quando ce ne sono molti, alcune skills perdono completamente le loro descrizioni](/docs/it/skills#skill-descriptions-are-cut-short), il che può eliminare le parole chiave che Claude usa per decidere se una skill si applica. Mantieni le descrizioni brevi e inizia con parole che una richiesta conterrebbe, come "writing or modifying tests in `packages/api/`".396I nomi si caricano sempre, ma [quando ce ne sono molti, alcune skills perdono completamente le loro descrizioni](/docs/it/skills#skill-descriptions-are-cut-short), il che può eliminare le parole chiave che Claude usa per decidere se una skill si applica. Mantieni le descrizioni brevi e inizia con parole che una richiesta conterrebbe, come "writing or modifying tests in `packages/api/`".

397 397 

398Per skills che molte directory condividono, come convenzioni PR o una checklist di deploy, posizionale nella `.claude/skills/` della radice del repository in modo che si carichino da qualsiasi directory di avvio. Quando le skills condivise hanno bisogno della propria cronologia delle versioni o devono funzionare tra repository, pacchettale come un [plugin](/docs/it/plugins) invece. Le skills dei plugin usano uno spazio dei nomi `plugin-name:skill-name`, quindi non collidono mai con le skills per directory. Un team di piattaforma può versionalizzarle e aggiornarle in un unico posto.398Per skills che molte directory condividono, come convenzioni PR o una checklist di deploy, posizionale nella `.claude/skills/` della radice del repository in modo che si carichino da qualsiasi directory di avvio. Quando le skills condivise hanno bisogno della propria cronologia delle versioni o devono funzionare tra repository, pacchettale come un [plugin](/docs/it/plugins/overview) invece. Le skills dei plugin usano uno spazio dei nomi `plugin-name:skill-name`, quindi non collidono mai con le skills per directory. Un team di piattaforma può versionalizzarle e aggiornarle in un unico posto.

399 399 

400Per trovare quali skills rimangono inutilizzate, abilita l'[esportatore di log](/docs/it/monitoring-usage) OpenTelemetry e imposta `OTEL_LOG_TOOL_DETAILS=1` in modo che i nomi delle skills siano registrati verbatim invece di essere redatti. L'evento [`skill_activated`](/docs/it/monitoring-usage#skill-activated-event) registra ogni invocazione nel suo attributo `skill.name`, e `invocation_trigger` registra se un comando, Claude, o una skill nidificata l'ha invocata, il che ti dice cosa consolidare o ritirare.400Per trovare quali skills rimangono inutilizzate, abilita l'[esportatore di log](/docs/it/monitoring-usage) OpenTelemetry e imposta `OTEL_LOG_TOOL_DETAILS=1` in modo che i nomi delle skills siano registrati verbatim invece di essere redatti. L'evento [`skill_activated`](/docs/it/monitoring-usage#skill-activated-event) registra ogni invocazione nel suo attributo `skill.name`, e `invocation_trigger` registra se un comando, Claude, o una skill nidificata l'ha invocata, il che ti dice cosa consolidare o ritirare.

401 401 


408Sposta le convenzioni e il contenuto di riferimento fuori da CLAUDE.md sempre caricato e in meccanismi che si caricano su richiesta:408Sposta le convenzioni e il contenuto di riferimento fuori da CLAUDE.md sempre caricato e in meccanismi che si caricano su richiesta:

409 409 

410* [Skills](/docs/it/skills): materiale di riferimento che Claude carica solo quando rilevante per il compito410* [Skills](/docs/it/skills): materiale di riferimento che Claude carica solo quando rilevante per il compito

411* [Plugins](/docs/it/plugins): bundle versionati di skills, hook e comandi che un team di piattaforma possiede centralmente411* [Plugins](/docs/it/plugins/overview): bundle versionati di skills, hooks e comandi che un team di piattaforma possiede centralmente

412* [MCP servers](/docs/it/mcp): se la tua organizzazione già esegue una ricerca di codice o un indice RAG sul repository, esponilo come uno strumento MCP in modo che Claude lo interroghi invece di leggere i file direttamente412* [MCP servers](/docs/it/mcp): se la tua organizzazione già esegue una ricerca di codice o un indice RAG sul repository, esponilo come uno strumento MCP in modo che Claude lo interroghi invece di leggere i file direttamente

413 413 

414Vedi [impostazioni gestite dal server o gestite dall'endpoint](/docs/it/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings) per come i team di piattaforma possono applicare questi centralmente.414Vedi [impostazioni gestite dal server o gestite dall'endpoint](/docs/it/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings) per come i team di piattaforma possono applicare questi centralmente.

managed-mcp.md +1 −1

Details

41| **Nessuna restrizione** | Gli utenti aggiungono qualsiasi cosa | Non distribuire alcuna configurazione MCP gestita |41| **Nessuna restrizione** | Gli utenti aggiungono qualsiasi cosa | Non distribuire alcuna configurazione MCP gestita |

42 42 

43<Note>43<Note>

44 Claude Code non dispone di un registro MCP server integrato che gli utenti possono sfogliare e installare. Per il pattern catalogo approvato, condividi l'elenco approvato e i suoi comandi `claude mcp add` in un luogo dove i tuoi utenti li troveranno, come un wiki interno, oppure distribuisci i server come plugin tramite un [marketplace plugin gestito](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) in modo che gli utenti possano sfogliarli e installarli da `/plugin`.44 Claude Code non dispone di un registro MCP server integrato che gli utenti possono sfogliare e installare. Per il pattern catalogo approvato, condividi l'elenco approvato e i suoi comandi `claude mcp add` in un luogo dove i tuoi utenti li troveranno, come un wiki interno, oppure distribuisci i server come plugin tramite un [marketplace plugin gestito](/docs/it/plugins/org#restrict-what-users-can-install) in modo che gli utenti possano sfogliarli e installarli da `/plugin`.

45</Note>45</Note>

46 46 

47<h2 id="exclusive-control-with-managed-mcp-json">47<h2 id="exclusive-control-with-managed-mcp-json">

Details

95 * **In una sandbox VM completa**: quando la tua configurazione gestita di Claude Desktop imposta [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox), Claude Code viene eseguito all'interno di una macchina virtuale dove la policy MDM del dispositivo e il file di impostazioni gestite non sono presenti.95 * **In una sandbox VM completa**: quando la tua configurazione gestita di Claude Desktop imposta [`requireCoworkFullVmSandbox`](https://claude.com/docs/third-party/claude-desktop/configuration#requirecoworkfullvmsandbox), Claude Code viene eseguito all'interno di una macchina virtuale dove la policy MDM del dispositivo e il file di impostazioni gestite non sono presenti.

96 * **Remote Cowork sessions**: queste vengono eseguite su VM gestite da Anthropic, dove Claude Code non ha policy del dispositivo da leggere.96 * **Remote Cowork sessions**: queste vengono eseguite su VM gestite da Anthropic, dove Claude Code non ha policy del dispositivo da leggere.

97 97 

98 Ovunque la sessione venga eseguita, claude.ai applica gli elenchi [`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/it/settings-reference#blockedmarketplaces) della console admin stessa quando chiunque aggiunge un marketplace da un repository git su claude.ai o da **Customize** nella scheda Cowork. [How restrictions work](/docs/it/plugin-marketplaces#how-restrictions-work) descrive quel controllo. La tabella [surface coverage](/docs/it/model-config#surface-coverage) confronta Cowork con le altre surface.98 Ovunque la sessione venga eseguita, claude.ai applica gli elenchi [`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/it/settings-reference#blockedmarketplaces) della console admin stessa quando chiunque aggiunge un marketplace da un repository git su claude.ai o da **Customize** nella scheda Cowork. [How restrictions work](/docs/it/plugins/org#restrict-what-users-can-install) descrive quel controllo. La tabella [surface coverage](/docs/it/model-config#surface-coverage) confronta Cowork con le altre surface.

99* **Running sessions**: la maggior parte dei cambiamenti raggiunge una sessione in esecuzione secondo la pianificazione nella [tabella del meccanismo di consegna](#choose-a-delivery-mechanism), senza un riavvio.99* **Running sessions**: la maggior parte dei cambiamenti raggiunge una sessione in esecuzione secondo la pianificazione nella [tabella del meccanismo di consegna](#choose-a-delivery-mechanism), senza un riavvio.

100 * I cambiamenti a [`forceRemoteSettingsRefresh`](/docs/it/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/it/settings-reference#requiredminimumversion), e [alcune chiavi modificabili dall'utente](/docs/it/settings#when-edits-take-effect) hanno effetto al prossimo avvio della sessione.100 * I cambiamenti a [`forceRemoteSettingsRefresh`](/docs/it/settings-reference#forceremotesettingsrefresh), [`requiredMinimumVersion`](/docs/it/settings-reference#requiredminimumversion), e [alcune chiavi modificabili dall'utente](/docs/it/settings#when-edits-take-effect) hanno effetto al prossimo avvio della sessione.

101 * Una voce [`policyHelper`](/docs/it/settings-reference#policyhelper) nuova o modificata ha effetto al prossimo avvio. Se le impostazioni server-managed oscurano l'helper a quell'avvio, l'helper viene eseguito non appena un fetch segnala che quelle impostazioni sono state rimosse.101 * Una voce [`policyHelper`](/docs/it/settings-reference#policyhelper) nuova o modificata ha effetto al prossimo avvio. Se le impostazioni server-managed oscurano l'helper a quell'avvio, l'helper viene eseguito non appena un fetch segnala che quelle impostazioni sono state rimosse.


256 256 

257 Su Claude Code v2.1.273 o successivo, mentre `allowManagedMcpServersOnly` è attivo, l'elenco `allowedMcpServers` dalla fonte admin con ranking più alto che ne imposta uno si applica e blocca quello del padre, come una [chiave cross-source](#keys-read-from-every-admin-source). L'elenco del padre si applica solo quando nessuna fonte admin ne imposta uno. La voce [`managedSourcesBehavior`](/docs/it/settings-reference#managedsourcesbehavior) dice quale fonte fornisce ogni chiave sotto `"merge"`. Prima della v2.1.223, un valore in qualsiasi fonte admin bloccava quello del padre257 Su Claude Code v2.1.273 o successivo, mentre `allowManagedMcpServersOnly` è attivo, l'elenco `allowedMcpServers` dalla fonte admin con ranking più alto che ne imposta uno si applica e blocca quello del padre, come una [chiave cross-source](#keys-read-from-every-admin-source). L'elenco del padre si applica solo quando nessuna fonte admin ne imposta uno. La voce [`managedSourcesBehavior`](/docs/it/settings-reference#managedsourcesbehavior) dice quale fonte fornisce ogni chiave sotto `"merge"`. Prima della v2.1.223, un valore in qualsiasi fonte admin bloccava quello del padre

258* Per `availableModels`, Claude Code applica il valore nelle impostazioni gestite che applica e blocca un elenco fornito dal padre258* Per `availableModels`, Claude Code applica il valore nelle impostazioni gestite che applica e blocca un elenco fornito dal padre

259* Per `strictKnownMarketplaces`, Claude Code applica allo stesso modo l'elenco nelle impostazioni gestite che applica e blocca uno fornito dal padre. L'elenco del padre si applica solo quando nessuna fonte gestita applicata ne imposta uno. Richiede Claude Code v2.1.282 o successivo

260* Un `blockedMarketplaces` fornito dal padre si applica in aggiunta a qualsiasi blocklist che una fonte gestita imposta. Richiede Claude Code v2.1.282 o successivo

259 261 

260<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">262<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

261 Mantenere l'accesso alla cartella Cowork quando si applicano solo regole gestite263 Mantenere l'accesso alla cartella Cowork quando si applicano solo regole gestite


361Poche chiavi di applicazione non vengono eliminate quando non valide. Claude Code applica un fallback più restrittivo fino a quando il valore non viene corretto; la tabella mostra cosa applica per ogni chiave:363Poche chiavi di applicazione non vengono eliminate quando non valide. Claude Code applica un fallback più restrittivo fino a quando il valore non viene corretto; la tabella mostra cosa applica per ogni chiave:

362 364 

363| Campo | Comportamento quando presente ma non valido |365| Campo | Comportamento quando presente ma non valido |

364| :---------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |366| :---------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

365| `allowedMcpServers` | Applicato come un allowlist vuoto fino a quando il valore non viene corretto, quindi nessun server MCP che gli utenti aggiungono viene ammesso. I server che la tua organizzazione distribuisce tramite [`managedMcpServers`](/docs/it/settings-reference#managedmcpservers) si caricano ancora, e i server `managed-mcp.json` si caricano per [How a server is evaluated](/docs/it/managed-mcp#how-a-server-is-evaluated). Una voce non valida individuale viene rimossa e il sottoinsieme valido viene applicato. |367| `allowedMcpServers` | Applicato come un allowlist vuoto fino a quando il valore non viene corretto, quindi nessun server MCP che gli utenti aggiungono viene ammesso. I server che la tua organizzazione distribuisce tramite [`managedMcpServers`](/docs/it/settings-reference#managedmcpservers) si caricano ancora, e i server `managed-mcp.json` si caricano per [How a server is evaluated](/docs/it/managed-mcp#how-a-server-is-evaluated). Una voce non valida individuale viene rimossa e il sottoinsieme valido viene applicato. |

366| `allowedHttpHookUrls` | Claude Code applica un [allowlist](/docs/it/settings-reference#allowedhttphookurls) gestito vuoto fino a quando non correggi il valore, quindi un hook HTTP viene eseguito solo se un altro file di impostazioni elenca il suo URL. Se solo una voce individuale non è valida, Claude Code rimuove quella voce e applica il resto. |368| `allowedHttpHookUrls` | Claude Code applica un [allowlist](/docs/it/settings-reference#allowedhttphookurls) gestito vuoto fino a quando non correggi il valore, quindi un hook HTTP viene eseguito solo se un altro file di impostazioni elenca il suo URL. Se solo una voce individuale non è valida, Claude Code rimuove quella voce e applica il resto. |

367| `httpHookAllowedEnvVars` | Claude Code applica un [allowlist](/docs/it/settings-reference#httphookallowedenvvars) gestito vuoto fino a quando non correggi il valore, quindi una variabile di intestazione viene interpolata solo se un altro file di impostazioni la nomina. Se solo una voce individuale non è valida, Claude Code rimuove quella voce e applica il resto. |369| `httpHookAllowedEnvVars` | Claude Code applica un [allowlist](/docs/it/settings-reference#httphookallowedenvvars) gestito vuoto fino a quando non correggi il valore, quindi una variabile di intestazione viene interpolata solo se un altro file di impostazioni la nomina. Se solo una voce individuale non è valida, Claude Code rimuove quella voce e applica il resto. |

368| `allowedChannelPlugins` | Claude Code applica un allowlist vuoto fino a quando non correggi il valore, quindi nessun plugin di canale passato a `--channels` viene ammesso. Se solo una voce individuale non è valida, rimuove quella voce e applica il resto. |370| `allowedChannelPlugins` | Claude Code applica un allowlist vuoto fino a quando non correggi il valore, quindi nessun plugin di canale passato a `--channels` viene ammesso. Se solo una voce individuale non è valida, rimuove quella voce e applica il resto. |

369| `strictKnownMarketplaces` | Applicato come un allowlist vuoto fino a quando il valore non viene corretto, quindi nessuna [fonte marketplace](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) viene ammessa. Una voce individuale che non è valida o non può essere applicata, come una regex `hostPattern` che non si compila, viene rimossa e il sottoinsieme valido viene applicato. |371| `strictKnownMarketplaces` | Applicato come un allowlist vuoto fino a quando il valore non viene corretto, quindi nessuna [fonte marketplace](/docs/it/plugins/org#restrict-what-users-can-install) viene ammessa. Una voce individuale che non è valida o non può essere applicata, come una regex `hostPattern` che non si compila, viene rimossa e il sottoinsieme valido viene applicato. |

370| `allowManagedHooksOnly` | Trattato come `true` fino a quando non viene corretto: le [restrizioni hook](/docs/it/settings-reference#allowmanagedhooksonly) si applicano e, a meno che `disableCommandPluginSources` non sia esplicitamente `false`, i plugin sourced da comando sono disabilitati. |372| `allowManagedHooksOnly` | Trattato come `true` fino a quando non viene corretto: le [restrizioni hook](/docs/it/settings-reference#allowmanagedhooksonly) si applicano e, a meno che `disableCommandPluginSources` non sia esplicitamente `false`, i plugin sourced da comando sono disabilitati. |

371| `allowManagedMcpServersOnly` | Trattato come `true`. |373| `allowManagedMcpServersOnly` | Trattato come `true`. |

372| `disableCommandPluginSources` | Trattato come `true`, quindi i plugin sourced da comando rimangono disabilitati fino a quando il valore non viene corretto. |374| `disableCommandPluginSources` | Trattato come `true`, quindi i plugin sourced da comando rimangono disabilitati fino a quando il valore non viene corretto. |


378| `gatewayInternalNetworks` | Quando il valore non valido proviene dalla fonte gestita più alta sulla macchina, `/login` rifiuta ogni nuovo accesso [cloud gateway](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) su quella macchina fino a quando il valore non viene corretto. |380| `gatewayInternalNetworks` | Quando il valore non valido proviene dalla fonte gestita più alta sulla macchina, `/login` rifiuta ogni nuovo accesso [cloud gateway](/docs/it/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) su quella macchina fino a quando il valore non viene corretto. |

379| `crossSessionInbound` | Trattato come `refuse`, il valore più restrittivo, quindi i [messaggi cross-session](/docs/it/cross-session-messaging#control-inbound-messages) in entrata vengono rifiutati fino a quando il valore non viene corretto. Lo sviluppatore vede [un avviso](/docs/it/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |381| `crossSessionInbound` | Trattato come `refuse`, il valore più restrittivo, quindi i [messaggi cross-session](/docs/it/cross-session-messaging#control-inbound-messages) in entrata vengono rifiutati fino a quando il valore non viene corretto. Lo sviluppatore vede [un avviso](/docs/it/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

380| `deniedMcpServers` | Una voce non valida individuale viene rimossa e il sottoinsieme valido viene applicato. Un valore completamente non valido viene eliminato con un avviso, poiché negare ogni server bloccherebbe i server che la policy non ha mai nominato. |382| `deniedMcpServers` | Una voce non valida individuale viene rimossa e il sottoinsieme valido viene applicato. Un valore completamente non valido viene eliminato con un avviso, poiché negare ogni server bloccherebbe i server che la policy non ha mai nominato. |

381| `blockedMarketplaces` | Una voce non valida individuale viene rimossa e il sottoinsieme valido viene applicato. Una voce che si analizza ma non può mai corrispondere, come una regex `hostPattern` che non si compila, viene mantenuta con un avviso. Non blocca nulla fino a quando non viene corretto, ma le [restrizioni marketplace](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) rimangono attive. Un valore completamente non valido viene eliminato con un avviso, poiché bloccare ogni marketplace bloccherebbe le fonti che la policy non ha mai nominato. |383| `blockedMarketplaces` | Una voce non valida individuale viene rimossa e il sottoinsieme valido viene applicato. Una voce che si analizza ma non può mai corrispondere, come una regex `hostPattern` che non si compila, viene mantenuta con un avviso. Non blocca nulla fino a quando non viene corretto, ma le [restrizioni marketplace](/docs/it/plugins/org#restrict-what-users-can-install) rimangono attive. Un valore completamente non valido viene eliminato con un avviso, poiché bloccare ogni marketplace bloccherebbe le fonti che la policy non ha mai nominato. |

382| `sandbox.credentials` | Una voce non valida recuperabile viene degradata a `mode: "deny"` con un avviso; una non recuperabile viene rimossa; le voci valide rimangono applicate. Vedi [invalid credential entries](/docs/it/settings-reference#invalid-credential-entries-in-managed-settings) |384| `sandbox.credentials` | Una voce non valida recuperabile viene degradata a `mode: "deny"` con un avviso; una non recuperabile viene rimossa; le voci valide rimangono applicate. Vedi [invalid credential entries](/docs/it/settings-reference#invalid-credential-entries-in-managed-settings) |

383 385 

384`allowedHttpHookUrls` e `httpHookAllowedEnvVars` si uniscono tra i file di impostazioni, quindi le voci nelle tue impostazioni utente, progetto o locale si applicano ancora mentre l'elenco gestito è vuoto.386`allowedHttpHookUrls` e `httpHookAllowedEnvVars` si uniscono tra i file di impostazioni, quindi le voci nelle tue impostazioni utente, progetto o locale si applicano ancora mentre l'elenco gestito è vuoto.


402La tabella copre i controlli di autorizzazione, plugin e consegna. Per qualsiasi chiave non elencata qui, la colonna Scope del [settings reference](/docs/it/settings-reference#all-settings) index dice se è managed-only; le chiavi managed-only rimanenti lì includono l'URL di accesso al gateway, versione, browser, mobile-simulator, host SSH, Desktop local-session, percorso binario sandbox, prezzo del modello, e controlli CLAUDE.md.404La tabella copre i controlli di autorizzazione, plugin e consegna. Per qualsiasi chiave non elencata qui, la colonna Scope del [settings reference](/docs/it/settings-reference#all-settings) index dice se è managed-only; le chiavi managed-only rimanenti lì includono l'URL di accesso al gateway, versione, browser, mobile-simulator, host SSH, Desktop local-session, percorso binario sandbox, prezzo del modello, e controlli CLAUDE.md.

403 405 

404| Impostazione | Descrizione |406| Impostazione | Descrizione |

405| :-------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |407| :-------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

406| [`allowAllClaudeAiMcps`](/docs/it/settings-reference#allowallclaudeaimcps) | Carica i connettori claude.ai che Claude Code recupera da solo insieme a un `managed-mcp.json` distribuito invece di sopprimerli |408| [`allowAllClaudeAiMcps`](/docs/it/settings-reference#allowallclaudeaimcps) | Carica i connettori claude.ai che Claude Code recupera da solo insieme a un `managed-mcp.json` distribuito invece di sopprimerli |

407| [`allowedChannelPlugins`](/docs/it/settings-reference#allowedchannelplugins) | Allowlist di plugin di canale che possono inviare messaggi. Sostituisce l'allowlist Anthropic predefinito quando impostato. Richiede `channelsEnabled: true`. Vedi [Restrict which channel plugins can run](/docs/it/channels#restrict-which-channel-plugins-can-run) |409| [`allowedChannelPlugins`](/docs/it/settings-reference#allowedchannelplugins) | Allowlist di plugin di canale che possono inviare messaggi. Sostituisce l'allowlist Anthropic predefinito quando impostato. Richiede `channelsEnabled: true`. Vedi [Restrict which channel plugins can run](/docs/it/channels#restrict-which-channel-plugins-can-run) |

408| [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly) | Quando `true`, limita quali hook vengono eseguiti; vedi [what runs under `allowManagedHooksOnly`](/docs/it/settings-reference#what-runs-under-allowmanagedhooksonly) per l'elenco completo degli effetti |410| [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly) | Quando `true`, limita quali hook vengono eseguiti; vedi [what runs under `allowManagedHooksOnly`](/docs/it/settings-reference#what-runs-under-allowmanagedhooksonly) per l'elenco completo degli effetti |

409| [`allowManagedMcpServersOnly`](/docs/it/settings-reference#allowmanagedmcpserversonly) | Quando `true`, solo `allowedMcpServers` dalle impostazioni gestite sono rispettati. `deniedMcpServers` si unisce ancora da tutte le fonti. Vedi [Keys read from every admin source](#keys-read-from-every-admin-source) per quali fonti gestite possono impostarla, e [Managed MCP configuration](/docs/it/managed-mcp) |411| [`allowManagedMcpServersOnly`](/docs/it/settings-reference#allowmanagedmcpserversonly) | Quando `true`, solo `allowedMcpServers` dalle impostazioni gestite sono rispettati. `deniedMcpServers` si unisce ancora da tutte le fonti. Vedi [Keys read from every admin source](#keys-read-from-every-admin-source) per quali fonti gestite possono impostarla, e [Managed MCP configuration](/docs/it/managed-mcp) |

410| [`allowManagedPermissionRulesOnly`](/docs/it/settings-reference#allowmanagedpermissionrulesonly) | Rende le impostazioni gestite l'unica fonte di impostazioni delle regole di autorizzazione. La voce elenca ogni fonte che ignora |412| [`allowManagedPermissionRulesOnly`](/docs/it/settings-reference#allowmanagedpermissionrulesonly) | Rende le impostazioni gestite l'unica fonte di impostazioni delle regole di autorizzazione. La voce elenca ogni fonte che ignora |

411| [`blockedMarketplaces`](/docs/it/settings-reference#blockedmarketplaces) | Blocklist di fonti di marketplace. Le fonti bloccate vengono controllate prima del download, quindi non toccano mai il filesystem. Vedi [managed marketplace restrictions](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) |413| [`blockedMarketplaces`](/docs/it/settings-reference#blockedmarketplaces) | Blocklist di fonti di marketplace. Le fonti bloccate vengono controllate prima del download, quindi non toccano mai il filesystem. Vedi [managed marketplace restrictions](/docs/it/plugins/org#restrict-what-users-can-install) |

412| [`channelsEnabled`](/docs/it/settings-reference#channelsenabled) | Consenti [channels](/docs/it/channels) per l'organizzazione. Vedi [enterprise controls](/docs/it/channels#enterprise-controls) per il default su ogni piano |414| [`channelsEnabled`](/docs/it/settings-reference#channelsenabled) | Consenti [channels](/docs/it/channels) per l'organizzazione. Vedi [enterprise controls](/docs/it/channels#enterprise-controls) per il default su ogni piano |

413| [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) | Quando `true`, blocca completamente le [fonti plugin `command`](/docs/it/plugin-marketplaces#command-sources), quindi il comando dichiarato dal marketplace non viene mai eseguito. Blocca anche i comandi [`headersHelper`](/docs/it/plugin-marketplaces#authenticate-archive-downloads) del marketplace, tranne per un marketplace che le impostazioni gestite stesse dichiarano. Quando non impostato, segue `allowManagedHooksOnly`. Richiede Claude Code v2.1.229 o successivo, e il blocco `headersHelper` richiede v2.1.238 o successivo |415| [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) | Quando `true`, blocca completamente le [fonti plugin `command`](/docs/it/plugins/marketplace-reference#command-plugin-source), quindi il comando dichiarato dal marketplace non viene mai eseguito. Blocca anche i comandi [`headersHelper`](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) del marketplace, tranne per un marketplace che le impostazioni gestite stesse dichiarano. Quando non impostato, segue `allowManagedHooksOnly`. Richiede Claude Code v2.1.229 o successivo, e il blocco `headersHelper` richiede v2.1.238 o successivo |

414| [`disableSideloadFlags`](/docs/it/settings-reference#disablesideloadflags) | Rifiuta i flag `--plugin-dir`, `--plugin-url`, `--agents`, e `--mcp-config` all'avvio. Nelle sessioni cloud, Claude Code elimina i server MCP che il server ha consegnato tramite `--mcp-config`, diversi dalle voci in-process `type: "sdk"`, e avvia la sessione. Richiede Claude Code v2.1.193 o successivo |416| [`disableSideloadFlags`](/docs/it/settings-reference#disablesideloadflags) | Rifiuta i flag `--plugin-dir`, `--plugin-url`, `--agents`, e `--mcp-config` all'avvio. Nelle sessioni cloud, Claude Code elimina i server MCP che il server ha consegnato tramite `--mcp-config`, diversi dalle voci in-process `type: "sdk"`, e avvia la sessione. Richiede Claude Code v2.1.193 o successivo |

415| [`forceRemoteSettingsRefresh`](/docs/it/settings-reference#forceremotesettingsrefresh) | Quando `true`, blocca l'avvio CLI fino a quando le impostazioni gestite remote non vengono recuperate di fresco e esce se il fetch fallisce. Vedi [fail-closed enforcement](/docs/it/server-managed-settings#enforce-fail-closed-startup) |417| [`forceRemoteSettingsRefresh`](/docs/it/settings-reference#forceremotesettingsrefresh) | Quando `true`, blocca l'avvio CLI fino a quando le impostazioni gestite remote non vengono recuperate di fresco e esce se il fetch fallisce. Vedi [fail-closed enforcement](/docs/it/server-managed-settings#enforce-fail-closed-startup) |

416| [`managedMcpServers`](/docs/it/settings-reference#managedmcpservers) | Server MCP remoti forniti a ogni utente insieme ai loro. Fornisce server piuttosto che bloccare qualcosa. Vedi [Provide servers through managed settings](/docs/it/managed-mcp#provide-servers-through-managed-settings). Richiede Claude Code v2.1.259 o successivo |418| [`managedMcpServers`](/docs/it/settings-reference#managedmcpservers) | Server MCP remoti forniti a ogni utente insieme ai loro. Fornisce server piuttosto che bloccare qualcosa. Vedi [Provide servers through managed settings](/docs/it/managed-mcp#provide-servers-through-managed-settings). Richiede Claude Code v2.1.259 o successivo |


421| [`policyHelper`](/docs/it/settings-reference#policyhelper) | Eseguibile che calcola le impostazioni gestite all'avvio; vedi [Compute managed settings with a policy helper](/docs/it/settings-reference#policyhelper) |423| [`policyHelper`](/docs/it/settings-reference#policyhelper) | Eseguibile che calcola le impostazioni gestite all'avvio; vedi [Compute managed settings with a policy helper](/docs/it/settings-reference#policyhelper) |

422| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/it/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quando `true`, solo i percorsi `filesystem.allowRead` dalle impostazioni gestite sono rispettati. `denyRead` si unisce ancora da tutte le fonti |424| [`sandbox.filesystem.allowManagedReadPathsOnly`](/docs/it/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | Quando `true`, solo i percorsi `filesystem.allowRead` dalle impostazioni gestite sono rispettati. `denyRead` si unisce ancora da tutte le fonti |

423| [`sandbox.network.allowManagedDomainsOnly`](/docs/it/settings-reference#sandbox-network-allowmanageddomainsonly) | Onora solo le regole di autorizzazione `allowedDomains` e `WebFetch(domain:...)` gestite; blocca altri domini senza chiedere |425| [`sandbox.network.allowManagedDomainsOnly`](/docs/it/settings-reference#sandbox-network-allowmanageddomainsonly) | Onora solo le regole di autorizzazione `allowedDomains` e `WebFetch(domain:...)` gestite; blocca altri domini senza chiedere |

424| [`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces) | Controlla quali fonti di marketplace di plugin gli utenti possono aggiungere e installare plugin da. Vedi [managed marketplace restrictions](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) |426| [`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces) | Controlla quali fonti di marketplace di plugin gli utenti possono aggiungere e installare plugin da. Vedi [managed marketplace restrictions](/docs/it/plugins/org#restrict-what-users-can-install) |

425| [`strictPluginOnlyCustomization`](/docs/it/settings-reference#strictpluginonlycustomization) | Blocca skills, agents, hooks e server MCP da fonti utente e progetto; `true` blocca tutti e quattro, un array nomina quale |427| [`strictPluginOnlyCustomization`](/docs/it/settings-reference#strictpluginonlycustomization) | Blocca skills, agents, hooks e server MCP da fonti utente e progetto; `true` blocca tutti e quattro, un array nomina quale |

426| [`wslInheritsWindowsSettings`](/docs/it/settings-reference#wslinheritswindowssettings) | Quando impostato nel registro HKLM o in un file sotto `C:\Program Files\ClaudeCode`, fai leggere a WSL la catena di policy Windows, e leggi `/etc/claude-code` solo quando nessun file di impostazioni gestite o drop-in sotto quella directory distribuisce una [chiave di policy](#how-claude-code-combines-managed-sources); la voce fornisce l'ordine |428| [`wslInheritsWindowsSettings`](/docs/it/settings-reference#wslinheritswindowssettings) | Quando impostato nel registro HKLM o in un file sotto `C:\Program Files\ClaudeCode`, fai leggere a WSL la catena di policy Windows, e leggi `/etc/claude-code` solo quando nessun file di impostazioni gestite o drop-in sotto quella directory distribuisce una [chiave di policy](#how-claude-code-combines-managed-sources); la voce fornisce l'ordine |

427 429 

mcp.md +69 −69

Details

50 Se l'installazione non riesce, fai corrispondere il messaggio che Claude Code segnala:50 Se l'installazione non riesce, fai corrispondere il messaggio che Claude Code segnala:

51 51 

52 * `Marketplace "claude-plugins-official" non trovato`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.52 * `Marketplace "claude-plugins-official" non trovato`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.

53 * Il plugin [non è trovato nel marketplace](/docs/it/discover-plugins#install-plugins): controlla il nome del plugin.53 * Il plugin [non è trovato nel marketplace](/docs/it/plugins/install#install-a-plugin): controlla il nome del plugin.

54 54 

55 Se il riepilogo dell'installazione segnala `Run /reload-plugins to activate.`, Claude Code esegue quindi quel ricaricamento per te. Se il ricaricamento avverte che il tuo prossimo messaggio rileggerebbe la conversazione, esegui `/reload-plugins --force`.55 Se il riepilogo dell'installazione segnala `Run /reload-plugins to activate.`, Claude Code esegue quindi quel ricaricamento per te. Se il ricaricamento avverte che il tuo prossimo messaggio rileggerebbe la conversazione, esegui `/reload-plugins --force`.

56 </Step>56 </Step>


92 92 

93Una voce JSON che ha un `url` ma nessun `type` è un errore di configurazione, perché Claude Code legge una voce senza `type` come server stdio. Claude Code salta quel server e segnala `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Prima della v2.1.202, Claude Code segnalava questa configurazione errata come `command: expected string, received undefined`.93Una voce JSON che ha un `url` ma nessun `type` è un errore di configurazione, perché Claude Code legge una voce senza `type` come server stdio. Claude Code salta quel server e segnala `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Prima della v2.1.202, Claude Code segnalava questa configurazione errata come `command: expected string, received undefined`.

94 94 

95Nelle esecuzioni `--output-format stream-json`, Claude Code segnala anche una voce `--mcp-config` saltata nel campo [`mcp_server_errors` dell'evento `system/init`](/docs/it/headless#stream-responses), in modo che gli script possano rilevare che il server non è mai stato caricato. Questo richiede Claude Code v2.1.219 o successivo.95Nelle esecuzioni `--output-format stream-json`, Claude Code segnala anche una voce `--mcp-config` saltata nell'evento `system/init` nel campo [`mcp_server_errors`](/docs/it/headless#stream-responses), in modo che gli script possano rilevare che il server non è mai stato caricato. Questo richiede Claude Code v2.1.219 o successivo.

96 96 

97<h3 id="option-2-add-a-remote-sse-server">97<h3 id="option-2-add-a-remote-sse-server">

98 Opzione 2: Aggiungere un server SSE remoto98 Opzione 2: Aggiungere un server SSE remoto


104 104 

105Alcuni servizi espongono ancora solo un endpoint SSE. Aggiungili con lo stesso comando `claude mcp add --transport http <name> <url>` di [un server HTTP](#option-1-add-a-remote-http-server). Claude Code prova prima il trasporto HTTP e passa a SSE quando il server non lo accetta. Il passaggio automatico richiede Claude Code v2.1.265 o successivo.105Alcuni servizi espongono ancora solo un endpoint SSE. Aggiungili con lo stesso comando `claude mcp add --transport http <name> <url>` di [un server HTTP](#option-1-add-a-remote-http-server). Claude Code prova prima il trasporto HTTP e passa a SSE quando il server non lo accetta. Il passaggio automatico richiede Claude Code v2.1.265 o successivo.

106 106 

107Su una versione precedente, o per connettersi su SSE direttamente, passa invece `--transport sse`:107Su una versione precedente, o per connettersi direttamente su SSE, passa `--transport sse` invece:

108 108 

109```bash theme={null}109```bash theme={null}

110# Sintassi di base110# Sintassi di base


124 124 

125I server stdio vengono eseguiti come processi locali sulla vostra macchina. Sono ideali per strumenti che necessitano di accesso diretto al sistema o script personalizzati.125I server stdio vengono eseguiti come processi locali sulla vostra macchina. Sono ideali per strumenti che necessitano di accesso diretto al sistema o script personalizzati.

126 126 

127Claude Code imposta `CLAUDE_PROJECT_DIR` nell'ambiente del server generato alla radice del progetto, in modo che il vostro server possa risolvere i percorsi relativi al progetto senza dipendere dalla directory di lavoro. Questa è la stessa directory che gli hook ricevono nella loro variabile `CLAUDE_PROJECT_DIR`. Leggila dall'interno del processo del vostro server, ad esempio `process.env.CLAUDE_PROJECT_DIR` in Node o `os.environ["CLAUDE_PROJECT_DIR"]` in Python.127Claude Code imposta `CLAUDE_PROJECT_DIR` nell'ambiente del server generato alla radice del progetto, in modo che il vostro server possa risolvere i percorsi relativi al progetto senza dipendere dalla directory di lavoro. Questa è la stessa directory che gli hook ricevono nella loro variabile `CLAUDE_PROJECT_DIR`. Leggetela dall'interno del processo del vostro server, ad esempio `process.env.CLAUDE_PROJECT_DIR` in Node o `os.environ["CLAUDE_PROJECT_DIR"]` in Python.

128 128 

129`CLAUDE_PROJECT_DIR` è la radice del progetto stabile e non cambia quando aggiungete o rimuovete directory di lavoro a metà sessione. Un server che limita il proprio accesso al file system a un insieme di directory consentite dovrebbe implementare la richiesta MCP `roots/list`. Claude Code risponde a `roots/list` con la directory di avvio della sessione più ogni [directory di lavoro aggiuntiva](/docs/it/permissions#working-directories) che avete concesso con `--add-dir`, `/add-dir`, o l'impostazione `additionalDirectories`. Claude Code invia `notifications/roots/list_changed` quando tale insieme cambia. Prima della v2.1.203, `roots/list` restituiva solo la directory di avvio e Claude Code non inviava `notifications/roots/list_changed`.129`CLAUDE_PROJECT_DIR` è la radice del progetto stabile e non cambia quando aggiungete o rimuovete directory di lavoro a metà sessione. Un server che limita il proprio accesso al file system a un insieme di directory consentite dovrebbe implementare la richiesta MCP `roots/list`. Claude Code risponde a `roots/list` con la directory di avvio della sessione più ogni [directory di lavoro aggiuntiva](/docs/it/permissions#working-directories) che avete concesso con `--add-dir`, `/add-dir`, o l'impostazione `additionalDirectories`. Claude Code invia `notifications/roots/list_changed` quando quel set cambia. Prima della v2.1.203, `roots/list` restituiva solo la directory di avvio e Claude Code non inviava `notifications/roots/list_changed`.

130 130 

131Questa variabile è impostata nell'ambiente del server, non nell'ambiente di Claude Code stesso, quindi farvi riferimento tramite l'espansione `${VAR}` nel `command` o `args` di una voce `.mcp.json` con ambito di progetto o una voce server con ambito locale o utente in `~/.claude.json` richiede un valore predefinito come `${CLAUDE_PROJECT_DIR:-.}`. Le configurazioni MCP fornite dai plugin sostituiscono `${CLAUDE_PROJECT_DIR}` direttamente e non hanno bisogno del valore predefinito.131Questa variabile è impostata nell'ambiente del server, non nell'ambiente di Claude Code stesso, quindi farvi riferimento tramite l'espansione `${VAR}` nel `command` o `args` di una voce `.mcp.json` con ambito di progetto o una voce server con ambito locale o utente in `~/.claude.json` richiede un valore predefinito come `${CLAUDE_PROJECT_DIR:-.}`. Le configurazioni MCP fornite da plugin sostituiscono `${CLAUDE_PROJECT_DIR}` direttamente e non hanno bisogno del valore predefinito.

132 132 

133```bash theme={null}133```bash theme={null}

134# Sintassi di base134# Sintassi di base


151 151 

152 Senza `--`, Claude Code cercherebbe di analizzare i flag del server, come `--port` sopra, come le sue stesse opzioni.152 Senza `--`, Claude Code cercherebbe di analizzare i flag del server, come `--port` sopra, come le sue stesse opzioni.

153 153 

154 `--env` accetta più coppie `KEY=value`. Se il nome del server viene direttamente dopo `--env`, la CLI legge il nome come un'altra coppia e lo rifiuta, quindi posizionate almeno un'altra opzione tra `--env` e il nome del server, come negli esempi sopra.154 `--env` accetta più coppie `KEY=value`. Se il nome del server viene direttamente dopo `--env`, la CLI legge il nome come un'altra coppia e lo rifiuta, quindi posizionate almeno un'altra opzione, come `--transport stdio`, tra `--env` e il nome del server.

155</Note>155</Note>

156 156 

157<h3 id="option-4-add-a-remote-websocket-server">157<h3 id="option-4-add-a-remote-websocket-server">


170La voce `type: "ws"` accetta gli stessi campi `url`, `headers`, `headersHelper`, `timeout`, e `alwaysLoad` di `http`. L'autenticazione è solo tramite intestazione, quindi passate un token statico in `headers` o generatene uno al momento della connessione con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Il flag `claude mcp add --transport` non accetta `ws`.170La voce `type: "ws"` accetta gli stessi campi `url`, `headers`, `headersHelper`, `timeout`, e `alwaysLoad` di `http`. L'autenticazione è solo tramite intestazione, quindi passate un token statico in `headers` o generatene uno al momento della connessione con [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Il flag `claude mcp add --transport` non accetta `ws`.

171 171 

172<h3 id="add-a-server-from-setup-instructions-written-for-another-client">172<h3 id="add-a-server-from-setup-instructions-written-for-another-client">

173 Aggiungere un server dalle istruzioni di configurazione scritte per un altro client173 Aggiungere un server da istruzioni di configurazione scritte per un altro client

174</h3>174</h3>

175 175 

176I server MCP non sono specifici di Claude Code, quindi le istruzioni di configurazione di un server potrebbero essere scritte per Claude Desktop, Cursor, o un altro client MCP e non fornire alcun comando `claude mcp add`. Per aggiungere comunque il server, cercate in quelle istruzioni una di queste tre cose:176I server MCP non sono specifici di Claude Code, quindi le istruzioni di configurazione di un server potrebbero essere scritte per Claude Desktop, Cursor, o un altro client MCP e non fornire alcun comando `claude mcp add`. Per aggiungere comunque il server, cercate in quelle istruzioni un URL, un comando di avvio, o un blocco JSON:

177 177 

178* **Un URL** come `https://mcp.example.com/mcp`: il server è remoto.178* **Un URL** come `https://mcp.example.com/mcp`: il server è remoto.

179* **Un comando di avvio** come `npx -y @example/mcp-server`: il server viene eseguito sulla vostra macchina.179* **Un comando di avvio** come `npx -y @example/mcp-server`: il server viene eseguito sulla vostra macchina.


185 Da un URL185 Da un URL

186</h4>186</h4>

187 187 

188Un URL significa che il server è remoto. Per un endpoint `https://`, aggiungetelo con `--transport http`, o seguite l'[Opzione 2](#option-2-add-a-remote-sse-server) quando le istruzioni dicono che l'endpoint utilizza SSE. Per un endpoint `wss://`, utilizzate invece l'[Opzione 4](#option-4-add-a-remote-websocket-server), poiché `--transport` non accetta `ws`:188Un URL significa che il server è remoto. Per un endpoint `https://`, aggiungetelo con `--transport http`, o seguite [Opzione 2](#option-2-add-a-remote-sse-server) quando le istruzioni dicono che l'endpoint utilizza SSE. Per un endpoint `wss://`, utilizzate [Opzione 4](#option-4-add-a-remote-websocket-server) invece, poiché `--transport` non accetta `ws`:

189 189 

190```bash theme={null}190```bash theme={null}

191claude mcp add --transport http example https://mcp.example.com/mcp191claude mcp add --transport http example https://mcp.example.com/mcp

192```192```

193 193 

194Se le istruzioni forniscono anche una chiave API o un'intestazione di token, passatela con `--header` come mostrato nell'[Opzione 1](#option-1-add-a-remote-http-server).194Se le istruzioni forniscono anche una chiave API o un'intestazione di token, passatela con `--header` come mostrato in [Opzione 1](#option-1-add-a-remote-http-server).

195 195 

196<h4 id="from-an-npx-uvx-or-binary-command">196<h4 id="from-an-npx-uvx-or-binary-command">

197 Da un comando `npx`, `uvx`, o binario197 Da un comando `npx`, `uvx`, o binario

198</h4>198</h4>

199 199 

200Un comando di avvio significa che il server viene eseguito come processo stdio locale. Mettete l'intero comando dopo `--`, in modo che Claude Code passi i flag come `-y` al comando che avvia il server invece di leggerli come le sue stesse opzioni. Passate le variabili di ambiente che le istruzioni richiedono con `--env`, dopo il nome del server e prima di `--`:200Un comando di avvio significa che il server viene eseguito come processo stdio locale. Mettete l'intero comando dopo `--`, in modo che Claude Code passi flag come `-y` al comando che avvia il server invece di leggerli come le sue stesse opzioni. Passate tutte le variabili di ambiente che le istruzioni richiedono con `--env`, dopo il nome del server e prima di `--`:

201 201 

202```bash theme={null}202```bash theme={null}

203claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server203claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server

204```204```

205 205 

206L'[Opzione 3](#option-3-add-a-local-stdio-server) copre il separatore `--` completamente.206[Opzione 3](#option-3-add-a-local-stdio-server) copre il separatore `--` completamente.

207 207 

208<h4 id="from-an-mcpservers-json-block">208<h4 id="from-an-mcpservers-json-block">

209 Da un blocco JSON `mcpServers`209 Da un blocco JSON `mcpServers`


233claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'233claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

234```234```

235 235 

236[Aggiungere server MCP dalla configurazione JSON](#add-mcp-servers-from-json-configuration) copre l'escape della shell e il flag `--scope` per `add-json`. Per condividere il server con il vostro team, aggiungete invece `--scope project`, o aggiungete la voce sotto `mcpServers` in `.mcp.json` alla radice del vostro progetto e committala. [Ambito di progetto](#project-scope) copre come Claude Code carica e approva quel file.236[Aggiungere server MCP da configurazione JSON](#add-mcp-servers-from-json-configuration) copre l'escape della shell e il flag `--scope` per `add-json`. Per condividere il server con il vostro team, aggiungete `--scope project`, o aggiungete la voce sotto `mcpServers` in `.mcp.json` alla radice del vostro progetto e committala. [Ambito di progetto](#project-scope) copre come Claude Code carica e approva quel file.

237 237 

238Ogni comando `claude mcp add` e `claude mcp add-json` stampa una riga `Added ...`. Per verificare che Claude Code si sia connesso, eseguite `claude mcp get <name>`; [Stato del server](#server-status) copre gli stati che mostra e il passaggio di approvazione per i server `.mcp.json`.238Ogni comando `claude mcp add` e `claude mcp add-json` stampa una riga `Added ...`. Per verificare che Claude Code si sia connesso, eseguite `claude mcp get <name>`; [Stato del server](#server-status) copre gli stati che mostra e il passaggio di approvazione per i server `.mcp.json`.

239 239 


247# Elencare tutti i server configurati247# Elencare tutti i server configurati

248claude mcp list248claude mcp list

249 249 

250# Ottenere i dettagli per un server specifico250# Ottenere dettagli per un server specifico

251claude mcp get notion251claude mcp get notion

252 252 

253# Rimuovere un server253# Rimuovere un server


293 Dettaglio dello stato del server293 Dettaglio dello stato del server

294</h4>294</h4>

295 295 

296In `/mcp`, incluso il menu di un server lì, e nel gestore [`/plugin`](/docs/it/plugins), un server HTTP o SSE remoto che avete usato prima può mostrare uno stato `cached` come `cached 2h ago · connects on first use · 5 tools`. Claude Code ha caricato l'elenco degli strumenti del server dalla sua cache di scoperta, salvata in una sessione precedente, invece di connettersi all'avvio, e Claude Code connette il server la prima volta che Claude chiama uno degli strumenti del server. Gli strumenti sono disponibili dal vostro primo messaggio, quindi non dovete fare nulla. La cache di scoperta e il suo stato `cached` richiedono Claude Code v2.1.221 o successivo.296In `/mcp`, incluso il menu di un server lì, e nel gestore [`/plugin`](/docs/it/plugins/install), un server HTTP o SSE remoto che avete usato prima può mostrare uno stato `cached` come `cached 2h ago · connects on first use · 5 tools`. Claude Code ha caricato l'elenco degli strumenti del server dalla sua cache di scoperta, salvata in una sessione precedente, invece di connettersi all'avvio, e Claude Code connette il server la prima volta che Claude chiama uno degli strumenti del server. Gli strumenti sono disponibili dal vostro primo messaggio, quindi non dovete fare nulla. La cache di scoperta e il suo stato `cached` richiedono Claude Code v2.1.221 o successivo.

297 297 

298La cache di scoperta è disattivata per impostazione predefinita a meno che un rollout graduale non l'abbia abilitata per il vostro account. Impostate [`MCP_DISCOVERY_CACHE=1`](/docs/it/env-vars) per attivarla, o `0` per mantenerla disattivata anche quando il rollout l'ha abilitata. Prima della v2.1.238, la cache era attivata per impostazione predefinita.298La cache di scoperta è disattivata per impostazione predefinita a meno che un rollout graduale non l'abbia abilitata per il vostro account. Impostate [`MCP_DISCOVERY_CACHE=1`](/docs/it/env-vars) per attivarla, o `0` per mantenerla disattivata anche quando il rollout l'ha abilitata. Prima della v2.1.238, la cache era attivata per impostazione predefinita.

299 299 

300Due azioni nel menu di un server in `/mcp` influenzano anche la voce della cache di quel server:300Due azioni nel menu di un server in `/mcp` influenzano anche la voce della cache di quel server:

301 301 

302* **Reconnect**: su un server `cached`, Claude Code lo connette ora piuttosto che alla sua prima chiamata di strumento e mantiene la voce. Su un server connesso o fallito, Claude Code lo riconnette e scarta anche la voce.302* **Riconnetti**: su un server `cached`, Claude Code lo connette ora piuttosto che alla sua prima chiamata di strumento e mantiene la voce. Su un server connesso o fallito, Claude Code lo riconnette e scarta anche la voce.

303* **Clear authentication**: Claude Code revoca l'autenticazione del server e scarta anche la voce.303* **Cancella autenticazione**: Claude Code revoca l'autenticazione del server e scarta anche la voce.

304 304 

305Dopo aver scartato la voce, Claude Code recupera l'elenco degli strumenti del server dal server invece che dalla cache.305Dopo aver scartato la voce, Claude Code recupera l'elenco degli strumenti del server dal server invece che dalla cache.

306 306 

307Quando lo stato di un server è `✘ Failed to connect`, `claude mcp list` aggiunge il dettaglio del fallimento a quella riga di stato, e `claude mcp get <name>` lo mostra su una riga `Issue:`: il codice di stato HTTP o il codice di errore, più qualsiasi testo di errore che il server ha restituito. La vista dei dettagli del server in `/mcp` include lo stesso testo segnalato dal server nella sua riga `Issue:`. Claude Code redige il testo simile a credenziali da questo dettaglio e non include mai l'URL del server espanso, che può contenere segreti. Claude Code non aggiunge dettagli a uno stato `✘ Connection error`, perché il testo dell'eccezione che stamperebbe lì può incorporare quell'URL. Prima della v2.1.219, entrambi i comandi mostravano solo lo stato di fallimento nudo, senza il codice di stato o il testo di errore del server.307Quando lo stato di un server è `✘ Failed to connect`, `claude mcp list` aggiunge il dettaglio del fallimento a quella riga di stato, e `claude mcp get <name>` lo mostra su una riga `Issue:`: il codice di stato HTTP o il codice di errore, più qualsiasi testo di errore che il server ha restituito. La vista dei dettagli del server in `/mcp` include lo stesso testo segnalato dal server nella sua riga `Issue:`. Claude Code redige il testo simile a credenziali da questo dettaglio e non include mai l'URL del server espanso, che può contenere segreti. Claude Code non aggiunge dettagli a uno stato `✘ Connection error`, perché il testo dell'eccezione che stamperebbe lì può incorporare quell'URL. Prima della v2.1.219, entrambi i comandi mostravano solo lo stato di fallimento nudo, senza il codice di stato o il testo di errore del server.

308 308 

309Quando completate l'autenticazione da `/mcp` e la connessione fallisce ancora con uno stato HTTP o un codice di errore di trasporto, Claude Code aggiunge quel codice e l'origine dell'URL che ha provato al messaggio che stampa dopo il tentativo. L'origine è lo schema e l'host, più la porta quando l'URL ne nomina una, come `https://mcp.example.com`.309Quando completate l'autenticazione da `/mcp` e la connessione fallisce ancora con uno stato HTTP o un codice di errore di trasporto, Claude Code aggiunge quel codice e l'origine dell'URL del server al messaggio che stampa dopo il tentativo. L'origine è lo schema e l'host, più la porta quando l'URL ne nomina una, come `https://mcp.example.com`.

310 310 

311* Il percorso e la query non appaiono mai in quel messaggio.311* Il percorso e la query non appaiono mai in quel messaggio.

312* Per un server nella [scope](#mcp-installation-scopes) locale, di progetto, o utente o nella configurazione MCP gestita, l'origine mostra l'host come scritto in quella configurazione, quindi un riferimento `${VAR}` nell'host non viene espanso nel messaggio.312* Per un server nell'ambito locale, di progetto, o utente [scope](#mcp-installation-scopes) o nella configurazione MCP gestita, l'origine mostra l'host come scritto in quella configurazione, quindi un riferimento `${VAR}` nell'host non viene espanso nel messaggio.

313* Per un fallimento senza codice di stato o di errore, Claude Code mostra il testo di errore senza l'origine.313* Per un fallimento senza codice di stato o di errore, Claude Code mostra il testo di errore senza l'origine.

314 314 

315Un server remoto la cui configurazione ha un `url` vuoto viene mostrato come `not configured` in `/mcp`, in `claude mcp list`, e nel gestore [`/plugin`](/docs/it/plugins), e Claude Code non tenta di connettersi ad esso. Un plugin può includere una voce segnaposto come questa per un connettore che configurate in seguito, quindi Claude Code non lo segnala come un errore o un problema di configurazione. La vista dei dettagli del server in `/mcp` legge `No URL configured for this server`; impostate l'`url` della voce per connetterlo. Prima della v2.1.208, Claude Code segnalava un `url` vuoto come un problema di configurazione con un prompt per riconnettersi.315Un server remoto la cui configurazione ha un `url` vuoto viene mostrato come `not configured` in `/mcp`, in `claude mcp list`, e nel gestore [`/plugin`](/docs/it/plugins/install), e Claude Code non tenta di connettersi ad esso. Un plugin può includere una voce segnaposto come questa per un connettore che configurate in seguito, quindi Claude Code non lo segnala come un errore o un problema di configurazione. La vista dei dettagli del server in `/mcp` legge `No URL configured for this server`; impostate l'`url` della voce per connetterla. Prima della v2.1.208, Claude Code segnalava un `url` vuoto come un problema di configurazione con un prompt per riconnettersi.

316 316 

317<h4 id="configuration-warnings">317<h4 id="configuration-warnings">

318 Avvisi di configurazione318 Avvisi di configurazione


321Claude Code avverte sui problemi di configurazione di seguito. Ogni voce dice cosa Claude Code controlla e come cancellare l'avviso:321Claude Code avverte sui problemi di configurazione di seguito. Ogni voce dice cosa Claude Code controlla e come cancellare l'avviso:

322 322 

323* **Spazi bianchi nascosti**: Claude Code avverte quando un valore di configurazione MCP contiene spazi bianchi nascosti iniziali o finali, che spesso provengono dall'incollamento di un token con una nuova riga finale. Claude Code controlla `command`, `url`, ogni voce `args`, e i valori e i nomi delle chiavi sotto `env` e `headers`. Claude Code mostra l'avviso nell'output di `claude mcp list` e in `/mcp`, nominando i campi interessati senza echeggiare i loro valori, ad esempio `Leading or trailing whitespace in: headers.Authorization`. Claude Code non taglia gli spazi bianchi e utilizza i valori esattamente come scritti, quindi modificate la configurazione per rimuoverli.323* **Spazi bianchi nascosti**: Claude Code avverte quando un valore di configurazione MCP contiene spazi bianchi nascosti iniziali o finali, che spesso provengono dall'incollamento di un token con una nuova riga finale. Claude Code controlla `command`, `url`, ogni voce `args`, e i valori e i nomi delle chiavi sotto `env` e `headers`. Claude Code mostra l'avviso nell'output di `claude mcp list` e in `/mcp`, nominando i campi interessati senza echeggiare i loro valori, ad esempio `Leading or trailing whitespace in: headers.Authorization`. Claude Code non taglia gli spazi bianchi e utilizza i valori esattamente come scritti, quindi modificate la configurazione per rimuoverli.

324* **Stesso nome in più di un ambito**: se definite lo stesso nome di server in più di un [ambito](#mcp-installation-scopes) con endpoint diversi, Claude Code avverte del conflitto nell'output di `claude mcp list` e in `/mcp`. Claude Code memorizza gli accessi OAuth per endpoint, quindi quando autenticate la definizione che si carica in un progetto, dovete comunque accedere separatamente in un progetto dove si carica una definizione diversa. Mantenete l'endpoint che desiderate e rimuovete gli altri con `claude mcp remove <name> --scope <scope>`. Nell'avviso, Claude Code cita l'endpoint di ogni ambito come scritto nella vostra configurazione, con i riferimenti [`${VAR}`](#environment-variable-expansion-in-mcp-json) non espansi, quindi non mostra mai un valore risolto come una chiave API.324* **Stesso nome in più di un ambito**: se definite lo stesso nome di server in più di un [scope](#mcp-installation-scopes) con endpoint diversi, Claude Code avverte del conflitto nell'output di `claude mcp list` e in `/mcp`. Claude Code memorizza gli accessi OAuth per endpoint, quindi quando autenticate la definizione che si carica in un progetto, dovete comunque accedere separatamente in un progetto dove si carica una definizione diversa. Mantenete l'endpoint che desiderate e rimuovete gli altri con `claude mcp remove <name> --scope <scope>`. Nell'avviso, Claude Code cita l'endpoint di ogni ambito come scritto nella vostra configurazione, con i riferimenti [`${VAR}`](#environment-variable-expansion-in-mcp-json) non espansi, quindi non mostra mai un valore risolto come una chiave API.

325* **Nomi riservati**: Claude Code riserva i nomi dei suoi server integrati, inclusi `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, e `Claude Browser`. Se la vostra configurazione definisce un server con un nome riservato, Claude Code lo salta al momento del caricamento e mostra un avviso chiedendovi di rinominarlo. `claude mcp add` rifiuta un nome riservato con un errore. `Claude Preview` e `Claude Browser` entrambi nominano il server integrato che il [pannello di anteprima dell'app desktop Claude Code](/docs/it/desktop#preview-your-app) utilizza. Prima della v2.1.205, `Claude Browser` non era riservato, quindi un server configurato dall'utente poteva registrarsi con quel nome.325* **Nomi riservati**: Claude Code riserva i nomi dei suoi server integrati, inclusi `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, e `Claude Browser`. Se la vostra configurazione definisce un server con un nome riservato, Claude Code lo salta al momento del caricamento e mostra un avviso chiedendovi di rinominarlo. `claude mcp add` rifiuta un nome riservato con un errore. `Claude Preview` e `Claude Browser` entrambi nominano il server integrato che il [pannello di anteprima dell'app desktop Claude Code](/docs/it/desktop#preview-your-app) utilizza. Prima della v2.1.205, `Claude Browser` non era riservato, quindi un server configurato dall'utente poteva registrarsi con quel nome.

326* **Variabile di ambiente mancante**: se un riferimento [`${VAR}`](#environment-variable-expansion-in-mcp-json) nella configurazione di un server nomina una variabile che non è impostata e non ha `:-default`, Claude Code avverte nell'output di `claude mcp list` e in `/mcp`, nominando la variabile, e carica comunque il server con il testo `${VAR}` non espanso. Impostate la variabile o aggiungete un fallback `${VAR:-default}`. In un `url` e `headers` di un server remoto, alcune variabili di credenziali [leggono come vuote](#credential-variables-that-read-as-empty) invece, senza avviso.326* **Variabile di ambiente mancante**: se un riferimento [`${VAR}`](#environment-variable-expansion-in-mcp-json) nella configurazione di un server nomina una variabile che non è impostata e non ha `:-default`, Claude Code avverte nell'output di `claude mcp list` e in `/mcp`, nominando la variabile, e carica comunque il server con il testo `${VAR}` non espanso. Impostate la variabile o aggiungete un fallback `${VAR:-default}`. In un `url` e `headers` di un server remoto, alcune variabili di credenziali [leggono come vuote](#credential-variables-that-read-as-empty) invece, senza avviso.

327 327 


329 Disponibilità degli strumenti329 Disponibilità degli strumenti

330</h4>330</h4>

331 331 

332Il pannello `/mcp` mostra il conteggio degli strumenti accanto a ogni server connesso e contrassegna i server che pubblicizzano la capacità degli strumenti ma non espongono alcuno strumento.332Il pannello `/mcp` mostra il conteggio degli strumenti accanto a ogni server connesso e contrassegna i server che pubblicizzano la capacità degli strumenti ma non espongono strumenti.

333 333 

334Se la vostra richiesta ha bisogno di strumenti da un server che si sta ancora connettendo in background, Claude attende quel server prima di continuare. Come avviene l'attesa dipende dalla vostra configurazione:334Se la vostra richiesta ha bisogno di strumenti da un server che si sta ancora connettendo in background, Claude attende quel server prima di continuare. Come avviene l'attesa dipende dalla vostra configurazione:

335 335 

336* **Con [ricerca degli strumenti](#scale-with-mcp-tool-search), l'impostazione predefinita**: l'attesa avviene all'interno della chiamata `ToolSearch`.336* **Con [ricerca degli strumenti](#scale-with-mcp-tool-search), l'impostazione predefinita**: l'attesa avviene all'interno della chiamata `ToolSearch`.

337* **Senza ricerca degli strumenti**: Claude utilizza lo strumento `WaitForMcpServers`. Le configurazioni senza ricerca degli strumenti includono un `ANTHROPIC_BASE_URL` personalizzato, `ENABLE_TOOL_SEARCH=false`, e un modello precedente alla generazione Claude 4.5 su Google Cloud's Agent Platform.337* **Senza ricerca degli strumenti**: Claude utilizza lo strumento `WaitForMcpServers` invece. Le configurazioni senza ricerca degli strumenti includono un `ANTHROPIC_BASE_URL` personalizzato, `ENABLE_TOOL_SEARCH=false`, e un modello precedente alla generazione Claude 4.5 su Google Cloud's Agent Platform.

338* **Su una distribuzione Microsoft Foundry [ospitata su Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude inizia sul percorso di ricerca degli strumenti piuttosto che con `WaitForMcpServers`, poiché Claude Code scopre il rifiuto lato server dell'API solo dall'API. Dopo che Claude Code passa quella distribuzione al [caricamento anticipato](#scale-with-mcp-tool-search), gli strumenti da un server che finisce di connettersi diventano disponibili sulla richiesta successiva di Claude.338* **Su una distribuzione Microsoft Foundry [ospitata su Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude inizia sul percorso di ricerca degli strumenti piuttosto che con `WaitForMcpServers`, poiché Claude Code scopre il rifiuto lato server della distribuzione solo dall'API. Dopo che Claude Code passa quella distribuzione al [caricamento anticipato](#scale-with-mcp-tool-search), gli strumenti da un server che finisce di connettersi diventano disponibili sulla richiesta successiva di Claude.

339 339 

340Con la ricerca degli strumenti abilitata, quando un server finisce di connettersi mentre Claude sta lavorando, Claude Code elenca i nomi degli strumenti del server a Claude sulla sua richiesta successiva nello stesso turno. Claude può quindi cercare e chiamare quegli strumenti senza attendere il vostro prossimo messaggio.340Con la ricerca degli strumenti abilitata, quando un server finisce di connettersi mentre Claude sta lavorando, Claude Code elenca i nomi degli strumenti del server a Claude sulla sua richiesta successiva nello stesso turno. Claude può quindi cercare e chiamare quegli strumenti senza attendere il vostro prossimo messaggio.

341 341 


347 347 

348Quando attivate/disattivate un server, Claude Code registra la vostra scelta per progetto in `~/.claude.json`, in uno di due elenchi che coprono insiemi disgiunti di server:348Quando attivate/disattivate un server, Claude Code registra la vostra scelta per progetto in `~/.claude.json`, in uno di due elenchi che coprono insiemi disgiunti di server:

349 349 

350* `disabledMcpServers`: un elenco di esclusione per server configurati dall'utente, server di plugin, server che la vostra organizzazione [fornisce tramite impostazioni gestite](/docs/it/managed-mcp#provide-servers-through-managed-settings), i connettori claude.ai che Claude Code [recupera da solo](#how-connectors-reach-claude-code), e server integrati che sono abilitati per impostazione predefinita. Claude Code non si connette a un server che elenchiate qui. Quando disabilitate un connettore claude.ai con l'attivazione/disattivazione `/mcp` per progetto descritta in [Disabilitare i connettori claude.ai](#disable-claude-ai-connectors), Claude Code lo scrive in questo elenco con il suo nome di visualizzazione, ad esempio `claude.ai Slack`.350* `disabledMcpServers`: un elenco di esclusione per server configurati dall'utente, server di plugin, server che la vostra organizzazione [fornisce tramite impostazioni gestite](/docs/it/managed-mcp#provide-servers-through-managed-settings), i connettori claude.ai che Claude Code [recupera da solo](#how-connectors-reach-claude-code), e server integrati che sono attivati per impostazione predefinita. Claude Code non si connette a un server che elencate qui. Quando disabilitate un connettore claude.ai con l'attivazione/disattivazione `/mcp` per progetto descritta in [Disabilitare connettori claude.ai](#disable-claude-ai-connectors), Claude Code lo scrive in questo elenco con il suo nome di visualizzazione, ad esempio `claude.ai Slack`.

351* `enabledMcpServers`: un elenco di inclusione per server integrati che sono disabilitati per impostazione predefinita, come `computer-use`. Claude Code si connette a un server disabilitato per impostazione predefinita solo quando lo elenchiate qui.351* `enabledMcpServers`: un elenco di consenso per server integrati che sono disabilitati per impostazione predefinita, come `computer-use`. Claude Code si connette a un server disabilitato per impostazione predefinita solo quando lo elencate qui.

352 352 

353Claude Code consulta esattamente uno dei due elenchi per ogni server, quindi nessun elenco sostituisce l'altro. Se aggiungete un server regolare a `enabledMcpServers`, o un server integrato disabilitato per impostazione predefinita a `disabledMcpServers`, Claude Code ignora la voce.353Claude Code consulta esattamente uno dei due elenchi per ogni server, quindi nessun elenco sostituisce l'altro. Se aggiungete un server regolare a `enabledMcpServers`, o un server integrato disabilitato per impostazione predefinita a `disabledMcpServers`, Claude Code ignora la voce.

354 354 


360 360 

361Claude Code si connette ai server MCP attraverso uno di due runtime client. Il runtime v1 è costruito su MCP TypeScript SDK 1.x. Il runtime v2 è lo stesso codice su [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), che aggiunge la revisione del protocollo MCP 2026-07-28. Il resto di questa pagina si applica a entrambi i runtime, tranne dove una sezione nomina il runtime v2.361Claude Code si connette ai server MCP attraverso uno di due runtime client. Il runtime v1 è costruito su MCP TypeScript SDK 1.x. Il runtime v2 è lo stesso codice su [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), che aggiunge la revisione del protocollo MCP 2026-07-28. Il resto di questa pagina si applica a entrambi i runtime, tranne dove una sezione nomina il runtime v2.

362 362 

363Claude Code sceglie un runtime ogni volta che lo avviate e lo mantiene fino a quando non uscite. Su Claude Code v2.1.232 o successivo, utilizza il runtime v2 nelle sessioni in cui [recupera i flag di funzionalità](/docs/it/env-vars#features-that-need-feature-flag-fetching).363Claude Code sceglie un runtime ogni volta che lo avviate e lo mantiene fino a quando non uscite. Nelle sessioni in cui [recupera flag di funzionalità](/docs/it/env-vars#features-that-need-feature-flag-fetching), utilizza il runtime v2 su Claude Code v2.1.232 o successivo.

364 364 

365Nelle sessioni in cui non recupera i flag di funzionalità, Claude Code utilizza il runtime v2 per impostazione predefinita su Claude Code v2.1.274 o successivo:365Nelle sessioni in cui non recupera flag di funzionalità, Claude Code utilizza il runtime v2 per impostazione predefinita su Claude Code v2.1.274 o successivo:

366 366 

367* Sessioni su Amazon Bedrock, Claude Platform su AWS, Google Cloud's Agent Platform, o Microsoft Foundry, a meno che una piattaforma host che incorpora Claude Code non imposti [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/it/env-vars)367* Sessioni su Amazon Bedrock, Claude Platform su AWS, Google Cloud's Agent Platform, o Microsoft Foundry, a meno che una piattaforma host che incorpora Claude Code non imposti [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/it/env-vars)

368* Sessioni accedute tramite un [gateway di app Claude](/docs/it/claude-apps-gateway)368* Sessioni accedute tramite un [gateway di app Claude](/docs/it/claude-apps-gateway)


370 370 

371Su v2, Claude Code inoltre:371Su v2, Claude Code inoltre:

372 372 

373* Chiede ai server HTTP se supportano la revisione più recente, e la utilizza con quelli che lo fanno. Chiede anche ai server connettori claude.ai nelle sessioni in cui recupera i flag di funzionalità. Per fargli chiedere ai server stdio, o ai server connettori in ogni sessione, impostate [`MCP_PROTOCOL_NEGOTIATION`](/docs/it/env-vars) su `auto`. Si connette a ogni altro server come v1 fa.373* Chiede ai server HTTP se supportano la revisione più recente, e la utilizza con quelli che lo fanno. Chiede anche ai server connettori claude.ai nelle sessioni in cui recupera flag di funzionalità. Per fargli chiedere ai server stdio, o ai server connettori in ogni sessione, impostate [`MCP_PROTOCOL_NEGOTIATION`](/docs/it/env-vars) su `auto`. Si connette a ogni altro server come v1 fa.

374* Riceve notifiche `list_changed` dai server sulla revisione più recente su un [flusso che mantiene aperto](#notification-streams-on-the-v2-runtime).374* Riceve notifiche `list_changed` dai server sulla revisione più recente su un [flusso che mantiene aperto](#notification-streams-on-the-v2-runtime).

375* Non registra un server [channel](#push-messages-with-channels) che si connette sulla revisione più recente, perché quella revisione non può trasportare messaggi di canale.375* Non registra un server [channel](#push-messages-with-channels) che si connette sulla revisione più recente, perché quella revisione non può portare messaggi di canale.

376* Fallisce un [accesso OAuth MCP](#authenticate-with-remote-mcp-servers) la cui risposta di autorizzazione nomina un emittente inaspettato.376* Fallisce un [accesso OAuth MCP](#authenticate-with-remote-mcp-servers) la cui risposta di autorizzazione nomina un emittente inaspettato.

377 377 

378Anthropic può mantenere un server specifico sul protocollo precedente, o fuori da quel flusso, con un flag di funzionalità che Claude Code recupera.378Anthropic può mantenere un server specifico sul protocollo precedente, o fuori da quel flusso, con un flag di funzionalità che Claude Code recupera.


383 Aggiornamenti dinamici degli strumenti383 Aggiornamenti dinamici degli strumenti

384</h3>384</h3>

385 385 

386Claude Code supporta le notifiche MCP `list_changed`, consentendo ai server MCP di aggiornare dinamicamente i loro strumenti, prompt e risorse disponibili senza richiedere di disconnettersi e riconnettersi. Quando un server MCP invia una notifica `list_changed`, Claude Code aggiorna automaticamente le capacità disponibili da quel server.386Claude Code supporta le notifiche MCP `list_changed`, consentendo ai server MCP di aggiornare dinamicamente i loro strumenti, prompt, e risorse disponibili senza richiedere di disconnettersi e riconnettersi. Quando un server MCP invia una notifica `list_changed`, Claude Code aggiorna automaticamente le capacità disponibili da quel server.

387 387 

388Se una richiesta di aggiornamento fallisce, Claude Code mantiene gli strumenti, i prompt e le risorse precedentemente scoperti del server fino a quando un aggiornamento successivo non riesce. Prima della v2.1.214, un errore transitorio durante l'aggiornamento sostituiva gli strumenti, i prompt e le risorse del server con un elenco vuoto.388Se una richiesta di aggiornamento fallisce, Claude Code mantiene gli strumenti, i prompt, e le risorse precedentemente scoperti del server fino a quando un aggiornamento successivo non riesce. Prima della v2.1.214, un errore transitorio durante l'aggiornamento sostituiva gli strumenti, i prompt, e le risorse del server con un elenco vuoto.

389 389 

390<h4 id="notification-streams-on-the-v2-runtime">390<h4 id="notification-streams-on-the-v2-runtime">

391 Flussi di notifica sul runtime v2391 Flussi di notifica sul runtime v2


394Sul [runtime v2](#mcp-client-runtimes), Claude Code riceve notifiche `list_changed` da un server sulla revisione del protocollo più recente su un flusso che mantiene aperto. Quando il flusso si chiude, Claude Code lo riapre, con due limiti:394Sul [runtime v2](#mcp-client-runtimes), Claude Code riceve notifiche `list_changed` da un server sulla revisione del protocollo più recente su un flusso che mantiene aperto. Quando il flusso si chiude, Claude Code lo riapre, con due limiti:

395 395 

396* **Il flusso si chiude di nuovo entro 10 secondi**: Claude Code lo riapre fino a tre volte, quindi si ferma per quella connessione.396* **Il flusso si chiude di nuovo entro 10 secondi**: Claude Code lo riapre fino a tre volte, quindi si ferma per quella connessione.

397* **Il flusso rimane aperto più a lungo di 10 secondi, quindi si chiude**, come i flussi agli host serverless comunemente fanno: dopo cinque riaperture in un'ora, Claude Code attende circa sei ore prima della prossima.397* **Il flusso rimane aperto più a lungo di 10 secondi, poi si chiude**, come i flussi agli host serverless comunemente fanno: dopo cinque riaperture in un'ora, Claude Code attende circa sei ore prima della prossima.

398 398 

399Fino a quando il flusso non si riapre, mantenete gli ultimi strumenti, prompt e risorse recuperati del server. Per raccogliere i suoi cambiamenti più presto, riconnettete il server da `/mcp`.399Fino a quando il flusso non si riapre, mantenete gli ultimi strumenti, prompt, e risorse recuperati del server. Per raccogliere i suoi cambiamenti più presto, riconnettete il server da `/mcp`.

400 400 

401<h3 id="automatic-reconnection">401<h3 id="automatic-reconnection">

402 Riconnessione automatica402 Riconnessione automatica


408 Cadute a metà sessione di un server remoto408 Cadute a metà sessione di un server remoto

409</h4>409</h4>

410 410 

411Claude Code riconnette un server remoto caduto con backoff esponenziale: fino a cinque tentativi, a partire da un ritardo di un secondo e raddoppiandolo ogni volta. Quello che vedete dipende da come state eseguendo Claude Code:411Claude Code riconnette un server remoto caduto con backoff esponenziale: fino a cinque tentativi, iniziando con un ritardo di un secondo e raddoppiandolo ogni volta. Quello che vedete dipende da come state eseguendo Claude Code:

412 412 

413* **In una sessione interattiva**: `/mcp` mostra il server come in sospeso mentre Claude Code si riconnette. Dopo cinque tentativi falliti, Claude Code contrassegna il server come fallito, o come necessitante di autenticazione quando il server ha bisogno di autorizzazione di nuovo. Potete ritentare manualmente da `/mcp`.413* **In una sessione interattiva**: `/mcp` mostra il server come in sospeso mentre Claude Code si riconnette. Dopo cinque tentativi falliti, Claude Code contrassegna il server come fallito, o come necessitante di autenticazione quando il server ha bisogno di autorizzazione di nuovo. Quando lo contrassegna come fallito, vedete una notifica `MCP server "<name>" disconnected · open /mcp to reconnect`. Potete ritentare manualmente da `/mcp`.

414* **In esecuzioni [`claude -p`](/docs/it/headless) e sessioni [Agent SDK](/docs/it/agent-sdk/overview)**: Claude Code si riconnette secondo lo stesso programma, senza pannello `/mcp` per mostrare i tentativi.414* **In esecuzioni [`claude -p`](/docs/it/headless) e sessioni [Agent SDK](/docs/it/agent-sdk/overview)**: Claude Code si riconnette sulla stessa pianificazione, senza pannello `/mcp` per mostrare i tentativi.

415 415 

416<h4 id="failed-first-connections">416<h4 id="failed-first-connections">

417 Connessioni iniziali fallite417 Connessioni iniziali fallite


436 436 

437Se Claude Code dice a Claude di un server configurato che non si è connesso dipende dalla [ricerca degli strumenti](#scale-with-mcp-tool-search), che è attivata per impostazione predefinita:437Se Claude Code dice a Claude di un server configurato che non si è connesso dipende dalla [ricerca degli strumenti](#scale-with-mcp-tool-search), che è attivata per impostazione predefinita:

438 438 

439* Con ricerca degli strumenti, Claude Code dice a Claude quale server è fallito e il suo errore di connessione, quindi Claude segnala il fallimento della connessione nella sua risposta. Claude Code include le stesse informazioni nei risultati di `ToolSearch` che non trovano alcuno strumento corrispondente.439* Con ricerca degli strumenti, Claude Code dice a Claude quale server è fallito e il suo errore di connessione, quindi Claude segnala il fallimento della connessione nella sua risposta. Claude Code include le stesse informazioni nei risultati di `ToolSearch` che non trovano strumenti corrispondenti.

440* In qualsiasi [configurazione senza ricerca degli strumenti](#configure-tool-search), Claude Code non segnala i fallimenti di connessione del server configurato a Claude.440* In qualsiasi [configurazione senza ricerca degli strumenti](#configure-tool-search), Claude Code non segnala i fallimenti di connessione del server remoto a Claude.

441 441 

442<h3 id="push-messages-with-channels">442<h3 id="push-messages-with-channels">

443 Inviare messaggi con i canali443 Inviare messaggi con canali

444</h3>444</h3>

445 445 

446Un server MCP può anche inviare messaggi direttamente nella vostra sessione in modo che Claude possa reagire a eventi esterni come risultati CI, avvisi di monitoraggio, o messaggi di chat. Per abilitare questo, il vostro server dichiara la capacità `claude/channel` e voi lo attivate con il flag `--channels` all'avvio. Vedete [Canali](/docs/it/channels) per utilizzare un canale ufficialmente supportato, o [Riferimento dei canali](/docs/it/channels-reference) per costruire il vostro.446Un server MCP può anche inviare messaggi direttamente nella vostra sessione in modo che Claude possa reagire a eventi esterni come risultati CI, avvisi di monitoraggio, o messaggi di chat. Per abilitare questo, il vostro server dichiara la capacità `claude/channel` e voi lo attivate con il flag `--channels` all'avvio. Vedete [Canali](/docs/it/channels) per utilizzare un canale ufficialmente supportato, o [Riferimento canali](/docs/it/channels-reference) per costruire il vostro.

447 447 

448Sul [runtime v2](#mcp-client-runtimes), se impostate [`MCP_PROTOCOL_NEGOTIATION`](/docs/it/env-vars) su `auto` e un server di canale negozia la revisione del protocollo MCP 2026-07-28, non può consegnare messaggi di canale, quindi Claude Code non lo registra come canale. Lasciate la variabile non impostata, o impostatela su `legacy`, mantiene i server stdio sul handshake precedente.448Sul [runtime v2](#mcp-client-runtimes), se impostate [`MCP_PROTOCOL_NEGOTIATION`](/docs/it/env-vars) su `auto` e un server di canale negozia la revisione del protocollo MCP 2026-07-28, non può consegnare messaggi di canale, quindi Claude Code non lo registra come canale. Lasciate la variabile non impostata, o impostatela su `legacy`, mantiene i server stdio sul handshake precedente.

449 449 


464 464 

465Il `timeout` per server è un limite di wall-clock duro per chiamata di strumento, e le notifiche di progresso dal server non lo estendono. I valori inferiori a 1000 vengono ignorati e ricadono in `MCP_TOOL_TIMEOUT`, o nel suo valore predefinito di circa 28 ore quando quella variabile non è impostata. Per un server HTTP, SSE, o [connettore claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai) c'è anche un secondo timer per richiesta che copre ogni richiesta fino al primo byte di risposta del server. Claude Code imposta quel timer al massimo di tre valori: 60 secondi, il timeout dello strumento che si applica al server, e `MCP_TIMEOUT`. Il valore predefinito di 28 ore di un `MCP_TOOL_TIMEOUT` non impostato non entra in quel confronto, e un valore inferiore a 60 secondi non accorcia il timer. I server stdio e WebSocket non hanno un timer per richiesta.465Il `timeout` per server è un limite di wall-clock duro per chiamata di strumento, e le notifiche di progresso dal server non lo estendono. I valori inferiori a 1000 vengono ignorati e ricadono in `MCP_TOOL_TIMEOUT`, o nel suo valore predefinito di circa 28 ore quando quella variabile non è impostata. Per un server HTTP, SSE, o [connettore claude.ai](/docs/it/mcp#use-mcp-servers-from-claude-ai) c'è anche un secondo timer per richiesta che copre ogni richiesta fino al primo byte di risposta del server. Claude Code imposta quel timer al massimo di tre valori: 60 secondi, il timeout dello strumento che si applica al server, e `MCP_TIMEOUT`. Il valore predefinito di 28 ore di un `MCP_TOOL_TIMEOUT` non impostato non entra in quel confronto, e un valore inferiore a 60 secondi non accorcia il timer. I server stdio e WebSocket non hanno un timer per richiesta.

466 466 

467Un `timeout` per server di almeno 1000 agisce anche come un pavimento sul timeout di inattività descritto di seguito: Claude Code non interrompe mai le chiamate di strumento di quel server per inattività prima del `timeout` per server. Richiede Claude Code v2.1.203 o successivo.467Un `timeout` per server di almeno 1000 agisce anche come limite inferiore sul timeout di inattività descritto di seguito: Claude Code non interrompe mai le chiamate di strumento di quel server per inattività prima del `timeout` per server. Richiede Claude Code v2.1.203 o successivo.

468 468 

469Una chiamata di strumento a un server MCP che non invia risposta e nessuna notifica di progresso per la finestra di inattività interrompe con un errore invece di attendere il limite di wall-clock. Il timeout di inattività richiede Claude Code v2.1.187 o successivo. Si applica a ogni tipo di server tranne i server IDE e i server in-process dell'SDK. La finestra di inattività è predefinita a cinque minuti per i server HTTP, SSE, WebSocket, e [connettore claude.ai](#use-mcp-servers-from-claude-ai), e a 30 minuti per i server stdio. Prima della v2.1.203, i server stdio erano esenti dal timeout di inattività.469Una chiamata di strumento a un server MCP che non invia risposta e nessuna notifica di progresso per la finestra di inattività interrompe con un errore invece di attendere il limite di wall-clock. Si applica a ogni tipo di server tranne i server IDE e i server in-process SDK. La finestra di inattività è predefinita a cinque minuti per server HTTP, SSE, WebSocket, e [connettore claude.ai](#use-mcp-servers-from-claude-ai), e a 30 minuti per server stdio. Prima della v2.1.203, i server stdio erano esenti dal timeout di inattività.

470 470 

471Impostate la variabile di ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/it/env-vars) in millisecondi per cambiare la finestra di inattività, o impostatela su `0` per disabilitare il controllo.471Impostate la variabile di ambiente [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/it/env-vars) in millisecondi per cambiare la finestra di inattività, o impostatela su `0` per disabilitare il controllo.

472 472 

473Questi timeout limitano quanto a lungo una chiamata può essere eseguita, non sempre quanto a lungo blocca la sessione: una chiamata della conversazione principale che viene eseguita oltre due minuti si sposta prima a un'attività in background. Vedete [Backgrounding automatico delle lunghe chiamate di strumento](#automatic-backgrounding-of-long-tool-calls).473Questi timeout limitano quanto a lungo una chiamata può essere eseguita, non sempre quanto a lungo blocca la sessione: una chiamata di conversazione principale che viene eseguita oltre due minuti si sposta prima a un'attività in background. Vedete [Backgrounding automatico di lunghe chiamate di strumento](#automatic-backgrounding-of-long-tool-calls).

474 474 

475<h3 id="automatic-backgrounding-of-long-tool-calls">475<h3 id="automatic-backgrounding-of-long-tool-calls">

476 Backgrounding automatico delle lunghe chiamate di strumento476 Backgrounding automatico di lunghe chiamate di strumento

477</h3>477</h3>

478 478 

479Una chiamata di strumento MCP nella conversazione principale che è ancora in esecuzione dopo due minuti si sposta a un'attività in background invece di bloccare la sessione. Claude riceve l'ID dell'attività immediatamente e continua a lavorare, e il risultato arriva come una notifica di attività quando la chiamata si conclude. Il backgrounding automatico richiede Claude Code v2.1.212 o successivo.479Una chiamata di strumento MCP nella conversazione principale che è ancora in esecuzione dopo due minuti si sposta a un'attività in background invece di bloccare la sessione. Claude riceve l'ID dell'attività immediatamente e continua a lavorare, e il risultato arriva come notifica di attività quando la chiamata si risolve. Il backgrounding automatico richiede Claude Code v2.1.212 o successivo.

480 480 

481L'attività appare in [`/tasks`](/docs/it/commands#all-commands), dove potete anche fermarla, e non sopravvive all'uscita dalla sessione. I limiti per chiamata si applicano ancora mentre la chiamata viene eseguita in background: il limite di wall-clock impostato dal `timeout` per server o [`MCP_TOOL_TIMEOUT`](/docs/it/env-vars), e il timeout di inattività impostato da [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/it/env-vars).481L'attività appare in [`/tasks`](/docs/it/commands#all-commands), dove potete anche fermarla, e non sopravvive all'uscita dalla sessione. I limiti per chiamata si applicano ancora mentre la chiamata viene eseguita in background: il limite di wall-clock impostato dal `timeout` per server o [`MCP_TOOL_TIMEOUT`](/docs/it/env-vars), e il timeout di inattività impostato da [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/it/env-vars).

482 482 


494 Server MCP forniti da plugin494 Server MCP forniti da plugin

495</h3>495</h3>

496 496 

497I [plugin](/docs/it/plugins) possono raggruppare server MCP che forniscono strumenti e integrazioni quando abilitate il plugin. I server MCP forniti da plugin funzionano in modo identico ai server configurati dall'utente.497[I plugin](/docs/it/plugins/overview) possono raggruppare server MCP che forniscono strumenti e integrazioni quando abilitate il plugin. I server MCP del plugin funzionano in modo identico ai server configurati dall'utente.

498 498 

499**Come funzionano i server MCP forniti da plugin**:499**Come funzionano i server MCP del plugin**:

500 500 

501* I plugin definiscono i server MCP in `.mcp.json` alla radice del plugin o inline in `plugin.json`501* I plugin definiscono i server MCP in `.mcp.json` alla radice del plugin o inline in `plugin.json`

502* Quando abilitate un plugin, Claude Code avvia automaticamente i suoi server MCP502* Quando abilitate un plugin, Claude Code avvia automaticamente i suoi server MCP

503* Claude Code offre gli strumenti MCP del plugin insieme agli strumenti MCP configurati manualmente503* Claude Code offre gli strumenti MCP del plugin insieme agli strumenti MCP configurati manualmente

504* Aggiungete e rimuovete i server di plugin installando o disinstallando il plugin, non con i comandi `/mcp`. Potete comunque [attivare/disattivare un server di plugin installato](#disable-a-server-without-removing-it) in `/mcp`, che impedisce a Claude Code di connettersi ad esso senza rimuovere il plugin504* Aggiungete e rimuovete i server del plugin installando o disinstallando il plugin, non con i comandi `/mcp`. Potete comunque [attivare/disattivare un server del plugin installato](#disable-a-server-without-removing-it) in `/mcp`, che impedisce a Claude Code di connettersi ad esso senza rimuovere il plugin

505 505 

506**Esempio di configurazione MCP del plugin**:506**Esempio di configurazione MCP del plugin**:

507 507 


537 537 

538**Funzionalità MCP del plugin**:538**Funzionalità MCP del plugin**:

539 539 

540* **Ciclo di vita automatico**: i server si connettono e si disconnettono in questi punti:540* **Ciclo di vita automatico**: i server si connettono e disconnettono in questi punti:

541 * All'avvio della sessione, Claude Code connette automaticamente i server per i plugin abilitati. In `/mcp`, un server di plugin remoto (HTTP o SSE) che avete usato prima può mostrare lo stato [`cached`](#server-status-detail) invece; Claude Code lo connette quando Claude chiama per la prima volta uno dei suoi strumenti541 * All'avvio della sessione, Claude Code connette automaticamente i server per i plugin abilitati. In `/mcp`, un server plugin remoto (HTTP o SSE) che avete usato prima può mostrare lo stato [`cached`](#server-status-detail) invece; Claude Code lo connette quando Claude chiama per la prima volta uno dei suoi strumenti

542 * Se abilitate o disabilitate un plugin durante una sessione, Claude Code connette o disconnette i suoi server MCP quando il cambiamento si applica. [Applicare i cambiamenti dei plugin senza riavviare](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) descrive quando è. In una sessione senza un terminale interattivo, `/reload-plugins` non connette o disconnette i server MCP del plugin; quelle modifiche hanno effetto nella vostra prossima sessione542 * Se abilitate o disabilitate un plugin durante una sessione, Claude Code connette o disconnette i suoi server MCP quando il cambiamento si applica. [Applicare i cambiamenti del plugin senza riavviare](/docs/it/plugins/cli-reference#reload-plugins) descrive quando è. In una sessione senza un terminale interattivo, `/reload-plugins` non connette o disconnette i server MCP del plugin; quei cambiamenti hanno effetto nella vostra prossima sessione

543 * Quando ricaricate, Claude Code mantiene le connessioni live dei server di plugin la cui configurazione è invariata, e fa lo stesso quando [sostituite l'elenco dei server MCP della sessione](/docs/it/agent-sdk/typescript#mcpsetserversresult) dall'Agent SDK senza nominarli543 * Quando ricaricate, Claude Code mantiene le connessioni live dei server del plugin la cui configurazione è invariata, e fa lo stesso quando [sostituite l'elenco dei server MCP della sessione](/docs/it/agent-sdk/typescript#mcpsetserversresult) dall'Agent SDK senza nominarli

544 * Quando [spostate la sessione con `/cd`](/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successivo, Claude Code connette i server dei plugin che le impostazioni della nuova directory abilitano e disconnette i server dei plugin che non sono più abilitati, quindi non dovete eseguire `/reload-plugins` dopo lo spostamento544 * Quando [spostate la sessione con `/cd`](/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successivo, Claude Code connette i server dei plugin che le impostazioni della nuova directory abilitano e disconnette i server dei plugin che non sono più abilitati, quindi non dovete eseguire `/reload-plugins` dopo lo spostamento

545 * Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), una chiamata MCP a un server di plugin che non è ancora connesso, come subito dopo il risveglio di una sessione inattiva, avvia il server su richiesta e attende che si connetta545 * Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), una chiamata MCP a un server del plugin che non è ancora connesso, come subito dopo il risveglio di una sessione inattiva, avvia il server su richiesta e attende che si connetta

546* **Segnaposti di percorso**: `${CLAUDE_PLUGIN_ROOT}` si risolve nella directory di installazione del plugin, `${CLAUDE_PLUGIN_DATA}` nella sua directory di [stato persistente](/docs/it/plugins-reference#persistent-data-directory), e `${CLAUDE_PROJECT_DIR}` nella radice del progetto stabile. La sostituzione si applica a:546* **Segnaposti di percorso**: `${CLAUDE_PLUGIN_ROOT}` si risolve nella directory di installazione del plugin, `${CLAUDE_PLUGIN_DATA}` nella sua directory di [stato persistente](/docs/it/plugins/components#path-variables-and-persistent-data), e `${CLAUDE_PROJECT_DIR}` nella radice del progetto stabile. La sostituzione si applica a:

547 * server `stdio`: `command`, `args`, `env`547 * server `stdio`: `command`, `args`, `env`

548 * server `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`. Prima della v2.1.195, `headersHelper` passava il segnaposto come una stringa letterale548 * server `http`, `sse`, e `ws`: `url`, `headers`, e `headersHelper`. Prima della v2.1.195, `headersHelper` passava il segnaposto come stringa letterale

549* **Accesso all'ambiente utente**: accesso alle stesse variabili di ambiente dei server configurati manualmente549* **Accesso all'ambiente utente**: accesso alle stesse variabili di ambiente dei server configurati manualmente

550* **Tipi di trasporto multipli**: supporto per trasporti stdio, SSE, HTTP, e WebSocket, anche se il supporto del trasporto può variare per server550* **Tipi di trasporto multipli**: supporto per trasporti stdio, SSE, HTTP, e WebSocket, anche se il supporto del trasporto può variare per server

551 551 

552I server di plugin appaiono in `/mcp` con indicatori che mostrano che provengono da plugin.552I server del plugin appaiono in `/mcp` con indicatori che mostrano che provengono dai plugin.

553 553 

554**Nomi degli strumenti MCP del plugin**:554**Nomi degli strumenti MCP del plugin**:

555 555 

556Gli strumenti da un server MCP raggruppato da un plugin includono sia il nome del plugin che la chiave del server nel loro nome richiamabile. La forma completa è `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, dove qualsiasi carattere al di fuori di `A-Z`, `a-z`, `0-9`, `_`, e `-` viene sostituito con `_`. Per il server `database-tools` raggruppato in un plugin denominato `my-plugin`, uno strumento `query` è richiamabile come:556Gli strumenti da un server MCP raggruppato nel plugin includono sia il nome del plugin che la chiave del server nel loro nome richiamabile. La forma completa è `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, dove qualsiasi carattere al di fuori di `A-Z`, `a-z`, `0-9`, `_`, e `-` viene sostituito con `_`. Per il server `database-tools` raggruppato in un plugin denominato `my-plugin`, uno strumento `query` è richiamabile come:

557 557 

558```558```

559mcp__plugin_my-plugin_database-tools__query559mcp__plugin_my-plugin_database-tools__query

560```560```

561 561 

562Utilizzate questo nome completo quando fate riferimento allo strumento nelle [regole di autorizzazione](/docs/it/permissions), nell'elenco `allowed-tools` di una skill, nel [campo `tools` di un subagente](/docs/it/sub-agents#available-tools), o in un [matcher di hook](/docs/it/hooks#match-mcp-tools). Un matcher di hook scritto contro la chiave del server nudo, come `mcp__database-tools__.*`, non si attiva mai per un server raggruppato da un plugin.562Utilizzate questo nome completo quando fate riferimento allo strumento nelle [regole di autorizzazione](/docs/it/permissions), nell'elenco `allowed-tools` di una skill, nel [campo `tools` di un subagente](/docs/it/sub-agents#available-tools), o in un [matcher di hook](/docs/it/hooks#match-mcp-tools). Un matcher di hook scritto contro la chiave del server nudo, come `mcp__database-tools__.*`, non si attiva mai per un server raggruppato nel plugin.

563 563 

564Il server stesso si registra con il nome con ambito `plugin:<plugin-name>:<server-name>`, come `plugin:my-plugin:database-tools`. Utilizzate quel nome dove è previsto un nome di server configurato, come il [campo `server` di un hook `mcp_tool`](/docs/it/hooks#mcp-tool-hook-fields).564Il server stesso si registra con il nome con ambito `plugin:<plugin-name>:<server-name>`, come `plugin:my-plugin:database-tools`. Utilizzate quel nome dove è previsto un nome di server configurato, come il [campo `server` di un hook `mcp_tool`](/docs/it/hooks#mcp-tool-hook-fields).

565 565 

566Vedete il [riferimento dei componenti del plugin](/docs/it/plugins-reference#mcp-servers) per i dettagli sul raggruppamento dei server MCP con i plugin.566Vedete il [riferimento dei componenti del plugin](/docs/it/plugins/components#mcp-servers) per i dettagli sul raggruppamento dei server MCP con i plugin.

567 567 

568<h2 id="mcp-installation-scopes">568<h2 id="mcp-installation-scopes">

569 Ambiti di installazione MCP569 Ambiti di installazione MCP


6661. Ambito locale6661. Ambito locale

6672. Ambito del progetto6672. Ambito del progetto

6683. Ambito utente6683. Ambito utente

6694. [Server forniti da plugin](/docs/it/plugins)6694. [Server forniti da plugin](/docs/it/plugins/components#mcp-servers)

6705. [Connettori claude.ai](#use-mcp-servers-from-claude-ai)6705. [Connettori claude.ai](#use-mcp-servers-from-claude-ai)

671 671 

672I tre ambiti corrispondono ai duplicati per nome. I plugin e i connettori corrispondono per endpoint, quindi uno che punta allo stesso URL o comando di un server sopra è trattato come un duplicato.672I tre ambiti corrispondono ai duplicati per nome. I plugin e i connettori corrispondono per endpoint, quindi uno che punta allo stesso URL o comando di un server sopra è trattato come un duplicato.


876 Autenticazione dalla riga di comando876 Autenticazione dalla riga di comando

877</h3>877</h3>

878 878 

879Da v2.1.186, `claude mcp login <name>` esegue il flusso OAuth di un server configurato direttamente dalla tua shell, quindi non è necessario aprire il pannello `/mcp` all'interno di una sessione.879Il comando `claude mcp login <name>` esegue il flusso OAuth di un server configurato direttamente dalla tua shell, quindi non è necessario aprire il pannello `/mcp` all'interno di una sessione.

880 880 

881```bash theme={null}881```bash theme={null}

882claude mcp login sentry882claude mcp login sentry


884 884 

885Per cancellare le credenziali archiviate in seguito, esegui `claude mcp logout <name>`.885Per cancellare le credenziali archiviate in seguito, esegui `claude mcp logout <name>`.

886 886 

887A partire da v2.1.191, il comando rileva quando nessun browser locale è disponibile, ad esempio durante una sessione SSH o su Linux senza un server di visualizzazione, e stampa l'URL di autorizzazione invece di provare ad aprire un browser. Apri l'URL sulla tua macchina locale, quindi incolla l'URL di reindirizzamento completo dalla barra degli indirizzi del tuo browser al prompt. Il comando ha bisogno di un terminale interattivo per il passaggio di incollamento, quindi connettiti con `ssh -t`. Passa `--no-browser` per forzare il prompt dell'URL anche quando viene rilevato un browser locale.887`claude mcp login` rileva quando nessun browser locale è disponibile, ad esempio durante una sessione SSH o su Linux senza un server di visualizzazione, e stampa l'URL di autorizzazione invece di provare ad aprire un browser. Apri l'URL sulla tua macchina locale, quindi incolla l'URL di reindirizzamento completo dalla barra degli indirizzi del tuo browser al prompt. Il comando ha bisogno di un terminale interattivo per il passaggio di incollamento, quindi connettiti con `ssh -t`. Passa `--no-browser` per forzare il prompt dell'URL anche quando viene rilevato un browser locale.

888 888 

889```bash theme={null}889```bash theme={null}

890claude mcp login sentry --no-browser890claude mcp login sentry --no-browser


1085Claude Code imposta queste variabili di ambiente quando esegue l'helper:1085Claude Code imposta queste variabili di ambiente quando esegue l'helper:

1086 1086 

1087| Variabile | Valore |1087| Variabile | Valore |

1088| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------- |1088| :---------------------------- | :----------------------------------------------------------------------------------------------------------------------- |

1089| `CLAUDE_CODE_MCP_SERVER_NAME` | il nome del server MCP |1089| `CLAUDE_CODE_MCP_SERVER_NAME` | il nome del server MCP |

1090| `CLAUDE_CODE_MCP_SERVER_URL` | l'URL del server MCP |1090| `CLAUDE_CODE_MCP_SERVER_URL` | l'URL del server MCP |

1091| `CLAUDE_PLUGIN_ROOT` | la directory radice del plugin. Impostato solo quando un [plugin](/docs/it/plugins-reference#mcp-servers) fornisce il server |1091| `CLAUDE_PLUGIN_ROOT` | la directory radice del plugin. Impostato solo quando un [plugin](/docs/it/plugins/components#mcp-servers) fornisce il server |

1092 1092 

1093Utilizza questi per scrivere un singolo script helper che serve più server MCP.1093Utilizza questi per scrivere un singolo script helper che serve più server MCP.

1094 1094 

1095Un `headersHelper` fornito da un plugin non può fare riferimento ai valori [`${user_config.*}`](/docs/it/plugins-reference#user-configuration) del plugin, perché il comando viene eseguito attraverso una shell. Claude Code segnala il server come non configurato correttamente con un [errore](/docs/it/errors#plugin-command-references-user-config) e non sostituisce il valore. Metti `${user_config.KEY}` nel campo `headers` del server, che non viene analizzato dalla shell, oppure fai in modo che lo script helper legga il valore da un file di configurazione. Prima della v2.1.207, `headersHelper` sostituiva i valori `${user_config.*}`.1095Un `headersHelper` fornito da un plugin non può fare riferimento ai valori [`${user_config.*}`](/docs/it/plugins/manifest-reference#user-configuration) del plugin, perché il comando viene eseguito attraverso una shell. Claude Code segnala il server come non configurato correttamente con un [errore](/docs/it/errors#plugin-command-references-user-config) e non sostituisce il valore. Metti `${user_config.KEY}` nel campo `headers` del server, che non viene analizzato dalla shell, oppure fai in modo che lo script helper legga il valore da un file di configurazione. Prima della v2.1.207, `headersHelper` sostituiva i valori `${user_config.*}`.

1096 1096 

1097<h4 id="where-the-helper-runs">1097<h4 id="where-the-helper-runs">

1098 Dove l'helper viene eseguito1098 Dove l'helper viene eseguito


1102 1102 

1103| Dove hai configurato il server | Directory di lavoro |1103| Dove hai configurato il server | Directory di lavoro |

1104| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------- |1104| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------- |

1105| Un [plugin](/docs/it/plugins-reference#mcp-servers) | La directory radice del plugin. Richiede Claude Code v2.1.195 o successiva |1105| Un [plugin](/docs/it/plugins/components#mcp-servers) | La directory radice del plugin. Richiede Claude Code v2.1.195 o successiva |

1106| Un `.mcp.json` di progetto o un server di [ambito locale](#local-scope) | La directory del progetto in cui il server è dichiarato |1106| Un `.mcp.json` di progetto o un server di [ambito locale](#local-scope) | La directory del progetto in cui il server è dichiarato |

1107| Un file agent nel tuo progetto, un server dall'opzione `mcpServers` dell'SDK o dal metodo `setMcpServers()`, o [`--mcp-config`](/docs/it/cli-reference) | La [directory di lavoro primaria](/docs/it/permissions#working-directories) della sessione |1107| Un file agent nel tuo progetto, un server dall'opzione `mcpServers` dell'SDK o dal metodo `setMcpServers()`, o [`--mcp-config`](/docs/it/cli-reference) | La [directory di lavoro primaria](/docs/it/permissions#working-directories) della sessione |

1108| [Ambito utente](#user-scope), [MCP gestito](/docs/it/managed-mcp), un [connettore claude.ai](#use-mcp-servers-from-claude-ai), o un file agent da fuori dal tuo progetto, incluso uno da una directory `--add-dir` | La tua directory di configurazione, `~/.claude` a meno che tu non abbia impostato [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars) |1108| [Ambito utente](#user-scope), [MCP gestito](/docs/it/managed-mcp), un [connettore claude.ai](#use-mcp-servers-from-claude-ai), o un file agent da fuori dal tuo progetto, incluso uno da una directory `--add-dir` | La tua directory di configurazione, `~/.claude` a meno che tu non abbia impostato [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars) |


1235 </Step>1235 </Step>

1236</Steps>1236</Steps>

1237 1237 

1238Claude Code contrassegna un connettore come `managed` in `/mcp` e nel gestore [`/plugin`](/docs/it/plugins) quando la tua organizzazione gestisce la sua autenticazione in claude.ai. Lo stato managed non cambia il modo in cui Claude Code si connette al connettore o applica i [controlli degli strumenti](#organization-controls-on-connector-tools) della tua organizzazione.1238Claude Code contrassegna un connettore come `managed` in `/mcp` e nel gestore [`/plugin`](/docs/it/plugins/install) quando la tua organizzazione gestisce la sua autenticazione in claude.ai. Lo stato managed non cambia il modo in cui Claude Code si connette al connettore o applica i [controlli degli strumenti](#organization-controls-on-connector-tools) della tua organizzazione.

1239 1239 

1240I connettori a cui non hai mai effettuato l'accesso sono compressi dietro una riga `Show unused connectors` alla fine della sezione claude.ai, in modo che un elenco fornito dall'organizzazione non riempia il pannello. Seleziona la riga per espanderli. Un connettore a cui hai effettuato l'accesso in precedenza rimane visibile anche quando attualmente necessita di una nuova autenticazione.1240I connettori a cui non hai mai effettuato l'accesso sono compressi dietro una riga `Show unused connectors` alla fine della sezione claude.ai, in modo che un elenco fornito dall'organizzazione non riempia il pannello. Seleziona la riga per espanderli. Un connettore a cui hai effettuato l'accesso in precedenza rimane visibile anche quando attualmente necessita di una nuova autenticazione.

1241 1241 

Details

64}64}

65```65```

66 66 

67Claude Code ignora le [variabili dell'esportatore OpenTelemetry](/docs/it/settings-reference#variables-claude-code-ignores-in-env) nel `.claude/settings.json` e `.claude/settings.local.json` di un repository, quindi un repository non può usarle per attivare la telemetria, scegliere dove va, o acquisire contenuti. Impostale nelle impostazioni gestite, oppure fai in modo che ogni sviluppatore le imposti nella propria shell o in `~/.claude/settings.json`. Un repository può comunque disattivare un segnale impostando il suo selettore di esportatore, come `OTEL_LOGS_EXPORTER`, su `none`, a meno che le impostazioni gestite, un file `--settings`, o l'ambiente da cui avvii Claude Code imposti quella variabile.

68 

67Claude Code non passa le variabili di ambiente `OTEL_*` ai sottoprocessi che genera, incluso lo strumento Bash, gli hooks, i server MCP e i language server. Un'applicazione strumentata con OpenTelemetry che esegui tramite lo strumento Bash non eredita l'endpoint dell'esportatore di Claude Code o le intestazioni, quindi imposta quelle variabili direttamente nel comando se quell'applicazione ha bisogno di esportare la propria telemetria.69Claude Code non passa le variabili di ambiente `OTEL_*` ai sottoprocessi che genera, incluso lo strumento Bash, gli hooks, i server MCP e i language server. Un'applicazione strumentata con OpenTelemetry che esegui tramite lo strumento Bash non eredita l'endpoint dell'esportatore di Claude Code o le intestazioni, quindi imposta quelle variabili direttamente nel comando se quell'applicazione ha bisogno di esportare la propria telemetria.

68 70 

69<h3 id="how-managed-settings-lock-the-otlp-destination">71<h3 id="how-managed-settings-lock-the-otlp-destination">


101 Variabili di configurazione comuni103 Variabili di configurazione comuni

102</h3>104</h3>

103 105 

104Queste variabili configurano esportatori, endpoint e comportamento di esportazione per tutti i deployment. Se imposti una variabile di endpoint o protocollo per segnale specifico, come `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code la utilizza al posto della variabile generica per quel segnale. Se imposti una variabile di intestazioni per segnale specifico, come `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code la unisce con la generica `OTEL_EXPORTER_OTLP_HEADERS` per quel segnale. Su macchine con impostazioni gestite, vedi [Come le impostazioni gestite bloccano la destinazione OTLP](#how-managed-settings-lock-the-otlp-destination) per sapere cosa Claude Code rimuove.106Queste variabili configurano esportatori, endpoint e comportamento di esportazione per tutti i deployment. Se imposti una variabile di endpoint o protocollo per segnale specifico, come `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code la utilizza al posto della variabile generica per quel segnale. Se imposti una variabile di intestazioni per segnale specifico, come `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code la unisce con la generica `OTEL_EXPORTER_OTLP_HEADERS` per quel segnale.

107 

108Su macchine con impostazioni gestite, vedi [Come le impostazioni gestite bloccano la destinazione OTLP](#how-managed-settings-lock-the-otlp-destination) per sapere cosa Claude Code rimuove.

105 109 

106| Variabile di ambiente | Descrizione | Valori di esempio |110| Variabile di ambiente | Descrizione | Valori di esempio |

107| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |111| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


651* `query_source`: Categoria del sottosistema che ha emesso la richiesta. Uno di `"main"`, `"subagent"`, o `"auxiliary"`655* `query_source`: Categoria del sottosistema che ha emesso la richiesta. Uno di `"main"`, `"subagent"`, o `"auxiliary"`

652* `speed`: `"fast"` quando la richiesta ha utilizzato la modalità veloce. Assente altrimenti656* `speed`: `"fast"` quando la richiesta ha utilizzato la modalità veloce. Assente altrimenti

653* `effort`: [Livello di sforzo](/docs/it/model-config#adjust-effort-level) applicato alla richiesta: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Assente quando Claude Code non invia alcun livello di sforzo, ad esempio su un modello che non supporta lo sforzo.657* `effort`: [Livello di sforzo](/docs/it/model-config#adjust-effort-level) applicato alla richiesta: `"low"`, `"medium"`, `"high"`, `"xhigh"`, o `"max"`. Assente quando Claude Code non invia alcun livello di sforzo, ad esempio su un modello che non supporta lo sforzo.

654* `agent.name`: Tipo di subagent che ha emesso la richiesta. I nomi degli agenti incorporati e gli agenti dai plugin del marketplace ufficiale vengono visualizzati letteralmente. Gli altri nomi di agenti definiti dall'utente vengono sostituiti con `"custom"`. Assente quando la richiesta non è stata emessa da un tipo di subagent denominato.658* `agent.name`: Tipo di subagent che ha emesso la richiesta. I nomi degli agenti incorporati e gli agenti dai plugin del marketplace ufficiale vengono visualizzati letteralmente. Gli altri nomi di agenti definiti dall'utente vengono sostituiti con `"custom"` a meno che `OTEL_LOG_TOOL_DETAILS=1` non sia impostato. Assente quando la richiesta non è stata emessa da un tipo di subagent denominato.

655* `skill.name`: Skill attiva per la richiesta, impostata dallo strumento Skill, da un comando `/`, o ereditata da un subagent generato. I nomi delle skill incorporati, in bundle, definiti dall'utente e dai plugin del marketplace ufficiale vengono visualizzati letteralmente. I nomi delle skill dei plugin di terze parti vengono sostituiti con `"third-party"`. Assente quando nessuna skill è attiva.659* `skill.name`: Skill attiva per la richiesta, impostata dallo strumento Skill, da un comando `/`, o ereditata da un subagent generato. I nomi delle skill incorporati, in bundle, definiti dall'utente e dai plugin del marketplace ufficiale vengono visualizzati letteralmente. I nomi delle skill dei plugin di terze parti vengono sostituiti con `"third-party"` a meno che `OTEL_LOG_TOOL_DETAILS=1` non sia impostato. Assente quando nessuna skill è attiva.

656* `plugin.name`: Plugin proprietario quando la skill attiva o il subagent è fornito da un plugin. I nomi dei plugin del marketplace ufficiale vengono visualizzati letteralmente. I nomi dei plugin di terze parti vengono sostituiti con `"third-party"`. Assente quando né la skill né il subagent hanno un plugin proprietario.660* `plugin.name`: Plugin proprietario quando la skill attiva o il subagent è fornito da un plugin. I nomi dei plugin del marketplace ufficiale vengono visualizzati letteralmente. I nomi dei plugin di terze parti vengono sostituiti con `"third-party"` a meno che `OTEL_LOG_TOOL_DETAILS=1` non sia impostato. Assente quando né la skill né il subagent hanno un plugin proprietario.

657* `marketplace.name`: Marketplace da cui è stato installato il plugin proprietario. Emesso solo per i plugin del marketplace ufficiale. Assente altrimenti.661* `marketplace.name`: Marketplace da cui è stato installato il plugin proprietario. Emesso solo per i plugin del marketplace ufficiale. Assente altrimenti.

658* `mcp_server.name`: Server MCP il cui risultato dello strumento questa richiesta ha consumato. I nomi dei server incorporati, proxy di claude.ai e del registro ufficiale vengono visualizzati letteralmente. I nomi dei server configurati dall'utente vengono sostituiti con `"custom"`. Assente quando la richiesta non ha consumato alcun risultato dello strumento MCP. Prima della v2.1.222, Claude Code impostava questo attributo su ogni richiesta dopo una chiamata dello strumento MCP, non solo su richieste che consumavano un risultato dello strumento, quindi i dashboard che lo aggregano mostrano un calo dopo l'aggiornamento.662* `mcp_server.name`: Server MCP il cui risultato dello strumento questa richiesta ha consumato. I nomi dei server incorporati, proxy di claude.ai e del registro ufficiale vengono visualizzati letteralmente. I nomi dei server configurati dall'utente vengono sostituiti con `"custom"` a meno che `OTEL_LOG_TOOL_DETAILS=1` non sia impostato. Assente quando la richiesta non ha consumato alcun risultato dello strumento MCP. Prima della v2.1.222, Claude Code impostava questo attributo su ogni richiesta dopo una chiamata dello strumento MCP, non solo su richieste che consumavano un risultato dello strumento, quindi i dashboard che lo aggregano mostrano un calo dopo l'aggiornamento.

659* `mcp_tool.name`: Strumento MCP il cui risultato questa richiesta ha consumato, con lo stesso comportamento di redazione e versione di `mcp_server.name`. Assente quando la richiesta non ha consumato alcun risultato dello strumento MCP.663* `mcp_tool.name`: Strumento MCP il cui risultato questa richiesta ha consumato, con lo stesso comportamento di redazione e versione di `mcp_server.name`. Assente quando la richiesta non ha consumato alcun risultato dello strumento MCP.

660 664 

661<h4 id="token-counter">665<h4 id="token-counter">


1086* `marketplace.name`: marketplace da cui è stato installato il plugin, quando noto. Redatto a `"third-party"` sotto la stessa condizione di `plugin.name`1090* `marketplace.name`: marketplace da cui è stato installato il plugin, quando noto. Redatto a `"third-party"` sotto la stessa condizione di `plugin.name`

1087* `plugin.version`: versione dal manifesto del plugin. Incluso solo quando il nome non è redatto e il manifesto dichiara una versione1091* `plugin.version`: versione dal manifesto del plugin. Incluso solo quando il nome non è redatto e il manifesto dichiara una versione

1088* `plugin.scope`: categoria di provenienza per il plugin: `"official"`, `"community"`, `"org"`, `"user-local"`, o `"default-bundle"`1092* `plugin.scope`: categoria di provenienza per il plugin: `"official"`, `"community"`, `"org"`, `"user-local"`, o `"default-bundle"`

1089* `enabled_via`: come il plugin è venuto ad essere abilitato: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, o `"user-install"`. Il valore `"admin-install"` significa che il plugin è impostato come obbligatorio o auto-installazione per la tua organizzazione in [**Impostazioni organizzazione > Plugin**](https://claude.ai/admin-settings/plugins). Prima della v2.1.246, Claude Code segnalava questi plugin come `"user-install"` o `"seed-mount"`1093* `enabled_via`: come il plugin è venuto ad essere abilitato: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, o `"user-install"`. Il valore `"admin-install"` significa che il plugin è impostato come obbligatorio o auto-installazione per la tua organizzazione in [**Impostazioni organizzazione > Plugin e skill**](https://claude.ai/admin-settings/skills?tab=inventory). Prima della v2.1.246, Claude Code segnalava questi plugin come `"user-install"` o `"seed-mount"`

1090* `plugin_id_hash`: hash deterministico del nome del plugin e del marketplace, inviato solo al tuo esportatore configurato. Ti consente di contare i plugin di terze parti distinti caricati nella tua flotta senza registrare i loro nomi. Per i [plugin sincronizzati da claude.ai](/docs/it/plugins-reference#synced-plugins), Claude Code esegue l'hash del nome del plugin con il nome del marketplace che claude.ai riporta per il plugin, o con `synced` altrimenti. Prima della v2.1.246, Claude Code non utilizzava il nome del marketplace che claude.ai riporta nell'hash1094* `plugin_id_hash`: hash deterministico del nome del plugin e del marketplace, inviato solo al tuo esportatore configurato. Ti consente di contare i plugin di terze parti distinti caricati nella tua flotta senza registrare i loro nomi. Per i [plugin sincronizzati da claude.ai](/docs/it/plugins/loading#synced-plugins), Claude Code esegue l'hash del nome del plugin con il nome del marketplace che claude.ai riporta per il plugin, o con `synced` altrimenti. Prima della v2.1.246, Claude Code non utilizzava il nome del marketplace che claude.ai riporta nell'hash

1091* `has_hooks`: se il plugin contribuisce hook1095* `has_hooks`: se il plugin contribuisce hook

1092* `has_mcp`: se il plugin contribuisce server MCP1096* `has_mcp`: se il plugin contribuisce server MCP

1093* `host_owned_mcp`: `true` quando l'host SDK gestisce le connessioni MCP di questo plugin e Claude Code ha saltato la lettura della configurazione del server MCP del plugin, `false` altrimenti. Richiede Claude Code v2.1.172 o successivo1097* `host_owned_mcp`: `true` quando l'host SDK gestisce le connessioni MCP di questo plugin e Claude Code ha saltato la lettura della configurazione del server MCP del plugin, `false` altrimenti. Richiede Claude Code v2.1.172 o successivo

Details

245| `registry.npmjs.org` | Installazioni di plugin (recupero di pacchetti plugin da fonte npm e installazione delle dipendenze dei pacchetti Node.js dei plugin), server MCP lanciati con `npx` e il registro dei pacchetti per le installazioni npm e bun di Claude Code stesso |245| `registry.npmjs.org` | Installazioni di plugin (recupero di pacchetti plugin da fonte npm e installazione delle dipendenze dei pacchetti Node.js dei plugin), server MCP lanciati con `npx` e il registro dei pacchetti per le installazioni npm e bun di Claude Code stesso |

246| `bridge.claudeusercontent.com` | Bridge WebSocket dell'estensione [Claude in Chrome](/docs/it/chrome) |246| `bridge.claudeusercontent.com` | Bridge WebSocket dell'estensione [Claude in Chrome](/docs/it/chrome) |

247| `*.frame.claudeusercontent.com` | Letture di contenuto [Artifact](/docs/it/artifacts). La CLI recupera i file di un artifact da questo host quando Claude ne apre uno, e solo quando lo strumento Artifact è [disponibile](/docs/it/artifacts#availability) per il vostro account. Per disattivare lo strumento e eliminare questo requisito, impostate [`"enableArtifact": false`](/docs/it/settings-reference#enableartifact) o [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/it/env-vars); Claude Code rispetta anche l'impostazione deprecata [`disableArtifact`](/docs/it/settings-reference#disableartifact). Consultate [Disabilitare gli artifact](/docs/it/artifacts#disable-artifacts) per come queste impostazioni interagiscono |247| `*.frame.claudeusercontent.com` | Letture di contenuto [Artifact](/docs/it/artifacts). La CLI recupera i file di un artifact da questo host quando Claude ne apre uno, e solo quando lo strumento Artifact è [disponibile](/docs/it/artifacts#availability) per il vostro account. Per disattivare lo strumento e eliminare questo requisito, impostate [`"enableArtifact": false`](/docs/it/settings-reference#enableartifact) o [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/it/env-vars); Claude Code rispetta anche l'impostazione deprecata [`disableArtifact`](/docs/it/settings-reference#disableartifact). Consultate [Disabilitare gli artifact](/docs/it/artifacts#disable-artifacts) per come queste impostazioni interagiscono |

248| `github.com` | Clonazione di [marketplace di plugin](/docs/it/plugin-marketplaces) e plugin ospitati su GitHub, incluso il marketplace ufficiale Anthropic, su HTTPS o SSH. Per clonare sorgenti GitHub `owner/repo` solo su HTTPS, impostate [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/it/env-vars) |248| `github.com` | Clonazione di [marketplace di plugin](/docs/it/plugins/overview) e plugin ospitati su GitHub, incluso il marketplace ufficiale Anthropic, su HTTPS o SSH. Per clonare sorgenti GitHub `owner/repo` solo su HTTPS, impostate [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/it/env-vars) |

249| `raw.githubusercontent.com` | Feed del changelog per [`/release-notes`](/docs/it/commands). Nelle sessioni interattive, Claude Code lo recupera anche in background all'avvio quando il changelog memorizzato nella cache non copre ancora la versione in esecuzione, ad esempio al primo avvio dopo un aggiornamento; le sessioni non interattive e cloud non lo recuperano mai |249| `raw.githubusercontent.com` | Feed del changelog per [`/release-notes`](/docs/it/commands). Nelle sessioni interattive, Claude Code lo recupera anche in background all'avvio quando il changelog memorizzato nella cache non copre ancora la versione in esecuzione, ad esempio al primo avvio dopo un aggiornamento; le sessioni non interattive e cloud non lo recuperano mai |

250| `*-review.googlesource.com` | Ricerca di modifiche Gerrit su checkout `googlesource.com`. Quando una sessione di una scheda Claude Desktop Code si avvia o riprende su un checkout [attendibile](/docs/it/permissions#project-allow-rules-and-workspace-trust) il cui `origin` è un host `googlesource.com`, Claude Code chiede anonimamente al server `-review` di quell'host la modifica aperta corrispondente al `Change-Id` di HEAD, una volta per avvio o ripresa. Altri tipi di sessione saltano la ricerca e nessun altro host Gerrit viene contattato. Facoltativo: disabilitare con [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/it/env-vars) |250| `*-review.googlesource.com` | Ricerca di modifiche Gerrit su checkout `googlesource.com`. Quando una sessione di una scheda Claude Desktop Code si avvia o riprende su un checkout [attendibile](/docs/it/permissions#project-allow-rules-and-workspace-trust) il cui `origin` è un host `googlesource.com`, Claude Code chiede anonimamente al server `-review` di quell'host la modifica aperta corrispondente al `Change-Id` di HEAD, una volta per avvio o ripresa. Altri tipi di sessione saltano la ricerca e nessun altro host Gerrit viene contattato. Facoltativo: disabilitare con [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/it/env-vars) |

251| `http-intake.logs.us5.datadoghq.com` | Eventi di telemetria operazionale, inviati solo quando la CLI utilizza direttamente l'API Anthropic, mai per Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Facoltativo: disabilitare con [`DISABLE_TELEMETRY`](/docs/it/data-usage#telemetry-services) o `DO_NOT_TRACK` |251| `http-intake.logs.us5.datadoghq.com` | Eventi di telemetria operazionale, inviati solo quando la CLI utilizza direttamente l'API Anthropic, mai per Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Facoltativo: disabilitare con [`DISABLE_TELEMETRY`](/docs/it/data-usage#telemetry-services) o `DO_NOT_TRACK` |

Details

171 </Step>171 </Step>

172</Steps>172</Steps>

173 173 

174I [Plugins](/docs/it/plugins-reference) possono anche fornire output styles in una directory `output-styles/`.174I [Plugins](/docs/it/plugins/manifest-reference) possono anche fornire output styles in una directory `output-styles/`.

175 175 

176<h3 id="frontmatter">176<h3 id="frontmatter">

177 Riferimento frontmatter177 Riferimento frontmatter


228 228 

229* [Settings](/docs/it/settings): dove risiede il campo `outputStyle` e come funziona la precedenza delle impostazioni229* [Settings](/docs/it/settings): dove risiede il campo `outputStyle` e come funziona la precedenza delle impostazioni

230* [Permission modes](/docs/it/permission-modes): come lo stile Proactive si confronta con la modalità auto230* [Permission modes](/docs/it/permission-modes): come lo stile Proactive si confronta con la modalità auto

231* [Plugins](/docs/it/plugins): pacchetto e distribuzione degli output styles insieme a skills, hooks e agents231* [Plugins](/docs/it/plugins/overview): pacchetto e distribuzione degli output styles insieme a skills, hooks e agents

232* [Debug your configuration](/docs/it/debug-your-config): diagnosticare perché uno output style non ha effetto232* [Debug your configuration](/docs/it/debug-your-config): diagnosticare perché uno output style non ha effetto

permission-modes.md +127 −114

Details

287 Elimina i prompt di autorizzazione con la modalità auto287 Elimina i prompt di autorizzazione con la modalità auto

288</h2>288</h2>

289 289 

290La modalità auto consente a Claude di eseguire senza prompt di autorizzazione di routine. Un modello classificatore separato esamina le azioni prima che vengono eseguite, bloccando qualsiasi cosa che vada oltre la tua richiesta, che prenda di mira un'infrastruttura non riconosciuta, o che sembri guidata da contenuti ostili che Claude ha letto. Le [regole ask](/docs/it/permissions#manage-permissions) esplicite forzano comunque un prompt.290La modalità auto consente a Claude di eseguire senza prompt di autorizzazione di routine. Un modello classificatore separato esamina le azioni prima che vengano eseguite, bloccando qualsiasi cosa che vada oltre la vostra richiesta, che prenda di mira un'infrastruttura non riconosciuta, o che sembri guidata da contenuti ostili che Claude ha letto. Le [regole di richiesta](/docs/it/permissions#manage-permissions) esplicite forzano comunque un prompt.

291 291 

292Sui piani Pro, Max e Team, la modalità auto è la [modalità di autorizzazione iniziale integrata](#which-mode-a-session-starts-in).292Nei piani Pro, Max e Team, la modalità auto è la [modalità di autorizzazione predefinita della sessione](#which-mode-a-session-starts-in).

293 293 

294Il classificatore esamina anche ogni messaggio che Claude invia a un altro agente con [`SendMessage`](/docs/it/tools-reference), sia testo semplice che un messaggio strutturato [team di agenti](/docs/it/agent-teams), prima che Claude Code lo consegni, sia in modalità auto che in [modalità plan mentre il classificatore esamina i comandi](#analyze-before-you-edit-with-plan-mode); la revisione dell'invio richiede Claude Code v2.1.222 o successivo.294Il classificatore esamina anche ogni messaggio che Claude invia a un altro agente con [`SendMessage`](/docs/it/tools-reference), sia testo semplice che un messaggio strutturato di [team di agenti](/docs/it/agent-teams), prima che Claude Code lo consegni, sia in modalità auto che in [modalità piano mentre il classificatore esamina i comandi](#analyze-before-you-edit-with-plan-mode); la revisione dell'invio richiede Claude Code v2.1.222 o successivo.

295 295 

296Il classificatore esamina e approva o blocca anche le rimozioni `rm` e `rmdir` che prendono di mira un [percorso critico](#critical-paths), come `rm -rf /` e `rm -rf ~`, incluso quando la rimozione si trova dentro la sostituzione di comando o di processo.296Il classificatore esamina e approva o blocca anche le rimozioni `rm` e `rmdir` che prendono di mira un [percorso critico](#critical-paths), come `rm -rf /` e `rm -rf ~`, incluso quando la rimozione si trova all'interno della sostituzione di comando o processo.

297 297 

298La modalità auto incoraggia anche Claude a continuare a lavorare senza fermarsi per domande di chiarimento, anche se Claude chiede comunque quando il tuo prompt o un skill lo richiedono esplicitamente. Per un comportamento più autonomo in una modalità che ti richiede comunque, imposta lo [stile di output proattivo](/docs/it/output-styles) invece.298La modalità auto incoraggia anche Claude a continuare a lavorare senza fermarsi per domande di chiarimento, anche se Claude chiede comunque quando la vostra richiesta o un'abilità si basa esplicitamente su di essa. Per un comportamento più autonomo in una modalità che vi chiede comunque, impostate invece lo [stile di output proattivo](/docs/it/output-styles).

299 299 

300<Warning>300<Warning>

301 La modalità auto riduce i prompt di autorizzazione ma non garantisce la sicurezza. Usala per attività in cui ti fidi della direzione generale, non come sostituto della revisione su operazioni sensibili.301 La modalità auto riduce i prompt di autorizzazione ma non garantisce la sicurezza. Utilizzatela per attività in cui fidate della direzione generale, non come sostituto della revisione su operazioni sensibili.

302</Warning>302</Warning>

303 303 

304La modalità auto è disponibile solo quando il tuo account soddisfa tutti questi requisiti:304La modalità auto è disponibile solo quando il vostro account soddisfa tutti questi requisiti:

305 305 

306* **Piano**: Tutti i piani.306* **Piano**: Tutti i piani.

307* **Organizzazione**: su Team e Enterprise, la modalità auto è disponibile per impostazione predefinita. Gli amministratori possono disattivarla per l'organizzazione impostando `permissions.disableAutoMode` su `"disable"` nelle [impostazioni gestite](/docs/it/managed-settings).307* **Organizzazione**: su Team ed Enterprise, la modalità auto è disponibile per impostazione predefinita. Gli amministratori possono disattivarla per l'organizzazione impostando `permissions.disableAutoMode` su `"disable"` nelle [impostazioni gestite](/docs/it/managed-settings).

308* **Modello**: sull'API Anthropic e [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Claude Opus 4.6 o successivo, Sonnet 4.6 o successivo, o un [modello Fable](/docs/it/model-config#work-with-fable). Su Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e sessioni [gateway app Claude](/docs/it/claude-apps-gateway) con accesso, solo Claude Sonnet 5, Opus 4.7 o successivo, e i modelli Fable. I modelli più vecchi, inclusi Sonnet 4.5, Opus 4.5, Haiku e modelli claude-3, non sono supportati su nessun provider.308* **Modello**: sull'API Anthropic e su [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Claude Opus 4.6 o successivo, Sonnet 4.6 o successivo, o un [modello Fable](/docs/it/model-config#work-with-fable). Su Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry e sessioni [gateway di app Claude](/docs/it/claude-apps-gateway) con accesso, solo Claude Sonnet 5, Opus 4.7 o successivo e i modelli Fable. I modelli più vecchi, inclusi Sonnet 4.5, Opus 4.5, Haiku e modelli claude-3, non sono supportati su nessun provider.

309* **Provider**: disponibile per impostazione predefinita sull'API Anthropic, Claude Platform su AWS, Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry e sessioni gateway app Claude con accesso.309* **Provider**: disponibile per impostazione predefinita sull'API Anthropic, Claude Platform su AWS, Amazon Bedrock, Agent Platform di Google Cloud, Microsoft Foundry e sessioni gateway di app Claude con accesso.

310 310 

311Se Claude Code segnala che la modalità auto non è disponibile, controlla prima questi requisiti e se un file di impostazioni imposta [`disableAutoMode`](/docs/it/settings-reference#disableautomode). Anthropic potrebbe anche aver disattivato la modalità auto lato server, o il server potrebbe aver rifiutato la modalità auto per il tuo account. Una sessione che ha ricevuto una di queste risposte mantiene la modalità auto disattivata finché la sessione non termina, quindi avvia una nuova sessione in seguito.311Se Claude Code segnala che la modalità auto non è disponibile, controllate prima questi requisiti e se un file di impostazioni imposta [`disableAutoMode`](/docs/it/settings-reference#disableautomode). Anthropic potrebbe anche aver disattivato la modalità auto lato server, oppure il server potrebbe aver rifiutato la modalità auto per il vostro account. Una sessione che ha ricevuto una di queste risposte mantiene la modalità auto disattivata fino al termine della sessione, quindi avviate una nuova sessione in seguito.

312 312 

313Un messaggio separato che nomina un modello e dice che la modalità auto "non può determinare la sicurezza" di un'azione significa che una richiesta del classificatore ha fallito. Quel fallimento è solitamente transitorio, ma su Amazon Bedrock può ripetersi finché il tuo account non può invocare il modello nominato. Vedi il [riferimento degli errori](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action) per le cause e cosa fare.313Un messaggio separato che nomina un modello e dice che la modalità auto "non può determinare la sicurezza" di un'azione significa che una richiesta del classificatore non è riuscita. Questo errore è solitamente transitorio, ma su Amazon Bedrock può ripetersi fino a quando il vostro account non può invocare il modello denominato. Consultate il [riferimento degli errori](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action) per le cause e cosa fare.

314 314 

315Se imposti `defaultMode: "auto"` nelle [impostazioni](/docs/it/settings-reference#all-settings) e una sessione di terminale inizia in modalità Manual senza errore, l'impostazione è probabilmente in `.claude/settings.json` o `.claude/settings.local.json`. `auto` non ha effetto da questi file. Spostalo in `~/.claude/settings.json`. Per una conversazione che l'estensione VS Code ha avviato, controlla il proprio elenco dell'estensione in [Cambia modalità di autorizzazione](#switch-permission-modes) invece.315Se impostate `defaultMode: "auto"` nelle [impostazioni](/docs/it/settings-reference#all-settings) e una sessione di terminale inizia in modalità Manuale senza errore, l'impostazione è probabilmente in `.claude/settings.json` o `.claude/settings.local.json`. `auto` non ha effetto da questi file. Spostatela in `~/.claude/settings.json`. Per una conversazione avviata dall'estensione VS Code, controllate invece l'elenco proprio dell'estensione in [Cambia modalità di autorizzazione](#switch-permission-modes).

316 316 

317<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">317<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

318 Modalità auto su Bedrock, Agent Platform o Foundry318 Modalità auto su Bedrock, Agent Platform o Foundry

319</h3>319</h3>

320 320 

321Su [Amazon Bedrock](/docs/it/amazon-bedrock), [Google Cloud's Agent Platform](/docs/it/google-vertex-ai), [Microsoft Foundry](/docs/it/microsoft-foundry) e sessioni [gateway app Claude](/docs/it/claude-apps-gateway) con accesso, la modalità auto appare nel ciclo `Shift+Tab` per impostazione predefinita. L'apparizione nel ciclo non cambia la modalità di autorizzazione in cui una sessione inizia: su questi provider, le sessioni di terminale iniziano nel tuo [`defaultMode`](/docs/it/settings-reference#permissions-defaultmode), che è Manual a meno che non lo modifichi, e le conversazioni nell'[estensione VS Code](/docs/it/vs-code) iniziano in Manual a meno che `claudeCode.initialPermissionMode` o una modalità che hai scelto nell'estensione ne imposti una. Solo Claude Sonnet 5, Opus 4.7 o successivo, e i modelli Fable sono supportati su questi provider.321Su [Amazon Bedrock](/docs/it/amazon-bedrock), [Agent Platform di Google Cloud](/docs/it/google-vertex-ai), [Microsoft Foundry](/docs/it/microsoft-foundry) e sessioni [gateway di app Claude](/docs/it/claude-apps-gateway) con accesso, la modalità auto appare nel ciclo `Shift+Tab` per impostazione predefinita. L'apparizione nel ciclo non cambia la modalità di autorizzazione in cui una sessione inizia: su questi provider, le sessioni di terminale iniziano nella vostra [`defaultMode`](/docs/it/settings-reference#permissions-defaultmode), che è Manuale a meno che non la cambiate, e le conversazioni nell'[estensione VS Code](/docs/it/vs-code) iniziano in Manuale a meno che `claudeCode.initialPermissionMode` o una modalità che avete scelto nell'estensione ne imposti una. Solo Claude Sonnet 5, Opus 4.7 o successivo e i modelli Fable sono supportati su questi provider.

322 322 

323Per rendere la modalità auto la modalità di autorizzazione iniziale predefinita, imposta `"permissions": {"defaultMode": "auto"}` nelle impostazioni utente o gestite. Nelle sessioni che l'estensione VS Code avvia, seleziona **Auto** dall'indicatore di modalità invece. [Cambia modalità di autorizzazione](#switch-permission-modes) copre cosa supera quella scelta.323Per rendere la modalità auto la modalità di autorizzazione predefinita all'avvio, impostate `"permissions": {"defaultMode": "auto"}` nelle impostazioni utente o gestite. Nelle sessioni avviate dall'estensione VS Code, selezionate invece **Auto** dall'indicatore di modalità. [Cambia modalità di autorizzazione](#switch-permission-modes) copre cosa ha la precedenza su quella scelta.

324 324 

325Il checkup [`/doctor`](/docs/it/commands#all-commands) propone questa impostazione utente su questi provider allo stesso modo che fa sull'API Anthropic.325Il checkup [`/doctor`](/docs/it/commands#all-commands) propone questa impostazione predefinita delle impostazioni utente su questi provider nello stesso modo in cui lo fa sull'API Anthropic.

326 326 

327Per impedire agli sviluppatori di utilizzare la modalità auto, imposta `disableAutoMode` su `"disable"` nelle [impostazioni gestite](/docs/it/managed-settings). Questo rimuove `auto` dal ciclo `Shift+Tab`, e una sessione avviata con `--permission-mode auto` inizia in Manual invece. Una sessione già in esecuzione in modalità auto la lascia quando l'impostazione raggiunge quella sessione da una [fonte distribuita da admin](/docs/it/managed-settings#which-managed-source-claude-code-uses), e mostra `auto mode disabled by settings`. Prima della v2.1.251, una sessione in esecuzione manteneva la modalità auto finché non terminava.327Per impedire agli sviluppatori di utilizzare la modalità auto, impostate `disableAutoMode` su `"disable"` nelle [impostazioni gestite](/docs/it/managed-settings). Questo rimuove `auto` dal ciclo `Shift+Tab` e una sessione avviata con `--permission-mode auto` inizia in Manuale. Una sessione già in esecuzione in modalità auto la abbandona quando l'impostazione la raggiunge da un'[origine distribuita da amministratore](/docs/it/managed-settings#which-managed-source-claude-code-uses) e mostra `auto mode disabled by settings`. Prima della v2.1.251, una sessione in esecuzione manteneva la modalità auto fino al termine.

328 328 

329Nella v2.1.158 attraverso v2.1.206, la modalità auto era disattivata su questi provider finché non impostavi `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` su questi provider a meno che la variabile non fosse anche impostata. La variabile è ancora accettata per compatibilità e non ha effetto da v2.1.207 in poi.329Nella v2.1.158 fino alla v2.1.206, la modalità auto era disattivata su questi provider fino a quando non impostavate `CLAUDE_CODE_ENABLE_AUTO_MODE=1` e Claude Code ignorava `defaultMode: "auto"` su questi provider a meno che la variabile non fosse anche impostata. La variabile è ancora accettata per compatibilità e non ha effetto dalla v2.1.207 in poi.

330 330 

331<h3 id="server-side-classifier-review">331<h3 id="server-side-classifier-review">

332 Revisione del classificatore lato server332 Revisione del classificatore lato server

333</h3>333</h3>

334 334 

335Su piani Enterprise e su account che utilizzano l'API Claude, su [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry, e ogni volta che punti `ANTHROPIC_BASE_URL` a un [gateway LLM o proxy](/docs/it/llm-gateway), Claude Code in modalità auto chiede al server di esaminare [le azioni che vanno al classificatore](#how-the-classifier-evaluates-actions) come parte delle richieste del modello della sessione. Dove il server le esamina, i suoi verdetti decidono quelle azioni. Dove non lo fa, il più delle volte perché un gateway LLM o proxy interferisce con il traffico, o perché la piattaforma, la regione o le credenziali non hanno ancora controlli lato server, Claude Code ricade alle proprie richieste del classificatore, e una volta che quel fallback si mantiene per il resto della sessione mostra un [avviso sulle spese di richiesta del classificatore](/docs/it/auto-mode-classifier-billing) su account dove quelle richieste vengono fatturate. Per saltare la richiesta al server e utilizzare sempre le proprie richieste del classificatore di Claude Code, imposta [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/it/env-vars). La variabile non viene letta su una connessione diretta all'API Anthropic. Se imposti `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e lasci `CLAUDE_CODE_AUTO_MODE_SERVER` non impostato, Claude Code smette anche di chiedere al server.335In modalità auto, Claude Code può chiedere al server di controllare le azioni che l'[ordine decisionale](#how-the-classifier-evaluates-actions) invia per la revisione, come parte delle richieste del modello della sessione, al posto di inviare le proprie richieste del classificatore. Queste sessioni chiedono:

336 336 

337Chiedere al server per impostazione predefinita richiede Claude Code v2.1.278 o successivo.337* **Una connessione diretta all'API Anthropic**: in una sessione di terminale interattiva, su ogni piano claude.ai e su account che utilizzano l'API Claude, mentre Anthropic lo implementa. Richiede Claude Code v2.1.271 o successivo su piani Pro, Max e Team, e v2.1.278 o successivo su piani Enterprise e account API Claude. Dalla v2.1.282, una sessione che [non recupera i flag di funzionalità](/docs/it/env-vars#features-that-need-feature-flag-fetching), ad esempio perché avete disattivato la telemetria, chiede il server per impostazione predefinita in qualsiasi tipo di sessione.

338* **Un provider cloud, un gateway LLM o un proxy**: su [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Amazon Bedrock, Agent Platform di Google Cloud e Microsoft Foundry, e ogni volta che puntate `ANTHROPIC_BASE_URL` a un [gateway LLM o proxy](/docs/it/llm-gateway), indipendentemente dal vostro piano. Chiedere per impostazione predefinita richiede Claude Code v2.1.278 o successivo.

339* **Una sessione [gateway di app Claude](/docs/it/claude-apps-gateway) con accesso**: richiede Claude Code v2.1.280 o successivo

340 

341Dove il server esamina le azioni, i suoi verdetti le decidono. Due altri risultati sono possibili:

342 

343* **Il server non esamina la sessione**: una risposta si completa senza risultati di revisione, oppure il server risponde che non esamina questa sessione. Le cause più comuni sono un gateway LLM o un proxy che scarta la richiesta di revisione o i risultati, e una piattaforma, una regione o una credenziale che non ha ancora controlli lato server. Claude Code ricade alle proprie richieste del classificatore. Una volta che questo fallback vale per il resto della sessione, mostra un [avviso sugli addebiti delle richieste del classificatore](/docs/it/auto-mode-classifier-billing) su account in cui queste richieste vengono fatturate.

344* **Il server non fornisce un verdetto per un'azione**: Claude Code nega l'azione piuttosto che eseguirla senza revisione. Su qualsiasi connessione, questo accade quando la risposta termina prima che i risultati della revisione arrivino o i risultati arrivano in una forma che Claude Code non può leggere. Un gateway LLM o un proxy che taglia le risposte corte o riscrive i risultati può causare entrambi. Su una connessione diretta all'API Anthropic, accade anche quando il controllo del server non riesce per l'azione, ad esempio per timeout. [Il server non ha restituito un verdetto di sicurezza](/docs/it/errors#the-server-returned-no-safety-verdict) copre il messaggio di negazione, cosa accade quando le negazioni si ripetono e cosa fare.

345 

346Per saltare la richiesta al server e utilizzare sempre le proprie richieste del classificatore di Claude Code, impostate [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/it/env-vars). Su una connessione diretta all'API Anthropic, la variabile richiede Claude Code v2.1.281 o successivo. Impostarla su `1` lì attiva la revisione del server in una sessione che non ce l'ha ancora, come una sessione `-p` o Agent SDK, a meno che non abbiate anche impostato `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Se impostate `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e lasciate `CLAUDE_CODE_AUTO_MODE_SERVER` non impostato, Claude Code smette anche di chiedere al server.

338 347 

339<h3 id="what-the-classifier-blocks-by-default">348<h3 id="what-the-classifier-blocks-by-default">

340 Cosa blocca il classificatore per impostazione predefinita349 Cosa blocca il classificatore per impostazione predefinita

341</h3>350</h3>

342 351 

343Il classificatore si fida della tua directory di lavoro e dei remoti che erano configurati per essa quando la sessione è iniziata. Un remote aggiunto o reindirizzato durante la sessione con `git remote add` o `git remote set-url` non è attendibile, e tutto il resto è trattato come esterno finché non [configuri l'infrastruttura attendibile](/docs/it/auto-mode-config). Prima della v2.1.200, i remoti aggiunti a metà sessione erano anche attendibili.352Il classificatore si fida della vostra directory di lavoro e dei remoti che erano configurati per essa quando la sessione è iniziata. Un remote aggiunto o reindirizzato durante la sessione con `git remote add` o `git remote set-url` non è attendibile e tutto il resto è trattato come esterno fino a quando non [configurate l'infrastruttura attendibile](/docs/it/auto-mode-config). Prima della v2.1.200, i remoti aggiunti a metà sessione erano anche attendibili.

344 353 

345**Bloccato per impostazione predefinita**:354**Bloccato per impostazione predefinita**:

346 355 

347* Download ed esecuzione di codice, come `curl | bash`356* Download ed esecuzione di codice, come `curl | bash`

348* Invio di dati sensibili a endpoint esterni357* Invio di dati sensibili a endpoint esterni

349* Deploy e migrazioni di produzione358* Deploy e migrazioni di produzione

350* Eliminazione di massa su cloud storage359* Eliminazione di massa su archiviazione cloud

351* Concessione di autorizzazioni IAM o repo360* Concessione di autorizzazioni IAM o repo

352* Modifica dell'infrastruttura condivisa361* Modifica dell'infrastruttura condivisa

353* Distruzione irreversibile di file che esistevano prima della sessione362* Distruzione irreversibile di file che esistevano prima della sessione

354* Force push363* Force push

355* Commit o push di una modifica che invierebbe segreti o dati sensibili al di fuori del repository quando viene eseguito, o amplia quello che un deploy espone. Questo copre un workflow CI o una configurazione di deploy che passa un segreto a una destinazione che non lo riceve già, uno script o un passaggio di configurazione che legge un archivio di segreti e invia i dati fuori, e una modifica di configurazione che amplia quello che un deploy pubblica, come un registro, visibilità, artefatto o impostazione di sourcemap. Il controllo si applica su qualsiasi ramo, si applica anche quando il repository è pubblico, e si attiva quando la modifica arriva, indipendentemente dal fatto che quella atterraggio attivi la pipeline; cancellarlo richiede di nominare l'effetto di esecuzione, non solo il commit o il push. Prima della v2.1.211, questo controllo era limitato al ramo predefinito invece: un push lì era bloccato quando portava contenuto sensibile, modifiche nascoste o descritte erroneamente rispetto a quello che hai chiesto, contenuto portato dentro da fuori il repository, o instradato intorno a una revisione che hai chiesto364* Commit o push di una modifica che invierebbe segreti o dati sensibili al di fuori del repository quando viene eseguito, o amplierebbe ciò che un deploy espone. Questo copre un flusso di lavoro CI o una configurazione di deploy che passa un segreto a una destinazione che non lo riceve già, uno script o un passaggio di configurazione che legge un archivio di segreti e invia i dati fuori, e una modifica di configurazione che amplia ciò che un deploy pubblica, come un'impostazione di registro, visibilità, artefatto o sourcemap. Il controllo si applica su qualsiasi ramo, si applica anche quando il repository è pubblico e si attiva quando la modifica viene sottoposta a commit o push, indipendentemente dal fatto che quel commit o push attivi la pipeline; cancellarlo richiede di nominare l'effetto di esecuzione, non solo il commit o push. Prima della v2.1.211, questo controllo era limitato al ramo predefinito: un push lì veniva bloccato quando conteneva contenuto sensibile, modifiche nascoste o descritte in modo errato rispetto a quello che avete chiesto, contenuto portato da fuori il repository o instradato intorno a una revisione che avete chiesto

356* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, o `git stash clear`, che il classificatore presume scarterebbero le modifiche non committate365* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` o `git stash clear`, che il classificatore presume scarterebbero le modifiche non sottoposte a commit

357* `git commit --amend` quando il commit in HEAD non è stato creato in questa sessione366* `git commit --amend` quando il commit in HEAD non è stato creato in questa sessione

358* Da v2.1.198, `git commit --amend` quando il commit in HEAD è già stato pushato. Una riscrittura solo del messaggio non è bloccata: `--amend -m` senza nulla di nuovo in stage, su un commit che Claude ha creato durante questa sessione367* Dalla v2.1.198, `git commit --amend` quando il commit in HEAD è già stato sottoposto a push. Un reword solo messaggio non è bloccato: `--amend -m` senza nulla di nuovo in staging, su un commit che Claude ha creato durante questa sessione

359* `terraform destroy`, `pulumi destroy`, `cdk destroy`, o `terragrunt destroy`, e applicazione di un piano che distrugge risorse368* `terraform destroy`, `pulumi destroy`, `cdk destroy` o `terragrunt destroy`, e applicazione di un piano che distrugge risorse

360 369 

361Claude Code v2.1.195 e successivi bloccano più categorie per impostazione predefinita. Diversi dipendono da voci di [ambiente](/docs/it/auto-mode-config#define-trusted-infrastructure), come target remoti sensibili e ambiti IaC protetti, che puoi restringere a nomi concreti.370Claude Code v2.1.195 e successivo bloccano più categorie per impostazione predefinita. Diversi dipendono da voci di [ambiente](/docs/it/auto-mode-config#define-trusted-infrastructure), come target remoti sensibili e ambiti IaC protetti, che potete restringere a nomi concreti.

362 371 

363* Scrittura su un gestore di segreti, o modifica di record DNS o certificati TLS372* Scrittura in un gestore di segreti, o modifica di record DNS o certificati TLS

364* Merge di una pull request che nessun umano ha approvato, approvazione della propria pull request di Claude, o disabilitazione dei controlli CI373* Unione di una pull request che nessun umano ha approvato, approvazione della propria pull request di Claude o disabilitazione dei controlli CI

365* Posting di un commento che è esso stesso un comando per l'automazione, come `atlantis apply` o il `/deploy` o `/merge` di un bot374* Posting di un commento che è esso stesso un comando per l'automazione, come `atlantis apply` o il `/deploy` o `/merge` di un bot

366* Attivazione/disattivazione, ramping o eliminazione di un feature flag di produzione375* Attivazione, ramping o eliminazione di un flag di funzionalità di produzione

367* Applicazione di modifiche all'infrastruttura a un ambito IaC protetto, o drenaggio e rimozione di nodi cluster376* Applicazione di modifiche all'infrastruttura a un ambito IaC protetto, o drenaggio e rimozione di nodi del cluster

368* Scritture su un cluster di calcolo condiviso che vanno oltre la risorsa che hai nominato, come un selettore di etichette o `--all` che cattura i job di altri utenti377* Scritture in un cluster di calcolo condiviso che vanno oltre la risorsa che avete nominato, come un selettore di etichetta o `--all` che cattura i lavori di altri utenti

369* Creazione di risorse Kubernetes che vengono eseguite su ogni nodo o intercettano il traffico del cluster, come DaemonSets e webhook di ammissione378* Creazione di risorse Kubernetes che vengono eseguite su ogni nodo o intercettano il traffico del cluster, come DaemonSets e webhook di ammissione

370* Shell interattive o port-forward in un target remoto sensibile379* Shell interattive o port-forward in un target remoto sensibile

371* Apertura di un tunnel o reverse shell che rende un servizio locale raggiungibile da internet pubblico380* Apertura di un tunnel o shell inversa che rende un servizio locale raggiungibile da Internet pubblico

372* Stampa di una credenziale o token live nella trascrizione o in un file381* Stampa di una credenziale o token live nella trascrizione o in un file

373* Accesso a una posizione elencata come posizione di dati sensibili nel tuo [ambiente](/docs/it/auto-mode-config#define-trusted-infrastructure), o copia di dati da una. A partire da v2.1.198 questo blocca anche l'invio di dati da uno a un pubblico che la voce esclude382* Accesso a una posizione elencata come posizione di dati sensibili nel vostro [ambiente](/docs/it/auto-mode-config#define-trusted-infrastructure), o copia di dati da una. A partire dalla v2.1.198 questo blocca anche l'invio di dati da uno a un pubblico che la voce esclude

374* Instradamento di un'installazione di pacchetto intorno al tuo registro di pacchetti interno a un registro pubblico. A partire da v2.1.198, questo si applica anche quando hai detto a Claude che esiste un registro interno o uno specchio nella conversazione, non solo quando uno è elencato nel tuo ambiente383* Instradamento di un'installazione di pacchetto intorno al vostro registro di pacchetti interno a un registro pubblico. A partire dalla v2.1.198, questo si applica anche quando avete detto a Claude che un registro interno o uno specchio esiste nella conversazione, non solo quando uno è elencato nel vostro ambiente

375* Esecuzione di un comando con un flag che disarma una guardia di sicurezza, come `--insecure`384* Esecuzione di un comando con un flag che disarma una guardia di sicurezza, come `--insecure`

376* Lancio di un loop di agente autonomo che viene eseguito senza approvazione umana o sandbox, come uno avviato con `--dangerously-skip-permissions` o `--no-sandbox`. A partire da v2.1.198 questo copre anche l'esecuzione di un agente di terze parti o di un harness eval con isolamento e approvazione per azione disabilitati, come un runner avviato con `--yes-always`385* Avvio di un ciclo di agente autonomo che viene eseguito senza approvazione umana o sandbox, come uno avviato con `--dangerously-skip-permissions` o `--no-sandbox`. A partire dalla v2.1.198 questo copre anche l'esecuzione di un agente di terze parti o di un harness di valutazione con isolamento e approvazione per azione disabilitati, come un runner avviato con `--yes-always`

377* Azioni del browser [Claude in Chrome](/docs/it/chrome) che potrebbero inviare contenuto della pagina, cookie o credenziali off-origin386* Azioni del browser [Claude in Chrome](/docs/it/chrome) che potrebbero inviare contenuto della pagina, cookie o credenziali off-origin

378 387 

379Claude Code v2.1.198 e successivi bloccano anche questi per impostazione predefinita:388Claude Code v2.1.198 e successivo bloccano anche questi per impostazione predefinita:

380 389 

381* Eliminazione di file in `/tmp`, `$TMPDIR`, o un'altra directory di scratch o cache condivisa per wildcard, glob o filtro di età piuttosto che per un percorso nominato specifico390* Eliminazione di file in `/tmp`, `$TMPDIR` o un'altra directory di scratch o cache condivisa per wildcard, glob o filtro di età piuttosto che per un percorso nominato specifico

382* Inclusione di dettagli sensibili nel contenuto inviato, caricato, pubblicato o scritto ad altre persone o sistemi condivisi, quando il tuo stesso messaggio non ha autorizzato quei dettagli per quel destinatario. I corpi di PR e issue, i messaggi di commit e i commenti contano come questo tipo di contenuto in uscita quando il repository è fuori dal confine di fiducia o pubblico, inclusi i tuoi repository pubblici dell'organizzazione; i percorsi di file interni, i nomi in codice, i dati di risposta API live come email o identificatori di account e gli identificatori di infrastruttura contano come dettagli sensibili. Lo scoping di PR, issue e messaggio di commit richiede Claude Code v2.1.200 o successivo. I dati personali live da una risposta API in un corpo di PR o issue, come un indirizzo email, un identificatore di account o organizzazione, o una metrica di utilizzo, richiedono che tu nomini quei dettagli e il destinatario indipendentemente dalla visibilità del repository o dal confine di fiducia. Quel controllo richiede Claude Code v2.1.203 o successivo391* Inclusione di dettagli sensibili nel contenuto inviato, caricato, pubblicato o scritto ad altre persone o sistemi condivisi, quando il vostro messaggio non ha autorizzato quei dettagli per quel destinatario. I corpi di PR e issue, i messaggi di commit e i commenti contano come questo tipo di contenuto in uscita quando il repository è al di fuori del confine di fiducia o pubblico, inclusi i vostri repository pubblici dell'organizzazione; i percorsi di file interni, i nomi in codice, i dati di risposta API live come email o identificatori di account e gli identificatori di infrastruttura contano come dettagli sensibili. Lo scoping di PR, issue e messaggio di commit richiede Claude Code v2.1.200 o successivo. I dati personali live da una risposta API in un corpo di PR o issue, come un indirizzo email, un identificatore di account o organizzazione o una metrica di utilizzo, richiedono che nominiate quei dettagli e il destinatario indipendentemente dalla visibilità del repository o dal confine di fiducia. Quel controllo richiede Claude Code v2.1.203 o successivo

383* Invio di pressioni di tasti alla propria pane tmux di Claude Code per guidare la sua stessa interfaccia, che il classificatore tratta come Claude che cambia le sue stesse autorizzazioni o supervisione392* Invio di pressioni di tasti al proprio riquadro tmux di Claude Code per guidare la propria interfaccia, che il classificatore tratta come Claude che cambia le proprie autorizzazioni o supervisione

384 393 

385Claude Code v2.1.200 e successivi bloccano anche questi per impostazione predefinita:394Claude Code v2.1.200 e successivo bloccano anche questi per impostazione predefinita:

386 395 

387* Commento, eliminazione o force-pass di un test o asserzione che protegge il comportamento di sicurezza, come autenticazione, controllo di accesso, convalida dell'input o sandboxing396* Commento, eliminazione o superamento forzato di un test o asserzione che protegge il comportamento di sicurezza, come autenticazione, controllo di accesso, convalida dell'input o sandboxing

388* Eliminazione o smantellamento di una risorsa stateful che Claude non ha creato nella sessione, quando nessuna regola di eliminazione più specifica si applica e non hai nominato quella risorsa397* Eliminazione o smantellamento di una risorsa stateful che Claude non ha creato nella sessione, quando nessuna regola di eliminazione più specifica si applica e non avete nominato quella risorsa

389* Reindirizzamento di un URL di base API, endpoint proxy, ricevitore webhook o specchio di registro a un host di terze parti che non si adatta al compito, incluso nei file di esempio come `.env.example`398* Reindirizzamento di un URL di base API, endpoint proxy, ricevitore webhook o specchio di registro a un host di terze parti che non si adatta al compito, incluso nei file di esempio come `.env.example`

390* Modifica di dove vanno i push con `git remote set-url` o `git remote add`, a meno che tu non abbia nominato il nuovo remote399* Modifica di dove vanno i push con `git remote set-url` o `git remote add`, a meno che non abbiate nominato il nuovo remote

391* Push di segreti o dati personali o affidati a un repository noto per essere pubblico, o push di materiale confidenziale lì che non fa parte del lavoro proprio di quel repository. L'argomento proprio di un repository dotfiles è l'unica eccezione per dati personali o affidati, e il contenuto da un repository privato che raggiunge qualsiasi superficie pubblica è bloccato allo stesso modo; entrambi i perfezionamenti richiedono Claude Code v2.1.203 o successivo. Prima di v2.1.203, i dati personali erano raggruppati con materiale confidenziale e bloccati solo quando non facevano parte del lavoro proprio di quel repository. Quando la visibilità di un repository non è stabilita, il classificatore non blocca solo su quello; giudica il contenuto rispetto alle altre regole invece400* Push di segreti o dati personali o affidati a un repository noto per essere pubblico, o push di materiale confidenziale lì che non fa parte del lavoro proprio di quel repository. Il soggetto proprio di un repository di dotfiles è l'unica eccezione per dati personali o affidati, e il contenuto da un repository privato che raggiunge qualsiasi superficie pubblica è bloccato nello stesso modo; entrambi i perfezionamenti richiedono Claude Code v2.1.203 o successivo. Prima della v2.1.203, i dati personali erano raggruppati con materiale confidenziale e bloccati solo quando non facevano parte del lavoro proprio di quel repository. Quando la visibilità di un repository non è stabilita, il classificatore non blocca solo su quello; giudica il contenuto rispetto alle altre regole

392* Apertura di una pull request contro un repository o organizzazione diversa, fork con `gh repo fork`, o push a un repository di terze parti, a meno che tu non abbia nominato quel target esterno401* Apertura di una pull request contro un repository o organizzazione diversa, fork con `gh repo fork` o push a un repository di terze parti, a meno che non abbiate nominato quel target esterno

393 402 

394Claude Code v2.1.203 e successivi bloccano anche questi per impostazione predefinita:403Claude Code v2.1.203 e successivo bloccano anche questi per impostazione predefinita:

395 404 

396* Contenuto da un archivio locale sensibile, o da un file il cui nome, percorso o tipo lo contrassegna come sensibile, che entra in un commit, un push, testo di PR o issue, un gist o paste, o una pubblicazione di pacchetto, a meno che tu non abbia nominato sia la fonte che la destinazione. Le trascrizioni di sessione e i log di conversazione, le cartelle dot di credenziali e configurazione come chiavi SSH, credenziali cloud, profili browser e cronologia shell, e gli export di dati utente contano tutti, e il fatto che il repository sia privato non lo esenta405* Contenuto da un archivio locale sensibile, o da un file il cui nome, percorso o tipo lo contrassegna come sensibile, che entra in un commit, un push, testo di PR o issue, un gist o paste, o una pubblicazione di pacchetto, a meno che non abbiate nominato sia la fonte che la destinazione. Le trascrizioni di sessione e i log di conversazione, le cartelle di punti di configurazione e credenziali come chiavi SSH, credenziali cloud, profili del browser e cronologia della shell, e gli export di dati utente contano tutti, e il fatto che il repository sia privato non lo cancella

397 406 

398Claude Code v2.1.205 e successivi bloccano anche questi per impostazione predefinita:407Claude Code v2.1.205 e successivo bloccano anche questi per impostazione predefinita:

399 408 

400* Scrittura nelle trascrizioni di sessione di Claude Code, i file di cronologia `.jsonl` sotto `~/.claude/projects/` o la tua directory di configurazione configurata, direttamente o tramite un comando shell. La regola copre anche le righe di metadati che Claude Code aggiunge a ogni voce di trascrizione per i suoi stessi controlli. La lettura di una trascrizione non è bloccata409* Scrittura nelle trascrizioni di sessione di Claude Code, i file di cronologia `.jsonl` sotto `~/.claude/projects/` o la vostra directory di configurazione configurata, direttamente o tramite un comando di shell. La regola copre anche le righe di metadati che Claude Code aggiunge a ogni voce di trascrizione per i propri controlli. La lettura di una trascrizione non è bloccata

401* Un'eliminazione forzata ricorsiva come `rm -rf "$VAR"` o `Remove-Item -Recurse -Force $dir` il cui target è una variabile shell, o un glob radicato in uno, che non è assegnato da nessuna parte nella conversazione che il classificatore vede. Il valore proveniva solo dall'output del comando precedente, che il classificatore non riceve mai, quindi il classificatore non può verificare il target di eliminazione rispetto alle altre regole di eliminazione. Il blocco si cancella quando nomini il percorso esatto che viene eliminato, o quando Claude riesegue l'eliminazione con il percorso letterale risolto scritto nel comando. Le eliminazioni il cui target il classificatore può risolvere non sono interessate. I target `Remove-Item` che sono un `*` nudo o terminano in `/*` o `\*` non raggiungono mai il classificatore: Claude Code li [nega direttamente](#remove-item-in-powershell)410* Un'eliminazione forzata ricorsiva come `rm -rf "$VAR"` o `Remove-Item -Recurse -Force $dir` il cui target è una variabile di shell, o un glob radicato in una, che non è assegnato da nessuna parte nella conversazione che il classificatore vede. Il valore proveniva solo dall'output di comando precedente, che il classificatore non riceve mai, quindi il classificatore non può verificare il target di eliminazione rispetto alle altre regole di eliminazione. Il blocco si cancella quando nominate il percorso esatto che viene eliminato, o quando Claude riesegue l'eliminazione con il percorso letterale risolto scritto nel comando. Le eliminazioni il cui target il classificatore può risolvere non sono interessate. I target `Remove-Item` che sono un `*` nudo o terminano in `/*` o `\*` non raggiungono mai il classificatore: Claude Code [li nega direttamente](#remove-item-in-powershell)

402 411 

403Claude Code v2.1.257 e successivi bloccano anche questi per impostazione predefinita:412Claude Code v2.1.257 e successivo bloccano anche questi per impostazione predefinita:

404 413 

405* Richiesta di credenziali dall'endpoint dei metadati dell'istanza cloud, come `169.254.169.254`, o autenticazione esplicita di una chiamata cloud, cluster o registro con l'identità dell'account di servizio o del nodo della macchina414* Richiesta di credenziali dall'endpoint dei metadati dell'istanza cloud, come `169.254.169.254`, o autenticazione esplicita di una chiamata cloud, cluster o registro con l'identità dell'account di servizio o del nodo della macchina

406* Raggiungimento di un host pubblico da una rotta diversa da una richiesta diretta, come un tunnel, una reverse shell, o una configurazione di resolver o proxy riscritta per puntare al di fuori415* Raggiungimento di un host pubblico per una rotta diversa da una richiesta diretta, come un tunnel, una shell inversa, o una configurazione di resolver o proxy riscritta per puntare al di fuori

407* Lettura di credenziali che appartengono all'host piuttosto che al tuo compito, come certificati di nodo o l'auth del registro di container del nodo416* Lettura di credenziali che appartengono all'host piuttosto che al vostro compito, come certificati di nodo o l'auth del registro di container del nodo

408* Connessione a o scansione di container, pod o VM fratelli che Claude non ha avviato, o il nodo sotto il container417* Connessione a o scansione di container, pod o VM fratelli che Claude non ha avviato, o il nodo sotto il container

409 418 

410Se Claude Code viene eseguito da qualche parte che intende consentire uno di questi, descrivi quella configurazione in una voce [Host containment](/docs/it/auto-mode-config#define-trusted-infrastructure) in `autoMode.environment`.419Se Claude Code viene eseguito da qualche parte che intende consentire uno di questi, descrivete quella configurazione in una voce [Host containment](/docs/it/auto-mode-config#define-trusted-infrastructure) in `autoMode.environment`.

411 420 

412Claude Code v2.1.261 e successivi bloccano anche questi per impostazione predefinita:421Claude Code v2.1.261 e successivo bloccano anche questi per impostazione predefinita:

413 422 

414* Posting o scrittura di un link a un servizio pubblico di paste, diagramma o condivisione dati in un messaggio, testo di PR o issue, un documento, o ovunque il link verrà aperto o recuperato, quando l'URL stesso porta il contenuto condiviso, a meno che tu non abbia nominato quel servizio423* Posting o scrittura di un link a un servizio pubblico di paste, diagramma o condivisione dati in un messaggio, testo di PR o issue, un documento, o ovunque il link verrà aperto o recuperato, quando l'URL stesso contiene il contenuto condiviso, a meno che non abbiate nominato quel servizio

415 424 

416**Consentito per impostazione predefinita**:425**Consentito per impostazione predefinita**:

417 426 

418* Operazioni di file locali nella tua directory di lavoro427* Operazioni su file locali nella vostra directory di lavoro

419* Installazione di dipendenze dichiarate nei tuoi file di lock o manifest428* Installazione di dipendenze dichiarate nei vostri file di lock o manifest

420* Lettura di `.env` e invio di credenziali al loro API corrispondente429* Lettura di `.env` e invio di credenziali al loro API corrispondente

421* Richieste HTTP di sola lettura430* Richieste HTTP di sola lettura

422* Push a qualsiasi ramo del repository su cui stai lavorando, incluso il ramo predefinito. Un ramo non predefinito il cui nome lo contrassegna come target di deploy o pubblicazione, come `production` o `gh-pages`, non è coperto: il classificatore giudica un push lì sui suoi stessi termini. Il contenuto del push è ancora controllato rispetto alle altre regole, le [regole `permissions.deny`](/docs/it/permissions#manage-permissions) possono comunque bloccare i comandi push [come scritti](/docs/it/permissions#bash-rule-limits) in ogni modalità, e la protezione del ramo del remote si applica comunque. Prima della v2.1.211, solo i push al ramo su cui hai iniziato, i rami che Claude ha creato, e i push di routine al ramo predefinito erano consentiti per impostazione predefinita, e prima della v2.1.203 qualsiasi push diretto al ramo predefinito era bloccato431* Push a qualsiasi ramo del repository in cui state lavorando, incluso il ramo predefinito. Un ramo non predefinito il cui nome lo contrassegna come target di deploy o pubblicazione, come `production` o `gh-pages`, non è coperto: il classificatore giudica un push lì secondo i suoi termini. Il contenuto del push è ancora controllato rispetto alle altre regole, le regole [`permissions.deny`](/docs/it/permissions#manage-permissions) possono ancora bloccare i comandi push [come scritti](/docs/it/permissions#bash-rule-limits) in ogni modalità, e la protezione del ramo del remote si applica ancora. Prima della v2.1.211, solo i push al ramo su cui avete iniziato, i rami che Claude ha creato e i push di routine al ramo predefinito erano consentiti per impostazione predefinita, e prima della v2.1.203 qualsiasi push diretto al ramo predefinito era bloccato

423 432 

424Claude Code v2.1.195 e successivi consentono anche questi per impostazione predefinita:433Claude Code v2.1.195 e successivo consentono anche questi per impostazione predefinita:

425 434 

426* Eliminazione dei job esatti che Claude ha creato in precedenza nella stessa sessione435* Eliminazione dei lavori esatti che Claude ha creato in precedenza nella stessa sessione

427* Lettura, revisione o scrittura di codice, config e modelli di minaccia relativi alla sicurezza come parte del tuo compito436* Lettura, revisione o scrittura di codice, configurazioni e modelli di minaccia relativi alla sicurezza come parte del vostro compito

428* Messaggi tra agenti che lavorano insieme nella stessa sessione multi-agente437* Messaggi tra agenti che lavorano insieme nella stessa sessione multi-agente

429* Invio di dati ai domini, bucket e servizi attendibili che elenchi in [`environment`](/docs/it/auto-mode-config#define-trusted-infrastructure). Questo copre il flusso di dati solo, non operazioni distruttive o di credenziali sulla stessa infrastruttura438* Invio di dati ai domini attendibili, bucket e servizi che elencate in [`environment`](/docs/it/auto-mode-config#define-trusted-infrastructure). Questo copre il flusso di dati solo, non operazioni distruttive o di credenziale sulla stessa infrastruttura

430* Navigazione [Claude in Chrome](/docs/it/chrome) a un dominio interno attendibile, localhost, o un URL che hai nominato439* [Claude in Chrome](/docs/it/chrome) navigazione a un dominio interno attendibile, localhost o un URL che avete nominato

431 440 

432I comandi in sandbox non ottengono accesso alla rete per impostazione predefinita. Claude nomina gli host che un comando necessita sul comando stesso, il classificatore li esamina con il comando, e un elenco approvato apre quegli host per quel solo comando. [Domini consentiti per comando](/docs/it/sandboxing#per-command-allowed-domains-in-auto-mode) copre cosa un elenco può e non può aprire e cosa succede quando un comando raggiunge per un host non elencato.441I comandi in sandbox non ottengono accesso di rete per impostazione predefinita. Claude nomina gli host che un comando necessita sul comando stesso, il classificatore li esamina con il comando, e un elenco approvato apre quegli host per quel solo comando. [Domini consentiti per comando](/docs/it/sandboxing#per-command-allowed-domains-in-auto-mode) copre cosa un elenco può e non può aprire e cosa accade quando un comando raggiunge per un host non elencato.

433 442 

434Esegui `claude auto-mode defaults` per stampare gli elenchi di regole completi come JSON. Se le azioni di routine vengono bloccate, un amministratore può aggiungere repo, bucket e servizi attendibili tramite l'impostazione `autoMode.environment`: vedi [Configura modalità auto](/docs/it/auto-mode-config).443Eseguite `claude auto-mode defaults` per stampare gli elenchi di regole completi come JSON. Se le azioni di routine vengono bloccate, un amministratore può aggiungere repo, bucket e servizi attendibili tramite l'impostazione `autoMode.environment`: consultate [Configura modalità auto](/docs/it/auto-mode-config).

435 444 

436Il push a qualsiasi ramo del repository su cui stai lavorando e la creazione di una pull request che corrisponde alla tua richiesta vengono eseguiti senza un prompt, a meno che il push o la pull request non rientri nell'[elenco bloccato](#what-the-classifier-blocks-by-default), come segreti o dati sensibili che lasciano il repository, o una pull request che prende di mira un repository o organizzazione diversa. Per richiedere un checkpoint umano prima di queste azioni mentre rimani in modalità auto, aggiungi regole `permissions.ask`: vedi [Confini comuni](/docs/it/auto-mode-config#common-boundaries).445Il push a qualsiasi ramo del repository in cui state lavorando e la creazione di una pull request che corrisponde alla vostra richiesta vengono eseguiti senza un prompt, a meno che il push o la pull request non rientri nell'[elenco bloccato](#what-the-classifier-blocks-by-default), come segreti o dati sensibili che lasciano il repository, o una pull request che prende di mira un repository o organizzazione diversa. Per richiedere un checkpoint umano prima di questi comandi mentre rimanete in modalità auto, aggiungete regole `permissions.ask`, che corrispondono al comando [come scritto](/docs/it/permissions#bash-rule-limits): consultate [Confini comuni](/docs/it/auto-mode-config#common-boundaries).

437 446 

438<h3 id="first-read-outside-the-working-directories">447<h3 id="first-read-outside-the-working-directories">

439 La prima lettura al di fuori delle directory di lavoro448 La prima lettura al di fuori delle directory di lavoro

440</h3>449</h3>

441 450 

442Mentre [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) è disattivato, le letture di file vengono eseguite senza un prompt in modalità auto, incluse le letture al di fuori delle [directory di lavoro](/docs/it/permissions#working-directories). La prima volta che Claude utilizza lo strumento Read, Grep o Glob su un percorso al di fuori di esse, Claude Code ti chiede se continuare a consentire quelle letture.451Mentre [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) è disattivato, le letture di file vengono eseguite senza un prompt in modalità auto, incluse le letture al di fuori delle [directory di lavoro](/docs/it/permissions#working-directories). La prima volta che Claude utilizza lo strumento Read, Grep o Glob su un percorso al di fuori di esse, Claude Code vi chiede se continuare a consentire quelle letture.

443 452 

444Il prompt non appare nelle esecuzioni non interattive `-p` o nelle sessioni in background; le letture lì vengono eseguite come prima.453Il prompt non appare nelle esecuzioni `-p` non interattive o nelle sessioni in background; le letture lì vengono eseguite come prima.

445 454 

446Qualunque cosa tu risponda, Claude continua a lavorare:455Qualunque sia la vostra risposta, Claude continua a lavorare:

447 456 

448* **Continua a consentire**: la lettura viene eseguita, le letture successive al di fuori delle directory di lavoro vengono eseguite come prima, e Claude Code registra la tua risposta in modo che il prompt non appaia di nuovo457* **Continua a consentire**: la lettura viene eseguita, le letture successive al di fuori delle directory di lavoro vengono eseguite come prima, e Claude Code registra la vostra risposta in modo che il prompt non appaia di nuovo

449* **Blocca da ora in poi**: la lettura viene rifiutata, e Claude Code imposta [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) su `true` nelle tue impostazioni utente, che fa sì che gli strumenti di file rifiutino tali letture in ogni sessione successiva e in ogni modalità di autorizzazione. Per consentire a Claude di leggere tale percorso in seguito, aggiungi la sua directory con `/add-dir` o rimuovi l'impostazione.458* **Blocca da ora in poi**: la lettura viene rifiutata e Claude Code imposta [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) su `true` nelle vostre impostazioni utente, il che fa sì che gli strumenti di file rifiutino tali letture in ogni sessione successiva e in ogni modalità di autorizzazione. Per consentire a Claude di leggere tale percorso in seguito, aggiungete la sua directory con `/add-dir` o rimuovete l'impostazione.

450* **Chiedi di nuovo la prossima volta**: la lettura viene rifiutata, e la prossima lettura al di fuori delle directory di lavoro richiede di nuovo459* **Chiedi di nuovo la prossima volta**: la lettura viene rifiutata e la prossima lettura al di fuori delle directory di lavoro chiede di nuovo

451 460 

452<h3 id="boundaries-you-state-in-conversation">461<h3 id="boundaries-you-state-in-conversation">

453 Confini che dichiari nella conversazione462 Confini che dichiarate nella conversazione

454</h3>463</h3>

455 464 

456Il classificatore tratta i confini che dichiari nella conversazione come un segnale di blocco. Se dici a Claude "non pushare" o "aspetta che io riveda prima di deployare", il classificatore blocca le azioni corrispondenti anche quando le regole predefinite le consentirebbero. Un confine rimane in vigore fino a quando non lo sollevi in un messaggio successivo. Il giudizio proprio di Claude che una condizione era soddisfatta non lo solleva.465Il classificatore tratta i confini che dichiarate nella conversazione come un segnale di blocco. Se dite a Claude "non fare push" o "aspetta finché non rivedo prima di fare il deploy", il classificatore blocca le azioni corrispondenti anche quando le regole predefinite le consentirebbero. Un confine rimane in vigore fino a quando non lo sollevate in un messaggio successivo. Il giudizio proprio di Claude che una condizione è stata soddisfatta non lo solleva.

457 466 

458I confini non vengono archiviati come regole. Il classificatore li rilegge dalla trascrizione su ogni controllo, quindi un confine può andare perso se la [compattazione del contesto](/docs/it/costs#reduce-token-usage) rimuove il messaggio che lo ha dichiarato. Per una garanzia dura, aggiungi una [regola deny](/docs/it/permissions#permission-rule-syntax) invece.467I confini non vengono archiviati come regole. Il classificatore li rilegge dalla trascrizione su ogni controllo, quindi un confine può andare perso se la [compattazione del contesto](/docs/it/costs#reduce-token-usage) rimuove il messaggio che lo ha dichiarato. Per una garanzia dura, aggiungete invece una [regola di negazione](/docs/it/permissions#permission-rule-syntax).

459 468 

460<h3 id="approvals-you-state-in-conversation">469<h3 id="approvals-you-state-in-conversation">

461 Approvazioni che dichiari nella conversazione470 Approvazioni che dichiarate nella conversazione

462</h3>471</h3>

463 472 

464Se dici a Claude che un'azione bloccata è consentita, il classificatore legge questo come la tua approvazione e può cancellare il blocco. Come l'hai formulato decide se l'azione viene eseguita, e quanto lontano arriva l'approvazione:473Se dite a Claude che un'azione bloccata è consentita, il classificatore legge questo come la vostra approvazione e può cancellare il blocco. Il modo in cui l'avete formulato decide se l'azione viene eseguita e quanto lontano arriva l'approvazione:

465 474 

466* **Nomina l'azione e i suoi dettagli**: il tuo messaggio deve nominare l'azione e la cosa specifica che la rende pericolosa, come il ramo di un force push. Nominare solo il verbo non cancella nulla, quindi "puoi fare force-push" lascia il blocco in vigore.475* **Nominate l'azione e i suoi dettagli**: il vostro messaggio deve nominare l'azione e la cosa specifica che la rende pericolosa, come il ramo di un force push. Nominare solo il verbo non cancella nulla, quindi "potete fare force-push" lascia il blocco in vigore.

467* **Aspettati che copra un'azione**: un'approvazione copre l'azione distruttiva che hai nominato, quindi un'azione successiva viene bloccata di nuovo a meno che tu non abbia concesso l'approvazione come permanente. Per smettere di approvare un modello di routine un'azione alla volta, aggiungilo a [`autoMode.allow`](/docs/it/auto-mode-config#override-the-block-and-allow-rules).476* **Aspettatevi che copra un'azione**: un'approvazione copre l'azione distruttiva che avete nominato, quindi un'azione successiva viene bloccata di nuovo a meno che non abbiate concesso l'approvazione come permanente. Per smettere di approvare un modello di routine un'azione alla volta, aggiungetelo a [`autoMode.allow`](/docs/it/auto-mode-config#override-the-block-and-allow-rules).

468* **Alcuni blocchi rimangono in vigore**: [l'ordine di precedenza del classificatore](/docs/it/auto-mode-config#override-the-block-and-allow-rules) stabilisce quali blocchi la tua approvazione può raggiungere. Per eseguire un passaggio che non cancellerà, [esci dalla modalità auto](#switch-permission-modes) e rispondi al prompt di autorizzazione.477* **Alcuni blocchi rimangono in vigore**: l'[ordine di precedenza del classificatore](/docs/it/auto-mode-config#override-the-block-and-allow-rules) stabilisce quali blocchi la vostra approvazione può raggiungere. Per eseguire un passaggio che non cancellerà, [lasciate la modalità auto](#switch-permission-modes) e rispondete al prompt di autorizzazione.

469 478 

470<h3 id="when-auto-mode-falls-back">479<h3 id="when-auto-mode-falls-back">

471 Quando la modalità auto passa ai prompt manuali480 Quando la modalità auto ricade

472</h3>481</h3>

473 482 

474Quando la modalità auto non può approvare le azioni della tua sessione, cosa succede dipende dal caso:483Quando la modalità auto non può approvare le azioni della vostra sessione, cosa accade dipende dal caso:

475 484 

476* **Un'azione bloccata**: Claude Code mostra una notifica e elenca l'azione in `/permissions` sotto la scheda **Recently denied**, dove puoi premere `r` per ritentarla con un'approvazione manuale. Quando il classificatore produce [nessun verdetto sull'azione](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action), perché un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta del classificatore o la sua risposta non è stata analizzata, Claude Code nega l'azione senza la notifica o la voce **Recently denied**.485* **Un'azione bloccata**: Claude Code mostra una notifica ed elenca l'azione in `/permissions` nella scheda **Recently denied**, dove potete premere `r` per ritentarla con un'approvazione manuale. Quando il classificatore produce [nessun verdetto sull'azione](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action), perché un controllo di sicurezza separato dalla modalità auto ha rifiutato la richiesta propria del classificatore o la sua risposta non è stata analizzata, Claude Code nega l'azione senza la notifica o la voce **Recently denied**.

477* **Blocchi ripetuti**: se il classificatore blocca un'azione 3 volte di seguito o 20 volte in totale, la modalità auto si mette in pausa e Claude Code riprende a richiedere. L'approvazione dell'azione richiesta riprende la modalità auto. Questi soglie non sono configurabili. Qualsiasi azione consentita ripristina il contatore consecutivo, mentre il contatore totale persiste per la sessione e si ripristina solo quando il suo limite attiva un fallback. Claude Code non conta un diniego verso nessuno dei due soglie quando [un controllo di sicurezza separato dalla modalità auto rifiuta la richiesta del classificatore](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action); la voce collegata copre come Claude Code gestisce quei dinieghi.486* **Blocchi ripetuti**: se il classificatore blocca un'azione 3 volte di seguito o 20 volte in totale, la modalità auto si mette in pausa e Claude Code riprende a chiedere. Approvare l'azione richiesta riprende la modalità auto. Questi soglie non sono configurabili. Qualsiasi azione consentita ripristina il contatore consecutivo, mentre il contatore totale persiste per la sessione e si ripristina solo quando il suo limite attiva un fallback. Claude Code non conta una negazione verso nessuna soglia quando [un controllo di sicurezza separato dalla modalità auto rifiuta la richiesta del classificatore](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action); la voce collegata copre come Claude Code gestisce quelle negazioni.

478* **Sessioni che non possono richiedere**: un'esecuzione [non interattiva](/docs/it/headless) `-p` senza un [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) non ha un prompt a cui ricorrere. Quando i blocchi ripetuti raggiungono una soglia, l'azione non viene eseguita e Claude continua a lavorare. Lo stesso si applica quando [un controllo di sicurezza separato dalla modalità auto rifiuta la richiesta del classificatore](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code non ferma l'esecuzione in nessuno dei due casi.487* **Sessioni che non possono chiedere**: un'esecuzione `-p` [non interattiva](/docs/it/headless) senza un [`--permission-prompt-tool`](/docs/it/cli-reference#cli-flags) non ha un prompt a cui ricadere. Quando i blocchi ripetuti raggiungono una soglia, l'azione non viene eseguita e Claude continua a lavorare. Lo stesso si applica quando [un controllo di sicurezza separato dalla modalità auto rifiuta la richiesta del classificatore](/docs/it/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code non ferma l'esecuzione in nessuno dei due casi.

479* **Un cambio di modalità durante un controllo**: se cambi le modalità di autorizzazione mentre un controllo del classificatore è in sospeso, Claude Code scarta un verdetto che la nuova modalità non avrebbe richiesto piuttosto che applicarlo: sei richiesto per l'approvazione invece, o l'azione viene auto-negata in modalità [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).488* **Nessun verdetto dal server**: sotto [revisione del classificatore lato server](#server-side-classifier-review), Claude Code nega un'azione per la quale il server non fornisce un verdetto e ferma il turno dopo dieci risposte di seguito senza verdetto. Consultate [Il server non ha restituito un verdetto di sicurezza](/docs/it/errors#the-server-returned-no-safety-verdict).

489* **Un cambio di modalità durante un controllo**: se cambiate modalità di autorizzazione mentre un controllo del classificatore è in sospeso, Claude Code scarta un verdetto che la nuova modalità non avrebbe richiesto piuttosto che applicarlo: vi viene chiesto l'approvazione, o l'azione viene negata automaticamente in [modalità `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

480 490 

481I blocchi ripetuti di solito significano che il classificatore manca di contesto sulla tua infrastruttura. Usa `/feedback` per segnalare falsi positivi, o fai in modo che un amministratore [configuri l'infrastruttura attendibile](/docs/it/auto-mode-config).491I blocchi ripetuti di solito significano che il classificatore manca di contesto sulla vostra infrastruttura. Utilizzate `/feedback` per segnalare falsi positivi, o fate in modo che un amministratore [configuri l'infrastruttura attendibile](/docs/it/auto-mode-config).

482 492 

483<span id="how-the-classifier-evaluates-actions" />493<span id="how-the-classifier-evaluates-actions" />

484 494 

485<AccordionGroup>495<AccordionGroup>

486 <Accordion title="Come il classificatore valuta le azioni">496 <Accordion title="Come il classificatore valuta le azioni">

487 Ogni azione passa attraverso un ordine di decisione fisso. Il primo passaggio corrispondente vince:497 Ogni azione passa attraverso un ordine decisionale fisso. Il primo passaggio corrispondente vince:

488 498 

489 1. Le azioni che corrispondono alle tue [regole allow, ask, o deny](/docs/it/permissions#manage-permissions) si risolvono immediatamente, con queste eccezioni:499 1. Le azioni che corrispondono alle vostre [regole di consentimento, richiesta o negazione](/docs/it/permissions#manage-permissions) si risolvono immediatamente, con queste eccezioni:

490 * Scritture su [percorsi protetti](#protected-paths) vengono instradate al classificatore anche quando una regola allow corrisponde, e così fanno le rimozioni `rm` e `rmdir` che prendono di mira un [percorso critico](#critical-paths) in Claude Code v2.1.218 e successivi500 * Le scritture su [percorsi protetti](#protected-paths) vengono instradate al classificatore anche quando una regola di consentimento corrisponde, e così anche le rimozioni `rm` e `rmdir` che prendono di mira un [percorso critico](#critical-paths) in Claude Code v2.1.218 e successivo

491 * Gli strumenti MCP contrassegnati [`requiresUserInteraction`](/docs/it/mcp#require-approval-for-a-specific-tool) ti chiedono direttamente anche quando una regola allow corrisponde, e così fanno gli strumenti connector [che la tua organizzazione ha impostato su `ask`](/docs/it/mcp#organization-controls-on-connector-tools) in sessioni dove quella impostazione raggiunge Claude Code501 * Gli strumenti MCP contrassegnati [`requiresUserInteraction`](/docs/it/mcp#require-approval-for-a-specific-tool) vi chiedono direttamente anche quando una regola di consentimento corrisponde, e così anche gli strumenti connettore [che la vostra organizzazione ha impostato su `ask`](/docs/it/mcp#organization-controls-on-connector-tools) nelle sessioni in cui quella impostazione raggiunge Claude Code

492 * Un comando shell che porta [domini consentiti per comando](/docs/it/sandboxing#per-command-allowed-domains-in-auto-mode) viene anche instradato al classificatore anche quando una regola allow corrisponde, perché una regola approva il comando, non i suoi host502 * Un comando di shell che contiene [domini consentiti per comando](/docs/it/sandboxing#per-command-allowed-domains-in-auto-mode) viene anche instradato al classificatore anche quando una regola di consentimento corrisponde, perché una regola approva il comando, non i suoi host

493 * Le regole ask che corrispondono sul contenuto di un comando, come `Bash(git push *)`, ricadono in un prompt di autorizzazione503 * Le regole di richiesta che corrispondono al contenuto di un comando, come `Bash(git push *)`, ricadono a un prompt di autorizzazione

494 2. Le azioni di sola lettura e le modifiche di file nella tua directory di lavoro vengono auto-approvate, tranne le scritture su [percorsi protetti](#protected-paths) e [la prima lettura al di fuori delle directory di lavoro](#first-read-outside-the-working-directories), che ti richiede504 2. Le azioni di sola lettura e le modifiche di file nella vostra directory di lavoro vengono approvate automaticamente, eccetto le scritture su [percorsi protetti](#protected-paths) e [la prima lettura al di fuori delle directory di lavoro](#first-read-outside-the-working-directories), che vi chiede

495 3. Tutto il resto va al classificatore. Gli strumenti connector e gli strumenti MCP contrassegnati [`requiresUserInteraction`](/docs/it/mcp#require-approval-for-a-specific-tool) che ti chiedono direttamente nel passaggio 1 non raggiungono mai il classificatore, quindi un'approvazione richiesta dall'organizzazione o un passaggio di consenso non viene mai auto-approvato505 * In una sessione con [revisione del classificatore lato server](#server-side-classifier-review), le azioni di sola lettura e i comandi di shell [in sandbox](/docs/it/sandboxing#sandbox-modes) attendono quella revisione e vengono bloccati se la contrassegna

496 4. Se il classificatore blocca, Claude riceve il motivo e prova un'alternativa. Nella maggior parte delle sessioni il motivo indica la regola a cui il classificatore ha trovato corrispondenza, ad esempio `[Data Exfiltration]`, invece di fornire una spiegazione scritta; vedi [Rivedi i dinieghi](/docs/it/auto-mode-config#review-denials)506 3. Tutto il resto va al classificatore. Gli strumenti connettore e gli strumenti MCP `requiresUserInteraction` che vi chiedono direttamente nel passaggio 1 non raggiungono mai il classificatore, quindi né un'approvazione richiesta dall'organizzazione né un passaggio di consenso viene approvato automaticamente

507 4. Se il classificatore blocca, Claude riceve il motivo e prova un'alternativa. Nella maggior parte delle sessioni il motivo nomina la regola che il classificatore ha abbinato, come `[Data Exfiltration]`, piuttosto che dare una spiegazione scritta; consultate [Rivedi negazioni](/docs/it/auto-mode-config#review-denials)

497 508 

498 Entrando in modalità auto, le regole allow ampie che concedono l'esecuzione arbitraria di codice vengono eliminate:509 Entrando in modalità auto, le regole di consentimento ampie che concedono l'esecuzione arbitraria di codice vengono eliminate:

499 510 

500 * Blanket `Bash(*)` o `PowerShell(*)`511 * Blanket `Bash(*)` o `PowerShell(*)`

501 * Interpreti con wildcard come `Bash(python*)`512 * Interpreti con wildcard come `Bash(python*)`

502 * Comandi di esecuzione del gestore di pacchetti513 * Comandi di esecuzione del gestore di pacchetti

503 * Regole allow `Agent`514 * Regole di consentimento `Agent`

504 * Regole allow [`Monitor`](/docs/it/tools-reference#monitor-tool), perché Claude Code esegue i comandi Monitor attraverso la shell515 * Regole di consentimento [`Monitor`](/docs/it/tools-reference#monitor-tool), perché Claude Code esegue i comandi Monitor attraverso la shell

516 

517 Le regole strette come `Bash(npm test)` rimangono in vigore. Claude Code ripristina le regole eliminate quando lasciate la modalità auto. Prima della v2.1.236, Claude Code lasciava le regole di consentimento `Monitor` in vigore in modalità auto, quindi una regola che corrispondeva all'intero strumento approvava i comandi Monitor senza revisione del classificatore.

505 518 

506 Le regole strette come `Bash(npm test)` vengono trasportate. Claude Code ripristina le regole eliminate quando esci dalla modalità auto. Prima della v2.1.236, Claude Code lasciava le regole allow `Monitor` in vigore in modalità auto, quindi una regola che corrispondeva all'intero strumento approvava i comandi Monitor senza revisione del classificatore.519 Claude Code esegue anche `git status` stesso prima di un comando che scarterebbero il lavoro non sottoposto a commit, come `git reset --hard` o `rm -rf`, e mostra al classificatore se il lavoro in staging, modificato o non tracciato è presente. Claude Code segnala i file non tracciati in quel controllo anche quando la configurazione git del repository imposta `status.showUntrackedFiles=no`.

507 520 

508 Claude Code esegue anche `git status` stesso prima di un comando che scarterebbero il lavoro non committato, come `git reset --hard` o `rm -rf`, e mostra al classificatore se il lavoro in stage, modificato o non tracciato è presente. Claude Code segnala i file non tracciati in quel controllo anche quando la configurazione git del repository imposta `status.showUntrackedFiles=no`.521 Nelle richieste del classificatore inviate da Claude Code stesso, il classificatore vede i messaggi utente, le chiamate di strumento diverse dalle ricerche di sola lettura come letture di file e ricerche, e il vostro contenuto CLAUDE.md. I risultati degli strumenti vengono rimossi da quelle richieste, quindi il contenuto ostile in un file o pagina web non può manipolare il classificatore direttamente.

509 522 

510 Nelle richieste del classificatore inviate da Claude Code stesso, il classificatore vede i messaggi dell'utente, le chiamate di strumenti diverse dalle ricerche di sola lettura come letture di file e ricerche, e il tuo contenuto CLAUDE.md. I risultati degli strumenti vengono rimossi, quindi il contenuto ostile in un file o pagina web non può manipolarlo direttamente. Puoi annotare il risultato di una chiamata con il campo `classifierContext` di un hook [PostToolUse](/docs/it/hooks#annotate-a-result-for-the-auto-mode-classifier), che il classificatore legge come contesto fornito dall'applicazione. Il campo richiede Claude Code v2.1.236 o successivo.523 Potete annotare il risultato di una chiamata con il campo `classifierContext` di un hook [PostToolUse](/docs/it/hooks#annotate-a-result-for-the-auto-mode-classifier), che il classificatore legge come contesto fornito dall'applicazione. Il campo richiede Claude Code v2.1.236 o successivo.

511 524 

512 Una sonda separata lato server scansiona i risultati degli strumenti in arrivo e contrassegna il contenuto sospetto prima che Claude lo legga. Per ulteriori informazioni su come questi strati lavorano insieme, vedi l'[annuncio della modalità auto](https://claude.com/blog/auto-mode) e il [deep dive di ingegneria](https://www.anthropic.com/engineering/claude-code-auto-mode).525 Una sonda lato server separata scansiona i risultati degli strumenti in arrivo e contrassegna il contenuto sospetto prima che Claude lo legga. Per ulteriori informazioni su come questi livelli lavorano insieme, consultate l'[annuncio della modalità auto](https://claude.com/blog/auto-mode) e l'[approfondimento tecnico](https://www.anthropic.com/engineering/claude-code-auto-mode).

513 </Accordion>526 </Accordion>

514 527 

515 <Accordion title="Come la modalità auto gestisce i subagent">528 <Accordion title="Come la modalità auto gestisce i subagenti">

516 Il classificatore controlla il lavoro dei [subagent](/docs/it/sub-agents) in tre punti:529 Il classificatore controlla il lavoro dei [subagenti](/docs/it/sub-agents) in tre punti:

517 530 

518 1. Prima che un subagent inizi, la descrizione del compito delegato viene valutata, quindi un compito che sembra pericoloso viene bloccato al momento dello spawn.531 1. Prima che un subagente inizi, la descrizione del compito delegato viene valutata, quindi un compito che sembra pericoloso viene bloccato al momento dello spawn.

519 2. Mentre il subagent viene eseguito, ognuna delle sue azioni passa attraverso il classificatore con le stesse regole della sessione padre, e qualsiasi `permissionMode` nel frontmatter del subagent viene ignorato.532 2. Mentre il subagente viene eseguito, ognuna delle sue azioni passa attraverso il classificatore con le stesse regole della sessione padre, e qualsiasi `permissionMode` nel frontmatter del subagente viene ignorato.

520 3. Quando il subagent finisce, il classificatore esamina il suo lavoro e il suo rapporto finale prima che il padre legga il rapporto. Quando il classificatore contrassegna il lavoro o il rapporto del subagent, o un controllo di sicurezza API separato rifiuta la revisione, il rapporto viene comunque consegnato, anteposto con un avviso di sicurezza. Quando il classificatore non è disponibile per la revisione, il rapporto arriva con una nota per verificare il lavoro del subagent prima di agire su di esso.533 3. Quando il subagente finisce, il classificatore esamina il suo lavoro e il suo rapporto finale prima che il padre legga il rapporto. Quando il classificatore contrassegna il lavoro o il rapporto del subagente, o un controllo di sicurezza API separato rifiuta la revisione, il rapporto viene comunque consegnato, preceduto da un avviso di sicurezza. Quando il classificatore non è disponibile per la revisione, il rapporto arriva con una nota per verificare il lavoro del subagente prima di agire su di esso.

521 </Accordion>534 </Accordion>

522 535 

523 <Accordion title="Costo e latenza">536 <Accordion title="Costo e latenza">

524 Il classificatore viene eseguito su Claude Sonnet 5 per impostazione predefinita piuttosto che sulla tua selezione `/model`. Un modello classificatore che Anthropic configura lato server ha la precedenza su quella impostazione predefinita. Quando il modello della tua sessione è Claude Sonnet 4.6, o quando [`availableModels`](/docs/it/model-config#restrict-model-selection) esclude Sonnet 5, il classificatore viene eseguito sul modello della sessione invece, o su un modello Opus quando la sessione viene eseguita su un [modello Fable](/docs/it/model-config#work-with-fable); su provider diversi dall'API Anthropic, quel fallback Opus è il modello Opus predefinito del provider.537 Il classificatore viene eseguito su Claude Sonnet 5 per impostazione predefinita piuttosto che sulla vostra selezione `/model`. Un modello classificatore che Anthropic configura lato server ha la precedenza su quel default. Quando il modello della vostra sessione è Claude Sonnet 4.6, o quando [`availableModels`](/docs/it/model-config#restrict-model-selection) esclude Sonnet 5, il classificatore viene eseguito sul modello della sessione, o su un modello Opus quando la sessione viene eseguita su un [modello Fable](/docs/it/model-config#work-with-fable); su provider diversi dall'API Anthropic, quel fallback Opus è il modello Opus predefinito del provider.

525 538 

526 La prima richiesta in modalità auto della sessione convalida l'impostazione predefinita di Sonnet 5: se la richiesta ha successo, Sonnet 5 rimane il modello classificatore della sessione, e se fallisce perché il modello non è disponibile, la sessione utilizza il fallback invece. Dopo che quella convalida si stabilizza, il modello del classificatore non cambia per la sessione.539 La prima richiesta in modalità auto della sessione convalida il default Sonnet 5: se la richiesta ha successo, Sonnet 5 rimane il modello classificatore della sessione, e se fallisce perché il modello non è disponibile, la sessione utilizza il fallback. Dopo che quella convalida si stabilizza, il modello del classificatore non cambia per la sessione.

527 540 

528 Su piani Enterprise e su account che utilizzano l'API Claude, [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry, le chiamate del classificatore contano verso il tuo utilizzo di token. Ogni controllo invia una porzione della trascrizione più l'azione in sospeso, aggiungendo un round-trip prima dell'esecuzione. Le letture e le modifiche della directory di lavoro al di fuori dei percorsi protetti saltano il classificatore, quindi l'overhead proviene principalmente da comandi shell e operazioni di rete. Dove il server esamina le azioni come parte delle richieste del modello della sessione, non ci sono richieste del classificatore separate da contare; vedi [Revisione del classificatore lato server](#server-side-classifier-review).541 Su piani Enterprise e su account che utilizzano l'API Claude, [Claude Platform su AWS](/docs/it/claude-platform-on-aws), Amazon Bedrock, Agent Platform di Google Cloud o Microsoft Foundry, le chiamate del classificatore contano verso il vostro utilizzo di token. Ogni controllo invia una porzione della trascrizione più l'azione in sospeso, aggiungendo un round-trip prima dell'esecuzione. Le letture e le modifiche della directory di lavoro al di fuori dei percorsi protetti saltano il classificatore, quindi l'overhead proviene principalmente dai comandi di shell e dalle operazioni di rete. Dove il server esamina le azioni come parte delle richieste del modello della sessione, non ci sono richieste del classificatore separate da contare; consultate [Revisione del classificatore lato server](#server-side-classifier-review).

529 542 

530 L'accesso alla rete in sandbox non aggiunge richieste del classificatore per connessione. Il classificatore giudica [gli host che un comando nomina](/docs/it/sandboxing#per-command-allowed-domains-in-auto-mode) insieme al comando in una revisione, e Claude Code controlla ogni connessione rispetto all'elenco approvato senza chiamare il classificatore di nuovo.543 L'accesso di rete in sandbox non aggiunge richieste del classificatore per connessione. Il classificatore giudica [gli host che un comando nomina](/docs/it/sandboxing#per-command-allowed-domains-in-auto-mode) insieme al comando in una revisione, e Claude Code controlla ogni connessione rispetto all'elenco approvato senza chiamare il classificatore di nuovo.

531 </Accordion>544 </Accordion>

532</AccordionGroup>545</AccordionGroup>

533 546 

permissions.md +5 −5

Details

278 Comandi di sola lettura278 Comandi di sola lettura

279</h4>279</h4>

280 280 

281Claude Code riconosce un insieme integrato di comandi Bash come di sola lettura e li esegue senza un prompt di autorizzazione in ogni modalità, tranne per un percorso che [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) protegge. L'insieme include `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` e forme di sola lettura di `git`. L'insieme non è configurabile; per richiedere un prompt per uno di questi comandi, aggiungete una regola `ask` o `deny` per esso.281Claude Code riconosce un insieme integrato di comandi Bash come di sola lettura e li esegue senza un prompt di autorizzazione in ogni modalità, tranne per un percorso che [`permissions.blockReadsOutsideWorkingDirectories`](/docs/it/settings-reference#permissions-blockreadsoutsideworkingdirectories) protegge. L'insieme include `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` e forme di sola lettura di `git`. L'insieme non è configurabile; per richiedere un prompt per uno di questi comandi, aggiungete una regola `ask` o `deny` per esso. In modalità auto, questi comandi possono anche attendere la revisione del classificatore; vedere [come il classificatore valuta le azioni](/docs/it/permission-modes#how-the-classifier-evaluates-actions).

282 282 

283Un reindirizzamento come `ls > out.txt` aggiunge un controllo sul target. Vedere [Redirections](#redirections).283Un reindirizzamento come `ls > out.txt` aggiunge un controllo sul target. Vedere [Redirections](#redirections).

284 284 


605 605 

606* Le sue impostazioni di progetto, incluse le loro regole di autorizzazione e [hooks](/docs/it/hooks)606* Le sue impostazioni di progetto, incluse le loro regole di autorizzazione e [hooks](/docs/it/hooks)

607* I suoi server [`.mcp.json`](/docs/it/mcp#project-scope), soggetti alla stessa [approvazione del server](/docs/it/mcp#project-server-approvals-and-workspace-trust) come all'avvio, e i server MCP [local-scope](/docs/it/mcp#local-scope) che avete registrato in esso607* I suoi server [`.mcp.json`](/docs/it/mcp#project-scope), soggetti alla stessa [approvazione del server](/docs/it/mcp#project-server-approvals-and-workspace-trust) come all'avvio, e i server MCP [local-scope](/docs/it/mcp#local-scope) che avete registrato in esso

608* I [plugin](/docs/it/plugins) che le sue impostazioni abilitano, le sue [skills](/docs/it/skills#discovery-from-parent-and-nested-directories) e i suoi [subagents](/docs/it/sub-agents)608* I [plugin](/docs/it/plugins/overview) che le sue impostazioni abilitano, le sue [skills](/docs/it/skills#discovery-from-parent-and-nested-directories) e i suoi [subagents](/docs/it/sub-agents)

609* I suoi valori [`env`](/docs/it/settings-reference#env), applicati sopra le variabili di ambiente dalle impostazioni della directory precedente, che rimangono in vigore609* I suoi valori [`env`](/docs/it/settings-reference#env), applicati sopra le variabili di ambiente dalle impostazioni della directory precedente, che rimangono in vigore

610 610 

611Claude Code disconnette anche i server MCP [local-scope](/docs/it/mcp#local-scope) e del progetto della directory precedente, e i server dei [plugin](/docs/it/mcp#plugin-provided-mcp-servers) che non sono più abilitati dopo lo spostamento. Prende le [directory aggiuntive](#working-directories) dalle impostazioni della nuova directory invece da quella precedente, e mantiene le directory che avete aggiunto con `--add-dir` o `/add-dir`. Gli hooks che lo spostamento attiva ricevono ancora [`${CLAUDE_PROJECT_DIR}`](/docs/it/hooks#reference-scripts-by-path) impostato alla radice del progetto dove la sessione è iniziata.611Claude Code disconnette anche i server MCP [local-scope](/docs/it/mcp#local-scope) e del progetto della directory precedente, e i server dei [plugin](/docs/it/mcp#plugin-provided-mcp-servers) che non sono più abilitati dopo lo spostamento. Prende le [directory aggiuntive](#working-directories) dalle impostazioni della nuova directory invece da quella precedente, e mantiene le directory che avete aggiunto con `--add-dir` o `/add-dir`. Gli hooks che lo spostamento attiva ricevono ancora [`${CLAUDE_PROJECT_DIR}`](/docs/it/hooks#reference-scripts-by-path) impostato alla radice del progetto dove la sessione è iniziata.


641Per condividere quella configurazione tra progetti, utilizzate uno di questi approcci:641Per condividere quella configurazione tra progetti, utilizzate uno di questi approcci:

642 642 

643* **Configurazione a livello utente**: posizionate i file in `~/.claude/agents/`, `~/.claude/output-styles/` o `~/.claude/settings.json` per renderli disponibili in ogni progetto643* **Configurazione a livello utente**: posizionate i file in `~/.claude/agents/`, `~/.claude/output-styles/` o `~/.claude/settings.json` per renderli disponibili in ogni progetto

644* **Plugin**: pacchetto e distribuite la configurazione come [plugin](/docs/it/plugins) che i team possono installare644* **Plugin**: pacchetto e distribuite la configurazione come [plugin](/docs/it/plugins/overview) che i team possono installare

645* **Avviate dalla directory di configurazione**: eseguite Claude Code dalla directory contenente la configurazione `.claude/` che desiderate645* **Avviate dalla directory di configurazione**: eseguite Claude Code dalla directory contenente la configurazione `.claude/` che desiderate

646 646 

647<h2 id="how-permissions-interact-with-sandboxing">647<h2 id="how-permissions-interact-with-sandboxing">


729Ogni riga è un tipo di contenuto che un repository può fornire. Le colonne sono le due situazioni in cui non avete fidata la cartella stessa: avete fidata solo una cartella genitore, o avete eseguito `claude -p` o l'SDK lì, che non mostra mai la finestra di dialogo di trust. La colonna della cartella genitore non si applica all'interno di un [repository annidato](#project-allow-rules-and-workspace-trust): in una sessione interattiva Claude Code mostra la finestra di dialogo di trust per essa, e un'esecuzione `claude -p` o SDK lì segue la colonna `claude -p`.729Ogni riga è un tipo di contenuto che un repository può fornire. Le colonne sono le due situazioni in cui non avete fidata la cartella stessa: avete fidata solo una cartella genitore, o avete eseguito `claude -p` o l'SDK lì, che non mostra mai la finestra di dialogo di trust. La colonna della cartella genitore non si applica all'interno di un [repository annidato](#project-allow-rules-and-workspace-trust): in una sessione interattiva Claude Code mostra la finestra di dialogo di trust per essa, e un'esecuzione `claude -p` o SDK lì segue la colonna `claude -p`.

730 730 

731| Cosa fornisce il repository | Avete fidata solo una cartella genitore | `claude -p` o l'SDK, cartella mai fidata |731| Cosa fornisce il repository | Avete fidata solo una cartella genitore | `claude -p` o l'SDK, cartella mai fidata |

732| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |732| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

733| [Hooks](/docs/it/hooks) nei file di impostazioni, il blocco [`env`](/docs/it/settings-reference#env) e comandi helper come [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper), e gli [hooks](/docs/it/hooks#hooks-in-skills-and-agents) di una skill del progetto e [`allowed-tools`](/docs/it/skills#pre-approve-tools-for-a-skill) | Utilizzati | Utilizzati. Il trust dell'area di lavoro non blocca mai `allowed-tools` di una skill in nessuna sessione |733| [Hooks](/docs/it/hooks) nei file di impostazioni, il blocco [`env`](/docs/it/settings-reference#env) e comandi helper come [`apiKeyHelper`](/docs/it/settings-reference#apikeyhelper), e gli [hooks](/docs/it/hooks#hooks-in-skills-and-agents) di una skill del progetto e [`allowed-tools`](/docs/it/skills#pre-approve-tools-for-a-skill) | Utilizzati | Utilizzati. Il trust dell'area di lavoro non blocca mai `allowed-tools` di una skill in nessuna sessione |

734| Regole `permissions.allow` e `additionalDirectories` in `.claude/settings.json` | Non utilizzate fino a quando non accettate la finestra di dialogo di trust, che appare di nuovo elencandole | Non utilizzate. Claude Code stampa un avviso [`this workspace has not been trusted`](/docs/it/errors#workspace-has-not-been-trusted) su stderr |734| Regole `permissions.allow` e `additionalDirectories` in `.claude/settings.json` | Non utilizzate fino a quando non accettate la finestra di dialogo di trust, che appare di nuovo elencandole | Non utilizzate. Claude Code stampa un avviso [`this workspace has not been trusted`](/docs/it/errors#workspace-has-not-been-trusted) su stderr |

735| Hook nel frontmatter di un [subagent](/docs/it/sub-agents#hooks-in-subagent-frontmatter) del progetto, un plugin [`@skills-dir`](/docs/it/plugins-reference#skills-directory-plugins) del progetto, e voci [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces) dal repository o da una directory `--add-dir` | Non utilizzate, e nessuna finestra di dialogo è offerta | Non utilizzate |735| Hook nel frontmatter di un [subagent](/docs/it/sub-agents#hooks-in-subagent-frontmatter) del progetto, un plugin [`@skills-dir`](/docs/it/plugins/loading#plugins-shared-through-a-repository) del progetto, e voci [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces) dal repository o da una directory `--add-dir` | Non utilizzate, e nessuna finestra di dialogo è offerta | Non utilizzate |

736| [`mcpServers`](/docs/it/sub-agents#scope-mcp-servers-to-a-subagent) inline nel frontmatter di un subagent dal repository o da una directory `--add-dir`. Prima della v2.1.238, Claude Code caricava questi server in entrambe le situazioni | Non utilizzate, e nessuna finestra di dialogo è offerta | Non utilizzate |736| [`mcpServers`](/docs/it/sub-agents#scope-mcp-servers-to-a-subagent) inline nel frontmatter di un subagent dal repository o da una directory `--add-dir`. Prima della v2.1.238, Claude Code caricava questi server in entrambe le situazioni | Non utilizzate, e nessuna finestra di dialogo è offerta | Non utilizzate |

737| Server in `.mcp.json`, inclusi quelli che il repository [approva nelle sue stesse impostazioni](/docs/it/mcp#project-server-approvals-and-workspace-trust) | Claude Code vi chiede prima di connettersi ad essi. Le approvazioni del repository stesso non contano | Connessi senza chiedere, approvati o no. L'SDK li carica solo quando `settingSources` include impostazioni del progetto. `claude mcp list` nella stessa cartella riporta comunque tale server come in sospeso |737| Server in `.mcp.json`, inclusi quelli che il repository [approva nelle sue stesse impostazioni](/docs/it/mcp#project-server-approvals-and-workspace-trust) | Claude Code vi chiede prima di connettersi ad essi. Le approvazioni del repository stesso non contano | Connessi senza chiedere, approvati o no. L'SDK li carica solo quando `settingSources` include impostazioni del progetto. `claude mcp list` nella stessa cartella riporta comunque tale server come in sospeso |

738| Un [`headersHelper`](/docs/it/mcp#trust-a-folder-before-its-headershelper-runs) su un server in `.mcp.json`. Prima della v2.1.238, Claude Code eseguiva l'helper in entrambe le situazioni | Non eseguito fino a quando non accettate la finestra di dialogo di trust, che appare di nuovo nominando dove l'helper è dichiarato. Claude Code connette il server con i suoi soli `headers` statici fino ad allora | Non eseguito. Claude Code connette il server con i suoi soli `headers` statici e stampa una riga [`headersHelper not run`](/docs/it/errors#headershelper-not-run) per server su stderr |738| Un [`headersHelper`](/docs/it/mcp#trust-a-folder-before-its-headershelper-runs) su un server in `.mcp.json`. Prima della v2.1.238, Claude Code eseguiva l'helper in entrambe le situazioni | Non eseguito fino a quando non accettate la finestra di dialogo di trust, che appare di nuovo nominando dove l'helper è dichiarato. Claude Code connette il server con i suoi soli `headers` statici fino ad allora | Non eseguito. Claude Code connette il server con i suoi soli `headers` statici e stampa una riga [`headersHelper not run`](/docs/it/errors#headershelper-not-run) per server su stderr |

platforms.md +3 −3

Details

34Le integrazioni consentono a Claude di lavorare con servizi al di fuori della tua base di codice.34Le integrazioni consentono a Claude di lavorare con servizi al di fuori della tua base di codice.

35 35 

36| Integrazione | Cosa fa | Usala per |36| Integrazione | Cosa fa | Usala per |

37| :----------------------------------- | :------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------ |37| :----------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------ |

38| [Chrome](/docs/it/chrome) | Controlla il tuo browser con le tue sessioni connesse | Test di app web, compilazione moduli, automazione siti senza API |38| [Chrome](/docs/it/chrome) | Controlla il tuo browser con le tue sessioni connesse | Test di app web, compilazione moduli, automazione siti senza API |

39| [GitHub Actions](/docs/it/github-actions) | Esegue Claude nella tua pipeline CI | Revisioni PR automatizzate, triage problemi, manutenzione programmata |39| [GitHub Actions](/docs/it/github-actions) | Esegue Claude nella tua pipeline CI | Revisioni PR automatizzate, triage problemi, manutenzione programmata |

40| [GitLab CI/CD](/docs/it/gitlab-ci-cd) | Come GitHub Actions per GitLab | Automazione guidata da CI su GitLab |40| [GitLab CI/CD](/docs/it/gitlab-ci-cd) | Come GitHub Actions per GitLab | Automazione guidata da CI su GitLab |

41| [Code Review](/docs/it/code-review) | Rivede automaticamente ogni PR | Catturare bug prima della revisione umana |41| [Code Review](/docs/it/code-review) | Rivede automaticamente ogni PR | Catturare bug prima della revisione umana |

42| [Slack](/docs/it/slack) | Risponde alle menzioni `@Claude` nei tuoi canali | Trasformare segnalazioni di bug in pull request dalla chat del team |42| [Slack](/docs/it/slack) | Risponde alle menzioni `@Claude` nei tuoi canali | Trasformare segnalazioni di bug in pull request dalla chat del team |

43| [Claude Tag](/docs/it/claude-tag) | Esegue `@Claude` come identità condivisa della tua organizzazione con accesso configurato dall'amministratore | Accesso condiviso del team su piani Team ed Enterprise, invece di sessioni Slack per utente |43| [Claude Tag](https://claude.com/docs/claude-tag) | Esegue `@Claude` come identità condivisa della tua organizzazione con accesso configurato dall'amministratore | Accesso condiviso del team su piani Team ed Enterprise, invece di sessioni Slack per utente |

44 44 

45Per integrazioni non elencate qui, [server MCP](/docs/it/mcp) e [connettori](/docs/it/desktop#connect-external-tools) ti permettono di collegare quasi tutto: Linear, Notion, Google Drive o le tue API interne.45Per integrazioni non elencate qui, [server MCP](/docs/it/mcp) e [connettori](/docs/it/desktop#connect-external-tools) ti permettono di collegare quasi tutto: Linear, Notion, Google Drive o le tue API interne.

46 46 


87* [GitLab CI/CD](/docs/it/gitlab-ci-cd): lo stesso per GitLab87* [GitLab CI/CD](/docs/it/gitlab-ci-cd): lo stesso per GitLab

88* [Code Review](/docs/it/code-review): revisione automatica su ogni pull request88* [Code Review](/docs/it/code-review): revisione automatica su ogni pull request

89* [Slack](/docs/it/slack): invia attività dalla chat del team, ricevi PR indietro89* [Slack](/docs/it/slack): invia attività dalla chat del team, ricevi PR indietro

90* [Claude Tag](/docs/it/claude-tag): esegui `@Claude` come identità condivisa della tua organizzazione su piani Team ed Enterprise90* [Claude Tag](https://claude.com/docs/claude-tag): esegui `@Claude` come identità condivisa della tua organizzazione su piani Team ed Enterprise

91 91 

92<h3 id="remote-access">92<h3 id="remote-access">

93 Accesso remoto93 Accesso remoto

plugin-dependencies.md +0 −267 deleted

File Deleted View Diff

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# Vincola le versioni delle dipendenze dei plugin

6 

7> Dichiara vincoli di versione sulle dipendenze dei plugin e raggruppa un set di plugin curato dietro un'unica installazione.

8 

9Un plugin può dipendere da altri plugin elencandoli in `plugin.json` o nella sua voce del marketplace. Per impostazione predefinita, una dipendenza traccia la versione più recente disponibile, quindi un rilascio upstream può modificare la dipendenza del tuo plugin senza preavviso. I vincoli di versione consentono di mantenere una dipendenza a un intervallo di versione testato fino a quando non scegli di passare a una versione più recente.

10 

11Quando installi un plugin che dichiara dipendenze, Claude Code le risolve e le installa automaticamente, ad eccezione di una dipendenza la cui voce del marketplace ha una [`command` source](/docs/it/plugin-marketplaces#how-users-accept-the-command) o una [`headersHelper`](/docs/it/plugin-marketplaces#how-users-accept-a-headershelper-command), che installi tu stesso per primo. Successivamente, `/reload-plugins`, l'aggiornamento automatico del marketplace del plugin dipendente, l'esecuzione nuova di `claude plugin install` sul plugin dipendente e `claude plugin marketplace add` installano ciascuno qualsiasi dipendenza dichiarata che non sia ancora installata, secondo le stesse regole; se una rimane non risolta, vedi [Risolvi gli errori di dipendenza](#resolve-dependency-errors).

12 

13Questa guida è per gli autori di plugin che dichiarano dipendenze in `plugin.json` e per i manutentori del marketplace che taggano i rilasci. Le dipendenze qui sono altri plugin; per i pacchetti npm e Bun che un plugin stesso utilizza, vedi [Dipendenze dei pacchetti Node.js](/docs/it/plugins-reference#node-js-package-dependencies). Per installare plugin che hanno dipendenze, vedi [Scopri e installa plugin](/docs/it/discover-plugins). Per lo schema completo del manifest, vedi il [Riferimento dei plugin](/docs/it/plugins-reference).

14 

15<h2 id="why-constrain-dependency-versions">

16 Perché vincolare le versioni delle dipendenze

17</h2>

18 

19Considera un marketplace interno in cui due team pubblicano plugin. Il team della piattaforma mantiene `secrets-vault`, un server MCP che avvolge un backend di segreti. Il team di deploy mantiene `deploy-kit`, che chiama `secrets-vault` per recuperare le credenziali durante i deploy.

20 

21`deploy-kit` è testato rispetto a `secrets-vault` v2.1.0. Senza un vincolo di versione, la prossima volta che il team della piattaforma tagga un rilascio che rinomina uno strumento MCP, l'aggiornamento automatico sposta `secrets-vault` di ogni ingegnere alla nuova versione e `deploy-kit` si rompe.

22 

23Con un vincolo di versione, `deploy-kit` dichiara che ha bisogno di `secrets-vault` nell'intervallo `~2.1.0`. Gli ingegneri con `deploy-kit` installato rimangono sulla patch `2.1.x` più alta corrispondente. Il team di deploy esegue l'aggiornamento secondo il proprio programma pubblicando una nuova versione di `deploy-kit` con un vincolo più ampio.

24 

25<h2 id="declare-a-dependency-with-a-version-constraint">

26 Dichiara una dipendenza con un vincolo di versione

27</h2>

28 

29Elenca le dipendenze nell'array `dependencies` del file `.claude-plugin/plugin.json` del tuo plugin.

30 

31Il seguente manifest dichiara una dipendenza senza versione e una dipendenza vincolata:

32 

33```json .claude-plugin/plugin.json theme={null}

34{

35 "name": "deploy-kit",

36 "version": "3.1.0",

37 "dependencies": [

38 "audit-logger",

39 { "name": "secrets-vault", "version": "~2.1.0" }

40 ]

41}

42```

43 

44Una voce può essere una stringa semplice con solo il nome del plugin, come `"audit-logger"` nel manifest `deploy-kit`, che dipende da qualsiasi versione fornita dal marketplace di quel plugin. Per un maggiore controllo, usa un oggetto con questi campi:

45 

46| Campo | Tipo | Descrizione |

47| :------------ | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

48| `name` | string | Nome del plugin. Si risolve all'interno dello stesso marketplace del plugin dichiarante. Obbligatorio. |

49| `version` | string | Un [intervallo semver](https://github.com/npm/node-semver#ranges) come `~2.1.0`, `^2.0`, `>=1.4`, o `=2.1.0`. La dipendenza viene recuperata alla versione taggata più alta che soddisfa questo intervallo. |

50| `marketplace` | string | Un marketplace diverso in cui risolvere `name`. Le dipendenze cross-marketplace sono bloccate a meno che il marketplace di destinazione non sia elencato in [`allowCrossMarketplaceDependenciesOn`](#depend-on-a-plugin-from-another-marketplace) nel file `marketplace.json` del marketplace root. |

51 

52Le versioni pre-release come `2.0.0-beta.1` sono escluse a meno che il tuo intervallo non opti per un suffisso pre-release come `^2.0.0-0`.

53 

54<h2 id="bundle-plugins-for-a-team">

55 Raggruppare i plugin per un team

56</h2>

57 

58Oltre al `name` obbligatorio, un manifest di plugin può consistere solo in un array `dependencies`. L'installazione di questo plugin scarica tutte le dipendenze, il che lo rende un modo per raggruppare un set di plugin curato dietro un'unica installazione.

59 

60Ad esempio, un team di piattaforma può pubblicare bundle specifici per ruolo in un marketplace interno in modo che gli ingegneri eseguano un solo `claude plugin install` invece di installare ogni strumento separatamente:

61 

62```json .claude-plugin/plugin.json theme={null}

63{

64 "name": "backend-standard",

65 "version": "1.0.0",

66 "description": "Standard plugin set for backend engineers",

67 "dependencies": [

68 "secrets-vault",

69 "deploy-kit",

70 { "name": "db-migrate", "version": "^3.0" },

71 "oncall-runbook"

72 ]

73}

74```

75 

76L'installazione di `backend-standard` risolve e installa tutte e quattro le dipendenze.

77 

78Per aggiungere uno strumento al set standard in seguito, pubblicare una nuova versione di `backend-standard` con la dipendenza aggiuntiva. A meno che il marketplace non [auto-aggiorni](/docs/it/discover-plugins#configure-auto-updates), gli ingegneri acquisiscono la nuova versione in uno di due modi:

79 

80* Abilitare l'auto-aggiornamento per il marketplace in `/plugin`. Il prossimo auto-aggiornamento sposta il bundle alla nuova versione e installa tutte le dipendenze che aggiunge.

81* Eseguire `claude plugin update backend-standard`, quindi `/reload-plugins` per installare le dipendenze appena aggiunte.

82 

83Per distribuire i bundle in tutta l'organizzazione, aggiungere il plugin bundle a `enabledPlugins` nelle [impostazioni gestite](/docs/it/settings-reference#enabledplugins).

84 

85<h2 id="depend-on-a-plugin-from-another-marketplace">

86 Dipendi da un plugin di un altro marketplace

87</h2>

88 

89Per impostazione predefinita, Claude Code rifiuta di installare automaticamente una dipendenza che si trova in un marketplace diverso da quello del plugin che la dichiara. Questo impedisce a un marketplace di estrarre silenziosamente plugin da una fonte che non hai revisionato.

90 

91Per consentirlo, il manutentore del marketplace root aggiunge il nome del marketplace di destinazione a `allowCrossMarketplaceDependenciesOn` in `marketplace.json`. Il marketplace root è quello che ospita il plugin che l'utente sta installando; solo la sua lista di autorizzazione viene consultata, quindi la fiducia non si propaga attraverso i marketplace intermedi.

92 

93Il seguente `marketplace.json` consente a `deploy-kit` di dipendere da un plugin di `acme-shared`:

94 

95```json .claude-plugin/marketplace.json theme={null}

96{

97 "name": "acme-tools",

98 "owner": { "name": "Acme" },

99 "allowCrossMarketplaceDependenciesOn": ["acme-shared"],

100 "plugins": [

101 {

102 "name": "deploy-kit",

103 "source": "./deploy-kit",

104 "dependencies": [

105 { "name": "audit-logger", "marketplace": "acme-shared" }

106 ]

107 }

108 ]

109}

110```

111 

112Se il campo è mancante o non include il marketplace di destinazione, l'installazione fallisce con un errore `cross-marketplace` che nomina il campo da impostare. Gli utenti possono comunque installare manualmente la dipendenza per prima, il che soddisfa il vincolo senza modificare la lista di autorizzazione.

113 

114<h2 id="test-a-plugin-and-its-dependency-locally">

115 Testare un plugin e la sua dipendenza localmente

116</h2>

117 

118Se state sviluppando un plugin e il plugin da cui dipende contemporaneamente, caricate entrambi con `--plugin-dir`:

119 

120```bash theme={null}

121claude --plugin-dir ./my-dependency --plugin-dir ./my-plugin

122```

123 

124La copia locale della dipendenza soddisfa la voce di dipendenza del vostro plugin, anche quando la voce nomina un marketplace, quindi non è necessario installare la dipendenza dal suo marketplace. Claude Code non controlla un [vincolo di versione](#declare-a-dependency-with-a-version-constraint) rispetto a una copia locale, quindi il `plugin.json` locale non ha bisogno di una `version`. Prima della v2.1.242, una voce di dipendenza che nominava un marketplace non corrispondeva mai alla copia locale, e Claude Code disabilitava il vostro plugin al caricamento.

125 

126Quando entrambi i plugin si trovano in una cartella padre, potete passare quella cartella a `--plugin-dir` una sola volta. Se la cartella non è essa stessa un plugin, Claude Code carica ogni cartella figlio che ha un `.claude-plugin/plugin.json`. Richiede Claude Code v2.1.265 o successivo.

127 

128Se non avete installato la dipendenza dal suo marketplace, il vostro plugin smette di caricarsi quando la copia locale scompare:

129 

130* **Avete disabilitato la copia locale**: Claude Code disabilita il vostro plugin al prossimo caricamento del plugin. Per una voce di dipendenza che nomina un marketplace, Claude Code segnala `Dependency "<name>@inline" is disabled — enable it or remove the dependency`; per una voce con nome semplice, la segnala per il suo nome semplice. `<name>@inline` è il modo in cui Claude Code identifica ogni plugin `--plugin-dir` e `--plugin-url`.

131* **Avete avviato una sessione senza il flag `--plugin-dir` della dipendenza**: Claude Code segnala la dipendenza come non installata. Passate di nuovo il flag, oppure installate la dipendenza dal suo marketplace.

132 

133<h2 id="tag-plugin-releases-for-version-resolution">

134 Rilasci di tag plugin per la risoluzione delle versioni

135</h2>

136 

137Claude Code risolve i vincoli di versione rispetto ai tag git nel repository che ospita la dipendenza: il repository del plugin stesso per le [fonti plugin](/docs/it/plugin-marketplaces#plugin-sources) `github`, `url` e `git-subdir`, oppure il repository del marketplace per un plugin a cui il marketplace fa riferimento tramite un percorso relativo. Affinché Claude Code trovi le versioni disponibili di una dipendenza, i rilasci del plugin upstream devono essere taggati utilizzando una convenzione di denominazione specifica.

138 

139Tagga ogni rilascio come `{plugin-name}--v{version}`, dove `{version}` corrisponde al campo `version` nel `plugin.json` di quel commit. Dalla directory del plugin, esegui:

140 

141```bash theme={null}

142claude plugin tag --push

143```

144 

145Il comando `claude plugin tag` deriva il nome del tag dal manifest del plugin e dalla voce del marketplace che lo contiene. Prima di creare il tag, convalida il contenuto del plugin, verifica che `plugin.json` e la voce del marketplace concordino sulla versione, richiede un albero di lavoro pulito nella directory del plugin e rifiuta se il tag esiste già.

146 

147* `--push` spinge il tag al remote `origin`, quindi il repository ha bisogno di un remote `origin` configurato. Passa `--remote` per spingere a uno diverso.

148* Se lo spinta fallisce, il tag viene comunque creato localmente e il comando esce con un errore.

149* Con `--push`, un'esecuzione riuscita termina con `Created tag secrets-vault--v2.1.0` e `Pushed to origin`, dove l'ultima riga nomina il remote a cui è stato spinto. Senza `--push`, il comando stampa il comando `git push` da eseguire.

150* `--dry-run` stampa ciò che verrebbe taggato senza crearlo.

151 

152Eseguire `git tag secrets-vault--v2.1.0` direttamente è equivalente se mantieni `plugin.json` e la voce del marketplace sincronizzati da solo.

153 

154Il prefisso del nome del plugin consente a un repository del marketplace di ospitare più plugin con linee di versione indipendenti. Il separatore `--v` viene analizzato come una corrispondenza di prefisso sul nome completo del plugin, quindi i nomi dei plugin che contengono trattini vengono gestiti correttamente.

155 

156Quando installi un plugin che dichiara `{ "name": "secrets-vault", "version": "~2.1.0" }`, Claude Code elenca i tag nel repository che ospita `secrets-vault`, filtra quelli che iniziano con `secrets-vault--v` e recupera la versione più alta che soddisfa `~2.1.0`. Se nessun tag nel repository del plugin stesso soddisfa l'intervallo, l'installazione fallisce con `Dependency "secrets-vault@acme-tools" has no git tag satisfying ~2.1.0`, che nomina la dipendenza insieme al suo marketplace. Per un plugin con percorso relativo senza tag corrispondente, Claude Code installa la copia corrente del marketplace e verifica il vincolo quando il plugin viene caricato.

157 

158Per un plugin a cui il marketplace fa riferimento tramite un percorso relativo, un marketplace aggiunto come percorso di cartella locale risolve i tag nello stesso modo quando la cartella è un repository git. Ciò richiede Claude Code v2.1.196 o successivo. In due casi Claude Code installa la dipendenza dal contenuto corrente della cartella:

159 

160* Le versioni precedenti non leggono i tag da un marketplace di cartella locale, quindi una dipendenza vincolata viene caricata solo se quella copia soddisfa l'intervallo.

161* Una cartella locale che non è un repository git non ha tag, indipendentemente dalla versione.

162 

163Il semver del tag risolto viene registrato separatamente dalla `version` di `plugin.json`, quindi i controlli dei vincoli utilizzano il tag che è stato effettivamente recuperato anche se `plugin.json` in quel commit ha un valore obsoleto. Il nome della directory della cache per un'installazione risolta da tag include un suffisso SHA commit di 12 caratteri, quindi se un manutentore sposta forzatamente un tag a un commit diverso, l'installazione successiva ottiene una directory della cache nuova invece di riutilizzare contenuto obsoleto.

164 

165<Note>

166 Per le dipendenze con una [fonte plugin](/docs/it/plugin-marketplaces#plugin-sources) `npm`, `archive` o `command`, il vincolo non controlla quale versione viene recuperata, poiché la risoluzione basata su tag si applica solo alle fonti supportate da git. Il vincolo viene comunque verificato al momento del caricamento e il plugin dipendente viene disabilitato con `dependency-version-unsatisfied` se la versione installata non lo soddisfa. Per una fonte `command`, Claude Code verifica la versione nel `plugin.json` della dipendenza e ignora il suffisso dell'hash del contenuto; una dipendenza il cui `plugin.json` non imposta alcuna versione non soddisfa alcun vincolo, quindi impostane uno prima di vincolarlo.

167 

168 Claude Code non installa mai una dipendenza con una fonte `command` da solo, quindi gli utenti [la installano prima](/docs/it/plugin-marketplaces#how-users-accept-the-command). Claude Code non esegue mai nemmeno `headersHelper` su una voce del marketplace di una dipendenza, quindi gli utenti [installano prima quel plugin](/docs/it/plugin-marketplaces#how-users-accept-a-headershelper-command).

169</Note>

170 

171<h2 id="how-constraints-interact">

172 Come i vincoli interagiscono

173</h2>

174 

175Quando più plugin installati vincolano la stessa dipendenza, Claude Code interseca i loro intervalli e risolve la dipendenza alla versione più alta che soddisfa tutti loro. La tabella seguente mostra come si risolvono le combinazioni comuni.

176 

177| Plugin A richiede | Plugin B richiede | Risultato |

178| :---------------- | :---------------- | :------------------------------------------------------------------------------------------------------------------------ |

179| `^2.0` | `>=2.1` | Un'installazione al tag `2.x` più alto a o sopra `2.1.0`. Entrambi i plugin si caricano. |

180| `~2.1` | `~3.0` | L'installazione del plugin B fallisce con `range-conflict`. Plugin A e la dipendenza rimangono come erano. |

181| `=2.1.0` | nessuno | La dipendenza rimane a `2.1.0`. L'aggiornamento automatico salta le versioni più recenti mentre il plugin A è installato. |

182 

183L'aggiornamento automatico recupera una dipendenza vincolata al tag git più alto che soddisfa l'intervallo di ogni plugin installato, piuttosto che alla versione più recente del marketplace, quindi la dipendenza continua a ricevere aggiornamenti all'interno del suo intervallo consentito. Se nessun tag soddisfa tutti gli intervalli, l'aggiornamento automatico salta quella dipendenza e elenca il salto nella scheda Errori di `/plugin`, nominando il plugin vincolante.

184 

185Quando disinstalli l'ultimo plugin che vincola una dipendenza, la dipendenza non viene più mantenuta e riprende a tracciare la sua voce del marketplace al prossimo aggiornamento.

186 

187<h2 id="enable-or-disable-a-plugin-with-dependencies">

188 Abilita o disabilita un plugin con dipendenze

189</h2>

190 

191Questa sezione copre i plugin installati da un marketplace. Per una copia che hai caricato con `--plugin-dir`, vedi [Testa un plugin e la sua dipendenza localmente](#test-a-plugin-and-its-dependency-locally).

192 

193L'abilitazione di un plugin abilita anche i plugin da cui dipende, e la disabilitazione di un plugin è bloccata se un altro plugin abilitato ne ha ancora bisogno.

194 

195Quando abiliti un plugin, Claude Code abilita anche le sue dipendenze nello stesso ambito. Se una dipendenza ha le sue dipendenze, Claude Code abilita anche quelle. Il messaggio di successo elenca cos'altro è stato abilitato insieme al plugin che hai denominato. Se una dipendenza non può essere abilitata, il comando rifiuta e ti dice cosa sta bloccando e come risolvere:

196 

197| Condizione | Risultato |

198| :---------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |

199| Una dipendenza non è installata | L'abilitazione fallisce e stampa il comando `claude plugin install` per ogni dipendenza mancante. |

200| Una dipendenza è bloccata dalla politica dei plugin della tua organizzazione | L'abilitazione fallisce e nomina la dipendenza bloccata. |

201| Una dipendenza è impostata su `false` a un ambito con precedenza più alta dell'ambito di destinazione | L'abilitazione fallisce. Abilita la dipendenza a quell'ambito, o passa `--scope` per scrivere lì. |

202| Tutte le dipendenze sono installate e consentite | L'abilitazione ha successo e scrive `true` per il plugin e ogni dipendenza che non era già abilitata all'ambito di destinazione. |

203 

204Questo vale anche quando una dipendenza imposta [`defaultEnabled: false`](/docs/it/plugins-reference#default-enablement) nel suo manifest, perché Claude Code scrive un `true` esplicito per essa. Lo stesso vale all'installazione: una dipendenza richiamata per soddisfare un plugin attivo si installa con `true` indipendentemente dal suo valore predefinito.

205 

206Quando disabiliti un plugin, Claude Code rifiuta se un altro plugin abilitato ne dipende ancora. L'errore nomina i plugin che ne dipendono e ti fornisce un comando concatenato che li disabilita nell'ordine corretto, terminando con quello che hai richiesto.

207 

208Ad esempio, se `deploy-kit` dipende da `secrets-vault`, la disabilitazione di `secrets-vault` da sola fallisce con un output simile al seguente:

209 

210```text theme={null}

211secrets-vault is still required by deploy-kit. Disable that plugin first, or

212disable everything together: claude plugin disable deploy-kit@acme-tools && claude plugin disable secrets-vault@acme-tools

213```

214 

215Copia il comando concatenato dall'errore per disabilitare l'intero set in un unico passaggio.

216 

217<h2 id="remove-orphaned-auto-installed-dependencies">

218 Rimuovi le dipendenze auto-installate orfane

219</h2>

220 

221Le dipendenze auto-installate rimangono su disco dopo che i plugin che le hanno installate vengono disinstallati, nel caso in cui tu voglia reinstallare un plugin dipendente o desideri continuare a utilizzare la dipendenza direttamente. Per pulirle, esegui `claude plugin prune` per elencare le dipendenze auto-installate che non hanno più alcun plugin installato che le richiede e rimuoverle dopo un prompt di conferma.

222 

223```bash theme={null}

224claude plugin prune

225```

226 

227Se nulla si qualifica per la rimozione, il comando stampa `Nothing to prune` con il motivo ed esce. Questo è l'output previsto su un'installazione nuova, non un errore.

228 

229Per impostazione predefinita, prune opera a livello di utente e chiede conferma prima di rimuovere qualsiasi cosa:

230 

231* `--scope project` o `--scope local` indirizza un ambito diverso.

232* `--dry-run` elenca cosa verrebbe rimosso senza modificare nulla.

233* `-y` salta il prompt di conferma. Quando stdin o stdout non è un terminale, prune elenca gli orfani ed esce senza rimuoverli a meno che non venga passato `-y`.

234 

235Per eseguire prune come parte di una disinstallazione, passa `--prune` a `claude plugin uninstall`. Dopo aver rimosso il plugin denominato, Claude Code scansiona e rimuove eventuali dipendenze auto-installate che sono ora orfane. I plugin che hai installato tu stesso non vengono mai eliminati, solo quelli installati automaticamente attraverso l'array `dependencies` di un altro plugin.

236 

237Lo stesso comportamento di conferma si applica. Quando stdin o stdout non è un terminale, la disinstallazione si completa comunque, ma il passaggio prune elenca gli orfani e non rimuove nulla a meno che non venga passato `-y`.

238 

239Ad esempio, per disinstallare `deploy-kit` e pulire le dipendenze che lascia dietro:

240 

241```bash theme={null}

242claude plugin uninstall deploy-kit --prune

243```

244 

245<h2 id="resolve-dependency-errors">

246 Risolvi gli errori delle dipendenze

247</h2>

248 

249I problemi di dipendenza emergono in `claude plugin list` e nell'interfaccia `/plugin`, come messaggi di errore descrittivi anziché i codici letterali in questa tabella. Claude Code disabilita il plugin interessato fino a quando non risolvi l'errore. La tabella seguente elenca gli errori più comuni e come risolverli.

250 

251| Errore | Significato | Come risolvere |

252| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

253| `dependency-unsatisfied` | Una dipendenza dichiarata non è installata, oppure è installata ma disabilitata. | Esegui il comando `claude plugin install` mostrato nel messaggio di errore. Se il marketplace della dipendenza non è ancora configurato, aggiungilo con `claude plugin marketplace add` e Claude Code risolve la dipendenza automaticamente. Se la dipendenza è disabilitata, abilitala. |

254| `range-conflict` | I requisiti di versione per una dipendenza non possono essere combinati. Il messaggio di errore nomina la causa: nessuna versione soddisfa tutti gli intervalli, un intervallo non è una sintassi semver valida, o gli intervalli combinati sono troppo complessi da intersecare. | Disinstalla o aggiorna uno dei plugin in conflitto, correggi qualsiasi stringa `version` non valida, semplifica le catene `\|\|` lunghe, o chiedi all'autore upstream di ampliare il suo vincolo. |

255| `dependency-version-unsatisfied` | La versione della dipendenza installata è al di fuori dell'intervallo dichiarato di questo plugin. | Esegui `claude plugin install <dependency>@<marketplace>` per ri-risolvere la dipendenza rispetto a tutti i vincoli attuali. |

256| `no-matching-tag` | Il repository della dipendenza non ha un tag `{name}--v*` che soddisfa l'intervallo. | Verifica che l'upstream abbia taggato i rilasci usando la convenzione sopra, o rilassa il tuo intervallo. |

257 

258Per controllare questi errori a livello di programmazione, esegui `claude plugin list --json`. I plugin con problemi includono un campo `errors` che li elenca. I plugin che si sono caricati correttamente omettono il campo.

259 

260<h2 id="see-also">

261 Vedi anche

262</h2>

263 

264* [Crea plugin](/docs/it/plugins): costruisci plugin con skills, agent e hooks

265* [Crea e distribuisci un marketplace di plugin](/docs/it/plugin-marketplaces): ospita plugin per il tuo team

266* [Riferimento dei plugin](/docs/it/plugins-reference#plugin-manifest-schema): lo schema completo di `plugin.json`

267* [Gestione delle versioni](/docs/it/plugins-reference#version-management): come la versione di un plugin viene risolta e utilizzata come chiave di cache

plugin-evals.md +86 −37

Details

4 4 

5# Testare i plugin con evals5# Testare i plugin con evals

6 6 

7> Scrivi casi di eval per il tuo plugin Claude Code, eseguili con claude plugin eval, valuta i risultati, confrontali con una baseline senza plugin e gating CI sul punteggio.7> Scrivi casi di eval per il tuo plugin Claude Code, eseguili con claude plugin eval, valuta i risultati, confrontali con una baseline senza plugin e blocca la CI in base al punteggio.

8 8 

9`claude plugin eval` esegue il tuo [plugin](/docs/it/plugins) rispetto a una suite di casi di test e valuta i risultati. Ogni caso è un prompt realistico più uno o più grader. Un grader è un controllo pass/fail su ciò che Claude ha prodotto, come una regex sulla risposta, se uno strumento particolare è stato chiamato, o una rubrica che un secondo modello valuta sulla risposta.9Il comando shell `claude plugin eval` esegue il tuo [plugin](/docs/it/plugins/overview) rispetto a una suite di casi di test e valuta i risultati. Ogni caso è un prompt realistico più uno o più valutatori. Un valutatore è un controllo pass/fail su ciò che Claude ha prodotto, come un'espressione regolare sulla risposta, se uno strumento particolare è stato chiamato, o una rubrica che un secondo modello giudica rispetto alla risposta.

10 10 

11Non devi scrivere la suite a mano; `claude plugin eval init` ti pone domande sul tuo plugin, propone i casi e i grader, li prova, scrive i file, e puoi chiedere a Claude di fare lo stesso da una sessione che hai già aperta.11Non devi scrivere la suite manualmente. `claude plugin eval init` ti pone domande sul tuo plugin, propone i casi e i valutatori, li prova e scrive i file. Puoi anche chiedere a Claude di fare lo stesso da una sessione che hai già aperto.

12 12 

13Usa evals per misurare quanto affidabilmente il tuo plugin guida Claude verso il risultato corretto, per catturare regressioni quando modifichi il plugin o viene rilasciato un nuovo modello, e per vedere quale contributo il plugin apporta rispetto a nessun plugin.13Usa evals per:

14 14 

15Questa pagina è per gli autori di plugin e skill che hanno un plugin funzionante e vogliono testarne il comportamento, e per i team che gating le modifiche ai plugin in CI. Il suo formato di caso è separato dal file `evals/evals.json` che il [plugin skill-creator](/docs/it/skills#run-evals-with-skill-creator) utilizza. Per creare un plugin, vedi [Creare plugin](/docs/it/plugins); per controllare i file di un plugin per errori di sintassi e schema piuttosto che il suo comportamento, usa [`claude plugin validate`](/docs/it/plugins-reference#plugin-validate).15* Misurare quanto affidabilmente il tuo plugin porta Claude a produrre il risultato corretto

16* Rilevare regressioni quando modifichi il plugin o viene rilasciato un nuovo modello

17* Vedere quale contributo apporta il plugin rispetto a nessun plugin

18 

19Questa pagina è per gli autori di plugin e skill che hanno un plugin funzionante e desiderano testarne il comportamento, e per i team che bloccano i cambiamenti dei plugin nella CI. Il suo formato di caso è separato dal file `evals/evals.json` che il [plugin skill-creator](/docs/it/skills#run-evals-with-skill-creator) utilizza. Per creare un plugin, vedi [Creare un plugin](/docs/it/plugins/create); per controllare i file di un plugin per errori di sintassi e schema piuttosto che il suo comportamento, usa [`claude plugin validate`](/docs/it/plugins/cli-reference#plugin-validate).

16 20 

17<Note>21<Note>

18 Ogni esecuzione di eval e ogni grader judge è una vera chiamata al modello sul tuo account, conteggiata rispetto all'utilizzo del tuo piano o alla tua fattura API, quindi controlla prima i [requisiti](#requirements). Poi [crea la tua prima suite di eval](#create-your-first-eval-suite), o vai a [Eseguire evals in CI](#run-evals-in-ci) se ne hai già una.22 Ogni esecuzione di eval e ogni valutatore giudice è una vera chiamata al modello sul tuo account, conteggiata rispetto all'utilizzo del tuo piano o alla tua fattura API, quindi controlla prima i [requisiti](#requirements). Quindi [crea la tua prima suite di eval](#create-your-first-eval-suite), oppure vai a [Eseguire evals nella CI](#run-evals-in-ci) se ne hai già una.

19</Note>23</Note>

20 24 

21<h2 id="requirements">25<h2 id="requirements">


25Per eseguire plugin evals hai bisogno di:29Per eseguire plugin evals hai bisogno di:

26 30 

27* Claude Code v2.1.269 o successivo. Esegui `claude --version` per controllare e `claude update` per aggiornare.31* Claude Code v2.1.269 o successivo. Esegui `claude --version` per controllare e `claude update` per aggiornare.

28* Una directory di plugin con un manifesto `plugin.json` o `.claude-plugin/plugin.json`, o un [plugin skills-directory](/docs/it/plugins-reference#skills-directory-plugins).32* Una directory di plugin con un manifesto `plugin.json` o `.claude-plugin/plugin.json`, o un [plugin skills-directory](/docs/it/plugins/loading#plugins-shared-through-a-repository).

29* La stessa autenticazione e provider di modello che le tue normali sessioni Claude Code utilizzano. Le esecuzioni di eval, i grader valutati da judge, e `claude plugin eval init` chiamano il modello con le tue credenziali, quindi contano rispetto ai tuoi limiti di utilizzo del piano o alla tua fattura API. Quando il comando riporta un costo, la cifra è una [stima del prezzo di listino](/docs/it/costs) di quelle chiamate.33* La stessa autenticazione e provider di modello che le tue normali sessioni Claude Code utilizzano. Le esecuzioni di eval, i grader valutati da judge, e `claude plugin eval init` chiamano il modello con le tue credenziali, quindi contano rispetto ai tuoi limiti di utilizzo del piano o alla tua fattura API. Quando il comando riporta un costo, la cifra è una [stima del prezzo di listino](/docs/it/costs) di quelle chiamate.

30 34 

31<h2 id="how-an-eval-run-works">35<h2 id="how-an-eval-run-works">


171Write me a commit message for this change: I renamed getUser to fetchUser and updated the three call sites.175Write me a commit message for this change: I renamed getUser to fetchUser and updated the three call sites.

172```176```

173 177 

174Ogni esecuzione inizia in una directory di lavoro vuota, quindi metti quello di cui il compito ha bisogno nel prompt stesso, o [configura lo spazio di lavoro](#add-setup-or-history-with-case-yaml) prima. L'[elenco completo dei campi frontmatter](#prompt-md-fields) copre il modello, il timeout, i tag e le variabili di ambiente.178Ogni esecuzione inizia in una directory di lavoro vuota, quindi metti quello di cui il compito ha bisogno nel prompt stesso, o [configura lo spazio di lavoro](#add-setup-or-history-with-case-yaml) prima.

179 

180L'[elenco completo dei campi frontmatter](#prompt-md-fields) copre il modello, il timeout, i tag e le variabili di ambiente.

175 181 

176Ogni file sotto `graders/` è un controllo applicato dopo l'esecuzione. Apri `evals/first-case/graders/criteria.md` e sostituisci il segnaposto con una rubrica per il modello judge, scritta come condizioni PASS e FAIL concrete:182Ogni file sotto `graders/` è un controllo applicato dopo l'esecuzione. Apri `evals/first-case/graders/criteria.md` e sostituisci il segnaposto con una rubrica per il modello judge, scritta come condizioni PASS e FAIL concrete:

177 183 


184FAIL if <what a wrong or missing response looks like>.190FAIL if <what a wrong or missing response looks like>.

185```191```

186 192 

187Poi aggiungi un secondo grader che controlla se la tua skill è quella che ha prodotto la risposta. Crea `evals/first-case/graders/skill-fired.md`, sostituendo `your-skill-name` con il `name` dal `SKILL.md` della tua skill:193Poi aggiungi un secondo grader che controlla se la tua skill è quella che ha prodotto la risposta. Crea `evals/first-case/graders/skill-fired.md`, sostituendo `your-skill-name` con il nome della directory della tua skill sotto `skills/`, che è il nome con cui Claude la invoca:

188 194 

189```markdown theme={null}195```markdown theme={null}

190---196---


194---200---

195```201```

196 202 

197Questo passa quando Claude ha invocato quella skill almeno una volta durante l'esecuzione, incluso dalla sua forma `plugin-name:skill-name` con namespace. [Tipi di grader](#grader-types) elenca gli altri controlli disponibili, come la corrispondenza di una regex o la conferma che un file è stato creato.203Questo passa quando Claude ha invocato quella skill almeno una volta durante l'esecuzione, incluso dalla sua forma `plugin-name:skill-name` con namespace.

204 

205[Tipi di grader](#grader-types) elenca gli altri controlli disponibili, come la corrispondenza di una regex o la conferma che un file è stato creato.

198 206 

199Con entrambi i file salvati, esegui il caso nel modo in cui la [guida rapida](#create-your-first-eval-suite) fa, con `claude plugin eval .` dalla root del plugin.207Con entrambi i file salvati, esegui il caso nel modo in cui la [guida rapida](#create-your-first-eval-suite) fa, con `claude plugin eval .` dalla root del plugin.

200 208 


202 Imposta i limiti di esecuzione e gli strumenti in prompt.md210 Imposta i limiti di esecuzione e gli strumenti in prompt.md

203</h3>211</h3>

204 212 

205Imposta `max_turns`, `timeout_seconds`, `model`, `tags` di un caso, e gli `allowed_tools` che può usare nel frontmatter di `prompt.md`; il riferimento [prompt.md frontmatter](#prompt-md-fields) elenca ogni campo e il suo valore predefinito. Claude riceve il corpo esattamente come l'hai scritto. Le menzioni `@path` in esso non vengono espanse in allegati di file, quindi se Claude ha bisogno di leggere un file, concedi uno strumento per esso in `allowed_tools`.213Imposta `max_turns`, `timeout_seconds`, `model`, `tags` di un caso, e gli `allowed_tools` che può usare nel frontmatter di `prompt.md`; il riferimento [prompt.md frontmatter](#prompt-md-fields) elenca ogni campo e il suo valore predefinito.

214 

215Claude riceve il corpo esattamente come l'hai scritto. Le menzioni `@path` in esso non vengono espanse in allegati di file, quindi se Claude ha bisogno di leggere un file, concedi uno strumento per esso in `allowed_tools`.

206 216 

207<h3 id="grade-the-result">217<h3 id="grade-the-result">

208 Scegli e pesa i grader218 Scegli e pesa i grader


210 220 

211Il frontmatter di un grader imposta il suo `type`, e opzionalmente un `weight` che lo fa contare per più del punteggio dell'esecuzione e un [`arm`](#compare-against-a-no-plugin-baseline) che controlla come viene valutato rispetto alla baseline. Dei sei tipi, `regex`, `tool_used`, `tool_order`, e `file_exists` vengono calcolati dalla trascrizione e dai file e non costano nulla, mentre `llm` e `baseline` chiamano un modello judge e si aggiungono al costo dell'esecuzione.221Il frontmatter di un grader imposta il suo `type`, e opzionalmente un `weight` che lo fa contare per più del punteggio dell'esecuzione e un [`arm`](#compare-against-a-no-plugin-baseline) che controlla come viene valutato rispetto alla baseline. Dei sei tipi, `regex`, `tool_used`, `tool_order`, e `file_exists` vengono calcolati dalla trascrizione e dai file e non costano nulla, mentre `llm` e `baseline` chiamano un modello judge e si aggiungono al costo dell'esecuzione.

212 222 

213Non ci sono grader di codice personalizzato. [Tipi di grader](#grader-types) elenca il tipo di ogni, le opzioni e la condizione di passaggio, e [cosa un grader può guardare](#what-a-grader-can-look-at) elenca i valori che `target` e `focus` accettano.223Non ci sono grader di codice personalizzato.

224 

225[Tipi di grader](#grader-types) elenca le opzioni di ogni tipo e la condizione di passaggio, e [cosa un grader può guardare](#what-a-grader-can-look-at) elenca i valori che `target` e `focus` accettano.

214 226 

215Il judge per i grader `llm` e `baseline` è un modello piccolo e veloce per impostazione predefinita. Passa `--judge-model sonnet` o un ID modello completo per usarne uno più forte per le rubriche sfumate.227Il judge per i grader `llm` e `baseline` è un modello piccolo e veloce per impostazione predefinita. Passa `--judge-model sonnet` o un ID modello completo per usarne uno più forte per le rubriche sfumate.

216 228 


229 Valuta rispetto alla baseline senza plugin241 Valuta rispetto alla baseline senza plugin

230</h3>242</h3>

231 243 

232Quando un plugin è sotto test, ogni caso viene eseguito in due arm per impostazione predefinita. Il with-arm è le sue esecuzioni con il plugin caricato, e il without-arm è lo stesso numero di esecuzioni senza plugin. Il riepilogo e il rapporto mostrano entrambi i punteggi e `Δ`, il punteggio with-arm meno il punteggio without-arm. Passa `--ablation none` per eseguire solo il with-arm, che dimezza il costo quando non hai bisogno del confronto, come durante l'iterazione sui grader.244Quando un plugin è sotto test, ogni caso viene eseguito in due arm per impostazione predefinita. Il with-arm è le sue esecuzioni con il plugin caricato, e il without-arm è lo stesso numero di esecuzioni senza plugin. Il riepilogo e il rapporto mostrano entrambi i punteggi e `Δ`, il punteggio with-arm meno il punteggio without-arm.

245 

246Passa `--ablation none` per eseguire solo il with-arm, che dimezza il costo quando non hai bisogno del confronto, come durante l'iterazione sui grader.

233 247 

234In un'esecuzione a due arm, alcuni grader vengono riportati con `scored: false`. Un controllo come "la skill è stata invocata" non può mai passare senza il plugin, quindi contarlo spingerebbe il without-arm verso zero e gonfierebbe `Δ`. Per mantenere i due arm comparabili, Claude Code esclude tali grader dal punteggio in entrambi gli arm e li riporta nel with-arm come indicatori pass/fail solo. Questo include:248In un'esecuzione a due arm, alcuni grader vengono riportati con `scored: false`. Un controllo come "la skill è stata invocata" non può mai passare senza il plugin, quindi contarlo spingerebbe il without-arm verso zero e gonfierebbe `Δ`. Per mantenere i due arm comparabili, Claude Code esclude tali grader dal punteggio in entrambi gli arm e li riporta nel with-arm come indicatori pass/fail solo. Questo include:

235 249 

236* Ogni grader `tool_used` il cui `tool` è `Skill`250* Ogni grader `tool_used` il cui `tool` è `Skill`

251* Ogni grader `regex` con `target: mock_calls` e ogni grader `llm` con `focus: mock_calls`, quando ogni [server mock](#mock-mcp-servers) nel caso è uno che il tuo plugin dichiara

237* Qualsiasi grader che contrassegni `arm: with-only`252* Qualsiasi grader che contrassegni `arm: with-only`

238 253 

239Se ogni grader in un caso è uno di questi, vengono valutati normalmente invece, poiché non ci sarebbe nulla di sinistra da valutare. Imposta `arm: both` su un grader per valutarlo in entrambi gli arm indipendentemente, che è quello che vuoi per un controllo "non deve invocare la skill" con `min: 0` e `max: 0`. Sotto `--ablation none` nulla viene escluso, quindi la stessa suite può produrre un punteggio assoluto diverso nei due modi.254Tre impostazioni cambiano quella esclusione:

255 

256* **Ogni grader escluso**: se ogni grader in un caso è nell'insieme escluso, vengono valutati normalmente invece, poiché non ci sarebbe nulla di sinistra da valutare.

257* **`arm: both`**: imposta `arm: both` su un grader per valutarlo in entrambi gli arm indipendentemente, che è quello che vuoi per un controllo "non deve invocare la skill" con `min: 0` e `max: 0`.

258* **`--ablation none`**: sotto `--ablation none` nulla viene escluso, quindi la stessa suite può produrre un punteggio assoluto diverso nei due modi.

240 259 

241<h3 id="use-a-different-eval-directory">260<h3 id="use-a-different-eval-directory">

242 Usa una directory eval diversa261 Usa una directory eval diversa


259 Inizializzare l'area di lavoro o la conversazione278 Inizializzare l'area di lavoro o la conversazione

260</h3>279</h3>

261 280 

262Ogni esecuzione inizia in un'area di lavoro vuota. Quando un caso ha bisogno di più del prompt, aggiungete un `case.yaml` accanto a `prompt.md` con un blocco `context`.281Ogni esecuzione inizia in un'area di lavoro vuota. Quando un caso ha bisogno di più del prompt, aggiungete un `case.yaml` accanto a `prompt.md` con un blocco `context`:

263 282 

264Per creare file fixture o un repository git prima, scrivete uno script Bash nella directory del caso e nominate lo script in `context.scaffold_script`. Lo script viene eseguito come voi, al di fuori della sandbox dell'agente, e solo quando passate `--scaffold`, quindi passate questo flag solo per suite che voi o la vostra organizzazione avete scritto. Per continuare una conversazione precedente, salvate la trascrizione come file `.jsonl` e nominate lo file in `context.history_file`, e il prompt del caso diventa il turno utente successivo. Per permettere a Claude di leggere directory fixture nel caso durante l'esecuzione, elencatele in `context.add_dirs`.283* **File fixture o un repository git**: scrivete uno script Bash nella directory del caso e nominate lo script in `context.scaffold_script`. Lo script viene eseguito come voi, al di fuori della sandbox dell'agente, e solo quando passate `--scaffold`, quindi passate questo flag solo per suite che voi o la vostra organizzazione avete scritto.

284* **Una conversazione precedente da continuare**: salvate la trascrizione come file `.jsonl` e nominate il file in `context.history_file`, e il prompt del caso diventa il turno utente successivo.

285* **Directory fixture che Claude può leggere durante l'esecuzione**: elencatele in `context.add_dirs`.

265 286 

266Un `case.yaml` ha anche bisogno di `schema_version: "1.1"` e `name`; il riferimento [case.yaml fields](#case-yaml-fields) ha l'elenco completo.287Un `case.yaml` ha anche bisogno di `schema_version: "1.1"` e `name`; il riferimento [case.yaml fields](#case-yaml-fields) ha l'elenco completo.

267 288 


280 Mock dei server MCP301 Mock dei server MCP

281</h3>302</h3>

282 303 

283Potete valutare un plugin le cui skill chiamano tool MCP senza il servizio reale dietro di essi. Mettete un file Markdown per tool sotto `evals/mocks/<server>/<tool>.md` per l'intera suite, o sotto la directory `mocks/` del caso stesso per un singolo caso, dove `<server>` è il nome del server nella [configurazione MCP](/docs/it/plugins-reference#mcp-servers) del vostro plugin.304Potete valutare un plugin le cui skill chiamano tool MCP senza il servizio reale dietro di essi. Mettete un file Markdown per tool sotto `evals/mocks/<server>/<tool>.md` per l'intera suite, o sotto la directory `mocks/` del caso stesso per un singolo caso, dove `<server>` è il nome del server nella [configurazione MCP](/docs/it/plugins/components#mcp-servers) del vostro plugin.

284 305 

285Un'esecuzione non avvia mai i veri server MCP del vostro plugin a meno che non lo chiediate. Claude Code registra un sostituto sotto il nome di ogni server. I tool con un file mock rispondono da esso e sono consentiti senza una concessione `--allow-tools`, e un tool senza file mock non è disponibile per Claude. Un server senza alcun mock appare nella riga di progresso `mocked:` del caso come `plugin_<plugin>_<server>[not started: no mock]`.306Un'esecuzione non avvia mai i veri server MCP del vostro plugin a meno che non lo chiediate. Claude Code registra un sostituto sotto il nome di ogni server. I tool con un file mock rispondono da esso e sono consentiti senza una concessione `--allow-tools`, e un tool senza file mock non è disponibile per Claude. Un server senza alcun mock appare nella riga di progresso `mocked:` del caso come `plugin_<plugin>_<server>[not started: no mock]`.

286 307 


296Created issue #4821: {{input.title}}317Created issue #4821: {{input.title}}

297```318```

298 319 

299Inserite i campi dalla chiamata dell'input con `{{input.<field>}}`, e il contenuto di un file fixture accanto al mock con `{{file:fixtures/{input.<field>}.json}}`. Il blocco `expect:` protegge l'input. Se una chiamata lo viola, l'esecuzione si interrompe con punteggio 0 e registra il motivo, in modo che un caso possa asserire cosa il vostro plugin ha chiesto al server di fare. Impostate `error: true` per restituire il corpo come errore di tool, oppure `type: agent` per far rispondere un modello piccolo come il server da istruzioni nel corpo. Il [mock file reference](#mock-files) elenca ogni chiave e i file `_server.md` e `_tools.json`.320Il corpo e il frontmatter di un file mock accettano queste opzioni:

321 

322* **Sostituzioni**: inserite i campi dalla chiamata dell'input con `{{input.<field>}}`, e il contenuto di un file fixture accanto al mock con `{{file:fixtures/{input.<field>}.json}}`.

323* **`expect:`**: il blocco `expect:` protegge l'input. Se una chiamata lo viola, l'esecuzione si interrompe con punteggio 0 e registra il motivo, in modo che un caso possa asserire cosa il vostro plugin ha chiesto al server di fare.

324* **`error: true`**: impostate `error: true` per restituire il corpo come errore di tool.

325* **`type: agent`**: impostate `type: agent` per far rispondere un modello piccolo come il server da istruzioni nel corpo.

326 

327Il [mock file reference](#mock-files) elenca ogni chiave e i file `_server.md` e `_tools.json`.

300 328 

301Per valutare le chiamate stesse, puntate un grader a `target: mock_calls`.329Per valutare le chiamate stesse, puntate un grader a `target: mock_calls`.

302 330 


330| La directory root di un plugin, come `.` | Ogni caso sotto la sua directory eval, con quel plugin caricato |358| La directory root di un plugin, come `.` | Ogni caso sotto la sua directory eval, con quel plugin caricato |

331| Un singolo file `prompt.md` o `case.yaml` | Quel caso, con il suo plugin contenitore caricato |359| Un singolo file `prompt.md` o `case.yaml` | Quel caso, con il suo plugin contenitore caricato |

332| Un plugin installato per nome, `name` o `name@marketplace` | I casi nella directory eval della copia installata, con la copia installata caricata. I risultati vengono scritti sotto `./evals/results/` nella tua directory corrente, o `./<dir>/results/` con `--eval-dir` |360| Un plugin installato per nome, `name` o `name@marketplace` | I casi nella directory eval della copia installata, con la copia installata caricata. I risultati vengono scritti sotto `./evals/results/` nella tua directory corrente, o `./<dir>/results/` con `--eval-dir` |

333| `name@skills-dir` | Lo stesso, per un [plugin skills-directory](/docs/it/plugins-reference#skills-directory-plugins) |361| `name@skills-dir` | Lo stesso, per un [plugin skills-directory](/docs/it/plugins/loading#plugins-shared-through-a-repository) |

334| Omesso | La directory corrente come percorso |362| Omesso | La directory corrente come percorso |

335 363 

336Aggiungi `--case <glob>` per filtrare per nome di caso e `--tag <tag>` per mantenere i casi con uno qualsiasi dei tag dati. Metti il target prima di `--tag`, `--allow-tools`, e `--json`. I primi due prendono un elenco e `--json` prende un percorso opzionale, quindi ognuno di loro legge un target che segue come il suo valore proprio.364Aggiungi `--case <glob>` per filtrare per nome di caso e `--tag <tag>` per mantenere i casi con uno qualsiasi dei tag dati. Metti il target prima di `--tag`, `--allow-tools`, e `--json`. I primi due prendono un elenco e `--json` prende un percorso opzionale, quindi ognuno di loro legge un target che segue come il suo valore proprio.


341 369 

342Le esecuzioni non si fermano mai per chiedere il permesso. Gli strumenti incorporati che hanno bisogno di una concessione che non hai dato, come `Bash`, `Write`, `Edit`, `WebFetch`, e `WebSearch`, vengono rimossi dalla sessione, quindi Claude non può chiamarli affatto.370Le esecuzioni non si fermano mai per chiedere il permesso. Gli strumenti incorporati che hanno bisogno di una concessione che non hai dato, come `Bash`, `Write`, `Edit`, `WebFetch`, e `WebSearch`, vengono rimossi dalla sessione, quindi Claude non può chiamarli affatto.

343 371 

344L'allowlist è gli strumenti di sola lettura che il caso elenca in `allowed_tools`, da `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite`, e gli strumenti di task `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, e `TaskStop`, più quello che concedi con `--allow-tools`. Quella concessione si applica a ogni caso nell'esecuzione. Per lasciare che i casi usino `Bash`, `Write`, `Edit`, `WebFetch`, o `WebSearch`, concedili tu stesso:372Un'esecuzione consente solo gli strumenti di sola lettura che il caso elenca in `allowed_tools`, da `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `AskUserQuestion`, `Agent`, `TodoWrite`, e gli strumenti di task `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, e `TaskStop`, più quello che concedi con `--allow-tools`. Quella concessione si applica a ogni caso nell'esecuzione. Per lasciare che i casi usino `Bash`, `Write`, `Edit`, `WebFetch`, o `WebSearch`, concedili tu stesso:

345 373 

346```bash theme={null}374```bash theme={null}

347claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"375claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

348```376```

349 377 

350Quando un caso ha chiesto uno strumento che non hai concesso, l'esecuzione lo elenca su stderr come `not granted`. Gli strumenti su un server MCP [mockato](#mock-mcp-servers) non hanno bisogno di concessione. Gli strumenti su un vero server MCP del plugin hanno bisogno sia del server avviato, con `--allow-real-servers` o `--mocks off`, che di una concessione per nome, come `--allow-tools "mcp__plugin_my-plugin_github__*"`; gli strumenti MCP di un plugin sono denominati `mcp__plugin_<plugin>_<server>__<tool>`.378Quando un caso ha chiesto uno strumento che non hai concesso, l'output di progresso lo elenca come `not granted`. Gli strumenti su un server MCP [mockato](#mock-mcp-servers) non hanno bisogno di concessione. Gli strumenti su un vero server MCP del plugin hanno bisogno sia del server avviato, con `--allow-real-servers` o `--mocks off`, che di una concessione per nome, come `--allow-tools "mcp__plugin_my-plugin_github__*"`; gli strumenti MCP di un plugin sono denominati `mcp__plugin_<plugin>_<server>__<tool>`.

351 379 

352Quando concedi `Bash` in qualsiasi forma, ogni comando viene eseguito sotto la [sandbox a livello di OS](/docs/it/sandboxing) di Claude Code. Le scritture sono confinate allo spazio di lavoro dell'esecuzione, la tua directory home e la configurazione di Claude Code sono illeggibili, e l'accesso alla rete è limitato ai domini che concedi con `--allow-tools "WebFetch(domain:example.com)"`. Se concedi Bash o PowerShell su una macchina senza backend sandbox, Claude Code rifiuta ogni esecuzione piuttosto che eseguirla non confinata, e il caso mostra un errore di esecuzione e di solito ottiene un punteggio 0. Windows nativo non ha backend, quindi esegui le suite che concedono shell sotto WSL2; su Linux, installa prima `bubblewrap` e `socat`. Vedi i [prerequisiti di sandboxing](/docs/it/sandboxing).380Quando concedi `Bash` in qualsiasi forma, ogni comando viene eseguito sotto la [sandbox a livello di OS](/docs/it/sandboxing) di Claude Code. Le scritture sono confinate allo spazio di lavoro dell'esecuzione, la tua directory home e la configurazione di Claude Code sono illeggibili, e l'accesso alla rete è limitato ai domini che concedi con `--allow-tools "WebFetch(domain:example.com)"`. Se concedi Bash o PowerShell su una macchina senza backend sandbox, Claude Code rifiuta ogni esecuzione piuttosto che eseguirla non confinata, e il caso mostra un errore di esecuzione e di solito ottiene un punteggio 0. Windows nativo non ha backend, quindi esegui le suite che concedono shell sotto WSL2; su Linux, installa prima `bubblewrap` e `socat`. Vedi i [prerequisiti di sandboxing](/docs/it/sandboxing).

353 381 


404| 130 | Interrotto. I risultati parziali sono scritti |432| 130 | Interrotto. I risultati parziali sono scritti |

405| 143 | Terminato, come da un timeout CI |433| 143 | Terminato, come da un timeout CI |

406 434 

407I problemi di scrittura o pubblicazione del rapporto HTML non cambiano mai il codice di uscita. Per vedere perché un caso ha ottenuto un punteggio basso, eseguilo localmente senza `--json` in modo che le linee di progresso per caso e per grader vengano stampate.435I problemi di scrittura o pubblicazione del rapporto HTML non cambiano mai il codice di uscita.

436 

437Per vedere perché un caso ha ottenuto un punteggio basso, eseguilo localmente senza `--json` in modo che le linee di progresso per caso e per grader vengano stampate.

408 438 

409Un runner CI ha bisogno di un'installazione di Claude Code e [credenziali nell'ambiente](/docs/it/authentication) come `ANTHROPIC_API_KEY`. Senza `--trust-plugin`, un lavoro la cui directory di checkout Claude Code non ha già fiducia è rifiutato con uscita 1 quando non ha terminale, o aspetta al prompt quando il runner ne alloca uno. `claude plugin eval init` ha bisogno di un terminale per farti le sue domande; in CI, esegui `claude plugin eval init --bare <name>` per ottenere il modello vuoto.439Un runner CI ha anche bisogno di questi elementi:

440 

441* **Installazione e credenziali**: un runner CI ha bisogno di un'installazione di Claude Code e [credenziali nell'ambiente](/docs/it/authentication) come `ANTHROPIC_API_KEY`.

442* **Fiducia**: senza `--trust-plugin`, un lavoro la cui directory di checkout Claude Code non ha già fiducia ha bisogno del [primo prompt di fiducia](#trust-the-plugin-directory), e un'esecuzione che non può chiedere è rifiutata con uscita 1.

443* **`init` in CI**: `claude plugin eval init` ha bisogno di un terminale per farti le sue domande; in CI, esegui `claude plugin eval init --bare <name>` per ottenere il modello vuoto.

410 444 

411Per mantenere i costi prevedibili, dai alle suite di ogni cambio veloce solo grader che non chiamano un judge, usa `--ablation none` dove non hai bisogno di `Δ`, e lascia i documenti `partial: true` e le esecuzioni con `skippedPaidGraders` fuori da qualsiasi tendenza che grafici.445Per mantenere i costi prevedibili, dai alle suite di ogni cambio veloce solo grader che non chiamano un judge, usa `--ablation none` dove non hai bisogno di `Δ`, e lascia i documenti `partial: true` e le esecuzioni con `skippedPaidGraders` fuori da qualsiasi tendenza che grafici.

412 446 


461 Cosa un'esecuzione può accedere495 Cosa un'esecuzione può accedere

462</h2>496</h2>

463 497 

464`claude plugin eval` carica le skill, gli hook e gli agenti del plugin target ed esegue la sua suite di eval sulla tua macchina, come te. Puntare a un plugin è la stessa decisione di fiducia di `claude --plugin-dir`, quindi valuta solo i plugin di cui ti fidi. L'isolamento descritto in questa sezione limita quello che l'agente sotto test può raggiungere; non è un confine contro il codice del plugin stesso, e una suite che passa non dice nulla su se il plugin è sicuro.498`claude plugin eval` carica le skill, gli hook e gli agenti del plugin target ed esegue la sua suite di eval sulla tua macchina, come te. Puntare a un plugin è la stessa decisione di fiducia di `claude --plugin-dir`, quindi valuta solo i plugin di cui ti fidi.

499 

500L'isolamento descritto in questa sezione limita quello che l'agente sotto test può raggiungere; non è un confine contro il codice del plugin stesso, e una suite che passa non dice nulla su se il plugin è sicuro.

465 501 

466<h3 id="trust-the-plugin-directory">502<h3 id="trust-the-plugin-directory">

467 Fidati della directory del plugin503 Fidati della directory del plugin

468</h3>504</h3>

469 505 

470La prima volta che esegui `claude plugin eval` rispetto a una directory, Claude Code chiede `Trust this plugin directory?` prima di caricare qualsiasi cosa da essa, a meno che non hai già accettato il prompt di fiducia lì in una sessione `claude` interattiva. All'interno di un repository git, rispondere sì fidati dell'intero repository, per le sessioni interattive anche. Quando stdin o stdout non è un terminale, o sotto `--json`, l'esecuzione non può chiedere ed è rifiutata con uscita 1; passa `--trust-plugin` per asserire la fiducia tu stesso, solo per un plugin che eseguiresti sulla tua macchina. Un target che nomini piuttosto che dai come percorso, significando un plugin installato o un plugin skills-directory, salta il prompt.506La prima volta che esegui `claude plugin eval` rispetto a una directory, Claude Code chiede `Trust this plugin directory?` prima di caricare qualsiasi cosa da essa, a meno che non hai già accettato il prompt di fiducia lì in una sessione `claude` interattiva. All'interno di un repository git, rispondere sì fidati dell'intero repository, per le sessioni interattive anche. Quando stdin o stdout non è un terminale, sotto `--json`, o quando la variabile di ambiente `CI` è impostata a un valore vero come `true`, l'esecuzione non può chiedere ed è rifiutata con uscita 1; passa `--trust-plugin` per asserire la fiducia tu stesso, solo per un plugin che eseguiresti sulla tua macchina. Un target che nomini piuttosto che dai come percorso, significando un plugin installato o un plugin skills-directory, salta il prompt.

471 507 

472Alcune parti del plugin e della suite vengono eseguite solo quando passi il loro flag per quella esecuzione: uno [`scaffold_script`](#add-setup-or-history-with-case-yaml) di un caso con `--scaffold`, [strumenti oltre il set di sola lettura](#grant-tools) con `--allow-tools`, e i [veri server MCP](#mock-mcp-servers) del plugin con `--allow-real-servers` o `--mocks off`. Un `allowed_tools` di un caso e un frontmatter `allowed-tools` proprio di una skill non possono ampliare nessuno di loro. Quando il plugin spedisce hook che non hai scritto, o inizi i suoi veri server MCP, tratta i suoi punteggi come consultivi a meno che non l'hai eseguito in un ambiente isolato come un contenitore o runner CI, poiché gli hook e i server vengono eseguiti fuori dalla sandbox dell'agente e potrebbero toccare i file che i grader leggono.508Alcune parti del plugin e della suite vengono eseguite solo quando passi il loro flag per quella esecuzione:

509 

510* Uno [`scaffold_script`](#add-setup-or-history-with-case-yaml) di un caso con `--scaffold`

511* [Strumenti oltre il set di sola lettura](#grant-tools) con `--allow-tools`

512* I [veri server MCP](#mock-mcp-servers) del plugin con `--allow-real-servers` o `--mocks off`

513 

514Un `allowed_tools` di un caso e un frontmatter `allowed-tools` proprio di una skill non possono ampliare nessuno di loro.

515 

516Quando il plugin include hook che non hai scritto, o inizi i suoi veri server MCP, tratta i suoi punteggi come consultivi a meno che non l'hai eseguito in un ambiente isolato come un contenitore o runner CI, poiché gli hook e i server vengono eseguiti fuori dalla sandbox dell'agente e potrebbero modificare i file che i grader leggono.

473 517 

474<h3 id="how-runs-are-isolated">518<h3 id="how-runs-are-isolated">

475 Come le esecuzioni sono isolate519 Come le esecuzioni sono isolate


537 case.yaml fields581 case.yaml fields

538</h3>582</h3>

539 583 

540`case.yaml` descrive lo stesso caso in YAML e aggiunge i campi che puntano ad altri file. Richiede `schema_version: "1.1"` e `name`. I campi `prompt.md` `description`, `tags`, `plugins`, `runs`, e `expected_outcome` vanno al livello superiore; `model`, `max_turns`, `timeout_seconds`, `allowed_tools`, `append_system_prompt`, e `env` vanno sotto `execution:`. Quando entrambi i file esistono, il frontmatter di `prompt.md` sostituisce i campi corrispondenti di `case.yaml`, il corpo di `prompt.md` è il prompt, e `graders/*.md` vengono aggiunti dopo qualsiasi grader elencato in `case.yaml`.584`case.yaml` è un'alternativa o un complemento a `prompt.md`: descrive un caso in YAML e aggiunge i campi che puntano ad altri file. Richiede `schema_version: "1.1"` e `name`. I campi `prompt.md` `description`, `tags`, `plugins`, `runs`, e `expected_outcome` vanno al livello superiore; `model`, `max_turns`, `timeout_seconds`, `allowed_tools`, `append_system_prompt`, e `env` vanno sotto `execution:`. Quando entrambi i file esistono, il frontmatter di `prompt.md` sostituisce i campi corrispondenti di `case.yaml`, il corpo di `prompt.md` è il prompt, e `graders/*.md` vengono aggiunti dopo qualsiasi grader elencato in `case.yaml`.

541 585 

542Questi campi esistono solo in `case.yaml`:586Questi campi esistono solo in `case.yaml`:

543 587 


556Ogni file di grader sotto `graders/` prende queste chiavi nel frontmatter, più le opzioni per il suo tipo. Il nome del grader è il nome del file senza `.md`:600Ogni file di grader sotto `graders/` prende queste chiavi nel frontmatter, più le opzioni per il suo tipo. Il nome del grader è il nome del file senza `.md`:

557 601 

558| Chiave | Predefinito | Scopo |602| Chiave | Predefinito | Scopo |

559| :------- | :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |603| :------- | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

560| `type` | richiesto | Uno dei [tipi di grader](#grader-types) |604| `type` | richiesto | Uno dei [tipi di grader](#grader-types) |

561| `weight` | `1` | Peso relativo nel punteggio dell'esecuzione. Qualsiasi numero positivo |605| `weight` | `1` | Peso relativo nel punteggio dell'esecuzione. Qualsiasi numero positivo |

562| `arm` | non impostato | `with-only` esclude il grader dalla valutazione in un'[esecuzione a due arm](#compare-against-a-no-plugin-baseline); `both` forza un grader `tool_used: Skill` ad essere valutato in entrambi gli arm |606| `arm` | non impostato | `with-only` esclude il grader dalla valutazione in un'[esecuzione a due arm](#compare-against-a-no-plugin-baseline); `both` forza un grader che Claude Code altrimenti escluderebbe ad essere valutato in entrambi gli arm |

563 607 

564<h4 id="what-a-grader-can-look-at">608<h4 id="what-a-grader-can-look-at">

565 Cosa un grader può guardare609 Cosa un grader può guardare


632 "is not a trusted plugin directory, and this run cannot stop to ask you about it"676 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

633</h3>677</h3>

634 678 

635Questa è la prima esecuzione rispetto a una directory di cui Claude Code non ha ancora fiducia, e non può chiedere perché stdin o stdout non è un terminale o hai passato `--json`. Esegui `claude plugin eval <dir>` una volta in un terminale e rispondi al prompt, o passa `--trust-plugin` se ti fidi del codice e della suite del plugin. Vedi [Cosa un'esecuzione può accedere](#security).679Questa è la prima esecuzione rispetto a una directory di cui Claude Code non ha ancora fiducia, e non può chiedere perché stdin o stdout non è un terminale, hai passato `--json`, o la variabile di ambiente `CI` è impostata su un valore vero come `true`. Esegui `claude plugin eval <dir>` una volta in un terminale e rispondi al prompt, o passa `--trust-plugin` se ti fidi del codice e della suite del plugin. Vedi [Cosa un'esecuzione può accedere](#security).

636 680 

637<h3 id="no-eval-cases-found">681<h3 id="no-eval-cases-found">

638 "No eval cases found"682 "No eval cases found"


662 Tutto ottiene un punteggio zero sebbene i file corretti siano stati prodotti706 Tutto ottiene un punteggio zero sebbene i file corretti siano stati prodotti

663</h3>707</h3>

664 708 

665I tuoi grader puntano a `files`, l'elenco dei percorsi creati, quando intendevi i contenuti del file. Usa `{ source: file, path: <path> }` come `target` o `focus`. Separatamente, `file_exists` conta solo i file creati durante l'esecuzione, quindi un file che lo scaffold ha creato o che Claude ha solo modificato è invisibile ad esso; valuta i suoi contenuti, o usa `tool_used` su `Edit`.709I tuoi grader puntano a `files`, l'elenco dei percorsi creati, quando intendevi i contenuti del file. Usa `{ source: file, path: <path> }` come `target` o `focus`.

710 

711Separatamente, `file_exists` conta solo i file creati durante l'esecuzione, quindi un file che lo scaffold ha creato o che Claude ha solo modificato è invisibile ad esso; valuta i suoi contenuti, o usa `tool_used` su `Edit`.

666 712 

667<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">713<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">

668 Una regex sulla traccia non corrisponde al testo che posso vedere714 Una regex sulla traccia non corrisponde al testo che posso vedere

669</h3>715</h3>

670 716 

671Il `target` predefinito è `last_message`, non la traccia. Quando fai il target `trace`, è JSON per riga, quindi le virgolette appaiono come `\"`. Le regex usano la sintassi JavaScript, quindi metti `i` in `flags` piuttosto che scrivere `(?i)`.717* **Target sbagliato**: il `target` predefinito è `last_message`, non la traccia.

718* **Escape JSON**: quando fai il target `trace`, è JSON per riga, quindi le virgolette appaiono come `\"`.

719* **Sintassi regex**: le regex usano la sintassi JavaScript, quindi metti `i` in `flags` piuttosto che scrivere `(?i)`.

672 720 

673<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">721<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">

674 Gli strumenti vengono negati, gli strumenti MCP mancano, o Bash non verrà eseguito722 Gli strumenti vengono negati, gli strumenti MCP mancano, o Bash non verrà eseguito


680 L'esecuzione esce 1 ma i risultati sembrano bene728 L'esecuzione esce 1 ma i risultati sembrano bene

681</h3>729</h3>

682 730 

683Il `--threshold` predefinito è 1.0, quindi il comando esce 1 quando qualsiasi caso ottiene un punteggio inferiore a perfetto. Imposta una soglia che corrisponda al tuo bar. L'uscita 1 copre anche un file di caso che non è stato caricato, che viene riportato su stderr sopra la tabella.731Il `--threshold` predefinito è 1.0, quindi il comando esce 1 quando qualsiasi caso ottiene un punteggio inferiore a perfetto. Imposta una soglia che corrisponda al punteggio che richiedi. L'uscita 1 copre anche un file di caso che non è stato caricato, che viene riportato su stderr sopra la tabella.

684 732 

685<h3 id="json-output-path-must-end-in-json">733<h3 id="json-output-path-must-end-in-json">

686 "--json output path must end in .json"734 "--json output path must end in .json"


692 Un grader mostra passed: false sotto un'esecuzione che ha ottenuto un punteggio 1.0740 Un grader mostra passed: false sotto un'esecuzione che ha ottenuto un punteggio 1.0

693</h3>741</h3>

694 742 

695Quel grader è escluso dal punteggio per design in un'esecuzione a due arm, e il suo campo `scored` è `false`. Vedi [Confrontare con una baseline senza plugin](#compare-against-a-no-plugin-baseline).743Quel grader è escluso dal punteggio per design in un'esecuzione a due arm, e il suo campo `scored` è `false`. Vedi [Punteggio rispetto alla baseline senza plugin](#compare-against-a-no-plugin-baseline).

696 744 

697<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">745<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

698 Le esecuzioni falliscono con un errore di limite di utilizzo o limite di velocità a metà strada746 Le esecuzioni falliscono con un errore di limite di utilizzo o limite di velocità a metà strada


710 Vedi anche758 Vedi anche

711</h2>759</h2>

712 760 

713* [Creare plugin](/docs/it/plugins): costruisci il plugin che stai testando, e caricalo con `--plugin-dir` durante lo sviluppo761* [Creare un plugin](/docs/it/plugins/create): costruisci il plugin che stai testando, e caricalo con `--plugin-dir` durante lo sviluppo

714* [Riferimento dei plugin](/docs/it/plugins-reference#plugin-eval): le voci di comando `plugin eval` e `plugin eval init` e la chiave `experimental.evals` del manifesto762* [Riferimento dei comandi plugin](/docs/it/plugins/cli-reference#plugin-eval): le voci di comando `plugin eval` e `plugin eval init`. La chiave [`experimental.evals`](/docs/it/plugins/manifest-reference#fields) del manifesto è nel riferimento del manifesto

715* [Skills](/docs/it/skills): come la descrizione di una skill decide quando Claude la invoca, che è quello che un caso che controlla se la skill si attiva sta misurando763* [Skills](/docs/it/skills): come la descrizione di una skill decide quando Claude la invoca, che è quello che un caso che controlla se la skill si attiva sta misurando

716* [Sandboxing](/docs/it/sandboxing): la sandbox a livello di OS che si applica quando concedi Bash a un'esecuzione764* [Sandboxing](/docs/it/sandboxing): la sandbox a livello di OS che si applica quando concedi Bash a un'esecuzione

717* [Creare e distribuire un marketplace di plugin](/docs/it/plugin-marketplaces): pubblica il plugin una volta che la sua suite passa765* [Pubblicare un plugin](/docs/it/plugins/publish): pubblica il plugin una volta che la sua suite passa

766* [Misurare il costo e l'utilizzo del plugin](/docs/it/plugins/measure): quello che il plugin aggiunge al contesto di ogni sessione e se le persone lo usano ancora

plugin-hints.md +0 −172 deleted

File Deleted View Diff

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# Consiglia il tuo plugin dalla tua CLI

6 

7> Emetti un marcatore su una riga dalla tua CLI in modo che Claude Code chieda agli utenti di installare il tuo plugin ufficiale.

8 

9Se mantieni una CLI o SDK e hai un plugin nel marketplace ufficiale di Anthropic, il tuo strumento può chiedere agli utenti di Claude Code di installare quel plugin. La tua CLI scrive un marcatore su una riga in stderr quando rileva che è in esecuzione all'interno di Claude Code. Claude Code legge il marcatore, lo rimuove dall'output e mostra all'utente un prompt di installazione una sola volta.

10 

11Il protocollo non richiede comandi extra e non cambia ciò che la tua CLI stampa per gli utenti al di fuori di Claude Code.

12 

13Questa pagina è per i manutentori di CLI e SDK. Se stai cercando di installare plugin, vedi [Scopri e installa plugin](/docs/it/discover-plugins).

14 

15<h2 id="how-it-works">

16 Come funziona

17</h2>

18 

19Claude Code imposta la variabile di ambiente [`CLAUDECODE`](/docs/it/env-vars) a `1` per ogni comando che esegue attraverso gli strumenti Bash e PowerShell, e per i comandi [hook](/docs/it/hooks). A partire dalla versione 2.1.172 imposta anche [`CLAUDE_CODE_CHILD_SESSION`](/docs/it/env-vars) a `1` negli stessi sottoprocessi. Quando la tua CLI vede una di queste variabili, scrive un tag `<claude-code-hint />` auto-chiudente in stderr. Nei comandi hook il tag di suggerimento viene rimosso e ignorato. Solo l'output degli strumenti Bash e PowerShell attiva il prompt di installazione.

20 

21Quando Claude Code riceve l'output del comando, esegue le seguenti operazioni:

22 

231. Scansiona le righe di suggerimento e le rimuove prima che l'output raggiunga il modello

242. Verifica che il suggerimento sia destinato a un plugin in un marketplace ufficiale di Anthropic

253. Verifica che il plugin non sia già installato e che non sia stato suggerito in precedenza

264. Mostra all'utente un prompt di installazione che nomina il comando che ha emesso il suggerimento

27 

28Claude Code non installa mai un plugin automaticamente. L'utente conferma sempre.

29 

30<h2 id="emit-the-hint">

31 Emetti il suggerimento

32</h2>

33 

34I suggerimenti hint vengono attivati solo per i plugin elencati nel marketplace ufficiale di Anthropic. Vedi [Inserisci il tuo plugin nel marketplace ufficiale](#get-your-plugin-into-the-official-marketplace) prima di distribuire l'integrazione.

35 

36Condiziona l'emissione su una variabile di ambiente in modo che il marcatore sia improbabile che appaia quando un utente esegue direttamente la tua CLI, quindi scrivi il tag su stderr sulla sua propria riga. Scegli quale variabile controllare:

37 

38* `CLAUDECODE`: impostata su ogni versione di Claude Code, quindi raggiunge il maggior numero di sessioni. È anche impostata nelle sessioni tmux e nei sottoprocessi del server MCP stdio che Claude Code avvia. Le estensioni IDE la impostano anche nei loro terminali integrati, dove un utente potrebbe eseguire direttamente la tua CLI.

39* `CLAUDE_CODE_CHILD_SESSION`: impostata solo nei sottoprocessi che Claude Code stesso genera, come le chiamate di strumenti, i comandi hook e i comandi della [riga di stato](/docs/it/statusline), quindi il tag normalmente non raggiunge un terminale umano. Un processo di lunga durata che è stato avviato all'interno di una sessione, come un server tmux, acquisisce la variabile, quindi le shell avviate successivamente da quel processo mostrano comunque il tag grezzo.

40 

41I seguenti esempi condizionano su `CLAUDECODE` per la massima copertura e emettono un suggerimento per un plugin denominato `example-cli` nel marketplace ufficiale:

42 

43<CodeGroup>

44 ```javascript Node.js theme={null}

45 if (process.env.CLAUDECODE) {

46 process.stderr.write(

47 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',

48 )

49 }

50 ```

51 

52 ```python Python theme={null}

53 import os, sys

54 

55 if os.environ.get("CLAUDECODE"):

56 print(

57 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',

58 file=sys.stderr,

59 )

60 ```

61 

62 ```go Go theme={null}

63 if os.Getenv("CLAUDECODE") != "" {

64 fmt.Fprintln(os.Stderr,

65 `<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)

66 }

67 ```

68 

69 ```shell Shell theme={null}

70 if [ -n "$CLAUDECODE" ]; then

71 printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2

72 fi

73 ```

74</CodeGroup>

75 

76Sostituisci `example-cli` con il nome del tuo plugin nel marketplace ufficiale.

77 

78<h2 id="choose-where-to-emit">

79 Scegli dove emettere

80</h2>

81 

82Controlli quali percorsi di codice emettono il suggerimento. Claude Code deduplica per plugin, quindi emettere ad ogni invocazione non ha alcun aspetto negativo. I punti di contatto che funzionano bene includono:

83 

84| Posizionamento | Perché funziona |

85| :------------------------------------- | :----------------------------------------------------------------- |

86| Output di `--help` | Claude spesso esegue help quando esplora una CLI sconosciuta |

87| Errori di sottocomando sconosciuto | Raggiunge il momento in cui Claude è confuso sulla tua interfaccia |

88| Accesso o successo dell'autenticazione | L'utente è già in uno stato mentale di configurazione |

89| Messaggio di benvenuto al primo avvio | Un momento di onboarding naturale |

90 

91<h2 id="what-the-user-sees">

92 Cosa vede l'utente

93</h2>

94 

95Quando il suggerimento supera tutti i controlli, Claude Code mostra un prompt come il seguente:

96 

97```text theme={null}

98─────────────────────────────────────────────────────────────

99 Raccomandazione Plugin

100 

101 Il comando example-cli suggerisce di installare un plugin.

102 

103 Plugin: example-cli

104 Marketplace: claude-plugins-official

105 Integrazione ufficiale per distribuzioni example-cli

106 

107 Desideri installarlo?

108 ❯ 1. Sì, installa example-cli

109 2. No

110 3. No, e non mostrare più suggerimenti di installazione plugin

111 

112─────────────────────────────────────────────────────────────

113```

114 

115Il prompt nomina il comando che ha prodotto il suggerimento in modo che gli utenti possano individuare una mancata corrispondenza tra lo strumento e il plugin che consiglia. Se l'utente non risponde entro 30 secondi, Claude Code chiude il prompt come **No**.

116 

117La frequenza del prompt è limitata, e alcune sessioni non mostrano mai il prompt:

118 

119* **Una volta per plugin**: dopo che il prompt viene mostrato, Claude Code registra il plugin e non lo suggerisce mai più, indipendentemente dalla risposta dell'utente.

120* **Una volta per sessione**: su tutte le CLI della macchina, al massimo un suggerimento di prompt appare per sessione di Claude Code.

121* **Solo sessione interattiva principale**: Claude Code mostra il prompt solo nella sessione del terminale in cui l'utente sta digitando. Claude Code non suggerisce mai un comando che un [subagent](/docs/it/sub-agents) esegue, e non suggerisce quando l'utente esegue Claude Code in [modalità non interattiva](/docs/it/headless) con il flag `-p` o tramite [Agent SDK](/docs/it/agent-sdk/overview). Claude Code comunque rimuove la riga del suggerimento dall'output del comando in tutti questi casi.

122* **Opt-out della telemetria**: le sessioni in cui l'analisi è disabilitata non mostrano mai i prompt di suggerimento. Questo include le sessioni con `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` impostati, e le sessioni su provider di terze parti come Amazon Bedrock o Google Cloud's Agent Platform dove si applica l'[opt-out automatico della telemetria](/docs/it/data-usage#default-behaviors-by-api-provider).

123 

124Selezionando **Sì** installa il plugin nell'ambito dell'utente. Selezionando **No, e non mostrare più suggerimenti di installazione plugin** disabilita tutti i futuri suggerimenti di prompt per l'utente.

125 

126<h2 id="hint-format">

127 Formato del suggerimento

128</h2>

129 

130Il suggerimento è un tag auto-chiudente con tre attributi obbligatori.

131 

132```text theme={null}

133<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />

134```

135 

136| Attributo | Obbligatorio | Descrizione |

137| :-------- | :----------- | :--------------------------------------------------------- |

138| `v` | Sì | Versione del protocollo. `1` è l'unico valore supportato |

139| `type` | Sì | Tipo di suggerimento. `plugin` è l'unico valore supportato |

140| `value` | Sì | Identificatore del plugin nella forma `name@marketplace` |

141 

142I valori degli attributi possono essere racchiusi tra virgolette doppie o lasciati senza virgolette. I valori senza virgolette non possono contenere spazi. Le sequenze di escape non sono supportate.

143 

144<h2 id="requirements">

145 Requisiti

146</h2>

147 

148Claude Code applica due condizioni prima di agire su un suggerimento. I suggerimenti che non superano nessuno dei due controlli vengono scartati:

149 

150* **Riga propria**: il tag deve occupare la sua propria riga. Un tag incorporato a metà riga, ad esempio all'interno di un'istruzione di log, viene ignorato. Gli spazi bianchi iniziali e finali sulla riga sono consentiti.

151* **Marketplace ufficiale**: il `value` deve fare riferimento a un plugin in un marketplace controllato da Anthropic come `claude-plugins-official`. I suggerimenti che puntano ad altri marketplace vengono silenziosamente scartati.

152 

153La riga di suggerimento viene sempre rimossa dall'output prima che raggiunga il modello, anche quando la versione o il tipo non è riconosciuto, quindi il marcatore non viene mai conteggiato verso l'utilizzo dei token.

154 

155Le linee guida rimanenti sono consigliate ma non applicate. Claude Code non può osservare se la tua CLI le segue:

156 

157* **Scrivi in stderr**: stderr mantiene il tag fuori dalle pipeline di shell come `example-cli deploy | jq`. Claude Code scansiona entrambi i flussi, quindi anche stdout funziona.

158* **Condiziona su una variabile di ambiente**: emetti solo quando `CLAUDECODE` o `CLAUDE_CODE_CHILD_SESSION` è impostato. Vedi [Emetti il suggerimento](#emit-the-hint) per come i due variabili differiscono.

159 

160<h2 id="get-your-plugin-into-the-official-marketplace">

161 Inserisci il tuo plugin nel marketplace ufficiale

162</h2>

163 

164Il protocollo di suggerimento ha effetto solo per i plugin elencati nel marketplace ufficiale di Anthropic, `claude-plugins-official`. Anthropic cura quel marketplace a sua discrezione, e i moduli di invio in-app aggiungono plugin al [marketplace della comunità](/docs/it/plugins#submit-your-plugin-to-the-community-marketplace) invece, che il protocollo di suggerimento non controlla. Se stai lavorando con un contatto partner di Anthropic, contattalo per coordinare un elenco nel marketplace ufficiale.

165 

166<h2 id="see-also">

167 Vedi anche

168</h2>

169 

170* [Crea plugin](/docs/it/plugins): costruisci il plugin che la tua CLI consiglia

171* [Crea e distribuisci un marketplace di plugin](/docs/it/plugin-marketplaces): ospita plugin al di fuori del marketplace ufficiale

172* [Variabili di ambiente](/docs/it/env-vars): riferimento completo per `CLAUDECODE` e variabili correlate

plugin-marketplaces.md +0 −1688 deleted

File Deleted View Diff

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# Creare e distribuire un marketplace di plugin

6 

7> Crea e ospita marketplace di plugin per distribuire estensioni Claude Code tra team e comunità.

8 

9Un **plugin marketplace** è un catalogo che ti consente di distribuire plugin ad altri. I marketplace forniscono scoperta centralizzata, tracciamento delle versioni, aggiornamenti automatici e supporto per più tipi di fonte, inclusi repository git e percorsi locali. Questa guida ti mostra come creare il tuo marketplace per condividere plugin con il tuo team o comunità.

10 

11Stai cercando di installare plugin da un marketplace esistente? Vedi [Scopri e installa plugin precostruiti](/docs/it/discover-plugins).

12 

13<h2 id="overview">

14 Panoramica

15</h2>

16 

17La creazione e la distribuzione di un marketplace comporta:

18 

191. **Creazione di plugin**: crea uno o più plugin con skills, agenti, hooks, server MCP o server LSP. Questa guida presuppone che tu abbia già plugin da distribuire; vedi [Crea plugin](/docs/it/plugins) per i dettagli su come crearli.

202. **Creazione di un file marketplace**: definisci un `marketplace.json` che elenca i tuoi plugin e dove trovarli. Vedi [Crea il file marketplace](#create-the-marketplace-file).

213. **Ospita il marketplace**: esegui il push su GitHub, GitLab o un altro host git. Vedi [Ospita e distribuisci marketplace](#host-and-distribute-marketplaces).

224. **Condividi con gli utenti**: gli utenti aggiungono il tuo marketplace con `/plugin marketplace add` e installano singoli plugin. Vedi [Scopri e installa plugin](/docs/it/discover-plugins).

23 

24Una volta che il tuo marketplace è attivo, puoi aggiornarlo eseguendo il push delle modifiche al tuo repository. Gli utenti aggiornano la loro copia locale con `/plugin marketplace update`.

25 

26<h2 id="walkthrough-create-a-local-marketplace">

27 Procedura dettagliata: creare un marketplace locale

28</h2>

29 

30Questo esempio crea un marketplace con un plugin: una skill `quality-review` per le revisioni del codice. Creerai la struttura delle directory, aggiungerai una skill, creerai il manifest del plugin e il catalogo del marketplace, quindi lo installerai e lo testerai.

31 

32<Steps>

33 <Step title="Crea la struttura delle directory">

34 ```bash theme={null}

35 mkdir -p my-marketplace/.claude-plugin

36 mkdir -p my-marketplace/plugins/quality-review-plugin/.claude-plugin

37 mkdir -p my-marketplace/plugins/quality-review-plugin/skills/quality-review

38 ```

39 </Step>

40 

41 <Step title="Crea la skill">

42 Crea un file `SKILL.md` che definisce cosa fa la skill `quality-review`.

43 

44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}

45 ---

46 description: Rivedi il codice per bug, sicurezza e prestazioni

47 ---

48 

49 Rivedi il codice che ho selezionato o i cambiamenti recenti per:

50 - Potenziali bug o casi limite

51 - Problemi di sicurezza

52 - Problemi di prestazioni

53 - Miglioramenti di leggibilità

54 

55 Sii conciso e pratico.

56 ```

57 </Step>

58 

59 <Step title="Crea il manifest del plugin">

60 Crea un file `plugin.json` che descrive il plugin. Il manifest va nella directory `.claude-plugin/`.

61 

62 ```json my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json theme={null}

63 {

64 "name": "quality-review-plugin",

65 "description": "Aggiunge una skill quality-review per revisioni rapide del codice",

66 "version": "1.0.0",

67 "author": {

68 "name": "Your Name"

69 }

70 }

71 ```

72 

73 <Note>

74 Impostare `version` significa che gli utenti ricevono aggiornamenti solo quando modifichi questo campo, quindi incrementalo ad ogni rilascio. Un plugin con una [`command` source](#command-sources) non è bloccato da questo campo. Nemmeno un plugin [caricato in posizione](/docs/it/plugins-reference#plugin-caching-and-file-resolution) da un marketplace aggiunto come directory locale. Se ometti `version`, la versione proviene dalla prossima source in [version management](/docs/it/plugins-reference#version-management).

75 </Note>

76 </Step>

77 

78 <Step title="Crea il file marketplace">

79 Crea il catalogo marketplace che elenca il tuo plugin.

80 

81 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

82 {

83 "name": "my-plugins",

84 "owner": {

85 "name": "Your Name"

86 },

87 "plugins": [

88 {

89 "name": "quality-review-plugin",

90 "source": "./plugins/quality-review-plugin",

91 "description": "Aggiunge una skill quality-review per revisioni rapide del codice"

92 }

93 ]

94 }

95 ```

96 </Step>

97 

98 <Step title="Aggiungi e installa">

99 Dalla directory che contiene `my-marketplace`, avvia Claude Code ed esegui i seguenti comandi. Il comando install apre una vista dei dettagli del plugin dove selezioni un ambito di installazione per confermare l'installazione. Controlla il riepilogo dell'installazione: se riporta `Run /reload-plugins to activate.`, vedi [Applica le modifiche ai plugin senza riavviare](/docs/it/discover-plugins#apply-plugin-changes-without-restarting).

100 

101 ```shell theme={null}

102 /plugin marketplace add ./my-marketplace

103 /plugin install quality-review-plugin@my-plugins

104 ```

105 </Step>

106 

107 <Step title="Provalo">

108 Seleziona del codice nel tuo editor ed esegui la tua nuova skill. Le skill dei plugin sono associate allo spazio dei nomi del nome del plugin.

109 

110 ```shell theme={null}

111 /quality-review-plugin:quality-review

112 ```

113 </Step>

114</Steps>

115 

116Per saperne di più su cosa possono fare i plugin, inclusi hooks, agenti, server MCP e server LSP, vedi [Plugins](/docs/it/plugins).

117 

118<Note>

119 **Come vengono installati i plugin**: quando gli utenti installano un plugin, Claude Code copia la directory del plugin in una posizione cache, a meno che il plugin non si carichi in posizione. Una [`command` source in link mode](#copy-mode-and-link-mode) si carica in posizione, così come una [relative path source](#relative-paths) in un marketplace aggiunto da una directory locale. I plugin copiati non possono fare riferimento a file al di fuori della loro directory utilizzando percorsi come `../shared-utils`, perché quei file non verranno copiati.

120 

121 Se hai bisogno di condividere file tra plugin, usa symlink. Vedi [Plugin caching and file resolution](/docs/it/plugins-reference#plugin-caching-and-file-resolution) per i dettagli.

122</Note>

123 

124<h2 id="create-the-marketplace-file">

125 Crea il file marketplace

126</h2>

127 

128Crea `.claude-plugin/marketplace.json` nella radice del tuo repository. Questo file definisce il nome del tuo marketplace, le informazioni del proprietario e un elenco di plugin con le loro fonti.

129 

130Ogni voce di plugin ha bisogno almeno di un `name` e di una `source` che dice a Claude Code da dove recuperarla. Vedi lo [schema completo](#marketplace-schema) di seguito per tutti i campi disponibili.

131 

132```json theme={null}

133{

134 "name": "company-tools",

135 "owner": {

136 "name": "DevTools Team",

137 "email": "devtools@example.com"

138 },

139 "plugins": [

140 {

141 "name": "code-formatter",

142 "source": "./plugins/formatter",

143 "description": "Automatic code formatting on save",

144 "version": "2.1.0",

145 "author": {

146 "name": "DevTools Team"

147 }

148 },

149 {

150 "name": "deployment-tools",

151 "source": {

152 "source": "github",

153 "repo": "company/deploy-plugin"

154 },

155 "description": "Deployment automation tools"

156 }

157 ]

158}

159```

160 

161<h2 id="marketplace-schema">

162 Schema del marketplace

163</h2>

164 

165<h3 id="required-fields">

166 Campi obbligatori

167</h3>

168 

169| Campo | Tipo | Descrizione | Esempio |

170| :-------- | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------- |

171| `name` | string | Identificatore del marketplace in kebab-case, senza spazi, caratteri di controllo o caratteri di formattazione bidirezionale. Questo è pubblico: gli utenti lo vedono quando installano plugin (ad esempio, `/plugin install my-tool@your-marketplace`). Ogni utente può registrare un solo marketplace per nome: quando aggiungono un secondo marketplace con lo stesso nome, Claude Code sostituisce il primo. Per pubblicare più plugin sotto un nome di marketplace, elencarli tutti in un singolo [`marketplace.json`](#create-the-marketplace-file). | `"acme-tools"` |

172| `owner` | object | Informazioni sul manutentore del marketplace. Vedi [Campi del proprietario](#owner-fields) | |

173| `plugins` | array | Elenco dei plugin disponibili | Vedi [Voci di plugin](#plugin-entries) |

174 

175<Note>

176 **Nomi riservati**: i seguenti nomi di marketplace sono riservati per uso ufficiale di Anthropic e non possono essere utilizzati da marketplace di terze parti: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `claude-plugins-community`, `claude-community`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `knowledge-work-plugins`, `life-sciences`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, `claude-tag-plugins`, `healthcare`. Anche i nomi che impersonano marketplace ufficiali, come `official-claude-plugins` o `anthropic-plugins-v2`, sono bloccati. La riserva di questi nomi impedisce a un marketplace di terze parti di presentarsi come fonte pubblicata da Anthropic.

177 

178 Claude Code ricontrolla i nomi riservati ogni volta che carica un marketplace, non solo quando ne aggiungi uno. Un marketplace registrato con uno di questi nomi prima che il nome diventasse riservato smette di caricarsi e segnala che è [registrato da una fonte non attendibile](/docs/it/errors#marketplace-is-registered-from-an-untrusted-source). Rimuovi quel marketplace e aggiungilo di nuovo dalla fonte ufficiale di Anthropic. Un marketplace di terze parti interessato da un nome appena riservato si carica di nuovo non appena lo aggiungi di nuovo con un nome diverso. Prima della v2.1.205, `first-party-plugins` e `healthcare` non erano riservati, e un marketplace già registrato con un nome riservato continuava a caricarsi. Prima della v2.1.265, `claude-tag-plugins` non era riservato.

179 

180 Non puoi nemmeno denominare un marketplace `npm`, `pip`, `uv`, `cargo`, `github`, o `gh`, in nessuna combinazione di maiuscole e minuscole. Questo controllo richiede Claude Code v2.1.275 o successivo.

181</Note>

182 

183<h3 id="owner-fields">

184 Campi del proprietario

185</h3>

186 

187| Campo | Tipo | Obbligatorio | Descrizione |

188| :------ | :----- | :----------- | :------------------------------------------------- |

189| `name` | string | Sì | Nome del manutentore o del team |

190| `email` | string | No | Email di contatto per il manutentore |

191| `url` | string | No | Sito web, profilo GitHub o URL dell'organizzazione |

192 

193<h3 id="optional-fields">

194 Campi opzionali

195</h3>

196 

197| Campo | Tipo | Descrizione |

198| :------------------------------------ | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

199| `$schema` | string | URL dello schema JSON per l'autocompletamento dell'editor e la convalida. Claude Code ignora questo campo al momento del caricamento. |

200| `description` | string | Breve descrizione del marketplace |

201| `version` | string | Versione del manifest del marketplace |

202| `metadata.pluginRoot` | string | Directory che Claude Code risolve sotto i nomi di fonte del plugin bare. Vedi [Percorsi relativi](#relative-paths). Richiede Claude Code v2.1.239 o successivo. |

203| `allowCrossMarketplaceDependenciesOn` | array | Altri marketplace su cui i plugin in questo marketplace possono dipendere. Le dipendenze da un marketplace non elencato qui sono bloccate all'installazione. Vedi [Dipendi da un plugin di un altro marketplace](/docs/it/plugin-dependencies#depend-on-a-plugin-from-another-marketplace). |

204| `renames` | object | Mappa da un precedente `name` del plugin al suo nome attuale, o a `null` se il plugin è stato rimosso. Consente agli utenti esistenti di migrare automaticamente quando rinomini o rimuovi una voce in `plugins`. Vedi [Rinominare o rimuovere un plugin](#rename-or-remove-a-plugin). Richiede Claude Code v2.1.193 o successivo. |

205 

206`description` e `version` sono accettati anche sotto `metadata` per compatibilità con le versioni precedenti.

207 

208<h2 id="plugin-entries">

209 Voci di plugin

210</h2>

211 

212Ogni voce di plugin nell'array `plugins` descrive un plugin e dove trovarlo. Puoi includere qualsiasi campo dallo [schema del manifest del plugin](/docs/it/plugins-reference#plugin-manifest-schema), come `description`, `version`, `author`, `commands` e `hooks`, più questi campi specifici del marketplace: `source`, `category`, `tags`, `strict`, `relevance`, `headers` e `headersHelper`.

213 

214<h3 id="required-fields-2">

215 Campi obbligatori

216</h3>

217 

218| Campo | Tipo | Descrizione |

219| :------- | :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

220| `name` | string | Identificatore del plugin in kebab-case, senza spazi, caratteri di controllo o caratteri di formattazione bidirezionale. Questo è pubblico: gli utenti lo vedono quando installano (ad esempio, `/plugin install my-plugin@marketplace`). |

221| `source` | string\|object | Da dove recuperare il plugin (vedi [Plugin sources](#plugin-sources) di seguito) |

222 

223<h3 id="optional-plugin-fields">

224 Campi di plugin opzionali

225</h3>

226 

227**Campi di metadati standard:**

228 

229| Campo | Tipo | Descrizione |

230| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

231| `displayName` | string | Nome leggibile mostrato nelle superfici dell'interfaccia utente. Quando né la voce né il `plugin.json` del plugin ne impostano uno, gli utenti vedono il `name` del plugin. Può contenere spazi e qualsiasi maiuscola/minuscola. Non utilizzato per il namespacing o la ricerca. |

232| `description` | string | Breve descrizione del plugin |

233| `version` | string | Versione del plugin. Se impostato (qui o in `plugin.json`), il plugin è bloccato a questa stringa e gli utenti ricevono aggiornamenti solo quando cambia. Un plugin con una [`command` source](#command-sources) non è bloccato da nessuno dei due campi. Neanche un plugin [caricato in place](/docs/it/plugins-reference#plugin-caching-and-file-resolution) da un marketplace aggiunto come directory locale. Se non impostato in nessuno dei due posti, la versione proviene dalla prossima source in [version management](/docs/it/plugins-reference#version-management). |

234| `author` | object | Informazioni sull'autore del plugin (`name` obbligatorio; `email` e `url` opzionali) |

235| `homepage` | string | URL della homepage o della documentazione del plugin |

236| `repository` | string | URL del repository del codice sorgente |

237| `license` | string | Identificatore di licenza SPDX (ad esempio, MIT, Apache-2.0) |

238| `keywords` | array | Tag per la scoperta e la categorizzazione dei plugin |

239| `metadata` | object | Oggetto in formato libero per i tuoi campi personalizzati, come dati di diritto o catalogo. Claude Code non lo legge. Prima della v2.1.222, `claude plugin validate` segnalava la chiave come campo non riconosciuto. |

240| `category` | string | Categoria del plugin per l'organizzazione |

241| `tags` | array | Tag per la ricercabilità |

242| `strict` | boolean | Controlla se `plugin.json` è l'autorità per le definizioni dei componenti (predefinito: true). Vedi [Strict mode](#strict-mode) di seguito. |

243| `relevance` | object | Segnali che indicano a Claude Code quando suggerire questo plugin agli utenti. Ha effetto solo per i marketplace che un amministratore consente nelle impostazioni gestite. Vedi [Recommend plugins for your org](/docs/it/plugin-relevance). |

244| `defaultEnabled` | boolean | Se il plugin è abilitato dopo l'installazione (predefinito: true). Impostare su `false` per installare il plugin disabilitato fino a quando l'utente non acconsente. Ha la precedenza sullo stesso campo nel `plugin.json` del plugin. Vedi [Default enablement](/docs/it/plugins-reference#default-enablement). |

245 

246Sia la voce che il `plugin.json` del plugin stesso possono impostare i campi di visualizzazione `displayName`, `description`, `author`, `homepage`, `repository`, `license` e `keywords`. Negli elenchi e nei dettagli dei plugin, prima e dopo l'installazione:

247 

248* Per un campo che imposti sulla voce, gli utenti vedono il valore della voce, anche quando `plugin.json` ne imposta uno diverso.

249* Per un campo che la voce lascia non impostato, gli utenti vedono il valore di `plugin.json`.

250 

251Prima dell'installazione, Claude Code può leggere `plugin.json` solo per le voci con una [relative-path source](#relative-paths), i cui file di plugin si trovano all'interno del marketplace stesso. Per una voce con qualsiasi altro tipo di source, gli utenti vedono solo i campi della voce stessa fino a quando non installano il plugin.

252 

253**Campi di configurazione dei componenti:**

254 

255| Campo | Tipo | Descrizione |

256| :----------- | :------------- | :------------------------------------------------------------------------------ |

257| `skills` | string\|array | Percorsi personalizzati alle directory delle skill contenenti `<name>/SKILL.md` |

258| `commands` | string\|array | Percorsi personalizzati ai file di skill flat `.md` o alle directory |

259| `agents` | string\|array | Percorsi personalizzati ai file degli agenti |

260| `hooks` | string\|object | Configurazione degli hook personalizzati o percorso al file degli hook |

261| `mcpServers` | string\|object | Configurazioni del server MCP o percorso alla configurazione MCP |

262| `lspServers` | string\|object | Configurazioni del server LSP o percorso alla configurazione LSP |

263 

264**Campi di autenticazione dell'archivio:**

265 

266Imposta questi quando la voce ha una [`archive` source](#zip-archives) su un server che richiede credenziali.

267 

268| Campo | Tipo | Descrizione |

269| :-------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

270| `headers` | object | Intestazioni HTTP che Claude Code invia quando scarica l'archivio di questa voce. Sostituisce le intestazioni del marketplace con lo stesso nome. Richiede Claude Code v2.1.238 o successivo. |

271| `headersHelper` | string | Comando che stampa le intestazioni HTTP per il download dell'archivio di questa voce come un singolo oggetto JSON, per una credenziale che scade. Vedi [Authenticate archive downloads](#authenticate-archive-downloads). La voce deve anche impostare [`"strict": false`](#strict-mode). Richiede Claude Code v2.1.238 o successivo. |

272 

273<h2 id="plugin-sources">

274 Origini dei plugin

275</h2>

276 

277Le origini dei plugin indicano a Claude Code dove ottenere ogni singolo plugin elencato nel tuo marketplace. Questi sono impostati nel campo `source` di ogni voce di plugin in `marketplace.json`.

278 

279Claude Code copia ogni plugin installato nella cache locale dei plugin con versione in `~/.claude/plugins/cache`, a meno che il plugin non si carichi al suo posto. Una [`command` source in link mode](#copy-mode-and-link-mode) si carica al suo posto, così come una [relative path source](#relative-paths) in un marketplace aggiunto da una directory locale. Claude Code inoltre [installa le dipendenze del pacchetto Node.js idonee del plugin](/docs/it/plugins-reference#node-js-package-dependencies) nella copia memorizzata nella cache. Vedi [Plugin caching and file resolution](/docs/it/plugins-reference#plugin-caching-and-file-resolution) per come un plugin caricato al suo posto da un marketplace di directory locale raccoglie i tuoi modifiche.

280 

281| Origine | Tipo | Campi | Note |

282| ----------------- | --------------------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

283| Percorso relativo | `string` (ad es. `"./my-plugin"`) | nessuno | Directory locale all'interno del repository del marketplace. Deve iniziare con `./`, a meno che non scrivi un [nome semplice sotto `metadata.pluginRoot`](#relative-paths). Claude Code risolve il percorso relativo alla radice del marketplace, non alla directory `.claude-plugin/` |

284| `github` | object | `repo`, `ref?`, `sha?` | |

285| `url` | object | `url`, `ref?`, `sha?` | Origine URL Git |

286| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | Sottodirectory all'interno di un repository git. Clona in modo sparso per ridurre al minimo la larghezza di banda per i monorepo |

287| `npm` | object | `package`, `version?`, `registry?` | Pacchetto npm, recuperato con il tuo client npm e decompresso senza eseguire script di installazione |

288| `archive` | object | `url`, `sha256?` | Archivio zip scaricato tramite HTTPS. Funziona senza git o npm sulla macchina dell'utente. Richiede Claude Code v2.1.224 o successivo |

289| `command` | object | `command`, `timeout?`, `mode?` | Directory del plugin prodotta dall'esecuzione di un comando locale, rieseguita una volta per sessione per raccogliere i cambiamenti. Richiede Claude Code v2.1.229 o successivo |

290 

291<Note>

292 **Origini del marketplace rispetto alle origini dei plugin**: Questi sono concetti diversi che controllano cose diverse.

293 

294 * **Origine del marketplace**: dove recuperare il catalogo `marketplace.json` stesso. Impostato quando gli utenti eseguono `/plugin marketplace add` o nelle impostazioni `extraKnownMarketplaces`. Le origini del marketplace basate su Git supportano `ref` (branch/tag) ma non `sha`.

295 * **Origine del plugin**: dove recuperare un singolo plugin elencato nel marketplace. Impostato nel campo `source` di ogni voce di plugin all'interno di `marketplace.json`. Le origini dei plugin basate su Git supportano sia `ref` (branch/tag) che `sha` (commit esatto).

296 

297 Ad esempio, un marketplace ospitato in `acme-corp/plugin-catalog` (origine del marketplace) può elencare un plugin recuperato da `acme-corp/code-formatter` (origine del plugin). L'origine del marketplace e l'origine del plugin puntano a repository diversi e sono bloccate indipendentemente.

298</Note>

299 

300I tipi di origine basati su git di seguito sono `github`, `url` e `git-subdir`. Quando sia `ref` che `sha` sono impostati su uno qualsiasi di essi, `sha` è il blocco effettivo. Claude Code recupera e controlla il commit bloccato direttamente.

301 

302Sulla maggior parte degli host git, inclusi GitHub, GitLab e Bitbucket, ciò significa che l'installazione ha successo anche se il branch o il tag denominato da `ref` è stato successivamente eliminato a monte, purché il commit sia ancora raggiungibile dal repository. Alcuni server, come AWS CodeCommit, non supportano il recupero dei commit per SHA. Su questi server `ref` deve ancora esistere e il commit bloccato deve essere raggiungibile da esso.

303 

304Se distribuisci plugin tramite **Impostazioni organizzazione > Plugin**, sono consentiti solo alcuni tipi di origine. Vedi [Distribuire tramite impostazioni organizzazione](#distribute-through-organization-settings).

305 

306<h3 id="relative-paths">

307 Percorsi relativi

308</h3>

309 

310Per i plugin nello stesso repository, utilizza un percorso che inizia con `./`:

311 

312```json theme={null}

313{

314 "name": "my-plugin",

315 "source": "./plugins/my-plugin"

316}

317```

318 

319I percorsi si risolvono relativamente alla radice del marketplace, che è la directory contenente `.claude-plugin/`. Nell'esempio precedente, `./plugins/my-plugin` punta a `<repo>/plugins/my-plugin`, anche se `marketplace.json` si trova in `<repo>/.claude-plugin/marketplace.json`. Non utilizzare `../` per fare riferimento a percorsi al di fuori della radice del marketplace. Su macOS e Linux, Claude Code rifiuta una voce di percorso con una barra rovesciata in qualsiasi punto dopo il `./` iniziale, quindi scrivi i separatori come `/` su ogni piattaforma.

320 

321Un nome semplice è un singolo nome di directory senza `/`, come `"formatter"`. Per scrivere nomi semplici invece di percorsi `./`, imposta [`metadata.pluginRoot`](#optional-fields) sulla directory in cui si risolvono. Con `"pluginRoot": "./plugins"`, Claude Code risolve `"source": "formatter"` in `./plugins/formatter`. Richiede Claude Code v2.1.239 o successivo.

322 

323`metadata.pluginRoot` deve essere esso stesso un percorso relativo all'interno del marketplace. Claude Code lo ignora per un'origine che inizia già con `./`. Un'origine che contiene un `/`, come `team-a/formatter`, non è un nome semplice e ha ancora bisogno del prefisso `./`, anche quando `metadata.pluginRoot` è impostato.

324 

325<Note>

326 Claude Code risolve i percorsi relativi rispetto a una copia locale del marketplace, quindi funzionano quando gli utenti aggiungono il tuo marketplace da un'origine git o da una directory locale. Se gli utenti aggiungono il tuo marketplace tramite un URL diretto al file `marketplace.json`, i percorsi relativi non si risolveranno, perché Claude Code scarica solo quel file. Per la distribuzione basata su URL, utilizza invece qualsiasi altra [origine del plugin](#plugin-sources). Vedi [Risoluzione dei problemi](#plugins-with-relative-paths-fail-in-url-based-marketplaces) per i dettagli.

327</Note>

328 

329<h3 id="github-repositories">

330 Repository GitHub

331</h3>

332 

333```json theme={null}

334{

335 "name": "github-plugin",

336 "source": {

337 "source": "github",

338 "repo": "owner/plugin-repo"

339 }

340}

341```

342 

343Puoi bloccare a un branch, tag o commit specifico:

344 

345```json theme={null}

346{

347 "name": "github-plugin",

348 "source": {

349 "source": "github",

350 "repo": "owner/plugin-repo",

351 "ref": "v2.0.0",

352 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

353 }

354}

355```

356 

357| Campo | Tipo | Descrizione |

358| :----- | :----- | :------------------------------------------------------------------------------------------------ |

359| `repo` | string | Obbligatorio. Repository GitHub nel formato `owner/repo` |

360| `ref` | string | Facoltativo. Branch o tag Git (per impostazione predefinita il branch predefinito del repository) |

361| `sha` | string | Facoltativo. SHA del commit git completo di 40 caratteri per bloccare a una versione esatta |

362 

363<h3 id="git-repositories">

364 Repository Git

365</h3>

366 

367```json theme={null}

368{

369 "name": "git-plugin",

370 "source": {

371 "source": "url",

372 "url": "https://gitlab.com/team/plugin.git"

373 }

374}

375```

376 

377Puoi bloccare a un branch, tag o commit specifico:

378 

379```json theme={null}

380{

381 "name": "git-plugin",

382 "source": {

383 "source": "url",

384 "url": "https://gitlab.com/team/plugin.git",

385 "ref": "main",

386 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

387 }

388}

389```

390 

391| Campo | Tipo | Descrizione |

392| :---- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

393| `url` | string | Obbligatorio. URL completo del repository git (`https://` o `git@`). Il suffisso `.git` è facoltativo, quindi gli URL di Azure DevOps e AWS CodeCommit senza il suffisso funzionano |

394| `ref` | string | Facoltativo. Branch o tag Git (per impostazione predefinita il branch predefinito del repository) |

395| `sha` | string | Facoltativo. SHA del commit git completo di 40 caratteri per bloccare a una versione esatta |

396 

397<h3 id="git-subdirectories">

398 Sottodirectory Git

399</h3>

400 

401Utilizza `git-subdir` per puntare a un plugin che si trova all'interno di una sottodirectory di un repository git. Claude Code utilizza un clone parziale e sparso per recuperare solo la sottodirectory, riducendo al minimo la larghezza di banda per i grandi monorepo.

402 

403```json theme={null}

404{

405 "name": "my-plugin",

406 "source": {

407 "source": "git-subdir",

408 "url": "https://github.com/acme-corp/monorepo.git",

409 "path": "tools/claude-plugin"

410 }

411}

412```

413 

414Puoi bloccare a un branch, tag o commit specifico:

415 

416```json theme={null}

417{

418 "name": "my-plugin",

419 "source": {

420 "source": "git-subdir",

421 "url": "https://github.com/acme-corp/monorepo.git",

422 "path": "tools/claude-plugin",

423 "ref": "v2.0.0",

424 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

425 }

426}

427```

428 

429Il campo `url` accetta anche una scorciatoia GitHub (`owner/repo`) o URL SSH (`git@github.com:owner/repo.git`).

430 

431| Campo | Tipo | Descrizione |

432| :----- | :----- | :-------------------------------------------------------------------------------------------------------------------------------- |

433| `url` | string | Obbligatorio. URL del repository Git, scorciatoia GitHub `owner/repo`, o URL SSH |

434| `path` | string | Obbligatorio. Percorso della sottodirectory all'interno del repository contenente il plugin (ad esempio, `"tools/claude-plugin"`) |

435| `ref` | string | Facoltativo. Branch o tag Git (per impostazione predefinita il branch predefinito del repository) |

436| `sha` | string | Facoltativo. SHA del commit git completo di 40 caratteri per bloccare a una versione esatta |

437 

438<h3 id="npm-packages">

439 Pacchetti npm

440</h3>

441 

442Un'origine npm può denominare qualsiasi pacchetto nel registro npm pubblico o in un registro privato ospitato dal tuo team. Claude Code risolve il pacchetto con il tuo client npm, scarica il tarball e lo decomprime nella cache del plugin.

443 

444Gli script di installazione del pacchetto, come `preinstall` o `postinstall`, non vengono mai eseguiti, e le sue dipendenze non vengono installate durante il recupero.

445 

446Se il pacchetto fornisce un lockfile supportato accanto al suo `package.json`, Claude Code installa quelle [dipendenze del pacchetto Node.js](/docs/it/plugins-reference#node-js-package-dependencies) in un passaggio separato, anche con script disabilitati. Altrimenti, pubblica il plugin con tutto ciò di cui ha bisogno già costruito. Un server MCP che ha bisogno di altri pacchetti può avviarsi tramite `npx`, che li installa al primo esecuzione.

447 

448```json theme={null}

449{

450 "name": "my-npm-plugin",

451 "source": {

452 "source": "npm",

453 "package": "@acme/claude-plugin"

454 }

455}

456```

457 

458Per bloccare a una versione specifica, aggiungi il campo `version`:

459 

460```json theme={null}

461{

462 "name": "my-npm-plugin",

463 "source": {

464 "source": "npm",

465 "package": "@acme/claude-plugin",

466 "version": "2.1.0"

467 }

468}

469```

470 

471Per installare da un registro privato o interno, aggiungi il campo `registry`:

472 

473```json theme={null}

474{

475 "name": "my-npm-plugin",

476 "source": {

477 "source": "npm",

478 "package": "@acme/claude-plugin",

479 "version": "^2.0.0",

480 "registry": "https://npm.example.com"

481 }

482}

483```

484 

485| Campo | Tipo | Descrizione |

486| :--------- | :----- | :------------------------------------------------------------------------------------------------------------------------------- |

487| `package` | string | Obbligatorio. Nome del pacchetto o pacchetto con scope (ad esempio, `@org/plugin`) |

488| `version` | string | Facoltativo. Versione o intervallo di versioni (ad esempio, `2.1.0`, `^2.0.0`, `~1.5.0`) |

489| `registry` | string | Facoltativo. URL del registro npm personalizzato. Per impostazione predefinita il registro npm del sistema (in genere npmjs.org) |

490 

491<h3 id="zip-archives">

492 Archivi zip

493</h3>

494 

495Utilizza `archive` per distribuire un plugin come file zip che Claude Code scarica tramite HTTPS, in modo che le installazioni funzionino senza git o npm sulla macchina dell'utente. Ospita il file su qualsiasi server di file statici o repository di artefatti, come un bucket S3, un repository generico di Artifactory o nginx. Richiede Claude Code v2.1.224 o successivo. Nelle versioni da v2.1.120 a v2.1.223, l'installazione del plugin non riesce con `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.`; nelle versioni precedenti, un marketplace contenente una voce `archive` non si carica affatto.

496 

497Questa voce installa il plugin da un file zip su un server di artefatti:

498 

499```json theme={null}

500{

501 "name": "my-plugin",

502 "source": {

503 "source": "archive",

504 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip"

505 }

506}

507```

508 

509Quando crei il file zip, puoi comprimere direttamente il contenuto del plugin o comprimere la cartella del plugin stessa. Claude Code cerca `.claude-plugin/` in cima all'archivio, quindi all'interno di una singola cartella di primo livello, quindi entrambi i layout si installano:

510 

511```text theme={null}

512my-plugin.zip my-plugin.zip

513├── .claude-plugin/ └── my-plugin/

514│ └── plugin.json ├── .claude-plugin/

515└── commands/ │ └── plugin.json

516 └── commands/

517```

518 

519Claude Code non cerca più in profondità di una cartella, quindi un plugin annidato più in basso non si installa. Claude Code rifiuta gli archivi più grandi di 256 MiB.

520 

521Per bloccare il file esatto, aggiungi un campo `sha256` con il digest dell'archivio:

522 

523```json theme={null}

524{

525 "name": "my-plugin",

526 "source": {

527 "source": "archive",

528 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip",

529 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

530 }

531}

532```

533 

534Se il file scaricato non corrisponde al blocco, Claude Code rifiuta l'installazione e segnala [`Plugin archive integrity check failed`](/docs/it/errors#plugin-archive-integrity-check-failed).

535 

536Le origini dell'archivio accettano questi campi:

537 

538| Campo | Tipo | Descrizione |

539| :------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

540| `url` | string | Obbligatorio. URL HTTPS dell'archivio zip. Claude Code rifiuta gli URL `http://`, insieme agli host loopback, link-local e cloud-metadata. Ogni hop di reindirizzamento deve soddisfare le stesse regole, o Claude Code rifiuta il download |

541| `sha256` | string | Facoltativo. Digest SHA-256 dell'archivio come 64 caratteri esadecimali, maiuscoli o minuscoli. Claude Code verifica ogni download rispetto ad esso e rifiuta l'installazione in caso di mancata corrispondenza |

542 

543Il digest `sha256` serve anche come versione del plugin quando né `plugin.json` né la voce del marketplace ne dichiara una. Vedi [Gestione delle versioni](/docs/it/plugins-reference#version-management). Se dichiari una `version`, quella stringa di versione è il segnale di aggiornamento, quindi dopo aver modificato il file zip e il suo digest, aumenta anche la versione, altrimenti gli utenti mantengono la copia memorizzata nella cache.

544 

545<h4 id="authenticate-archive-downloads">

546 Autentica i download dell'archivio

547</h4>

548 

549Per autenticare un download dell'archivio, come un download da un registro privato, imposta le intestazioni HTTP che Claude Code invia con esso. Imposta `headers` sull'origine `url` da cui hai registrato il marketplace, come una voce [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces). Su Claude Code v2.1.238 o successivo, puoi impostarla sulla voce del plugin invece, accanto a `source`.

550 

551Se il valore che inseriresti in `headers` è di breve durata, come un token che il tuo registro crea su richiesta, imposta invece un comando `headersHelper` nello stesso posto. Claude Code esegue il comando e invia l'oggetto JSON che stampa come intestazioni di quel posto. Richiede Claude Code v2.1.238 o successivo.

552 

553Il posto che scegli decide quali download ricevono le intestazioni e quando Claude Code esegue il comando:

554 

555| Posto | Download che ricevono le intestazioni | Quando Claude Code esegue un `headersHelper` impostato lì |

556| :---------------------------- | :-------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

557| Origine `url` del marketplace | Download dell'archivio sull'origine dell'URL del marketplace, ovvero lo stesso schema, host e porta | Prima di ogni recupero del `marketplace.json` del marketplace e prima di ogni download dell'archivio su quell'origine. Claude Code riutilizza l'output di un'esecuzione per fino a 60 secondi |

558| Voce del plugin | Solo il download di quella voce | Solo quando un utente installa o aggiorna quel singolo plugin da solo e [accetta il comando](#how-users-accept-a-headershelper-command) |

559 

560Dove entrambi i posti impostano un'intestazione con lo stesso nome, Claude Code invia il valore della voce. All'interno di un posto, un'intestazione che il comando stampa sostituisce un'intestazione con lo stesso nome elencata in `headers`.

561 

562<h5 id="add-a-headershelper-to-a-plugin-entry">

563 Aggiungi un headersHelper a una voce di plugin

564</h5>

565 

566Questa voce imposta `headersHelper` accanto a `source`. Imposta anche `"strict": false`, che Claude Code richiede di una voce `marketplace.json` che imposta `headersHelper`. Con [`"strict": false`](#strict-mode), la voce del marketplace è l'intera definizione del plugin, quindi un utente può rivedere cosa contiene il plugin prima di accettare il comando:

567 

568```json theme={null}

569{

570 "name": "my-plugin",

571 "description": "Formatting commands for internal services",

572 "strict": false,

573 "commands": "./commands",

574 "source": {

575 "source": "archive",

576 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"

577 },

578 "headersHelper": "/opt/bin/mint-registry-token.sh"

579}

580```

581 

582Per controllare la voce, esegui `claude plugin install my-plugin@your-marketplace`. Claude Code ti mostra il comando e l'URL dell'archivio, e scarica il file zip dopo che accetti.

583 

584Prima della v2.1.238, Claude Code scaricava l'archivio di una voce senza le sue `headers` o `headersHelper`, quindi un'installazione che si basava su di esse non riusciva con `HTTP 401 while downloading plugin archive from`, seguito dall'URL, con il codice di stato del registro al posto di 401.

585 

586<h4 id="write-the-headershelper-command">

587 Scrivi il comando headersHelper

588</h4>

589 

590Che tu imposti `headersHelper` sull'origine `url` di un marketplace o su una voce di plugin, scrivi il comando per soddisfare questi requisiti:

591 

592* **Testo del comando**: al massimo 500 caratteri di ASCII stampabile, senza sequenze di quattro o più spazi.

593* **Output**: stampa un oggetto JSON di nomi di intestazione e valori di stringa su stdout, quindi esci con 0 entro 10 secondi.

594* **Shell e directory di lavoro**: Claude Code esegue il comando tramite `sh`, o `cmd.exe` su Windows, dalla directory di configurazione, `~/.claude` o [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars#variables). Fornisci un percorso assoluto o un comando su `PATH`, perché un percorso relativo si risolve rispetto a quella directory, non al progetto dell'utente.

595* **Variabili che Claude Code rimuove**: dall'ambiente di un comando impostato in una voce `marketplace.json` o nelle impostazioni `.claude/settings.json` o `.claude/settings.local.json` di un progetto, Claude Code rimuove ogni variabile il cui nome contiene una parola come `TOKEN`, `SECRET`, `KEY` o `AUTH`, incluso `ANTHROPIC_API_KEY`. Claude Code non applica questa rimozione a un comando impostato nelle impostazioni utente, in un file `--settings` o nelle impostazioni gestite.

596* **Variabili che Claude Code imposta**: `CLAUDE_CODE_MARKETPLACE_URL` e `CLAUDE_CODE_MARKETPLACE_NAME` per il comando di un'origine `url`, e `CLAUDE_CODE_PLUGIN_NAME` e `CLAUDE_CODE_PLUGIN_ARCHIVE_URL` per il comando di una voce. `CLAUDE_CODE_MARKETPLACE_NAME` non è impostato al primo recupero dopo che un utente aggiunge un marketplace per URL, perché quel recupero è quello che fornisce il nome.

597 

598Un comando che crea un token bearer stampa un oggetto come questo:

599 

600```json theme={null}

601{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}

602```

603 

604<h4 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">

605 Quando Claude Code salta un comando headersHelper o scarta il suo output

606</h4>

607 

608Claude Code non esegue un comando `headersHelper`, o scarta le intestazioni che provengono da `headers` o dall'output del comando, in queste situazioni:

609 

610* **Il comando non riesce**: se il comando esce con codice diverso da zero, viene eseguito oltre 10 secondi, o stampa qualcosa di diverso da un oggetto JSON di valori di stringa, Claude Code non effettua il recupero o il download per cui ha eseguito il comando.

611* **L'URL del marketplace non inizia con `https://`**: Claude Code non esegue il comando di quell'origine `url` e invia solo le intestazioni elencate nel suo campo `headers`.

612* **Il reindirizzamento lascia l'origine**: quando un download viene reindirizzato dall'origine dell'URL dell'archivio, Claude Code scarta i valori `headers` e l'output del comando sia dell'origine `url` del marketplace che della voce del plugin.

613* **La voce imposta un'intestazione di routing o identità**: Claude Code scarta i nomi di routing delle richieste e identità del client come `Host`, `Cookie` e `X-Forwarded-*` dalle `headers` e dall'output del comando di una voce, e mantiene i nomi di autenticazione come `Authorization`. Claude Code filtra ogni voce `marketplace.json` in questo modo, e una voce [inline settings](/docs/it/settings-reference#extraknownmarketplaces) a seconda di quale file la dichiara.

614* **Il comando è impostato nelle impostazioni di una directory `--add-dir`**: Claude Code lo ignora, sia su un'origine `url` che su una [voce di plugin inline](/docs/it/settings-reference#extraknownmarketplaces), e invia solo le `headers` di quel file.

615* **Le impostazioni gestite bloccano il comando**: impostare [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) su `true` blocca i comandi `headersHelper`, e [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly) li blocca anche a meno che `disableCommandPluginSources` non sia esplicitamente `false`. Sotto uno di questi blocchi, Claude Code esegue comunque il comando per un marketplace che le impostazioni gestite stesse dichiarano.

616 

617<h4 id="how-users-accept-a-headershelper-command">

618 Come gli utenti accettano un comando headersHelper

619</h4>

620 

621Un utente accetta il comando di una voce di plugin ogni volta che installa o aggiorna quel singolo plugin da solo, dalla vista del plugin in `/plugin` o con `claude plugin install` o `claude plugin update`. Claude Code mostra il comando e l'URL dell'archivio, ed esegue il comando solo dopo che l'utente accetta.

622 

623In una shell non interattiva, passa [`--yes`](/docs/it/plugins-reference#plugin-install) per accettare il comando. Per accettare solo il comando che un'esecuzione precedente con `--json` ha visualizzato, passa [`--accept-command`](/docs/it/plugins-reference#plugin-install) con lo `sha256` che l'esecuzione ha segnalato.

624 

625Claude Code esegue solo il comando che ha mostrato, per l'URL dell'archivio che ha mostrato. Se il comando o l'URL dell'archivio della voce sono cambiati nel frattempo, Claude Code rifiuta l'installazione o l'aggiornamento. Un cambio nella stringa di query da solo non conta.

626 

627<h5 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

628 Installazioni e aggiornamenti che rifiutano il comando invece di chiedere

629</h5>

630 

631Su qualsiasi operazione diversa da un'installazione o aggiornamento di un singolo plugin, Claude Code non esegue il comando di una voce né scarica il suo archivio, quindi il plugin rimane alla versione installata o rimane disinstallato. Quello che l'utente vede dipende dall'operazione:

632 

633* **Installazione di più plugin contemporaneamente, da un suggerimento di plugin, o come dipendenza di un altro plugin**: Claude Code rifiuta il plugin che ha il comando e indirizza l'utente alla vista di quel plugin in `/plugin`. Gli altri plugin in un'installazione in blocco si installano comunque. Un plugin che dipende dal plugin rifiutato non si installa fino a quando l'utente non installa il plugin rifiutato da solo.

634* **Aggiornamento automatico in background, o avvio della sessione per un plugin il cui archivio non è mai stato scaricato**: Claude Code elenca il plugin nella scheda Errori di `/plugin` in modo che l'utente sappia di installarlo o aggiornarlo manualmente. Un aggiornamento automatico che trova la voce ancora pubblicizza l'elenco della versione installata non mostra nulla.

635 

636<h5 id="when-a-marketplace-url-source’s-command-runs">

637 Quando viene eseguito il comando di un'origine `url` del marketplace

638</h5>

639 

640Un `headersHelper` di un'origine `url` del marketplace è dichiarato in un file di impostazioni, come una voce [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces), piuttosto che nel catalogo che il marketplace pubblica, quindi Claude Code non chiede all'utente di accettarlo su ogni installazione o aggiornamento. Il file di impostazioni che lo dichiara decide quando Claude Code lo esegue:

641 

642| File di impostazioni | Quando Claude Code esegue il comando |

643| :------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

644| Impostazioni utente, un file `--settings`, o un file di impostazioni gestite sulla macchina | Senza chiedere, incluso durante un aggiornamento del marketplace in background |

645| `.claude/settings.json` o `.claude/settings.local.json` di un progetto | Solo dopo che l'utente accetta la [finestra di dialogo di trust dell'area di lavoro](/docs/it/permissions#what-runs-before-you-trust-a-folder) per quella cartella stessa. Una sessione `-p` o SDK non conta come accettazione, e nemmeno il trust concesso a una cartella padre |

646| Impostazioni gestite dal server | Solo dopo che l'utente approva le impostazioni consegnate nella [finestra di dialogo di approvazione della sicurezza](/docs/it/server-managed-settings#security-approval-dialogs) |

647 

648In una sessione `-p` o SDK, Claude Code non può mostrare la finestra di dialogo di approvazione della sicurezza. Applica le altre impostazioni consegnate, ma il recupero del marketplace, e qualsiasi download dell'archivio che ha bisogno del comando, non riesce fino a quando un utente non ha approvato in una sessione interattiva.

649 

650Per una [voce di plugin inline](/docs/it/settings-reference#extraknownmarketplaces) in uno di questi file, Claude Code richiede lo stesso trust della cartella o approvazione delle impostazioni come per un comando a livello di marketplace in quel file, e l'utente accetta anche il comando della voce su ogni installazione o aggiornamento.

651 

652<h3 id="command-sources">

653 Origini dei comandi

654</h3>

655 

656Utilizza `command` quando uno strumento installato localmente produce la directory del plugin, come un IDE che renderizza il suo plugin per la toolchain attualmente selezionata. Claude Code esegue il comando quando l'utente installa il plugin e lo riesegue in background una volta per sessione, quindi i tuoi utenti raccolgono l'output modificato dello strumento senza reinstallare. Richiede Claude Code v2.1.229 o successivo. Nella versione da v2.1.120 a v2.1.228, l'installazione del plugin non riesce con `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.`, e nelle versioni precedenti l'intero marketplace non si carica.

657 

658Questa voce installa il plugin da qualsiasi directory che lo strumento stampa:

659 

660```json theme={null}

661{

662 "name": "my-plugin",

663 "source": {

664 "source": "command",

665 "command": "my-tool claude-plugin-path"

666 }

667}

668```

669 

670Claude Code esegue il comando tramite la shell della piattaforma, `sh` su macOS e Linux o `cmd.exe` su Windows, dalla directory home dell'utente. Il comando deve stampare esattamente una riga su stdout e uscire con codice 0. Quella riga è il percorso assoluto di una directory che contiene il plugin completo al momento dell'uscita del comando, e il percorso può cambiare tra le esecuzioni.

671 

672Claude Code interrompe un comando che viene eseguito più a lungo di `timeout` secondi, e l'installazione o l'aggiornamento non riesce. Claude Code rifiuta anche il percorso stampato in questi casi, e l'installazione o l'aggiornamento non riesce allo stesso modo:

673 

674* La directory non ha contenuto di plugin al suo livello superiore, come una directory `.claude-plugin/` o una directory `skills/`, `commands/`, `agents/` o `hooks/`

675* La directory è quella in cui Claude Code è stato avviato, o una delle sue cartelle padre

676* Su Windows, il percorso è un percorso UNC

677 

678Le origini dei comandi accettano questi campi:

679 

680| Campo | Tipo | Descrizione |

681| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

682| `command` | string | Obbligatorio. Comando shell che stampa il percorso assoluto della directory del plugin come una singola riga su stdout e esce con 0. Deve essere ASCII stampabile, al massimo 500 caratteri, senza sequenze di quattro o più spazi, in modo che gli utenti possano rivedere l'intero comando che viene loro chiesto di accettare |

683| `timeout` | number | Facoltativo. Numero intero di secondi di attesa per il comando prima di rinunciare (predefinito: 60, massimo: 600) |

684| `mode` | string | Facoltativo. `"copy"` (predefinito) copia la directory stampata nella cache del plugin. `"link"` utilizza la directory stampata al suo posto. Vedi [Modalità copia e modalità link](#copy-mode-and-link-mode) |

685 

686<h4 id="copy-mode-and-link-mode">

687 Modalità copia e modalità link

688</h4>

689 

690Con il valore predefinito `"mode": "copy"`, Claude Code copia la directory stampata nella cache del plugin con versione e deriva la [versione del plugin](/docs/it/plugins-reference#version-management) da un hash del contenuto della directory. Il tuo strumento può eliminare o riscrivere la directory dopo l'uscita del comando, e una riesecuzione che produce contenuto identico conta come aggiornato. Claude Code rifiuta di installare una directory più grande di 256 MiB o contenente più di 20.000 voci.

691 

692Imposta `"mode": "link"` per le directory di plugin di grandi dimensioni che non dovrebbero essere copiate, come un'esportazione SDK renderizzata. Claude Code riempie la voce della cache del plugin con un link a ogni voce di primo livello della directory stampata e utilizza i file al suo posto, quindi nulla viene copiato, i contenuti dei file non vengono sottoposti a hash, e i limiti di dimensione non si applicano. L'installazione non riesce se una voce di primo livello è un symlink che punta al di fuori della directory stampata. Claude Code salta anche l'[installazione della dipendenza del pacchetto Node.js](/docs/it/plugins-reference#node-js-package-dependencies) per un plugin in modalità link, quindi stampa una directory che contiene già qualsiasi `node_modules` di cui il plugin ha bisogno.

693 

694Mantieni la directory stampata al suo posto per tutto il tempo in cui il plugin rimane installato, perché Claude Code carica il plugin attraverso quei link ad ogni avvio. Claude Code deriva la [versione del plugin](/docs/it/plugins-reference#version-management) dal percorso reale della directory stampata e dalle sue voci di primo livello, non dai file all'interno, quindi stampa un percorso diverso per segnalare nuovo contenuto. In una sessione avviata nella directory stampata o in qualsiasi punto al di sotto di essa, Claude Code non carica affatto il plugin.

695 

696Claude Code non supporta la modalità link su Windows e rifiuta di installare un plugin in modalità link lì. Dichiara `"mode": "copy"` invece.

697 

698<h4 id="how-users-accept-the-command">

699 Come gli utenti accettano il comando

700</h4>

701 

702Claude Code esegue il tuo comando sulla macchina dell'utente, quindi lega ogni esecuzione all'accettazione esplicita dell'utente:

703 

704* Quando gli utenti installano il plugin dalla sua schermata dei dettagli in `/plugin`, o lo installano o aggiornano con `claude plugin install` o `claude plugin update` in un terminale interattivo, Claude Code mostra loro la stringa di comando esatta per prima e registra il comando accettato per quell'installazione. Un `claude plugin update` che può procedere sull'accettazione registrata dello stesso comando non mostra nulla.

705* In una shell non interattiva, come uno script di provisioning, passa `--yes` a `claude plugin install` o `claude plugin update` per accettare il comando che stampa. Per accettare solo il comando che un'esecuzione precedente con `--json` ha visualizzato, passa [`--accept-command`](/docs/it/plugins-reference#plugin-install) con lo `sha256` che l'esecuzione ha segnalato.

706* Ogni altro percorso esegue solo il comando che l'utente ha già accettato. Questo include gli aggiornamenti avviati da `/plugin` e le esecuzioni in background descritte in [Quando Claude Code riesegue il comando](#when-claude-code-re-runs-the-command). Quando nessuno è stato accettato, Claude Code rifiuta di eseguire il comando e dice all'utente come rivederlo. Claude Code non installa mai un plugin con origine da comando come dipendenza di un altro plugin, quindi gli utenti lo installano da soli per primi.

707* Se cambi la voce `command`, o cambi il suo `mode`, gli utenti mantengono la versione che hanno già e Claude Code smette di rieseguire il comando. Nelle sessioni interattive, la scheda Errori di `/plugin` mostra il nuovo comando fino a quando l'utente non lo rivede e accetta eseguendo `claude plugin update <plugin>@<marketplace>`.

708 

709Gli amministratori possono bloccare le origini dei comandi in un'organizzazione con l'impostazione gestita [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources). Se un'organizzazione imposta [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly), Claude Code blocca le origini dei comandi per impostazione predefinita.

710 

711<h4 id="when-claude-code-re-runs-the-command">

712 Quando Claude Code riesegue il comando

713</h4>

714 

715La directory stampata riflette lo stato dello strumento al momento dell'esecuzione del comando, quindi Claude Code esegue il comando di nuovo in questi momenti:

716 

717* Ogni volta che l'utente installa o aggiorna il plugin

718* Una volta per sessione per ogni plugin con origine da comando abilitato, in background, poco dopo l'avvio della sessione. Questa esecuzione non passa attraverso l'aggiornamento automatico del marketplace, quindi non dipende dall'[impostazione di aggiornamento automatico](/docs/it/discover-plugins#configure-auto-updates) del marketplace

719* All'avvio o su `/reload-plugins`, quando la versione installata di un plugin abilitato è mancante dalla cache del plugin

720 

721Claude Code salta le due esecuzioni in background quando l'utente imposta [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/it/env-vars). Gli aggiornamenti e le installazioni espliciti eseguono comunque il comando con quella variabile impostata.

722 

723Quando l'output sottoposto a hash del comando è cambiato, Claude Code installa il risultato come una nuova versione e lo ricarica nella sessione interattiva in esecuzione, passando [gli stessi componenti che `/reload-plugins` passa](/docs/it/plugins-reference#environment-variables). L'utente vede una notifica che il plugin è stato ricaricato. Se il ricaricamento al suo posto invaliderebbe la cache del prompt della sessione, Claude Code invece chiede all'utente di eseguire `/reload-plugins`, che [avverte del costo della cache e si applica quando rieseguito con `--force`](/docs/it/prompt-caching#enabling-or-disabling-a-plugin).

724 

725<h3 id="advanced-plugin-entries">

726 Voci di plugin avanzate

727</h3>

728 

729Questo esempio mostra una voce di plugin che utilizza molti dei campi facoltativi, inclusi percorsi personalizzati per comandi, agenti, hook e server MCP:

730 

731```json theme={null}

732{

733 "name": "enterprise-tools",

734 "source": {

735 "source": "github",

736 "repo": "company/enterprise-plugin"

737 },

738 "description": "Enterprise workflow automation tools",

739 "version": "2.1.0",

740 "author": {

741 "name": "Enterprise Team",

742 "email": "enterprise@example.com"

743 },

744 "homepage": "https://docs.example.com/plugins/enterprise-tools",

745 "repository": "https://github.com/company/enterprise-plugin",

746 "license": "MIT",

747 "keywords": ["enterprise", "workflow", "automation"],

748 "category": "productivity",

749 "commands": [

750 "./commands/core/",

751 "./commands/enterprise/",

752 "./commands/experimental/preview.md"

753 ],

754 "agents": ["./agents/security-reviewer.md", "./agents/compliance-checker.md"],

755 "hooks": {

756 "PostToolUse": [

757 {

758 "matcher": "Write|Edit",

759 "hooks": [

760 {

761 "type": "command",

762 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"

763 }

764 ]

765 }

766 ]

767 },

768 "mcpServers": {

769 "enterprise-db": {

770 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

771 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]

772 }

773 },

774 "strict": false

775}

776```

777 

778Cose chiave da notare:

779 

780* **`commands` e `agents`**: puoi specificare più directory o singoli file. I percorsi sono relativi alla radice del plugin e devono rimanere al suo interno.

781 * Claude Code rifiuta un percorso che si risolve al di fuori della directory del plugin, come `./../shared.md`, con un errore [`path escapes plugin directory`](/docs/it/errors#path-escapes-plugin-directory), e carica comunque il plugin senza quel componente

782* **`${CLAUDE_PLUGIN_ROOT}`**: utilizza questa variabile nei comandi hook e nelle configurazioni del server MCP per fare riferimento ai file all'interno della directory di installazione del plugin.

783 * Vedi la [tabella di sostituzione](/docs/it/plugins-reference#environment-variables) per quali campi di configurazione la sostituiscono per tipo di server

784 * Per le dipendenze o lo stato che dovrebbe sopravvivere agli aggiornamenti del plugin, utilizza [`${CLAUDE_PLUGIN_DATA}`](/docs/it/plugins-reference#persistent-data-directory) invece

785* **`strict: false`**: poiché è impostato su false, il plugin non ha bisogno del suo `plugin.json`. La voce del marketplace definisce tutto. Vedi [Modalità strict](#strict-mode) di seguito.

786 

787Per impostazione predefinita, le skill di un plugin vengono caricate dalla directory `skills/` sotto la sua `source`. I percorsi elencati nel campo `skills` si aggiungono a quella scansione:

788 

789```json theme={null}

790"skills": ["./skills/", "./extra-skills/"]

791```

792 

793Quando più voci di plugin condividono una cartella `skills/` alla radice del marketplace (`source: "./"`), elenca invece sottodirectory specifiche in modo che ogni voce carichi solo le sue skill:

794 

795```json theme={null}

796"source": "./",

797"skills": ["./skills/code-review", "./skills/docs"]

798```

799 

800Con un'origine alla radice del marketplace, i percorsi elencati sono l'insieme completo per quella voce, e altre directory nella cartella `skills/` condivisa non si caricano. Elencare `./skills/` stesso, o la radice del plugin, mantiene la scansione completa. Se nessuno dei percorsi elencati esiste, la scansione predefinita viene eseguita invece.

801 

802<h3 id="strict-mode">

803 Modalità strict

804</h3>

805 

806Il campo `strict` controlla se `plugin.json` è l'autorità per le definizioni dei componenti (skill, agenti, hook, server MCP, stili di output).

807 

808| Valore | Comportamento |

809| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- |

810| `true` (predefinito) | `plugin.json` è l'autorità. La voce del marketplace può integrarla con componenti aggiuntivi, e entrambe le fonti vengono unite. |

811| `false` | La voce del marketplace è l'intera definizione. Se il plugin ha anche un `plugin.json` che dichiara componenti, è un conflitto e il plugin non si carica. |

812 

813**Quando utilizzare ogni modalità:**

814 

815* **`strict: true`**: il plugin ha il suo `plugin.json` e gestisce i suoi componenti. La voce del marketplace può aggiungere skill o hook extra in cima. Questo è il valore predefinito e funziona per la maggior parte dei plugin.

816* **`strict: false`**: l'operatore del marketplace vuole il controllo completo. Il repository del plugin fornisce file grezzi, e la voce del marketplace definisce quali di quei file sono esposti come skill, agenti, hook, ecc. Utile quando il marketplace ristruttura o cura i componenti di un plugin diversamente da quanto inteso dall'autore del plugin.

817 

818<h2 id="host-and-distribute-marketplaces">

819 Ospitare e distribuire marketplace

820</h2>

821 

822Quando gli utenti aggiungono un marketplace ospitato in un repository git, o installano un plugin basato su git che elenca, Claude Code clona quel repository del marketplace o del plugin sulla loro macchina. Il clone non scarica mai il contenuto di [Git LFS](https://git-lfs.com), quindi i file tracciati da LFS arrivano come file puntatore. Mantieni i file di cui i tuoi plugin hanno bisogno fuori da LFS.

823 

824<h3 id="host-on-github-recommended">

825 Ospitare su GitHub (consigliato)

826</h3>

827 

828GitHub è il modo consigliato per ospitare e distribuire un marketplace:

829 

8301. **Creare un repository**: configurare un nuovo repository per il tuo marketplace

8312. **Aggiungere il file marketplace**: creare `.claude-plugin/marketplace.json` con le definizioni dei tuoi plugin

8323. **Condividere con i team**: gli utenti aggiungono il tuo marketplace con `/plugin marketplace add owner/repo`

833 

834**Vantaggi**: funzionalità integrate di controllo versione, tracciamento dei problemi e collaborazione in team.

835 

836<h3 id="host-on-other-git-services">

837 Ospitare su altri servizi git

838</h3>

839 

840Qualsiasi servizio di hosting git funziona, come GitLab, Bitbucket e server self-hosted. Gli utenti aggiungono con l'URL completo del repository:

841 

842```shell theme={null}

843/plugin marketplace add https://gitlab.com/company/plugins.git

844```

845 

846<h3 id="private-repositories">

847 Repository privati

848</h3>

849 

850Claude Code supporta l'installazione di plugin da repository privati. Se distribuisci il tuo marketplace attraverso [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) invece, le tue credenziali git non sono coinvolte: la sincronizzazione dell'organizzazione legge il repository del marketplace attraverso la connessione GitHub o GitLab della tua organizzazione su claude.ai. Vedi [Distribuire attraverso le impostazioni dell'organizzazione](#distribute-through-organization-settings) per sapere quali fonti di plugin possono essere private.

851 

852<h4 id="commands-you-run">

853 Comandi che esegui

854</h4>

855 

856Quando esegui `/plugin marketplace add`, `/plugin install`, `/plugin update` o `/plugin marketplace update`, Claude Code utilizza i tuoi helper di credenziali git esistenti, quindi l'accesso HTTPS tramite `gh auth login`, Keychain di macOS o `git-credential-store` funziona allo stesso modo del tuo terminale. L'accesso SSH funziona finché l'host è già nel tuo file `known_hosts` e la chiave è caricata in `ssh-agent`, poiché Claude Code sopprime i prompt SSH interattivi per l'impronta digitale dell'host e la passphrase della chiave. La scorciatoia GitHub `owner/repo` clona per impostazione predefinita su SSH; imposta [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/it/env-vars#variables) per clonarli su HTTPS invece.

857 

858<h4 id="background-auto-updates">

859 Aggiornamenti automatici in background

860</h4>

861 

862Il controllo di aggiornamento in background verifica il remote del marketplace per i nuovi commit con i tuoi helper di credenziali git configurati, allo stesso modo dei comandi che esegui. Per i remote SSH, una chiave caricata in `ssh-agent` autentica il controllo. Claude Code esegue il controllo in modo non interattivo: disattiva i prompt del terminale di git e i programmi askpass, e dice agli helper di credenziali di non richiedere. Se il controllo può autenticarsi a un repository privato su HTTPS dipende dal tuo helper:

863 

864* Un helper che può fornire una credenziale memorizzata senza richiedere autentica il controllo. Git Credential Manager, l'helper Keychain di macOS e `git-credential-store` funzionano in questo modo una volta che contengono una credenziale per l'host.

865* Un helper che ha bisogno di richiedere non può rispondere in background. L'aggiornamento fallisce silenziosamente e il checkout esistente rimane al suo posto, quindi i tuoi plugin continuano a funzionare dallo stato dell'ultima sincronizzazione. Esegui `/plugin marketplace update <name>` per aggiornare il marketplace con le tue credenziali.

866 

867Quando il controllo trova il checkout aggiornato, Claude Code lo lascia così com'è. Quando il controllo trova nuovi commit, o fallisce perché non riesce a raggiungere o autenticarsi al remote, Claude Code clona di nuovo il marketplace e scambia il nuovo clone. Se quel clone fallisce, il checkout esistente rimane al suo posto. La re-clonazione può [scadere su repository di grandi dimensioni](#git-operations-time-out).

868 

869Due impostazioni rendono i marketplace privati comportarsi in modo prevedibile:

870 

871* Imposta `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` per mantenere il checkout esistente senza tentare la re-clonazione quando il controllo in background non riesce a raggiungere o autenticarsi al remote. I tuoi plugin continuano a funzionare dallo stato dell'ultima sincronizzazione, e gli aggiornamenti manuali con `/plugin marketplace update` continuano a autenticarsi con le tue credenziali.

872* Configura un helper di credenziali git, ad esempio con `gh auth setup-git` per GitHub, in modo che il controllo in background e la re-clonazione possano autenticarsi senza richiedere.

873 

874L'impostazione di un token del provider come `GITHUB_TOKEN` nel tuo ambiente non abilita di per sé l'autenticazione in background. I token hanno effetto solo attraverso un helper di credenziali configurato, ad esempio l'helper della CLI `gh`, che legge `GH_TOKEN` e `GITHUB_TOKEN`.

875 

876<Note>

877 Negli ambienti CI/CD, configura un helper di credenziali git prima di installare plugin da repository privati. Su GitHub Actions, esporta un token con accesso in lettura al repository del marketplace come `GH_TOKEN`, quindi esegui `gh auth setup-git`. Il token del workflow predefinito può accedere solo al repository del workflow stesso, quindi un marketplace privato in un altro repository ha bisogno di un token di accesso personale o di un token dell'app.

878</Note>

879 

880<h3 id="distribute-through-organization-settings">

881 Distribuire attraverso le impostazioni dell'organizzazione

882</h3>

883 

884Se distribuisci plugin attraverso [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) su un piano Team o Enterprise, si applicano queste regole di origine:

885 

886* Su github.com e gitlab.com, il repository del marketplace deve essere privato o interno. La sincronizzazione dell'organizzazione legge il repository attraverso la connessione che corrisponde al suo host:

887 * **github.com**: l'app GitHub di Claude

888 * **Il tuo host GitHub Enterprise Server**: la tua organizzazione [GitHub Enterprise App](/docs/it/github-enterprise-server#admin-setup)

889 * **gitlab.com o la tua istanza GitLab auto-gestita**: il token di accesso nella configurazione [GitLab](#sync-a-gitlab-hosted-marketplace) della tua organizzazione per quell'host

890* Ogni origine di plugin deve essere di tipo `github`, `url` o `git-subdir`, o un [percorso relativo](#relative-paths) che inizia con `./`. Se elenchi un plugin per nome semplice sotto `metadata.pluginRoot`, la sincronizzazione dell'organizzazione lo rifiuta come origine non supportata, quindi scrivi il percorso, come `./plugins/deploy-tools`.

891* Un'origine di plugin può essere privata in tre casi:

892 * Un'origine github.com che condivide il proprietario del repository del marketplace

893 * Un'origine sull'host GitHub Enterprise della tua organizzazione con l'app GHE installata sul repository

894 * Un'origine `url` o `git-subdir` sullo stesso host GitLab del repository del marketplace. Su gitlab.com, l'origine deve anche trovarsi sotto lo stesso spazio dei nomi del gruppo di primo livello o dell'utente del repository del marketplace.

895* Qualsiasi altra origine di plugin deve essere un repository pubblico su github.com, gitlab.com o bitbucket.org, che la sincronizzazione dell'organizzazione recupera senza credenziali. La sincronizzazione dell'organizzazione rifiuta le origini di plugin su host che queste regole non coprono.

896 

897Vedi [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) per il flusso di lavoro dell'amministratore.

898 

899Per includere plugin privati, posiziona le cartelle dei plugin all'interno del repository del marketplace e fai riferimento ad esse con un [percorso relativo](#relative-paths). La sincronizzazione dell'organizzazione pacchettizza ogni plugin durante la distribuzione, quindi gli utenti non hanno mai bisogno di accesso a un repository di origine separato.

900 

901Ad esempio, questa voce di plugin `marketplace.json` fa riferimento a un plugin che hai eseguito il commit a `plugins/deploy-tools` nel repository del marketplace:

902 

903```json theme={null}

904{

905 "name": "deploy-tools",

906 "source": "./plugins/deploy-tools"

907}

908```

909 

910<h4 id="sync-a-gitlab-hosted-marketplace">

911 Sincronizzare un marketplace ospitato su GitLab

912</h4>

913 

914Per sincronizzare un marketplace da gitlab.com o da un'istanza GitLab auto-gestita, un [Owner](/docs/it/server-managed-settings#access-control) aggiunge prima una configurazione GitLab per quell'host in [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code). Le configurazioni GitLab sono in beta pubblica e si applicano solo alla sincronizzazione del marketplace dei plugin. L'aggiunta di una non rende i repository GitLab disponibili alle [sessioni cloud](/docs/it/claude-code-on-the-web#limitations). Vedi [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) per i passaggi di configurazione.

915 

916Quando aggiungi il marketplace, inserisci l'URL HTTPS del progetto, come `https://gitlab.example.com/platform/claude-plugins`. I progetti nei sottogruppi annidati funzionano. La sincronizzazione dell'organizzazione legge il ramo predefinito del progetto. Se attivi **Sync automatically**, solo i push al ramo predefinito avviano una sincronizzazione.

917 

918<h4 id="keep-executables-out-of-the-top-level-bin-directory">

919 Mantenere gli eseguibili fuori dalla directory bin di primo livello

920</h4>

921 

922Non includere una directory `bin/` di primo livello in nessun plugin che distribuisci attraverso le impostazioni dell'organizzazione. claude.ai rifiuta un plugin che ne ha una, indipendentemente dal fatto che il plugin arrivi tramite sincronizzazione del marketplace o caricamento diretto:

923 

924* **Sincronizzazione del marketplace**: la sincronizzazione dell'organizzazione rifiuta quel plugin e sincronizza il resto del marketplace. Il messaggio di errore inizia con `Plugin contains a top-level bin/ directory`.

925* **Caricamento diretto**: se carichi il plugin in [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) invece, claude.ai rifiuta il caricamento con lo stesso messaggio.

926 

927Mantieni gli eseguibili in un'altra directory, come `scripts/`, e fai riferimento ad essi come `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` dalle tue [skills, hooks o configurazioni del server MCP](/docs/it/plugins-reference#environment-variables).

928 

929<h3 id="require-marketplaces-for-your-team">

930 Richiedere marketplace per il tuo team

931</h3>

932 

933Puoi configurare il tuo repository in modo che Claude Code aggiunga il tuo marketplace per i membri del team una volta che [fidano della cartella del progetto](/docs/it/permissions#what-runs-before-you-trust-a-folder), senza alcun prompt separato. Aggiungi il tuo marketplace a `.claude/settings.json`:

934 

935```json theme={null}

936{

937 "extraKnownMarketplaces": {

938 "company-tools": {

939 "source": {

940 "source": "github",

941 "repo": "your-org/claude-plugins"

942 }

943 }

944 }

945}

946```

947 

948Puoi anche specificare quali plugin devono essere abilitati per impostazione predefinita:

949 

950```json theme={null}

951{

952 "enabledPlugins": {

953 "code-formatter@company-tools": true,

954 "deployment-tools@company-tools": true

955 }

956}

957```

958 

959Per le opzioni di configurazione complete, vedi [Plugin settings](/docs/it/settings-reference#plugin-settings).

960 

961<Note>

962 Se utilizzi un'origine locale `directory` o `file` con un percorso relativo, il percorso si risolve rispetto al checkout principale del tuo repository. Quando esegui Claude Code da un git worktree, il percorso punta ancora al checkout principale, quindi tutti i worktree condividono la stessa posizione del marketplace. Lo stato del marketplace è memorizzato una volta per utente in `~/.claude/plugins/known_marketplaces.json`, non per progetto.

963</Note>

964 

965<h3 id="pre-populate-plugins-for-containers">

966 Pre-popolare plugin per i container

967</h3>

968 

969Per le immagini di container e gli ambienti CI, puoi pre-popolare una directory di plugin al momento della compilazione in modo che Claude Code inizi con marketplace e plugin già disponibili, senza clonare nulla al runtime. Imposta la variabile di ambiente `CLAUDE_CODE_PLUGIN_SEED_DIR` per puntare a questa directory.

970 

971Per stratificare più directory seed, separa i percorsi con `:` su Unix o `;` su Windows. Claude Code cerca ogni directory in ordine e utilizza il primo seed che contiene un determinato marketplace o cache di plugin.

972 

973La directory seed rispecchia la struttura di `~/.claude/plugins`:

974 

975```

976$CLAUDE_CODE_PLUGIN_SEED_DIR/

977 known_marketplaces.json

978 marketplaces/<name>/...

979 cache/<marketplace>/<plugin>/<version>/...

980```

981 

982Per costruire una directory seed, esegui Claude Code una volta durante la compilazione dell'immagine, installa i plugin di cui hai bisogno, quindi copia la directory `~/.claude/plugins` risultante nella tua immagine e punta `CLAUDE_CODE_PLUGIN_SEED_DIR` ad essa.

983 

984Per saltare il passaggio di copia, imposta `CLAUDE_CODE_PLUGIN_CACHE_DIR` sul tuo percorso seed di destinazione durante la compilazione in modo che i plugin si installino direttamente lì:

985 

986```bash theme={null}

987CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/plugins

988CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install my-tool@your-plugins

989```

990 

991Quindi imposta `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` nell'ambiente di runtime del tuo container in modo che Claude Code legga dal seed all'avvio.

992 

993All'avvio, Claude Code registra i marketplace trovati nel `known_marketplaces.json` del seed nella configurazione primaria e utilizza le cache di plugin trovate sotto `cache/` al loro posto senza re-clonazione. Questo funziona sia in modalità interattiva che in modalità non interattiva con il flag `-p`.

994 

995Dettagli del comportamento:

996 

997* **Sola lettura**: Claude Code non scrive mai nella directory seed.

998* **Auto-aggiornamenti disabilitati**: i marketplace seed non si auto-aggiornano.

999* **Le voci seed hanno la precedenza**: i marketplace dichiarati nel seed sovrascrivono le voci corrispondenti nella configurazione dell'utente ad ogni avvio. Per rinunciare a un plugin seed, utilizza `/plugin disable` piuttosto che rimuovere il marketplace.

1000* **Risoluzione del percorso**: Claude Code individua il contenuto del marketplace sondando `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` al runtime, non fidandosi dei percorsi memorizzati all'interno del JSON del seed. Ciò significa che il seed funziona correttamente anche quando montato in un percorso diverso da dove è stato compilato.

1001* **La mutazione è bloccata**: l'esecuzione di `/plugin marketplace remove` o `/plugin marketplace update` su un marketplace gestito da seed fallisce con una guida per chiedere al tuo amministratore di aggiornare l'immagine seed.

1002* **Si compone con le impostazioni**: se `extraKnownMarketplaces` o `enabledPlugins` dichiarano un marketplace che esiste già nel seed, Claude Code utilizza la copia del seed invece di clonare.

1003 

1004<h3 id="managed-marketplace-restrictions">

1005 Restrizioni del marketplace gestito

1006</h3>

1007 

1008Per le organizzazioni che richiedono un controllo rigoroso sulle origini dei plugin, gli amministratori possono limitare quali marketplace di plugin gli utenti possono aggiungere utilizzando l'impostazione [`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces) nelle impostazioni gestite. Per rifiutare anche i flag CLI che caricano plugin, agenti e server MCP per una singola esecuzione, abbinalo a [`disableSideloadFlags`](/docs/it/settings-reference#disablesideloadflags). Per consentire quali plugin dei marketplace possono apparire come suggerimenti di installazione contestuale, imposta [`pluginSuggestionMarketplaces`](/docs/it/settings-reference#pluginsuggestionmarketplaces).

1009 

1010`strictKnownMarketplaces` corrisponde al marketplace da cui proviene un plugin, non alle voci al suo interno, quindi gli utenti possono comunque installare un plugin con un'origine [`command`](#command-sources) da un marketplace consentito. Per bloccare anche le origini dei comandi, imposta [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources).

1011 

1012Quando `strictKnownMarketplaces` è configurato nelle impostazioni gestite, il comportamento della restrizione dipende dal valore:

1013 

1014| Valore | Comportamento |

1015| -------------------------- | -------------------------------------------------------------------------------------------------- |

1016| Non definito (predefinito) | Nessuna restrizione. Gli utenti possono aggiungere qualsiasi marketplace |

1017| Array vuoto `[]` | Blocco completo. Blocca ogni origine di marketplace, incluso il marketplace ufficiale di Anthropic |

1018| Elenco di origini | Allowlist applicato. Gli utenti possono aggiungere solo marketplace che corrispondono a una voce |

1019 

1020<h4 id="common-configurations">

1021 Configurazioni comuni

1022</h4>

1023 

1024Disabilita tutte le aggiunte di marketplace, incluso il marketplace ufficiale di Anthropic:

1025 

1026```json theme={null}

1027{

1028 "strictKnownMarketplaces": []

1029}

1030```

1031 

1032Claude Code scarica i plugin [sincronizzati da claude.ai](/docs/it/plugins-reference#synced-plugins) dal tuo account piuttosto che da un marketplace, quindi questo blocco non li copre. Per fermare anche quelli, imposta [`syncClaudeAiPlugins`](/docs/it/settings-reference#syncclaudeaiplugins) a `false` nelle impostazioni gestite, o disattiva Skills per la tua organizzazione su claude.ai.

1033 

1034Consenti solo il marketplace ufficiale di Anthropic. La corrispondenza per una voce di repository singolo è esatta, quindi questa voce non copre varianti `ref` o `path` dello stesso repository:

1035 

1036```json theme={null}

1037{

1038 "strictKnownMarketplaces": [

1039 {

1040 "source": "github",

1041 "repo": "anthropics/claude-plugins-official"

1042 }

1043 ]

1044}

1045```

1046 

1047Con questa voce, Claude Code mantiene disponibile un marketplace ufficiale già registrato e, su una macchina nuova, registra il marketplace automaticamente la prima volta che avvii Claude Code in modo interattivo.

1048 

1049La registrazione automatica non copre ogni macchina. Più comunemente manca:

1050 

1051* Ambienti non interattivi che vengono eseguiti prima del primo avvio interattivo della macchina.

1052* Macchine in cui Claude Code è già stato eseguito in modo interattivo secondo una politica che ha bloccato il marketplace, come il blocco dell'array vuoto. Claude Code registra il tentativo bloccato e non ritenta dopo il cambio della politica.

1053 

1054Su queste macchine, aggiungi il marketplace a [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces) nello stesso `managed-settings.json` in modo che Claude Code lo registri automaticamente, oppure esegui `claude plugin marketplace add anthropics/claude-plugins-official`.

1055 

1056Consenti solo marketplace specifici:

1057 

1058```json theme={null}

1059{

1060 "strictKnownMarketplaces": [

1061 {

1062 "source": "github",

1063 "repo": "acme-corp/approved-plugins"

1064 },

1065 {

1066 "source": "github",

1067 "repo": "acme-corp/security-tools",

1068 "ref": "v2.0"

1069 },

1070 {

1071 "source": "url",

1072 "url": "https://plugins.example.com/marketplace.json"

1073 }

1074 ]

1075}

1076```

1077 

1078Consenti ogni repository di marketplace sotto un'organizzazione GitHub con una voce [owner-wildcard](/docs/it/settings-reference#owner-wildcards). I wildcard del proprietario richiedono Claude Code v2.1.223 o successivo.

1079 

1080```json theme={null}

1081{

1082 "strictKnownMarketplaces": [

1083 {

1084 "source": "github",

1085 "repo": "acme-corp/*"

1086 }

1087 ]

1088}

1089```

1090 

1091Consenti tutti i marketplace da un server git interno utilizzando la corrispondenza del modello regex sull'host. Questo è l'approccio consigliato per [GitHub Enterprise Server](/docs/it/github-enterprise-server#plugin-marketplaces-on-ghes) o istanze GitLab self-hosted:

1092 

1093```json theme={null}

1094{

1095 "strictKnownMarketplaces": [

1096 {

1097 "source": "hostPattern",

1098 "hostPattern": "^github\\.example\\.com$"

1099 }

1100 ]

1101}

1102```

1103 

1104Consenti marketplace basati su filesystem da una directory specifica utilizzando la corrispondenza del modello regex sul percorso:

1105 

1106```json theme={null}

1107{

1108 "strictKnownMarketplaces": [

1109 {

1110 "source": "pathPattern",

1111 "pathPattern": "^/opt/approved/"

1112 }

1113 ]

1114}

1115```

1116 

1117Utilizza `".*"` come `pathPattern` per consentire qualsiasi percorso del filesystem controllando comunque le origini di rete con `hostPattern`.

1118 

1119<Note>

1120 `strictKnownMarketplaces` limita ciò che gli utenti possono aggiungere, ma non registra i marketplace di per sé. Per registrare un marketplace consentito per gli utenti automaticamente, aggiungilo a [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces) nello stesso `managed-settings.json`.

1121 

1122 Il marketplace ufficiale di Anthropic è l'unico che Claude Code registra di per sé, e solo quando l'allowlist lo consente. La registrazione automatica manca anche su alcune macchine, come gli ambienti non interattivi e le macchine in cui una politica precedente lo ha bloccato. Per coprire quelle macchine, aggiungi il marketplace ufficiale a `extraKnownMarketplaces` anche. Per i due setting affiancati, vedi il riferimento [`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces).

1123</Note>

1124 

1125<h4 id="how-restrictions-work">

1126 Come funzionano le restrizioni

1127</h4>

1128 

1129Le restrizioni vengono controllate prima di qualsiasi operazione di rete o filesystem. Il controllo viene eseguito sull'aggiunta del marketplace e sull'installazione, aggiornamento, aggiornamento e auto-aggiornamento del plugin. Se un marketplace è stato aggiunto prima che la politica fosse configurata e la sua origine non corrisponde più all'allowlist, Claude Code rifiuta di installare o aggiornare plugin da esso. Lo stesso controllo si applica a `blockedMarketplaces`.

1130 

1131Dove i due elenchi vengono applicati dipende da dove li imposti:

1132 

1133* **La console di amministrazione claude.ai**: Claude Code applica entrambi gli elenchi nelle sessioni che [leggono le impostazioni gestite dal server](/docs/it/managed-settings#where-and-when-a-policy-applies). claude.ai li controlla anche quando chiunque nella tua organizzazione aggiunge un nuovo marketplace da un repository git su claude.ai, o da **Customize** nell'app Claude Desktop al di fuori della sua scheda Code. Questo copre un marketplace che un membro aggiunge per il proprio account e uno aggiunto per l'intera organizzazione in [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins). claude.ai rifiuta un repository che l'allowlist non ammette o che la blocklist nomina. Non ri-controlla un marketplace che è stato aggiunto in entrambi i posti prima che tu imposti gli elenchi, e non controlla i plugin caricati.

1134* **Un file di impostazioni gestite, una politica a livello di sistema operativo o un'altra origine gestita**: Claude Code applica entrambi gli elenchi dove legge quella fonte. claude.ai non la legge.

1135 

1136Per bloccare ogni repository di marketplace sotto un proprietario GitHub, utilizza la forma owner-wildcard in una voce `blockedMarketplaces`: `{ "source": "github", "repo": "untrusted-org/*" }`. Richiede Claude Code v2.1.223 o successivo. Per le regole di corrispondenza, che differiscono tra la blocklist e l'allowlist, vedi [Owner wildcards](/docs/it/settings-reference#owner-wildcards).

1137 

1138Quando un utente aggiunge un URL di repository `https://` che Claude Code [clona piuttosto che recupera](/docs/it/discover-plugins#add-from-other-git-hosts), come un URL di repository bare `github.com` o `gitlab.com`, Claude Code lo controlla anche rispetto alle voci `url` in `blockedMarketplaces`. Claude Code blocca l'aggiunta se una voce nomina lo stesso URL. In quel confronto, Claude Code ignora il suffisso `.git` e qualsiasi ref che l'utente aggiunge dopo `#`. Richiede Claude Code v2.1.232 o successivo. Prima di v2.1.232, Claude Code corrispondeva a una voce `url` solo rispetto a un URL che recuperava come file `marketplace.json` ospitato.

1139 

1140L'allowlist utilizza la corrispondenza esatta per la maggior parte dei tipi di origine, a parte le voci `github` con owner-wildcard. Affinché un marketplace sia consentito, tutti i campi specificati devono corrispondere:

1141 

1142* Per le origini GitHub: `repo` è obbligatorio, nominando un repository o utilizzando la forma owner-wildcard `owner/*` per coprire ogni repository sotto quel proprietario. Per come le voci wildcard corrispondono, incluso il caso delle regole, vedi [Owner wildcards](/docs/it/settings-reference#owner-wildcards). Per le voci di repository singolo, `ref` deve corrispondere esattamente o essere assente sia dall'origine del marketplace che dalla voce dell'allowlist, e la stessa regola si applica a `path`

1143* Per le origini URL: l'URL completo deve corrispondere esattamente

1144* Per le origini `hostPattern`: l'host del marketplace viene confrontato con il modello regex

1145* Per le origini `pathPattern`: il percorso del filesystem del marketplace viene confrontato con il modello regex

1146 

1147La corrispondenza esatta dell'allowlist tratta gli URL che differiscono solo per una barra finale, un suffisso `.git` o lo schema `ssh://` e `https://` come valori diversi. Se il marketplace della tua organizzazione può essere clonato da più di una forma di URL, preferisci una voce `hostPattern` rispetto a un URL letterale in modo che i moduli `https://`, `ssh://` e `user@host:path` corrispondano tutti.

1148 

1149Un [marketplace ospitato su claude.ai](/docs/it/discover-plugins#add-from-claude-ai) è abbinato per host: una voce `hostPattern` che corrisponde a `claude.ai` lo governa, in `strictKnownMarketplaces` e in `blockedMarketplaces`. Sull'allowlist, tale voce non ammette i caricamenti personali su claude.ai di un membro. Richiede Claude Code v2.1.273 o successivo.

1150 

1151Poiché `strictKnownMarketplaces` è impostato nelle [impostazioni gestite](/docs/it/managed-settings), i singoli utenti e le configurazioni del progetto non possono ignorare queste restrizioni.

1152 

1153Per i dettagli di configurazione completi inclusi tutti i tipi di origine supportati e il confronto con `extraKnownMarketplaces`, vedi il riferimento [strictKnownMarketplaces](/docs/it/settings-reference#strictknownmarketplaces).

1154 

1155<h3 id="version-resolution-and-release-channels">

1156 Risoluzione della versione e canali di rilascio

1157</h3>

1158 

1159Le versioni dei plugin determinano i percorsi della cache e il rilevamento degli aggiornamenti: se la versione risolta corrisponde a quella che un utente ha già, `/plugin update` e l'auto-aggiornamento saltano il plugin. Per le origini basate su git, se ometti `version`, Claude Code utilizza lo SHA del commit risolto della fonte, quindi gli utenti ricevono un aggiornamento ogni volta che quel commit cambia; questa è la configurazione più semplice per i plugin interni o in fase di sviluppo attivo. Vedi [Version management](/docs/it/plugins-reference#version-management) per l'ordine di risoluzione completo, incluse le origini `archive`.

1160 

1161<Warning>

1162 L'impostazione di `version` fissa il plugin per ogni tipo di origine tranne [`command`](#command-sources), la cui versione include sempre un hash di ciò che il comando ha prodotto. Un plugin [caricato in posizione](/docs/it/plugins-reference#plugin-caching-and-file-resolution) da un marketplace aggiunto come directory locale non è fissato neanche. Se dichiari `"version": "1.0.0"` in `plugin.json` e fai il push di nuovi commit senza cambiare quella stringa, gli utenti esistenti di quelle origini mantengono la copia memorizzata nella cache, perché Claude Code vede la stessa versione. Aumenta il campo ad ogni rilascio, o omettilo per ricadere nella versione risolta.

1163 

1164 Evita di impostare `version` sia in `plugin.json` che nella voce del marketplace. Claude Code utilizza sempre il valore `plugin.json` senza avvertimento, quindi una versione del manifest obsoleta può mascherare una versione che hai impostato in `marketplace.json`.

1165</Warning>

1166 

1167<h4 id="set-up-release-channels">

1168 Configurare i canali di rilascio

1169</h4>

1170 

1171Per supportare i canali di rilascio "stable" e "latest" per i tuoi plugin, puoi configurare due marketplace che puntano a ref o SHA diversi dello stesso repository. Puoi quindi dare a ogni gruppo di utenti il suo marketplace attraverso le impostazioni gestite in uno di due modi:

1172 

1173* Distribuisci [impostazioni gestite endpoint-managed](/docs/it/managed-settings#delivery-mechanisms) separate, come un file di impostazioni gestite o un profilo MDM, ai dispositivi di ogni gruppo. [Come Claude Code combina le origini gestite](/docs/it/managed-settings#precedence-within-the-managed-tier) dice se il file o il profilo per gruppo si applica su un dispositivo che ha anche un'origine a livello di organizzazione.

1174* Definisci una [politica del gateway delle app Claude](/docs/it/claude-apps-gateway-config#managed) per gruppo. Il gateway applica la prima politica la cui regola di corrispondenza si adatta a un utente, quindi ordina le politiche in modo che ogni utente raggiunga la politica del suo gruppo. La `extraKnownMarketplaces` di una politica di gruppo sostituisce la mappa della politica catch-all piuttosto che unirsi ad essa, quindi elenca ogni marketplace di cui il gruppo ha bisogno nella politica del gruppo, non solo il suo marketplace del canale.

1175 

1176Le impostazioni gestite dal server dalla console di amministrazione [si applicano a ogni utente della tua organizzazione](/docs/it/server-managed-settings#current-limitations), quindi non possono portare un'assegnazione per gruppo.

1177 

1178<Warning>

1179 Ogni canale deve risolversi in una versione diversa. Se utilizzi versioni esplicite, `plugin.json` deve dichiarare una `version` diversa in ogni ref fissato. Se ometti `version`, gli SHA di commit distinti già distinguono i canali. Se due ref si risolvono nella stessa stringa di versione, Claude Code li tratta come identici e salta l'aggiornamento.

1180</Warning>

1181 

1182<h5 id="example">

1183 Esempio

1184</h5>

1185 

1186```json theme={null}

1187{

1188 "name": "stable-tools",

1189 "plugins": [

1190 {

1191 "name": "code-formatter",

1192 "source": {

1193 "source": "github",

1194 "repo": "acme-corp/code-formatter",

1195 "ref": "stable"

1196 }

1197 }

1198 ]

1199}

1200```

1201 

1202```json theme={null}

1203{

1204 "name": "latest-tools",

1205 "plugins": [

1206 {

1207 "name": "code-formatter",

1208 "source": {

1209 "source": "github",

1210 "repo": "acme-corp/code-formatter",

1211 "ref": "latest"

1212 }

1213 }

1214 ]

1215}

1216```

1217 

1218<h5 id="assign-channels-to-user-groups">

1219 Assegnare i canali ai gruppi di utenti

1220</h5>

1221 

1222Assegna ogni marketplace al suo gruppo di utenti attraverso le impostazioni gestite endpoint-managed per gruppo o la politica del gateway descritte in [Configurare i canali di rilascio](#set-up-release-channels). Ad esempio, il gruppo stabile riceve:

1223 

1224```json theme={null}

1225{

1226 "extraKnownMarketplaces": {

1227 "stable-tools": {

1228 "source": {

1229 "source": "github",

1230 "repo": "acme-corp/stable-tools"

1231 }

1232 }

1233 }

1234}

1235```

1236 

1237Il gruppo early-access riceve `latest-tools` invece:

1238 

1239```json theme={null}

1240{

1241 "extraKnownMarketplaces": {

1242 "latest-tools": {

1243 "source": {

1244 "source": "github",

1245 "repo": "acme-corp/latest-tools"

1246 }

1247 }

1248 }

1249}

1250```

1251 

1252<h4 id="pin-dependency-versions">

1253 Fissare le versioni delle dipendenze

1254</h4>

1255 

1256Un plugin può limitare le sue dipendenze a un intervallo semver in modo che gli aggiornamenti a una dipendenza non rompano il plugin dipendente. Vedi [Constrain plugin dependency versions](/docs/it/plugin-dependencies) per la convenzione del tag git `{plugin-name}--v{version}`, la sintassi dell'intervallo e come più vincoli sulla stessa dipendenza vengono combinati.

1257 

1258<h3 id="rename-or-remove-a-plugin">

1259 Rinominare o rimuovere un plugin

1260</h3>

1261 

1262Il `name` di un plugin è il suo identificatore stabile. Gli utenti lo referenziano in `enabledPlugins`, `pluginConfigs` e comandi `/plugin install`, quindi cambiarlo rompe ogni installazione esistente. Per cambiare l'etichetta mostrata nell'interfaccia utente senza rompere le installazioni, imposta [`displayName`](#optional-plugin-fields) e mantieni `name` invariato.

1263 

1264Se devi cambiare il `name` di un plugin, o rimuovi un plugin dall'array `plugins`, aggiungi una voce `renames` di primo livello in modo che gli utenti esistenti migrino invece di vedere un errore `plugin-not-found`. La migrazione automatica richiede Claude Code v2.1.193 o successivo. Mappa ogni nome precedente al suo nome attuale, o a `null` se il plugin non esiste più. L'esempio seguente rinomina `formatter` a `code-formatter` e registra che `legacy-linter` è stato rimosso:

1265 

1266```json theme={null}

1267{

1268 "name": "acme-tools",

1269 "owner": { "name": "Acme" },

1270 "plugins": [

1271 { "name": "code-formatter", "source": "./plugins/code-formatter" }

1272 ],

1273 "renames": {

1274 "formatter": "code-formatter",

1275 "legacy-linter": null

1276 }

1277}

1278```

1279 

1280Quando un utente avvia Claude Code con il vecchio nome ancora nelle sue impostazioni, Claude Code segue la mappa `renames`:

1281 

1282* Se la voce punta a un nuovo nome, Claude Code carica il plugin con il suo nuovo nome e mostra un avviso di una riga come `Renamed to "code-formatter" in the "acme-tools" marketplace`. Quindi riscrive la vecchia chiave nella nuova chiave negli ambiti di impostazioni utente, progetto e locale sia per `enabledPlugins` che per `pluginConfigs`, quindi l'avviso appare una volta.

1283* Per una voce `null`, Claude Code elimina la vecchia chiave e l'avviso segnala che il plugin è stato rimosso dal marketplace.

1284* Se il plugin rinominato utilizza un'origine remota come `github` o `npm`, Claude Code segnala `plugin-cache-miss` dopo la ridenominazione e l'utente deve eseguire `/plugin install` una volta per recuperarlo con il nuovo nome.

1285 

1286Tratta `renames` come una storia di sola aggiunta: mantieni le vecchie voci al loro posto anche dopo che ti aspetti che ogni utente abbia migrato. Claude Code segue le catene, quindi se in seguito rinomini `code-formatter` a `formatter-pro`, aggiungi una seconda voce piuttosto che modificare la prima. Un utente che ha ancora l'originale `formatter` abilitato si risolve quindi attraverso entrambe le voci a `formatter-pro`.

1287 

1288Esegui `claude plugin validate .` dopo aver modificato la mappa; rifiuta qualsiasi voce la cui catena forma un ciclo o non termina a `null` o a un nome elencato in `plugins`.

1289 

1290<Note>

1291 Le impostazioni gestite e di politica sono di sola lettura per Claude Code, quindi i plugin abilitati lì non possono essere riscritti automaticamente. Il plugin rinominato continua a caricarsi ad ogni sessione, ma l'avviso di ridenominazione ricorre fino a quando un amministratore non aggiorna `enabledPlugins` nel file di impostazioni gestite per utilizzare il nuovo nome. Lo stesso si applica ai plugin abilitati attraverso altre origini di sola lettura come `--add-dir`.

1292</Note>

1293 

1294Le versioni precedenti di Claude Code ignorano il campo `renames` e segnalano `plugin-not-found` per il vecchio nome.

1295 

1296<h2 id="validation-and-testing">

1297 Validazione e test

1298</h2>

1299 

1300Testa il tuo marketplace prima di condividerlo. La validazione controlla la struttura dei file; per testare se un plugin cambia il comportamento di Claude su prompt realistici, esegui la sua suite di eval con [`claude plugin eval`](/docs/it/plugin-evals) prima di pubblicare una nuova versione.

1301 

1302Dalla tua directory marketplace, valida la sintassi JSON:

1303 

1304```bash theme={null}

1305claude plugin validate .

1306```

1307 

1308O da Claude Code:

1309 

1310```shell theme={null}

1311/plugin validate .

1312```

1313 

1314Aggiungi il marketplace per il test:

1315 

1316```shell theme={null}

1317/plugin marketplace add ./path/to/marketplace

1318```

1319 

1320Installa un plugin di test per verificare che tutto funzioni:

1321 

1322```shell theme={null}

1323/plugin install test-plugin@marketplace-name

1324```

1325 

1326Per i flussi di lavoro di test completi dei plugin, vedi [Testa i tuoi plugin localmente](/docs/it/plugins#test-your-plugins-locally). Per la risoluzione dei problemi tecnici, vedi [Plugins reference](/docs/it/plugins-reference).

1327 

1328<h2 id="manage-marketplaces-from-the-cli">

1329 Gestisci marketplace dalla CLI

1330</h2>

1331 

1332Claude Code fornisce sottocomandi `claude plugin marketplace` non interattivi per lo scripting e l'automazione. Questi sono equivalenti ai comandi `/plugin marketplace` disponibili in una sessione interattiva.

1333 

1334<h3 id="plugin-marketplace-add">

1335 Plugin marketplace add

1336</h3>

1337 

1338Aggiungi un marketplace da un repository GitHub, URL git, URL remoto o percorso locale.

1339 

1340```bash theme={null}

1341claude plugin marketplace add <source> [options]

1342```

1343 

1344**Argomenti:**

1345 

1346* `<source>`: Scorciatoia GitHub `owner/repo`, URL git, URL remoto a un file `marketplace.json` o percorso di directory locale. Per fissare a un branch o tag, aggiungi `@ref` alla scorciatoia GitHub o `#ref` a un URL git

1347 

1348Un URL deve includere il suo schema. A partire da Claude Code v2.1.196, un host digitato senza uno, come `gitlab.example.com/team/plugins`, viene rifiutato come una scorciatoia `owner/repo` non valida e l'errore ti dice di aggiungere `https://` o usare `./` per un percorso locale. Le versioni precedenti lo leggevano male come un percorso di repository GitHub e falliscono al momento del clone con un errore di GitHub non trovato.

1349 

1350**Opzioni:**

1351 

1352| Opzione | Descrizione | Predefinito |

1353| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- |

1354| `--scope <scope>` | Dove dichiarare il marketplace: `user`, `project` o `local`. Vedi [Plugin installation scopes](/docs/it/plugins-reference#plugin-installation-scopes) | `user` |

1355| `--sparse <paths...>` | Limita il checkout a directory specifiche tramite git sparse-checkout. Utile per i monorepo | |

1356| `--claudeai` | Leggi l'argomento come il nome di un [marketplace ospitato su claude.ai](/docs/it/discover-plugins#add-from-claude-ai) invece di una fonte. Richiede Claude Code v2.1.273 o successivo | |

1357 

1358Aggiungi un marketplace da GitHub utilizzando la scorciatoia `owner/repo`:

1359 

1360```bash theme={null}

1361claude plugin marketplace add acme-corp/claude-plugins

1362```

1363 

1364Fissa a un branch o tag specifico con `@ref`:

1365 

1366```bash theme={null}

1367claude plugin marketplace add acme-corp/claude-plugins@v2.0

1368```

1369 

1370Aggiungi da un URL git su un host non-GitHub:

1371 

1372```bash theme={null}

1373claude plugin marketplace add https://gitlab.example.com/team/plugins.git

1374```

1375 

1376Aggiungi da un URL remoto che serve il file `marketplace.json` direttamente:

1377 

1378```bash theme={null}

1379claude plugin marketplace add https://example.com/marketplace.json

1380```

1381 

1382Aggiungi da una directory locale per il test:

1383 

1384```bash theme={null}

1385claude plugin marketplace add ./my-marketplace

1386```

1387 

1388Dichiara il marketplace a livello di progetto in modo che sia condiviso con il tuo team tramite `.claude/settings.json`:

1389 

1390```bash theme={null}

1391claude plugin marketplace add acme-corp/claude-plugins --scope project

1392```

1393 

1394Per un monorepo, limita il checkout alle directory che contengono il contenuto del plugin:

1395 

1396```bash theme={null}

1397claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins

1398```

1399 

1400Aggiungi un [marketplace ospitato su claude.ai](/docs/it/discover-plugins#add-from-claude-ai) dal nome stampato nella sezione `From claude.ai:` di `claude plugin marketplace list`:

1401 

1402```bash theme={null}

1403claude plugin marketplace add --claudeai claudeai-organization-library

1404```

1405 

1406Con `--claudeai`, il comando rifiuta `--scope` e `--sparse`. Il marketplace è ospitato per il tuo account, non dichiarato in un file di impostazioni, quindi non puoi condividerlo tramite il `.claude/settings.json` di un progetto.

1407 

1408<h3 id="plugin-marketplace-list">

1409 Plugin marketplace list

1410</h3>

1411 

1412Elenca tutti i marketplace configurati.

1413 

1414```bash theme={null}

1415claude plugin marketplace list [options]

1416```

1417 

1418**Opzioni:**

1419 

1420| Opzione | Descrizione |

1421| :------- | :--------------- |

1422| `--json` | Output come JSON |

1423 

1424Con `--json`, ogni voce include `name`, `source`, un campo `installLocation` con il percorso della cache locale dove il marketplace è archiviato, e campi specifici della fonte: `repo` per le fonti GitHub, `url` per le fonti git e URL, e `path` per le fonti locali. Le fonti GitHub e git includono anche un campo `ref` quando il marketplace è stato aggiunto con un branch o tag fissato.

1425 

1426Un marketplace [claude.ai](/docs/it/discover-plugins#add-from-claude-ai) aggiunto non ha un clone locale, quindi la sua voce contiene i suoi identificatori claude.ai, `marketplaceId` e `organizationUuid`, al posto di `installLocation`.

1427 

1428In sessioni di terminale dove [i plugin si sincronizzano dal tuo account claude.ai](/docs/it/plugins-reference#synced-plugins), l'elenco di testo termina con una sezione `From claude.ai:` che nomina ciò che claude.ai elenca per il tuo account oltre ai marketplace che hai aggiunto. Per aggiungerne uno, vedi [Aggiungi da claude.ai](/docs/it/discover-plugins#add-from-claude-ai). L'output `--json` copre solo i marketplace configurati e lascia fuori quella sezione. Richiede Claude Code v2.1.273 o successivo.

1429 

1430<h3 id="plugin-marketplace-remove">

1431 Plugin marketplace remove

1432</h3>

1433 

1434Rimuovi un marketplace configurato. L'alias `rm` è accettato anche.

1435 

1436```bash theme={null}

1437claude plugin marketplace remove <name> [options]

1438```

1439 

1440**Argomenti:**

1441 

1442* `<name>`: nome del marketplace da rimuovere, come mostrato da `claude plugin marketplace list`. Questo è il `name` da `marketplace.json`, non la fonte che hai passato a `add`

1443 

1444**Opzioni:**

1445 

1446| Opzione | Descrizione | Predefinito |

1447| :---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------- |

1448| `--scope <scope>` | Limita la rimozione a un singolo ambito di impostazioni: `user`, `project` o `local`. Vedi [Plugin installation scopes](/docs/it/plugins-reference#plugin-installation-scopes). Se omesso, la dichiarazione viene rimossa da ogni ambito modificabile. Se fornito, solo la dichiarazione di quell'ambito viene rimossa; lo stato condiviso, la cache e i dati dei plugin installati vengono preservati quando il marketplace è ancora dichiarato in un altro ambito | (tutti gli ambiti) |

1449 

1450<Warning>

1451 La rimozione di un marketplace dal suo ultimo ambito rimanente disinstalla anche tutti i plugin che hai installato da esso. Per aggiornare un marketplace senza perdere i plugin installati, usa `claude plugin marketplace update` invece.

1452</Warning>

1453 

1454<h3 id="plugin-marketplace-update">

1455 Plugin marketplace update

1456</h3>

1457 

1458Aggiorna i marketplace dalle loro fonti per recuperare nuovi plugin e cambiamenti di versione. Un marketplace aggiunto con un branch o tag `ref` si aggiorna al commit più recente di quel ref, non al branch predefinito del repository.

1459 

1460```bash theme={null}

1461claude plugin marketplace update [name]

1462```

1463 

1464**Argomenti:**

1465 

1466* `[name]`: nome del marketplace da aggiornare, come mostrato da `claude plugin marketplace list`. Aggiorna tutti i marketplace se omesso

1467 

1468Sia `remove` che `update` non riescono quando eseguiti su un marketplace gestito da seed, che è di sola lettura. Quando si aggiornano tutti i marketplace, le voci gestite da seed vengono saltate e gli altri marketplace si aggiornano comunque. Per modificare i plugin forniti da seed, chiedi al tuo amministratore di aggiornare l'immagine seed. Vedi [Pre-popola plugin per i container](#pre-populate-plugins-for-containers).

1469 

1470<h2 id="troubleshooting">

1471 Risoluzione dei problemi

1472</h2>

1473 

1474<h3 id="marketplace-not-loading">

1475 Marketplace non carica

1476</h3>

1477 

1478**Sintomi**: Non è possibile aggiungere il marketplace o visualizzare i plugin da esso

1479 

1480**Soluzioni**:

1481 

1482* Verificare che l'URL del marketplace sia accessibile

1483* Controllare che `.claude-plugin/marketplace.json` esista nel percorso specificato

1484* Assicurarsi che la sintassi JSON sia valida utilizzando `claude plugin validate .` o `/plugin validate .` dalla directory del marketplace. Per controllare il frontmatter di skill, agent e command, vedere [Validate a plugin or a directory without a manifest](#validate-a-plugin-or-a-directory-without-a-manifest)

1485* Per i repository privati, confermare di avere i permessi di accesso

1486 

1487<h3 id="marketplace-validation-errors">

1488 Errori di validazione del marketplace

1489</h3>

1490 

1491Eseguire `claude plugin validate .` o `/plugin validate .` dalla directory del marketplace per verificare la presenza di problemi. Quando puntato a una directory del marketplace, il validatore controlla `marketplace.json` per errori di schema, nomi di plugin duplicati e traversal del percorso di origine. Per ogni voce il cui `source` è un percorso locale, valida anche il `plugin.json` di quel plugin e avvisa quando la `version` della voce non corrisponde a quella in `plugin.json`. I problemi trovati nel `plugin.json` di un plugin sono preceduti dall'indice della voce, nella forma `plugins[2] plugin.json →`.

1492 

1493A partire da Claude Code v2.1.196, il pass per voce include anche:

1494 

1495* plugin il cui `source` è `.`

1496* viene eseguito quando `marketplace.json` è al di fuori di una directory `.claude-plugin`, risolvendo le origini rispetto alla directory del file stesso

1497* segnala i problemi di ogni voce anche quando un'altra parte del file ha errori di schema

1498 

1499Le versioni precedenti saltano i plugin nella radice del marketplace e scendono solo da `.claude-plugin/marketplace.json`.

1500 

1501Da una directory del marketplace, Claude Code non apre i file skill, agent, command o hook dei plugin. Per trovare errori in questi file, vedere [Validate a plugin or a directory without a manifest](#validate-a-plugin-or-a-directory-without-a-manifest). La tabella seguente elenca gli errori più comuni da una directory del marketplace, con la causa e la soluzione per ciascuno:

1502 

1503| Errore | Causa | Soluzione |

1504| :------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1505| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | La directory denominata non ha `.claude-plugin/marketplace.json` o `plugin.json`, e nessun file skill, agent o command da controllare | Eseguire dalla radice del marketplace, o creare `.claude-plugin/marketplace.json` con i campi obbligatori |

1506| `Invalid JSON syntax: Unexpected token...` | Errore di sintassi JSON in marketplace.json | Controllare la presenza di virgole mancanti, virgole extra o stringhe non quotate |

1507| `Duplicate plugin name "x" found in marketplace` | Due plugin condividono lo stesso nome | Assegnare a ogni plugin un valore `name` univoco |

1508| `plugins[0].source: Path contains ".."` | Un segmento del percorso di origine è `..` | Utilizzare percorsi relativi alla radice del marketplace senza segmenti `..`. Vedere [Relative paths](#relative-paths) |

1509| `Marketplace name cannot contain control or bidirectional-formatting characters` | Il `name` del marketplace contiene un carattere di formattazione bidirezionale Unicode o un carattere di controllo, come un escape o una nuova riga | Rimuovere il carattere dal nome. Prima della v2.1.247, questi caratteri producevano l'errore `Marketplace name impersonates an official Anthropic/Claude marketplace` |

1510| `Plugin name cannot contain control or bidirectional-formatting characters` | Un `name` di plugin contiene un carattere di formattazione bidirezionale Unicode o un carattere di controllo, come un escape o una nuova riga | Rimuovere il carattere dal nome. Prima della v2.1.247, Claude Code non eseguiva questo controllo |

1511 

1512**Avvisi** (non bloccanti):

1513 

1514* `Marketplace has no plugins defined`: aggiungere almeno un plugin all'array `plugins`

1515* `No marketplace description provided`: aggiungere una `description` di livello superiore per aiutare gli utenti a comprendere il marketplace

1516* `Plugin name "x" is not kebab-case`: rinominare utilizzando solo lettere minuscole, cifre e trattini (ad esempio, `my-plugin`). Claude Code accetta altre forme, ma la sincronizzazione del marketplace claude.ai le rifiuta.

1517* `Marketplace name "x" is reserved in Claude Desktop`: il marketplace è denominato `org`, `org-provisioned` o `unknown`, in qualsiasi maiuscola. Claude Code accetta questi nomi, ma la sincronizzazione del marketplace gestito di Claude Desktop rifiuta l'intero marketplace. Rinominare il marketplace. Prima della v2.1.221, `claude plugin validate` non eseguiva questo controllo.

1518* `Marketplace name "x" is not accepted by Claude Desktop` o `Plugin name "x" is not accepted by Claude Desktop`: Claude Desktop accetta nomi di lunghezza fino a 128 caratteri composti da lettere, cifre, `.`, `_` e `-`, che iniziano con una lettera o una cifra. Claude Code accetta altre forme, ma la sincronizzazione del marketplace gestito di Claude Desktop rifiuta un marketplace il cui nome non supera il controllo e scarta silenziosamente una voce di plugin il cui nome non lo fa. Rinominare il marketplace o il plugin. Prima della v2.1.221, `claude plugin validate` non eseguiva questi controlli.

1519 

1520<h4 id="validate-a-plugin-or-a-directory-without-a-manifest">

1521 Validate a plugin or a directory without a manifest

1522</h4>

1523 

1524Per trovare file skill, agent e command il cui frontmatter non viene analizzato, eseguire `claude plugin validate` e denominare la directory che li contiene. Claude Code non guarda al di fuori della directory denominata. Ogni esecuzione tranne una rispetto a un plugin che ha un `plugin.json` richiede Claude Code v2.1.233 o successivo.

1525 

1526<h5 id="pick-the-directory-to-name">

1527 Scegliere la directory da denominare

1528</h5>

1529 

1530Claude Code controlla file diversi a seconda di quale directory denominate. Trovare ciò che si desidera controllare nella prima colonna ed eseguire il comando di quella riga:

1531 

1532| Per controllare | Eseguire | Claude Code controlla |

1533| :----------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1534| Un plugin che ha un `plugin.json` | `claude plugin validate ./plugins/my-plugin` | `plugin.json`, `hooks/hooks.json` e le directory `skills`, `agents` e `commands` nella radice del plugin |

1535| Una directory di skill, agent o command, come un plugin che non ha ancora un `plugin.json` | `claude plugin validate .claude/skills`, `~/.claude/agents` o `./my-plugin/agents` | Ogni file skill, agent o command in quella directory |

1536| Una cartella il cui skill è il suo `SKILL.md` radice | `claude plugin validate ./skills`, denominando la directory `skills` che contiene la cartella | Il `SKILL.md` radice di ogni cartella. La directory contenente deve essere denominata `skills`; una cartella con un altro nome, come `plugins/`, non ha un'esecuzione che controlla il suo `SKILL.md` radice |

1537| Le tre directory di un progetto contemporaneamente | `claude plugin validate .claude`, o la radice del progetto quando non ha un manifest `.claude-plugin/` | `.claude/skills`, `.claude/agents` e `.claude/commands` |

1538| Le directory a livello di utente | `claude plugin validate ~/.claude` | `~/.claude/skills`, `~/.claude/agents` e `~/.claude/commands` |

1539 

1540<h5 id="check-a-plugin-whose-skill-is-its-root-skill-md">

1541 Controllare un plugin il cui skill è il suo `SKILL.md` radice

1542</h5>

1543 

1544Quando si esegue `claude plugin validate` rispetto a una directory di plugin, Claude Code non controlla un `SKILL.md` nella radice del plugin. Quando il plugin si trova in una directory denominata `skills`, eseguire il comando due volte:

1545 

1546* Denominare quella directory `skills` per controllare il `SKILL.md` radice del plugin.

1547* Denominare la directory del plugin per controllare il resto.

1548 

1549Quando il plugin si trova con un altro nome, come `plugins/`, l'esecuzione della directory skills non è disponibile e nessuna esecuzione controlla il suo `SKILL.md` radice.

1550 

1551<h5 id="check-files-behind-symlinks">

1552 Controllare file dietro symlink

1553</h5>

1554 

1555Quando si esegue `claude plugin validate`, Claude Code non segue i symlink all'interno della directory denominata. Ciò che fa dipende da dove si trova il collegamento:

1556 

1557* **Una directory `skills`, `agents` o `commands` collegata sotto la radice del plugin o `.claude`**: Claude Code avverte che nulla in essa è stato letto.

1558* **Una voce collegata all'interno di una directory `skills`, `agents` o `commands`**: Claude Code la salta e avvisa, per directory, quante voci ha saltato che una sessione caricherà.

1559* **La directory `skills`, `agents` o `commands` denominata è essa stessa un symlink, o la sua directory padre `.claude` è**: Claude Code segnala un errore e non controlla nulla in essa. Denominare invece la directory reale.

1560 

1561In due casi di skill, l'esecuzione passa con avvisi. Per controllare i file collegati, eseguire di nuovo e denominare una directory che li contiene direttamente:

1562 

1563* **Un plugin il cui directory `skills` [si collega a una directory skills di un plugin sibling](/docs/it/plugins-reference#share-files-within-a-marketplace-with-symlinks)**: denominare la directory del plugin sibling.

1564* **Una [voce skill collegata](/docs/it/skills#where-skills-live) in `~/.claude/skills` o `.claude/skills`**: Claude Code segue la voce in una sessione. Per controllarla, denominare una directory chiamata `skills` che contiene la cartella reale.

1565 

1566<h5 id="read-the-validation-results">

1567 Leggere i risultati della validazione

1568</h5>

1569 

1570Un'esecuzione pulita termina con `Validation passed`.

1571 

1572`No manifest found in directory` significa che Claude Code non ha trovato `plugin.json` o `marketplace.json` lì, e nessun file skill, agent o command nelle directory che sonda sotto di essa. Denominare invece la directory `skills`, `agents` o `commands` che contiene i file.

1573 

1574Due degli errori che Claude Code segnala da queste esecuzioni, con la soluzione per ciascuno:

1575 

1576* `YAML frontmatter failed to parse: ...`: correggere lo YAML nel blocco frontmatter del file skill, agent o command. Fino a quando non lo farete, una sessione non legge alcun campo frontmatter dal file

1577* `Invalid JSON syntax: ...` su `hooks/hooks.json`: correggere la sintassi JSON. Fino a quando non lo farete, una sessione carica il plugin senza gli hook in quel file. Claude Code segnala questo errore solo in un'esecuzione di plugin

1578 

1579In un'esecuzione di plugin, Claude Code avverte anche di un `CLAUDE.md` nella radice del plugin. Per i percorsi impostati tramite i [component path fields](/docs/it/plugins-reference#component-path-fields) in `plugin.json`, Claude Code controlla che ogni percorso esista ma non legge i file lì.

1580 

1581<h3 id="plugin-installation-failures">

1582 Errori di installazione del plugin

1583</h3>

1584 

1585**Sintomi**: Il marketplace appare ma l'installazione del plugin non riesce

1586 

1587**Soluzioni**:

1588 

1589* Verificare che gli URL di origine del plugin siano accessibili

1590* Controllare che le directory dei plugin contengano i file obbligatori

1591* Per le origini GitHub, assicurarsi che i repository siano pubblici o che si abbia accesso

1592* Testare manualmente le origini dei plugin clonando/scaricando

1593* Se l'origine fissa sia `ref` che `sha`, un ramo o un tag upstream eliminato non blocca l'installazione sulla maggior parte degli host git, inclusi GitHub, GitLab e Bitbucket. Su server che non supportano il recupero di commit per SHA, come AWS CodeCommit, il `ref` deve ancora esistere e il commit bloccato deve essere raggiungibile da esso. Se l'installazione continua a non riuscire, confermare che il commit bloccato esiste ancora nel repository

1594 

1595<h3 id="private-repository-authentication-fails">

1596 L'autenticazione del repository privato non riesce

1597</h3>

1598 

1599**Sintomi**: Errori di autenticazione durante l'installazione di plugin da repository privati

1600 

1601**Soluzioni**:

1602 

1603Per l'installazione manuale e gli aggiornamenti:

1604 

1605* Verificare di essere autenticati con il provider git (ad esempio, eseguire `gh auth status` per GitHub)

1606* Controllare che il helper delle credenziali sia configurato: `git config --global credential.helper`

1607* Eseguire `git ls-remote <marketplace-url>` per verificare se git può autenticarsi da solo. Se git chiede un nome utente o una password, archiviare prima la credenziale: per GitHub su HTTPS, eseguire `gh auth setup-git`, e per i remote SSH, caricare la chiave in `ssh-agent`

1608 

1609Per gli aggiornamenti automatici in background:

1610 

1611* Il controllo in background utilizza gli helper delle credenziali git configurati ma non richiede mai, quindi l'helper deve essere in grado di rispondere con una credenziale archiviata. I remote SSH con una chiave caricata in `ssh-agent` si autenticano anche

1612* Se l'helper deve richiedervi, l'aggiornamento in background non riesce silenziosamente e il checkout esistente rimane in place. Accedere all'helper prima in modo che contenga una credenziale per l'host. Per GitHub, eseguire `gh auth login`, quindi `gh auth setup-git`

1613* Quando il controllo trova nuovi commit, o non riesce a raggiungere o autenticarsi al remote, Claude Code ri-clona il marketplace con le stesse credenziali. Il ri-clone potrebbe scadere su repository di grandi dimensioni

1614* Impostare `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` per mantenere il checkout esistente senza tentare il ri-clone quando il controllo in background non riesce a raggiungere o autenticarsi al remote

1615* Se il ri-clone scade su un repository di grandi dimensioni, aumentare il limite con [`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)

1616* Oppure aggiornare i marketplace privati manualmente con `/plugin marketplace update <name>`, che utilizza le credenziali

1617 

1618Prima della v2.1.280, il controllo in background veniva eseguito senza gli helper delle credenziali e non poteva autenticarsi ai repository privati su HTTPS.

1619 

1620<h3 id="marketplace-updates-fail-in-offline-environments">

1621 Gli aggiornamenti del marketplace non riescono in ambienti offline

1622</h3>

1623 

1624**Sintomi**: In un ambiente offline o airgapped, l'aggiornamento in background del marketplace non riesce a raggiungere il remote e Claude Code tenta ripetutamente un ri-clone che non può avere successo.

1625 

1626**Causa**: L'aggiornamento in background controlla il remote del marketplace per nuovi commit, e quando il controllo non riesce a raggiungere il remote, Claude Code tenta di clonare il marketplace di nuovo. Offline, il clone non riesce allo stesso modo e il checkout esistente rimane in place. Prima della v2.1.274, l'aggiornamento eseguiva `git pull` nel checkout esistente, spostava il checkout da parte per ri-clonare quando il pull non riusciva, e lo ripristinava in seguito su base best-effort.

1627 

1628L'aggiornamento viene eseguito in background dopo l'avvio, quindi non ritarda l'avvio. Ogni sessione ripete comunque il tentativo non riuscito, e ogni operazione git può attendere il [timeout di 120 secondi](#git-operations-time-out).

1629 

1630**Soluzione**: Impostare `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` per saltare il tentativo di ri-clone e continuare a utilizzare il checkout esistente quando il controllo non riesce a raggiungere il remote:

1631 

1632```bash theme={null}

1633export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

1634```

1635 

1636Per distribuzioni completamente offline in cui il repository non sarà mai raggiungibile, utilizzare [`CLAUDE_CODE_PLUGIN_SEED_DIR`](#pre-populate-plugins-for-containers) per pre-popolare la directory dei plugin al momento della compilazione.

1637 

1638<h3 id="git-operations-time-out">

1639 Le operazioni Git scadono

1640</h3>

1641 

1642**Sintomi**: L'installazione del plugin o gli aggiornamenti del marketplace non riescono con un errore di timeout come `Git clone timed out after 120s`.

1643 

1644**Causa**: Claude Code utilizza un timeout di 120 secondi per tutte le operazioni git, inclusa la clonazione di repository di plugin e il ri-clone di un marketplace per aggiornarlo. I repository di grandi dimensioni o le connessioni di rete lente potrebbero superare questo limite.

1645 

1646**Soluzione**: Aumentare il timeout utilizzando la variabile di ambiente `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`. Il valore è in millisecondi:

1647 

1648```bash theme={null}

1649export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000 # 5 minutes

1650```

1651 

1652<h3 id="plugins-with-relative-paths-fail-in-url-based-marketplaces">

1653 I plugin con percorsi relativi non riescono nei marketplace basati su URL

1654</h3>

1655 

1656**Sintomi**: È stato aggiunto un marketplace tramite un URL come `https://example.com/marketplace.json`, ma i plugin con origini di percorso relativo come `"./plugins/my-plugin"` non riescono a installarsi con `its marketplace entry path does not stay inside the marketplace directory`. I plugin già installati non riescono a caricarsi con `Plugin source path refused`. Entrambi i messaggi hanno una [voce di riferimento dell'errore](/docs/it/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory).

1657 

1658**Causa**: l'aggiunta di un marketplace basato su URL scarica solo il file `marketplace.json` stesso, e Claude Code non recupera i file dei plugin per percorso relativo da quel server. I percorsi relativi nella voce del marketplace fanno riferimento a file sul server remoto che non sono stati scaricati.

1659 

1660**Soluzioni**:

1661 

1662* **Utilizzare origini esterne**: modificare le voci dei plugin in qualsiasi [plugin source](#plugin-sources) diverso da un percorso relativo:

1663 ```json theme={null}

1664 { "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }

1665 ```

1666* **Utilizzare un marketplace basato su Git**: ospitare il marketplace in un repository Git e aggiungerlo con l'URL git. I marketplace basati su Git clonano l'intero repository, rendendo i percorsi relativi funzionanti correttamente.

1667 

1668<h3 id="files-not-found-after-installation">

1669 File non trovati dopo l'installazione

1670</h3>

1671 

1672**Sintomi**: Il plugin si installa ma i riferimenti ai file non riescono, specialmente i file al di fuori della directory del plugin

1673 

1674**Causa**: Claude Code copia i plugin installati in una directory cache, a meno che il plugin non si carichi in place. Una [`command` source in link mode](#copy-mode-and-link-mode) si carica in place, così come una [relative path source](#relative-paths) in un marketplace aggiunto da una directory locale. I percorsi che fanno riferimento a file al di fuori della directory di un plugin copiato (come `../shared-utils`) non funzioneranno perché questi file non vengono copiati.

1675 

1676**Soluzioni**: Vedere [Plugin caching and file resolution](/docs/it/plugins-reference#plugin-caching-and-file-resolution) per soluzioni alternative inclusi symlink e ristrutturazione delle directory.

1677 

1678Per ulteriori strumenti di debug e problemi comuni, vedere [Debugging and development tools](/docs/it/plugins-reference#debugging-and-development-tools).

1679 

1680<h2 id="see-also">

1681 Vedi anche

1682</h2>

1683 

1684* [Scopri e installa plugin precostruiti](/docs/it/discover-plugins) - Installazione di plugin da marketplace esistenti

1685* [Plugins](/docs/it/plugins) - Creazione dei tuoi plugin

1686* [Plugins reference](/docs/it/plugins-reference) - Specifiche tecniche complete e schemi

1687* [Plugin settings](/docs/it/settings-reference#plugin-settings) - Opzioni di configurazione dei plugin

1688* [strictKnownMarketplaces reference](/docs/it/settings-reference#strictknownmarketplaces) - Restrizioni del marketplace gestito

plugin-relevance.md +0 −186 deleted

File Deleted View Diff

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# Consigliare plugin per la vostra organizzazione

6 

7> Aggiungere un blocco di rilevanza alle voci dei plugin del marketplace in modo che Claude Code li suggerisca quando il lavoro di un utente corrisponde.

8 

9Se gestite un marketplace di plugin per la vostra organizzazione, potete fare in modo che Claude Code suggerisca plugin specifici agli utenti in base a ciò su cui stanno lavorando. Aggiungete un blocco `relevance` alla voce di un plugin in `marketplace.json`, quindi inserite il marketplace nella lista consentita delle impostazioni gestite. Quando la sessione di un utente corrisponde a uno dei segnali dichiarati, Claude Code mostra un suggerimento di installazione per quel plugin.

10 

11I suggerimenti dichiarati dal marketplace sono opt-in per ogni marketplace tramite [impostazioni gestite](/docs/it/managed-settings). Nessuna dichiarazione `relevance` di un marketplace produce suggerimenti finché un amministratore non la aggiunge alla lista consentita, incluso il marketplace ufficiale di Anthropic. Claude Code include anche un suggerimento integrato che è indipendente da questa lista consentita; questo suggerimento e tutti i suggerimenti dichiarati dal marketplace sono disabilitati quando [`spinnerTipsEnabled`](/docs/it/settings-reference#spinnertipsenabled) è impostato su `false`.

12 

13Questa pagina è per gli operatori del marketplace e gli amministratori aziendali. Se state cercando di installare plugin, consultate [Scoprire e installare plugin](/docs/it/discover-plugins).

14 

15<h2 id="how-it-works">

16 Come funziona

17</h2>

18 

19Ogni voce di plugin in `marketplace.json` può contenere un oggetto `relevance`. L'oggetto nomina un argomento e uno o più segnali. Un segnale è un modello che Claude Code testa rispetto alla sessione corrente, come la directory di lavoro o i file che Claude ha letto.

20 

21La corrispondenza dei segnali avviene localmente sulla macchina dell'utente. La corrispondenza non aggiunge traffico di rete e non segnala quali segnali hanno corrisposto, o i loro valori, ad Anthropic o all'operatore del marketplace.

22 

23Quando un segnale corrisponde e il plugin non è già installato, Claude Code mostra il plugin in tre posizioni:

24 

25* **Suggerimento spinner**: un messaggio "Stai lavorando con *argomento*? Installa il plugin *plugin*" con il comando `/plugin install` appare sotto lo spinner mentre Claude sta rispondendo.

26* **Suggerimento all'inizio della sessione**: se il segnale `cwd` corrisponde alla directory di lavoro, una notifica `plugin suggestion: <name>@<marketplace> · /plugin` su una riga appare prima del primo turno.

27* **Scheda Discover di `/plugin`**: il plugin è fissato in cima all'elenco Discover con un'annotazione come "suggerito per questa directory" o "suggerito per i comandi stripe".

28 

29Il suggerimento spinner e la notifica all'inizio della sessione fanno parte del sistema di suggerimenti spinner. Claude Code disabilita entrambi quando `spinnerTipsEnabled` si risolve in `false` nei tuoi file di impostazioni, o quando `excludeDefault` si risolve in `true` nei tasti [`spinnerTipsOverride`](/docs/it/settings-reference#spinnertipsoverride) nelle impostazioni utente, `--settings` e gestite e quei tasti configurano almeno un suggerimento o un `tipsFile`.

30 

31Il pin della scheda Discover è indipendente dalle impostazioni dei suggerimenti.

32 

33Claude Code non installa mai un plugin automaticamente. L'utente conferma sempre.

34 

35<h2 id="add-relevance-to-a-plugin-entry">

36 Aggiungere rilevanza a una voce di plugin

37</h2>

38 

39Aggiungete un oggetto `relevance` alla voce del plugin nel vostro `marketplace.json`. L'esempio seguente dichiara che il plugin `terraform-helpers` è rilevante quando Claude legge un file `.tf` o quando Claude esegue `terraform`:

40 

41```json theme={null}

42{

43 "name": "acme-corp-plugins",

44 "owner": { "name": "Acme Platform Team" },

45 "plugins": [

46 {

47 "name": "terraform-helpers",

48 "source": "./plugins/terraform-helpers",

49 "description": "Acme conventions and helpers for Terraform",

50 "relevance": {

51 "topic": "Terraform",

52 "signals": {

53 "cli": ["terraform"],

54 "filesRead": ["**/*.tf"]

55 }

56 }

57 }

58 ]

59}

60```

61 

62Un plugin con un blocco `relevance` ma senza segnali corrispondenti si comporta come qualsiasi altra voce del marketplace. Appare nell'elenco Discover nella sua posizione normale e non viene mai visualizzato come suggerimento spinner.

63 

64<h2 id="field-reference">

65 Riferimento dei campi

66</h2>

67 

68<h3 id="relevance">

69 `relevance`

70</h3>

71 

72| Campo | Tipo | Descrizione |

73| :-------- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

74| `topic` | string | Facoltativo. La frase che riempie "Stai lavorando con *argomento*?" nel suggerimento spinner. Spesso il nome del prodotto, ad esempio `Stripe`. Utilizzate un dominio come `design` quando il nome del plugin non si legge naturalmente come argomento. Per impostazione predefinita, il nome del plugin con ogni segmento di trattino maiuscolo. La notifica all'inizio della sessione non utilizza questo valore. Massimo 64 caratteri. |

75| `signals` | object | Corrispondenti che determinano quando il plugin è rilevante. Almeno un segnale è richiesto affinché il plugin sia suggeribile. Consultate la tabella sottostante. |

76 

77<h3 id="relevance-signals">

78 `relevance.signals`

79</h3>

80 

81| Campo | Tipo | Descrizione |

82| :------------- | :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

83| `cwd` | array of strings | Modelli Glob abbinati alla directory di lavoro della sessione. Abbinati come percorso assoluto e, quando all'interno di un repository git, come percorso relativo alla radice del repository. Normalizzati con barra in avanti e senza distinzione tra maiuscole e minuscole. Ogni modello corrisponde alla directory stessa e a tutto ciò che contiene, quindi `infra`, `infra/`, e `infra/**` si comportano in modo identico. Questo è l'unico segnale che può corrispondere all'inizio della sessione, prima del primo turno. Massimo 10 modelli di 256 caratteri ciascuno. |

84| `cli` | array of strings | Nomi di comandi da comandi shell che Claude ha eseguito in questa sessione, ad esempio `["stripe"]`. Si applica su ogni piattaforma: i comandi eseguiti su Windows tramite PowerShell o Git Bash vengono registrati allo stesso modo. Claude Code registra un nome di comando per ogni invocazione dello strumento shell: il primo token dopo eventuali assegnazioni di variabili di ambiente iniziali e `sudo`. I comandi composti contribuiscono solo con il loro comando iniziale, quindi `cd infra && terraform plan` registra `cd`, non `terraform`. Corrispondenza esatta. Massimo 10 voci di 64 caratteri ciascuna. |

85| `hosts` | array of strings | Nomi host visti in URL `http://` o `https://` nei comandi Bash di questa sessione, ad esempio `["api.stripe.com"]`. Solo il nome host in minuscolo: nessuno schema, porta o percorso. Corrispondenza esatta senza distinzione tra maiuscole e minuscole. Massimo 20 voci di 128 caratteri ciascuna. |

86| `filesRead` | array of strings | Modelli Glob abbinati ai percorsi dei file che Claude ha letto in questa sessione, ad esempio `["**/*.tf"]`. Normalizzati con barra in avanti e senza distinzione tra maiuscole e minuscole. Massimo 10 modelli di 256 caratteri ciascuno. |

87| `manifestDeps` | array of objects | Dipendenze dichiarate nei manifesti di pacchetto che Claude ha letto in questa sessione. Ogni voce è `{ "file": "...", "pattern": "..." }`, dove `file` è un'espressione regolare abbinata al percorso del file manifest come registrato nello stato della sessione, tipicamente un percorso assoluto, e `pattern` è un'espressione regolare abbinata al contenuto di quel file. Ancorate `file` alla fine, ad esempio `[/\\\\]package\\.json$` in forma con escape JSON, perché un modello ancorato all'inizio non corrisponde mai a un percorso assoluto. I percorsi non sono normalizzati per il separatore per questo segnale, quindi i percorsi Windows utilizzano barre rovesciate. I file manifest più grandi di 512 KB vengono saltati. Entrambi i valori sono stringhe di origine JavaScript `RegExp` di al massimo 256 caratteri. `file` corrisponde senza distinzione tra maiuscole e minuscole. `pattern` è sensibile alle maiuscole. Massimo 10 voci. |

88 

89I segnali `cli`, `hosts`, `filesRead` e `manifestDeps` necessitano della cronologia della sessione, quindi possono corrispondere solo al suggerimento spinner e alla scheda Discover. Il `cwd` è l'unico segnale che può corrispondere all'inizio della sessione. I segnali `filesRead` e `manifestDeps` testano lo stato del file registrato della sessione, che include anche i file che Claude ha scritto o modificato e i file di memoria `CLAUDE.md` caricati automaticamente. Per questi due segnali, Claude Code salta i percorsi sotto la sua [directory di configurazione](/docs/it/claude-directory) e le sue directory temporanee.

90 

91L'esempio seguente utilizza `manifestDeps` per suggerire un plugin Stripe una volta che Claude ha letto un `package.json` che dipende da `stripe`. Il modello `file` utilizza `[/\\\\]` in modo che corrisponda sia ai separatori di percorso con barra in avanti che con barra rovesciata, e `\\.` in modo che il punto sia letterale. In JSON, ogni barra rovesciata nell'espressione regolare è scritta due volte.

92 

93```json theme={null}

94{

95 "name": "stripe-helpers",

96 "source": "./plugins/stripe-helpers",

97 "relevance": {

98 "topic": "Stripe",

99 "signals": {

100 "manifestDeps": [

101 {

102 "file": "[/\\\\]package\\.json$",

103 "pattern": "\"stripe\"\\s*:"

104 }

105 ]

106 }

107 }

108}

109```

110 

111<Note>

112 Claude Code ignora i campi sconosciuti sotto `relevance` e `relevance.signals` al momento del caricamento, quindi i client Claude Code più vecchi continuano a caricare il vostro marketplace.

113</Note>

114 

115<h2 id="enable-suggestions-in-managed-settings">

116 Abilitare i suggerimenti nelle impostazioni gestite

117</h2>

118 

119Dichiarare `relevance` in `marketplace.json` non è sufficiente di per sé. Un amministratore deve inserire il marketplace nella lista consentita nelle [impostazioni gestite](/docs/it/managed-settings) prima che i suoi suggerimenti vengano visualizzati agli utenti.

120 

121Aggiungete il nome del marketplace a `pluginSuggestionMarketplaces`. Per qualsiasi marketplace diverso dal marketplace ufficiale di Anthropic, dichiarate anche la fonte del marketplace nelle stesse impostazioni gestite, sia come voce di quel nome in `extraKnownMarketplaces` che come voce in `strictKnownMarketplaces`. Il nome inserito nella lista consentita viene ignorato se il marketplace registrato sulla macchina proviene da una fonte diversa. Questo impedisce a una fonte non correlata di registrarsi con un nome inserito nella lista consentita per avere i suoi plugin suggeriti in tutta l'organizzazione.

122 

123Il seguente `managed-settings.json` registra un marketplace dell'organizzazione da un repository GitHub e abilita i suoi suggerimenti:

124 

125```json theme={null}

126{

127 "extraKnownMarketplaces": {

128 "acme-corp-plugins": {

129 "source": {

130 "source": "github",

131 "repo": "acme-corp/claude-plugins"

132 }

133 }

134 },

135 "pluginSuggestionMarketplaces": ["acme-corp-plugins"]

136}

137```

138 

139Il marketplace ufficiale è esente dal requisito di dichiarazione della fonte perché il suo nome può registrarsi solo dalla fonte ufficiale di Anthropic. Inserire il nome nella lista consentita è sufficiente:

140 

141```json theme={null}

142{

143 "pluginSuggestionMarketplaces": ["claude-plugins-official"]

144}

145```

146 

147<h2 id="what-the-user-sees">

148 Cosa vede l'utente

149</h2>

150 

151Quando un segnale corrisponde durante una sessione, il suggerimento spinner recita:

152 

153```text theme={null}

154Stai lavorando con Terraform? Installa il plugin terraform-helpers:

155/plugin install terraform-helpers@acme-corp-plugins

156```

157 

158All'inizio della sessione, un segnale `cwd` corrispondente visualizza la notifica su una riga:

159 

160```text theme={null}

161plugin suggestion: terraform-helpers@acme-corp-plugins · /plugin

162```

163 

164Il suggerimento di un determinato plugin appare al massimo una volta ogni tre sessioni tra il suggerimento spinner e la notifica all'inizio della sessione combinati, e nessuno dei due si ripete una volta che il plugin è installato. La notifica all'inizio della sessione inoltre smette di apparire dopo che il suggerimento è stato mostrato due volte.

165 

166Nella scheda Discover di `/plugin`, il plugin è fissato sopra gli altri risultati con un'annotazione che nomina il segnale corrispondente, come `suggested for this directory` o `suggested for terraform commands`. La scheda Discover fissa un determinato plugin una volta; le visite successive lo elencano in ordine normale.

167 

168<h2 id="validate-your-marketplace">

169 Convalidare il vostro marketplace

170</h2>

171 

172Eseguite `claude plugin validate` sulla directory del vostro marketplace per controllare il blocco `relevance` prima della pubblicazione:

173 

174```

175claude plugin validate ./my-marketplace

176```

177 

178Il validatore segnala le chiavi sconosciute sotto `relevance` e `relevance.signals` come avvisi, contrassegna un valore `relevance` che non è un oggetto e rifiuta una voce `signals.hosts` che include uno schema, una porta o un percorso.

179 

180<h2 id="see-also">

181 Vedere anche

182</h2>

183 

184* [Creare e distribuire un marketplace di plugin](/docs/it/plugin-marketplaces): costruire il marketplace che ospita i vostri plugin

185* [Consigliare il vostro plugin dalla vostra CLI](/docs/it/plugin-hints): richiedere agli utenti dalla vostra CLI invece che dai segnali di sessione di Claude Code

186* [Tutte le impostazioni](/docs/it/settings-reference#pluginsuggestionmarketplaces): `pluginSuggestionMarketplaces` e `extraKnownMarketplaces`

plugins.md +0 −527 deleted

File Deleted View Diff

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# Creare plugin

6 

7> Crea plugin personalizzati per estendere Claude Code con skills, agents, hooks e MCP servers.

8 

9I plugin ti permettono di estendere Claude Code con funzionalità personalizzate che possono essere condivise tra progetti e team. Questa guida copre la creazione dei tuoi plugin con skills, agents, hooks e MCP servers.

10 

11Stai cercando di installare plugin esistenti? Vedi [Scopri e installa plugin](/docs/it/discover-plugins). Per le specifiche tecniche complete, vedi [Riferimento plugin](/docs/it/plugins-reference).

12 

13<h2 id="when-to-use-plugins-vs-standalone-configuration">

14 Quando usare plugin rispetto alla configurazione standalone

15</h2>

16 

17Claude Code supporta due modi per aggiungere skills, agents e hooks personalizzati:

18 

19| Approccio | Nomi skill | Migliore per |

20| :------------------------------------------------------------------------------------------ | :------------------- | :-------------------------------------------------------------------------------------------------------- |

21| **Standalone** (directory `.claude/`) | `/hello` | Flussi di lavoro personali, personalizzazioni specifiche del progetto, esperimenti rapidi |

22| **Plugin** (directory con skills, agents, hooks o un manifest `.claude-plugin/plugin.json`) | `/plugin-name:hello` | Condivisione con i colleghi, distribuzione alla comunità, rilasci versionati, riutilizzabili tra progetti |

23 

24<Tip>

25 Inizia con la configurazione standalone in `.claude/` per un'iterazione rapida, poi [converti in un plugin](#convert-existing-configurations-to-plugins) quando sei pronto a condividere.

26</Tip>

27 

28<h2 id="quickstart">

29 Quickstart

30</h2>

31 

32Questo quickstart ti guida attraverso la creazione di un plugin con uno skill personalizzato. Creerai un manifest (il file di configurazione che definisce il tuo plugin), aggiungerai uno skill e lo testerai localmente usando il flag `--plugin-dir`.

33 

34<h3 id="prerequisites">

35 Prerequisiti

36</h3>

37 

38* Claude Code [installato e autenticato](/docs/it/quickstart#step-1-install-claude-code)

39 

40<h3 id="create-your-first-plugin">

41 Crea il tuo primo plugin

42</h3>

43 

44<Steps>

45 <Step title="Crea la directory del plugin">

46 Ogni plugin vive nella sua directory contenente i tuoi skill, agent o hook, facoltativamente insieme a un manifest `.claude-plugin/plugin.json`. La posizione non importa per questo quickstart perché punterai Claude Code alla directory con `--plugin-dir` nel passaggio di test. Crealo ovunque sia conveniente, ad esempio in una cartella scratch o in una directory di progetti:

47 

48 ```bash theme={null}

49 mkdir my-first-plugin

50 ```

51 

52 I passaggi rimanenti vengono eseguiti dalla directory padre e fanno riferimento a percorsi come `my-first-plugin/...` relativi ad essa.

53 </Step>

54 

55 <Step title="Crea il manifest del plugin">

56 Il file manifest in `.claude-plugin/plugin.json` definisce l'identità del tuo plugin: il suo nome, descrizione e versione. Claude Code usa questi metadati per visualizzare il tuo plugin nel plugin manager.

57 

58 Crea la directory `.claude-plugin` dentro la cartella del tuo plugin:

59 

60 ```bash theme={null}

61 mkdir my-first-plugin/.claude-plugin

62 ```

63 

64 Poi crea `my-first-plugin/.claude-plugin/plugin.json` con questo contenuto:

65 

66 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}

67 {

68 "name": "my-first-plugin",

69 "description": "A greeting plugin to learn the basics",

70 "version": "1.0.0",

71 "author": {

72 "name": "Your Name"

73 }

74 }

75 ```

76 

77 | Campo | Scopo |

78 | :------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

79 | `name` | Identificatore univoco e namespace dello skill. Gli skill sono prefissati con questo (ad es., `/my-first-plugin:hello`). |

80 | `description` | Mostrato nel plugin manager quando si sfogliano o si installano plugin. |

81 | `version` | Opzionale. Se impostato, gli utenti ricevono aggiornamenti solo quando aumenti questo campo, eccetto per una [`command` source](/docs/it/plugin-marketplaces#command-sources) o un plugin [caricato in place](/docs/it/plugins-reference#plugin-caching-and-file-resolution); vedi [gestione della versione](/docs/it/plugins-reference#version-management). Se omesso, la versione proviene dalla prossima source in [gestione della versione](/docs/it/plugins-reference#version-management). |

82 | `author` | Opzionale. Utile per l'attribuzione. |

83 

84 Per campi aggiuntivi come `homepage`, `repository` e `license`, vedi lo [schema manifest completo](/docs/it/plugins-reference#plugin-manifest-schema).

85 </Step>

86 

87 <Step title="Aggiungi uno skill">

88 Gli skill vivono nella directory `skills/`. Ogni skill è una cartella contenente un file `SKILL.md`. Il nome della cartella diventa il nome dello skill, prefissato con il namespace del plugin (`hello/` in un plugin denominato `my-first-plugin` crea `/my-first-plugin:hello`).

89 

90 Crea una directory skill nella cartella del tuo plugin:

91 

92 ```bash theme={null}

93 mkdir -p my-first-plugin/skills/hello

94 ```

95 

96 Poi crea `my-first-plugin/skills/hello/SKILL.md` con questo contenuto:

97 

98 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

99 ---

100 description: Greet the user with a friendly message

101 disable-model-invocation: true

102 ---

103 

104 Greet the user warmly and ask how you can help them today.

105 ```

106 </Step>

107 

108 <Step title="Testa il tuo plugin">

109 Esegui Claude Code con il flag `--plugin-dir` per caricare il tuo plugin:

110 

111 ```bash theme={null}

112 claude --plugin-dir ./my-first-plugin

113 ```

114 

115 Una volta che Claude Code si avvia, prova il tuo nuovo skill:

116 

117 ```shell theme={null}

118 /my-first-plugin:hello

119 ```

120 

121 Vedrai Claude rispondere con un saluto. Esegui `/help` e apri la scheda **Custom commands** per vedere il tuo skill elencato sotto il namespace del plugin.

122 

123 <Note>

124 **Perché il namespace?** Gli skill del plugin hanno sempre il namespace (come `/my-first-plugin:hello`) per prevenire conflitti quando più plugin hanno skill con lo stesso nome.

125 

126 Per cambiare il prefisso del namespace, aggiorna il campo `name` in `plugin.json`.

127 </Note>

128 </Step>

129 

130 <Step title="Aggiungi argomenti dello skill">

131 Rendi il tuo skill dinamico accettando input dell'utente. Il placeholder `$ARGUMENTS` cattura qualsiasi testo che l'utente fornisce dopo il nome dello skill.

132 

133 Aggiorna il tuo file `SKILL.md`:

134 

135 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

136 ---

137 description: Greet the user with a personalized message

138 ---

139 

140 # Hello Skill

141 

142 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.

143 ```

144 

145 Esegui `/reload-plugins` per raccogliere i cambiamenti. Poi prova lo skill con il tuo nome:

146 

147 ```shell theme={null}

148 /my-first-plugin:hello Alex

149 ```

150 

151 Claude ti saluterà per nome. Per ulteriori informazioni sul passaggio di argomenti agli skill, vedi [Skills](/docs/it/skills#pass-arguments-to-skills).

152 </Step>

153</Steps>

154 

155<Tip>

156 Il flag `--plugin-dir` è utile per lo sviluppo e il test. Quando sei pronto a condividere il tuo plugin con altri, vedi [Crea e distribuisci un marketplace di plugin](/docs/it/plugin-marketplaces).

157</Tip>

158 

159<h2 id="develop-a-plugin-in-your-skills-directory">

160 Sviluppa un plugin nella tua directory skills

161</h2>

162 

163Invece di passare `--plugin-dir` ad ogni avvio, puoi mantenere un plugin nella tua directory skills e fare in modo che Claude Code lo carichi automaticamente. `claude plugin init` ne crea uno:

164 

165```bash theme={null}

166claude plugin init my-tool

167```

168 

169Questo crea `~/.claude/skills/my-tool/` con un manifest `.claude-plugin/plugin.json` e uno starter `SKILL.md`. Nella sessione successiva si carica come `my-tool@skills-dir` senza alcun passaggio di marketplace o installazione.

170 

171Per le regole di caricamento automatico, l'ambito personale rispetto a quello del progetto, il requisito di fiducia dell'area di lavoro e come aggiornare o rimuoverne uno, vedi [Plugin della directory skills](/docs/it/plugins-reference#skills-directory-plugins).

172 

173<h2 id="plugin-structure-overview">

174 Panoramica della struttura del plugin

175</h2>

176 

177Hai creato un plugin con uno skill, ma i plugin possono includere molto di più: agents personalizzati, hooks, MCP servers, LSP servers e monitor in background.

178 

179<Warning>

180 **Errore comune**: Non mettere `commands/`, `agents/`, `skills/` o `hooks/` dentro la directory `.claude-plugin/`. Solo `plugin.json` va dentro `.claude-plugin/`. Tutte le altre directory devono essere al livello radice del plugin.

181 

182 La radice del plugin è la directory del singolo plugin, come `my-first-plugin/` dalla [guida rapida](#quickstart). Non è mai `~/.claude/`. Ad esempio, Claude Code non legge un `.mcp.json` posizionato in `~/.claude/.mcp.json`.

183</Warning>

184 

185| Directory | Posizione | Scopo |

186| :---------------- | :---------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

187| `.claude-plugin/` | Radice del plugin | Contiene il manifest `plugin.json` (opzionale se i componenti usano posizioni predefinite) |

188| `skills/` | Radice del plugin | Skills come directory `<name>/SKILL.md` |

189| `commands/` | Radice del plugin | Skills come file Markdown flat. Usa `skills/` per i nuovi plugin |

190| `agents/` | Radice del plugin | Definizioni di agent personalizzati |

191| `hooks/` | Radice del plugin | Gestori di eventi in `hooks.json` |

192| `.mcp.json` | Radice del plugin | Configurazioni del server MCP |

193| `.lsp.json` | Radice del plugin | Configurazioni del server LSP per l'intelligenza del codice |

194| `monitors/` | Radice del plugin | Configurazioni del monitor in background in `monitors.json` |

195| `bin/` | Radice del plugin | Eseguibili aggiunti al `PATH` dello strumento Bash mentre il plugin è abilitato. Non puoi includere questa directory in un plugin che [distribuisci tramite le impostazioni dell'organizzazione claude.ai](/docs/it/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory) |

196| `settings.json` | Radice del plugin | [Impostazioni](/docs/it/settings) predefinite applicate quando il plugin è abilitato |

197 

198Un plugin che fornisce esattamente uno skill può posizionare `SKILL.md` direttamente alla radice del plugin invece di creare una directory `skills/`. Claude Code lo carica come uno skill singolo e utilizza il campo `name` del frontmatter per il nome di invocazione. Usa il layout `skills/` per i plugin che potrebbero crescere fino a più di uno skill.

199 

200<h2 id="develop-more-complex-plugins">

201 Sviluppa plugin più complessi

202</h2>

203 

204Una volta che hai familiarità con i plugin di base, puoi creare estensioni più sofisticate.

205 

206<h3 id="add-skills-to-your-plugin">

207 Aggiungi Skills al tuo plugin

208</h3>

209 

210I plugin possono includere [Agent Skills](/docs/it/skills) per estendere le capacità di Claude. Gli skill sono invocati dal modello: Claude li usa automaticamente in base al contesto dell'attività.

211 

212Aggiungi una directory `skills/` alla radice del tuo plugin con cartelle Skill contenenti file `SKILL.md`:

213 

214```text theme={null}

215my-plugin/

216├── .claude-plugin/

217│ └── plugin.json

218└── skills/

219 └── code-review/

220 └── SKILL.md

221```

222 

223Ogni `SKILL.md` contiene frontmatter YAML e istruzioni. Includi una `description` in modo che Claude sappia quando usare lo skill:

224 

225```yaml theme={null}

226description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.

227 

228When reviewing code, check for:

2291. Code organization and structure

2302. Error handling

2313. Security concerns

2324. Test coverage

233```

234 

235Dopo aver installato il plugin, controlla il riepilogo dell'installazione: se segnala `Run /reload-plugins to activate.`, vedi [Applica le modifiche del plugin senza riavviare](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) per caricare gli Skills nella tua sessione corrente. Per una guida completa sulla creazione di Skill inclusa la divulgazione progressiva e le restrizioni degli strumenti, vedi [Agent Skills](/docs/it/skills).

236 

237<h3 id="add-lsp-servers-to-your-plugin">

238 Aggiungi server LSP al tuo plugin

239</h3>

240 

241<Tip>

242 Per linguaggi comuni come TypeScript, Python e Rust, installa i plugin LSP pre-costruiti dal marketplace ufficiale. Crea plugin LSP personalizzati solo quando hai bisogno di supporto per linguaggi non ancora coperti.

243</Tip>

244 

245I plugin LSP (Language Server Protocol) danno a Claude l'intelligenza del codice in tempo reale. Se hai bisogno di supportare un linguaggio che non ha un plugin LSP ufficiale, puoi crearne uno tuo aggiungendo un file `.lsp.json` al tuo plugin:

246 

247```json .lsp.json theme={null}

248{

249 "go": {

250 "command": "gopls",

251 "args": ["serve"],

252 "extensionToLanguage": {

253 ".go": "go"

254 }

255 }

256}

257```

258 

259Gli utenti che installano il tuo plugin devono avere il binario del language server installato sulla loro macchina.

260 

261Per confermare che il server si avvia, avvia Claude Code con il plugin abilitato e controlla la scheda `/plugin` Errors: un language server che non riesce ad avviarsi appare lì, ad esempio con `Executable not found in $PATH` quando il binario non è installato. Una voce con una configurazione non valida viene saltata; esegui `claude --debug` per vedere il motivo.

262 

263Per le opzioni di configurazione LSP complete, vedi [LSP servers](/docs/it/plugins-reference#lsp-servers).

264 

265<h3 id="add-background-monitors-to-your-plugin">

266 Aggiungi monitor in background al tuo plugin

267</h3>

268 

269I monitor in background permettono al tuo plugin di osservare log, file o stato esterno in background e notificare Claude quando gli eventi arrivano. Claude Code avvia automaticamente ogni monitor quando il plugin è attivo, quindi non hai bisogno di istruire Claude ad avviare la sorveglianza.

270 

271Aggiungi un file `monitors/monitors.json` alla radice del plugin con un array di voci di monitor:

272 

273```json monitors/monitors.json theme={null}

274[

275 {

276 "name": "error-log",

277 "command": "tail -F ./logs/error.log",

278 "description": "Application error log"

279 }

280]

281```

282 

283Ogni riga stdout da `command` viene consegnata a Claude come notifica durante la sessione. Per lo schema completo, incluso il trigger `when` e la sostituzione delle variabili, vedi [Monitors](/docs/it/plugins-reference#monitors).

284 

285<h3 id="ship-default-settings-with-your-plugin">

286 Spedisci impostazioni predefinite con il tuo plugin

287</h3>

288 

289I plugin possono includere un file `settings.json` alla radice del plugin per applicare la configurazione predefinita quando il plugin è abilitato. Attualmente, sono supportate solo le chiavi `agent` e `subagentStatusLine`.

290 

291Impostare `agent` attiva uno dei [custom agents](/docs/it/sub-agents) del plugin come thread principale, applicando il suo system prompt, le restrizioni degli strumenti e il modello. Questo consente a un plugin di cambiare il comportamento predefinito di Claude Code quando abilitato.

292 

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

294{

295 "agent": "security-reviewer"

296}

297```

298 

299Questo esempio attiva l'agent `security-reviewer` definito nella directory `agents/` del plugin. Le impostazioni da `settings.json` hanno priorità rispetto alle `settings` dichiarate in `plugin.json`. Le chiavi sconosciute vengono silenziosamente ignorate.

300 

301<h3 id="organize-complex-plugins">

302 Organizza plugin complessi

303</h3>

304 

305Per i plugin con molti componenti, organizza la tua struttura di directory per funzionalità. Per i layout di directory completi e i modelli di organizzazione, vedi [Struttura della directory del plugin](/docs/it/plugins-reference#plugin-directory-structure).

306 

307<h3 id="test-your-plugins-locally">

308 Testa i tuoi plugin localmente

309</h3>

310 

311Usa il flag `--plugin-dir` per testare i plugin durante lo sviluppo. Questo carica il tuo plugin direttamente senza richiedere l'installazione.

312 

313```bash theme={null}

314claude --plugin-dir ./my-plugin

315```

316 

317Il flag accetta anche un archivio `.zip` della directory del plugin.

318 

319```bash theme={null}

320claude --plugin-dir ./my-plugin.zip

321```

322 

323Quando un plugin `--plugin-dir` ha lo stesso nome di un plugin marketplace installato, la copia locale ha la precedenza per quella sessione. Questo ti consente di testare le modifiche a un plugin che hai già installato senza disinstallarlo prima. L'eccezione è rappresentata dai plugin le cui impostazioni gestite forzano l'abilitazione o la disabilitazione: `--plugin-dir` non può sovrascrivere quelli.

324 

325Man mano che apporti modifiche al tuo plugin, esegui `/reload-plugins` per raccogliere gli aggiornamenti senza riavviare. Questo ricarica plugin, skill, agent, hook, server MCP del plugin e server LSP del plugin; in una sessione senza un terminale interattivo, le modifiche al server MCP del plugin [attendono la tua prossima sessione](/docs/it/discover-plugins#apply-plugin-changes-without-restarting). Testa i componenti del tuo plugin:

326 

327* Prova i tuoi skill con `/plugin-name:skill-name`

328* Verifica che gli agents appaiano in `/context` sotto Custom Agents, o @-menziona uno per il suo nome con scope

329* Attiva l'evento che ogni hook corrisponde, ad esempio chiedendo a Claude di modificare un file per un hook `PostToolUse`, e conferma il suo effetto. Claude Code registra quali hook corrispondono, i loro codici di uscita e il loro output nel [debug log](/docs/it/hooks#debug-hooks)

330 

331<Tip>

332 Puoi caricare più plugin contemporaneamente specificando il flag più volte:

333 

334 ```bash theme={null}

335 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two

336 ```

337 

338 Per testare un plugin insieme a un plugin da cui dipende, vedi [Testa un plugin e la sua dipendenza localmente](/docs/it/plugin-dependencies#test-a-plugin-and-its-dependency-locally).

339</Tip>

340 

341Per caricare plugin in una sessione in cui non puoi aggiungere il flag, elenca i loro percorsi assoluti nella variabile di ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/it/env-vars#variables). Claude Code carica ogni percorso come carica un percorso `--plugin-dir`. Questi plugin si caricano in aggiunta a quelli che passi con `--plugin-dir`. [Le impostazioni di progetto e locali non possono impostare questa variabile](/docs/it/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` richiede Claude Code v2.1.280 o successivo.

342 

343Provare il plugin con `--plugin-dir` ti dice che può funzionare. Per scoprire quanto spesso Claude effettivamente lo raggiunge e ottiene il risultato giusto, eseguilo su un set di prompt di test con [`claude plugin eval`](/docs/it/plugin-evals). Ogni prompt viene eseguito più volte con e senza il plugin caricato, quindi puoi vedere cosa contribuisce il plugin e catturare regressioni quando lo modifichi o una nuova versione del modello viene rilasciata.

344 

345Per caricare diversi plugin da un unico posto, passa una cartella che li contiene, ad esempio `--plugin-dir ./plugins`. Il caricamento di una cartella di plugin richiede Claude Code v2.1.265 o successivo. Claude Code legge il livello superiore della cartella per decidere quali plugin caricare, e in una sessione interattiva osserva anche la cartella per i cambiamenti successivi:

346 

347* **Cosa si carica**: se la cartella non ha un manifest o componenti di plugin al suo livello superiore, Claude Code la tratta come una cartella di plugin. Ogni sottocartella immediata che ha un manifest `.claude-plugin/plugin.json` si carica come un plugin separato. Claude Code salta tutto il resto nella cartella senza segnalare un errore, inclusi i plugin che non hanno un manifest.

348* **Cambiamenti durante una sessione interattiva**: una sottocartella che aggiungi si carica come un nuovo plugin una volta che il suo manifest è in posizione, e quando rimuovi una sottocartella, il suo plugin si scarica. Claude Code stampa una riga nella sessione per ogni cambiamento. Se l'applicazione di un cambiamento a metà conversazione [invaliderebbe la cache del prompt](/docs/it/prompt-caching#enabling-or-disabling-a-plugin), Claude Code la trattiene, e la riga dice di eseguire `/reload-plugins` per applicarla.

349 

350Per testare un plugin che è già stato confezionato come archivio `.zip` e ospitato su un URL, come un artefatto di build CI, usa `--plugin-url` invece. Claude Code recupera l'archivio all'avvio e lo carica solo per quella sessione. Se Claude Code non riesce a recuperare l'archivio, o l'archivio non è valido, si avvia senza il plugin e registra un errore di caricamento del plugin che puoi rivedere nella scheda **Errors** del gestore `/plugin`. Le stesse [considerazioni sulla fiducia](/docs/it/discover-plugins#security) si applicano come per qualsiasi fonte di plugin: punta questo flag solo ad archivi che controlli o di cui ti fidi.

351 

352Per caricare più plugin, ripeti il flag per ogni URL:

353 

354```bash theme={null}

355claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip

356```

357 

358Oppure passa URL separati da spazi come un singolo argomento tra virgolette:

359 

360```bash theme={null}

361claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"

362```

363 

364<h3 id="debug-plugin-issues">

365 Esegui il debug dei problemi del plugin

366</h3>

367 

368Se il tuo plugin non funziona come previsto:

369 

3701. **Controlla la struttura**: Assicurati che le tue directory siano alla radice del plugin, non dentro `.claude-plugin/`

3712. **Testa i componenti individualmente**: Controlla ogni skill, agent e hook separatamente

3723. **Usa strumenti di validazione e debug**: Vedi [Strumenti di debug e sviluppo](/docs/it/plugins-reference#debugging-and-development-tools) per i comandi CLI e le tecniche di troubleshooting

373 

374<h3 id="share-your-plugins">

375 Condividi i tuoi plugin

376</h3>

377 

378Quando il tuo plugin è pronto per essere condiviso:

379 

3801. **Aggiungi documentazione**: Includi un `README.md` con istruzioni di installazione e utilizzo

3812. **Scegli una strategia di versionamento**: Decidi se impostare una `version` esplicita o affidarti al fallback descritto in [gestione della versione](/docs/it/plugins-reference#version-management).

3823. **Crea o usa un marketplace**: Distribuisci tramite [marketplace di plugin](/docs/it/plugin-marketplaces) per l'installazione

3834. **Testa con altri**: Fai testare il plugin ai colleghi del team prima di una distribuzione più ampia

384 

385Una volta che il tuo plugin è in un marketplace, altri possono installarlo usando le istruzioni in [Scopri e installa plugin](/docs/it/discover-plugins). Per mantenere un plugin interno al tuo team, ospita il marketplace in un [repository privato](/docs/it/plugin-marketplaces#private-repositories).

386 

387<h3 id="submit-your-plugin-to-the-community-marketplace">

388 Invia il tuo plugin al marketplace della comunità

389</h3>

390 

391Anthropic mantiene due marketplace pubblici per i plugin di Claude Code:

392 

393* **`claude-plugins-official`**: un insieme curato di plugin mantenuti da Anthropic. Claude Code lo registra automaticamente la prima volta che avvii Claude Code in modo interattivo. Se esegui Claude Code in modo non interattivo prima di quel primo avvio interattivo, o una [politica del marketplace](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) ha bloccato un tentativo precedente, registralo tu stesso con `claude plugin marketplace add anthropics/claude-plugins-official`.

394* **`claude-community`**: il marketplace pubblico della comunità dove gli invii di terze parti arrivano dopo la revisione. Gli utenti lo aggiungono con `/plugin marketplace add anthropics/claude-plugins-community` e lo installano come `@claude-community`.

395 

396Per inviare il tuo plugin per la revisione del marketplace della comunità, usa uno dei moduli in-app:

397 

398* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

399* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

400 

401Il modulo claude.ai richiede un'organizzazione Team o Enterprise e accesso alla gestione della directory; i proprietari dell'organizzazione hanno questo accesso per impostazione predefinita. Gli autori individuali che non fanno parte di un'organizzazione Team o Enterprise possono utilizzare il modulo Console.

402 

403Esegui `claude plugin validate ./your-plugin` localmente prima di inviare, sostituendo `./your-plugin` con il percorso della tua directory di plugin. La pipeline di revisione esegue lo stesso controllo su ogni invio, insieme a uno screening di sicurezza automatizzato. Quando la validazione passa, Claude Code stampa `✔ Validation passed`, o `✔ Validation passed with warnings` se ci sono avvisi. Gli avvisi non causano il fallimento della validazione; aggiungi `--strict` per trattarli come errori.

404 

405I plugin approvati sono fissati a uno specifico commit SHA nel catalogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), e CI aumenta automaticamente il pin mentre esegui il push di nuovi commit nel tuo repository. Il catalogo pubblico si sincronizza ogni notte dalla pipeline di revisione, quindi può esserci un ritardo tra l'approvazione e la comparsa del tuo plugin in `marketplace.json`. Per verificare se il tuo plugin è già installabile, cerca il suo nome nel [catalogo della comunità](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).

406 

407Il marketplace ufficiale, `claude-plugins-official`, è curato separatamente. Anthropic decide quali plugin includere a sua discrezione. Non c'è un processo di candidatura e il modulo di invio non aggiunge plugin al marketplace ufficiale.

408 

409Se Anthropic elenca il tuo plugin nel marketplace ufficiale, il tuo CLI può invitare gli utenti di Claude Code a installarlo. Vedi [Consiglia il tuo plugin dal tuo CLI](/docs/it/plugin-hints).

410 

411<h2 id="convert-existing-configurations-to-plugins">

412 Converti configurazioni esistenti in plugin

413</h2>

414 

415Se hai già skill o hooks nella tua directory `.claude/`, puoi convertirli in un plugin per una condivisione e distribuzione più facile.

416 

417<h3 id="migration-steps">

418 Passaggi di migrazione

419</h3>

420 

421<Steps>

422 <Step title="Crea la struttura del plugin">

423 Crea una nuova directory plugin nella radice del tuo progetto, accanto alla cartella `.claude/` esistente, in modo che i percorsi relativi `cp` nel passaggio successivo si risolvano:

424 

425 ```bash theme={null}

426 mkdir -p my-plugin/.claude-plugin

427 ```

428 

429 Crea il file manifest in `my-plugin/.claude-plugin/plugin.json`:

430 

431 ```json my-plugin/.claude-plugin/plugin.json theme={null}

432 {

433 "name": "my-plugin",

434 "description": "Migrated from standalone configuration",

435 "version": "1.0.0"

436 }

437 ```

438 </Step>

439 

440 <Step title="Copia i tuoi file esistenti">

441 Copia ogni directory di configurazione che hai nella radice del plugin. Potresti non avere tutti e tre: se una directory non esiste, `cp` stampa `No such file or directory` e non copia nulla, quindi salta quel comando o ignora l'errore.

442 

443 ```bash theme={null}

444 cp -r .claude/commands my-plugin/

445 

446 cp -r .claude/agents my-plugin/

447 

448 cp -r .claude/skills my-plugin/

449 ```

450 

451 Il tuo plugin ora contiene copie delle directory che avevi sotto `.claude/`. Esegui `ls my-plugin` per confermare: dovresti vedere ogni directory che hai copiato.

452 </Step>

453 

454 <Step title="Migra gli hook">

455 Se hai hook nelle tue impostazioni, crea una directory hooks:

456 

457 ```bash theme={null}

458 mkdir my-plugin/hooks

459 ```

460 

461 Crea `my-plugin/hooks/hooks.json` con la tua configurazione degli hook. Copia l'oggetto `hooks` dal tuo `.claude/settings.json` o `settings.local.json`, poiché il formato è lo stesso. Il comando riceve l'input dell'hook come JSON su stdin, quindi usa `jq` per estrarre il percorso del file:

462 

463 ```json my-plugin/hooks/hooks.json theme={null}

464 {

465 "hooks": {

466 "PostToolUse": [

467 {

468 "matcher": "Write|Edit",

469 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]

470 }

471 ]

472 }

473 }

474 ```

475 </Step>

476 

477 <Step title="Testa il tuo plugin migrato">

478 Carica il tuo plugin per verificare che tutto funzioni:

479 

480 ```bash theme={null}

481 claude --plugin-dir ./my-plugin

482 ```

483 

484 Testa ogni componente: esegui i tuoi comandi, verifica che gli agents appaiano in `/context`, e attiva l'evento che ogni hook corrisponde per confermare il suo effetto. Claude Code registra quali hook sono stati attivati e come sono usciti nel [debug log](/docs/it/hooks#debug-hooks).

485 </Step>

486</Steps>

487 

488<h3 id="what-changes-when-migrating">

489 Cosa cambia durante la migrazione

490</h3>

491 

492| Standalone (`.claude/`) | Plugin |

493| :---------------------------------------------- | :--------------------------------------- |

494| Disponibile solo in un progetto | Può essere condiviso tramite marketplace |

495| File in `.claude/commands/` | File in `plugin-name/commands/` |

496| Hook in `settings.json` | Hook in `hooks/hooks.json` |

497| Deve essere copiato manualmente per condividere | Installa con `/plugin install` |

498 

499<Note>

500 Dopo la migrazione, rimuovi i file originali da `.claude/` per evitare duplicati. Le definizioni di `.claude/agents/` a livello di progetto e utente sovrascrivono gli agents del plugin con lo stesso nome, quindi la versione del plugin ha effetto solo una volta rimossi gli originali. Le skill del plugin sono spaziate dei nomi come `/plugin-name:skill-name`, quindi sia l'originale `/skill-name` che la copia del plugin rimangono disponibili piuttosto che uno che sovrascrive l'altro.

501</Note>

502 

503<h2 id="next-steps">

504 Prossimi passi

505</h2>

506 

507Ora che comprendi il sistema di plugin di Claude Code, ecco i percorsi suggeriti per diversi obiettivi:

508 

509<h3 id="for-plugin-users">

510 Per gli utenti di plugin

511</h3>

512 

513* [Scopri e installa plugin](/docs/it/discover-plugins): sfoglia i marketplace e installa i plugin

514* [Configura marketplace del team](/docs/it/discover-plugins#configure-team-marketplaces): configura plugin a livello di repository per il tuo team

515 

516<h3 id="for-plugin-developers">

517 Per gli sviluppatori di plugin

518</h3>

519 

520* [Test dei plugin con evals](/docs/it/plugin-evals): misura cosa cambia il tuo plugin e blocca CI su di esso

521* [Crea e distribuisci un marketplace](/docs/it/plugin-marketplaces): pacchetto e condividi i tuoi plugin

522* [Riferimento plugin](/docs/it/plugins-reference): specifiche tecniche complete

523* Approfondisci componenti specifici del plugin:

524 * [Skills](/docs/it/skills): dettagli dello sviluppo dello skill

525 * [Subagents](/docs/it/sub-agents): configurazione e capacità dell'agent

526 * [Hooks](/docs/it/hooks): gestione degli eventi e automazione

527 * [MCP](/docs/it/mcp): integrazione di strumenti esterni

plugins-reference.md +0 −1645 deleted

File Deleted View Diff

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# Plugins reference

6 

7> Riferimento tecnico completo per il sistema di plugin di Claude Code, inclusi schemi, comandi CLI e specifiche dei componenti.

8 

9<Tip>

10 Stai cercando di installare plugin? Vedi [Scopri e installa plugin](/docs/it/discover-plugins). Per creare plugin, vedi [Plugin](/docs/it/plugins). Per distribuire plugin, vedi [Plugin marketplaces](/docs/it/plugin-marketplaces).

11</Tip>

12 

13Un **plugin** è una directory autonoma di componenti che estende Claude Code con funzionalità personalizzate. I componenti del plugin includono skills, agents, hooks, server MCP, server LSP e monitor.

14 

15<h2 id="plugin-components-reference">

16 Riferimento dei componenti del plugin

17</h2>

18 

19<h3 id="skills">

20 Skills

21</h3>

22 

23I plugin aggiungono skills a Claude Code, creando scorciatoie `/name` che tu o Claude potete invocare.

24 

25**Posizione**: directory `skills/` o `commands/` nella radice del plugin, oppure un singolo file `SKILL.md` nella radice del plugin

26 

27**Formato file**: Gli skills sono directory con `SKILL.md`; i commands sono semplici file markdown

28 

29**Struttura skill**:

30 

31```text theme={null}

32skills/

33├── pdf-processor/

34│ ├── SKILL.md

35│ ├── reference.md (opzionale)

36│ └── scripts/ (opzionale)

37└── code-reviewer/

38 └── SKILL.md

39```

40 

41Gli skills e i commands vengono rilevati automaticamente quando il plugin viene installato.

42 

43Se un plugin non ha una directory `skills/` e nessun campo manifest `skills`, un `SKILL.md` nella radice del plugin viene caricato come un singolo skill. Impostare il campo frontmatter `name` per controllare il nome di invocazione dello skill. Senza di esso, Claude Code ricade al nome della directory di installazione. Per un plugin [copiato nella cache](#plugin-caching-and-file-resolution), quel nome è una stringa di versione che cambia ad ogni aggiornamento. Per i plugin che forniscono più di uno skill, utilizzare il layout della directory `skills/` mostrato sopra.

44 

45Negli skills e nei commands del plugin, i campi frontmatter booleani come `disable-model-invocation` accettano `yes`, `no`, `on`, `off`, `1` e `0` in qualsiasi caso di lettera, oltre a `true` e `false`. Prima della v2.1.218, Claude Code riconosceva solo `true` e `false`.

46 

47Per i dettagli completi, vedere [Skills](/docs/it/skills).

48 

49<h3 id="agents">

50 Agents

51</h3>

52 

53I plugin possono fornire subagent specializzati per compiti specifici che Claude può invocare automaticamente quando appropriato.

54 

55**Posizione**: directory `agents/` nella radice del plugin

56 

57**Formato file**: File markdown che descrivono le capacità dell'agent

58 

59**Struttura agent**:

60 

61```markdown theme={null}

62name: agent-name

63description: In cosa si specializza questo agent e quando Claude dovrebbe invocarlo

64model: sonnet

65effort: medium

66maxTurns: 20

67disallowedTools: Write, Edit

68 

69Prompt di sistema dettagliato per l'agent che descrive il suo ruolo, competenza e comportamento.

70```

71 

72<h4 id="plugin-agent-frontmatter">

73 Frontmatter dell'agent del plugin

74</h4>

75 

76Un file agent del plugin utilizza gli stessi [campi frontmatter di un file subagent](/docs/it/sub-agents#supported-frontmatter-fields), tranne che Claude Code onora solo alcuni di essi quando l'agent proviene da un plugin:

77 

78* **Supportati**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color` e `experimental`. L'unico valore `isolation` valido è `"worktree"`.

79* **Non supportati, per motivi di sicurezza**: `hooks`, `mcpServers` e `permissionMode`. Claude Code ignora questi quando carica un agent da un plugin. Per utilizzarli, copia il file agent in `.claude/agents/` o `~/.claude/agents/`.

80* **Non supportati**: `initialPrompt`.

81 

82Puoi mettere i file degli agent del plugin in sottocartelle di `agents/`. Claude Code [li carica ricorsivamente](/docs/it/sub-agents#choose-the-subagent-scope) e unisce il nome del plugin, ogni nome di sottocartella e il nome del file con i due punti per formare il nome con scope dell'agent. Ad esempio, `agents/review/security.md` in un plugin denominato `my-plugin` viene caricato come `my-plugin:review:security`. Due impostazioni cambiano quel nome:

83 

84* Frontmatter `name`: sostituisce solo il nome del file, quindi `name: audit` in `agents/review/security.md` viene caricato come `my-plugin:review:audit`

85* Campo manifest [`agents`](#component-path-fields): un file che elenchi lì viene caricato senza nomi di sottocartella, quindi `"agents": "./custom/review/security.md"` viene caricato come `my-plugin:security`

86 

87Claude Code carica un agent del plugin anche quando il suo frontmatter non ha `name` o non viene analizzato:

88 

89* Nessun `name`: Claude Code nomina l'agent in base al file, quindi `agents/reviewer.md` in un plugin denominato `my-plugin` viene caricato come `my-plugin:reviewer`

90* Frontmatter che non viene analizzato: Claude Code nomina l'agent in base al file, utilizza `Agent from my-plugin plugin` come sua descrizione e ignora ogni campo nel file

91 

92Al contrario, Claude Code salta un file di progetto, utente o agent gestito il cui frontmatter non ha `name` o non viene analizzato.

93 

94Per trovare i file nella directory `agents/` predefinita di un plugin il cui frontmatter non viene analizzato, eseguire `claude plugin validate`. Il percorso che passi dipende dal fatto che il plugin abbia un manifest, e entrambi gli esempi utilizzano `./my-plugin` come directory del plugin:

95 

96* Un plugin con un manifest: `claude plugin validate ./my-plugin`

97* Un plugin senza un manifest: `claude plugin validate ./my-plugin/agents`. Richiede Claude Code v2.1.233 o successivo.

98 

99Gli agent vengono visualizzati nella [typeahead @-mention](/docs/it/sub-agents#invoke-subagents-explicitly) con il loro nome con scope, come `my-plugin:code-reviewer`, una volta che il plugin è abilitato.

100 

101Per i dettagli completi, vedere [Subagent](/docs/it/sub-agents).

102 

103<h3 id="hooks">

104 Hooks

105</h3>

106 

107I plugin possono fornire gestori di eventi che rispondono automaticamente agli eventi di Claude Code.

108 

109**Posizione**: `hooks/hooks.json` nella radice del plugin, oppure inline in plugin.json

110 

111**Formato**: Configurazione JSON con matcher di eventi e azioni

112 

113`hooks/hooks.json` può contenere una chiave `$schema` di livello superiore che nomina un URL JSON Schema per l'autocompletamento dell'editor e la convalida. Claude Code ignora la chiave al momento del caricamento.

114 

115**Configurazione hook**:

116 

117```json theme={null}

118{

119 "hooks": {

120 "PostToolUse": [

121 {

122 "matcher": "Write|Edit",

123 "hooks": [

124 {

125 "type": "command",

126 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"

127 }

128 ]

129 }

130 ]

131 }

132}

133```

134 

135Gli hook del plugin rispondono agli stessi eventi del ciclo di vita degli [hook definiti dall'utente](/docs/it/hooks):

136 

137| Evento | Quando si attiva |

138| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

139| `SessionStart` | Quando una sessione inizia o riprende |

140| `Setup` | Quando avvii Claude Code con `--init-only`, o con `--init` o `--maintenance` in modalità `-p`. Per la preparazione una tantum in CI o script |

141| `UserPromptSubmit` | Quando invii un prompt, prima che Claude lo elabori |

142| `UserPromptExpansion` | Quando un comando digitato dall'utente si espande in un prompt, prima che raggiunga Claude. Può bloccare l'espansione |

143| `PreToolUse` | Prima che una chiamata a uno strumento si esegua. Può bloccarla |

144| `PermissionRequest` | Quando una chiamata a uno strumento necessita di una decisione di autorizzazione |

145| `PermissionDenied` | Quando la modalità automatica nega una chiamata a uno strumento, inclusi i rifiuti senza un verdetto del classificatore. Utilizza JSON `hookSpecificOutput.retry: true` per indicare al modello che può riprovare la chiamata allo strumento negata. Claude Code ignora `retry` quando il classificatore non ha prodotto alcun verdetto |

146| `PostToolUse` | Dopo che una chiamata a uno strumento ha successo |

147| `PostToolUseFailure` | Dopo che una chiamata a uno strumento fallisce |

148| `PostToolBatch` | Dopo che un intero batch di chiamate a strumenti paralleli si risolve, prima della prossima chiamata al modello |

149| `Notification` | Quando Claude Code invia una notifica |

150| `MessageDisplay` | Mentre il testo del messaggio dell'assistente viene visualizzato |

151| `SubagentStart` | Quando un subagente viene generato |

152| `SubagentStop` | Quando un subagente termina |

153| `TaskCreated` | Quando un'attività viene creata tramite `TaskCreate` |

154| `TaskCompleted` | Quando un'attività viene contrassegnata come completata |

155| `Stop` | Quando Claude finisce di rispondere |

156| `StopFailure` | Quando il turno termina a causa di un errore API |

157| `TeammateIdle` | Quando un compagno di squadra di un [team di agenti](/docs/it/agent-teams) sta per diventare inattivo |

158| `InstructionsLoaded` | Quando un file CLAUDE.md o `.claude/rules/*.md` viene caricato nel contesto. Si attiva all'inizio della sessione e quando i file vengono caricati in modo pigro durante una sessione |

159| `ConfigChange` | Quando un file di configurazione cambia durante una sessione |

160| `CwdChanged` | Quando la directory di lavoro cambia, ad esempio quando Claude esegue un comando `cd`. Utile per la gestione reattiva dell'ambiente con strumenti come direnv |

161| `DirectoryAdded` | Quando una directory di lavoro viene aggiunta a metà sessione tramite `/add-dir` o la richiesta di controllo SDK `register_repo_root` |

162| `FileChanged` | Quando un file osservato cambia su disco. Il campo `matcher` specifica quali nomi di file osservare |

163| `WorktreeCreate` | Quando un worktree viene creato tramite `--worktree`, `isolation: "worktree"`, o per una sessione in background. Sostituisce il comportamento git predefinito |

164| `WorktreeRemove` | Quando un worktree viene rimosso all'uscita della sessione, quando un subagente termina, o quando elimini una sessione in background |

165| `PreCompact` | Prima della compattazione del contesto |

166| `PostCompact` | Dopo che la compattazione del contesto è completata |

167| `PreModelSwitch` | Prima che Claude Code applichi un cambio di modello che hai richiesto tu o un client. Può bloccare il cambio |

168| `PostModelSwitch` | Dopo che il modello della sessione cambia, inclusi i cambiamenti che Claude Code effettua autonomamente, come il ripristino del modello quando riprendi una sessione |

169| `Elicitation` | Quando un server MCP richiede input dell'utente durante una chiamata a uno strumento |

170| `ElicitationResult` | Dopo che un utente risponde a un'elicitazione MCP, prima che la risposta venga inviata al server |

171| `SessionEnd` | Quando una sessione termina |

172 

173**Tipi di hook**:

174 

175* `command`: eseguire comandi shell o script

176* `http`: inviare l'evento JSON come richiesta POST a un URL

177* `mcp_tool`: chiamare uno strumento su un [server MCP](/docs/it/mcp) configurato

178* `prompt`: valutare un prompt con un LLM (utilizza il placeholder `$ARGUMENTS` per il contesto)

179* `agent`: eseguire un verificatore agentico con strumenti per compiti di verifica complessi

180 

181Gli hook che puntano al [server MCP bundled](#mcp-servers) del plugin devono utilizzare i suoi nomi con scope. I matcher di strumenti e i campi `if` prendono il nome dello strumento con scope `mcp__plugin_<plugin-name>_<server-name>__<tool>`, e il campo `server` di un hook `mcp_tool` prende `plugin:<plugin-name>:<server-name>`. Un matcher scritto contro la chiave del server nuda non si attiva mai. Vedere [Match MCP tools](/docs/it/hooks#match-mcp-tools) e [Plugin-provided MCP servers](/docs/it/mcp#plugin-provided-mcp-servers).

182 

183<h3 id="mcp-servers">

184 MCP servers

185</h3>

186 

187I plugin possono raggruppare server Model Context Protocol (MCP) per connettere Claude Code con strumenti e servizi esterni.

188 

189**Posizione**: `.mcp.json` nella radice del plugin, oppure inline in plugin.json

190 

191**Formato**: Configurazione standard del server MCP

192 

193**Configurazione del server MCP**:

194 

195```json theme={null}

196{

197 "mcpServers": {

198 "plugin-database": {

199 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",

200 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],

201 "env": {

202 "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"

203 }

204 },

205 "plugin-api-client": {

206 "command": "npx",

207 "args": ["@company/mcp-server", "--plugin-mode"]

208 }

209 }

210}

211```

212 

213**Comportamento di integrazione**:

214 

215* I server MCP del plugin si avviano automaticamente quando il plugin è abilitato

216* I server vengono visualizzati come strumenti MCP standard nel toolkit di Claude

217* I server del plugin possono essere configurati indipendentemente dai server MCP dell'utente

218* Se esegui [`/reload-plugins`](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) a metà sessione, Claude Code mantiene le connessioni live dei server la cui configurazione è invariata

219 

220<h3 id="lsp-servers">

221 LSP servers

222</h3>

223 

224<Tip>

225 Stai cercando di utilizzare plugin LSP? Installali dal marketplace ufficiale: cerca "lsp" nella scheda Discover `/plugin`. Questa sezione documenta come creare plugin LSP per linguaggi non coperti dal marketplace ufficiale.

226</Tip>

227 

228I plugin possono fornire server [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP) per dare a Claude [intelligenza del codice in tempo reale](/docs/it/discover-plugins#code-intelligence) mentre lavori sulla tua codebase.

229 

230**Posizione**: `.lsp.json` nella radice del plugin, oppure inline in `plugin.json`

231 

232**Formato**: Configurazione JSON che mappa i nomi dei server di linguaggio alle loro configurazioni

233 

234**Formato file `.lsp.json`**:

235 

236```json theme={null}

237{

238 "go": {

239 "command": "gopls",

240 "args": ["serve"],

241 "extensionToLanguage": {

242 ".go": "go"

243 }

244 }

245}

246```

247 

248**Inline in `plugin.json`**:

249 

250```json theme={null}

251{

252 "name": "my-plugin",

253 "lspServers": {

254 "go": {

255 "command": "gopls",

256 "args": ["serve"],

257 "extensionToLanguage": {

258 ".go": "go"

259 }

260 }

261 }

262}

263```

264 

265**Campi obbligatori:**

266 

267| Field | Description |

268| :-------------------- | :------------------------------------------------------------ |

269| `command` | Il binario LSP da eseguire (deve essere in PATH) |

270| `extensionToLanguage` | Mappa le estensioni di file agli identificatori di linguaggio |

271 

272**Campi opzionali:**

273 

274| Field | Description |

275| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

276| `args` | Argomenti della riga di comando per il server LSP |

277| `transport` | Trasporto di comunicazione: `stdio` (predefinito) o `socket`. Claude Code accetta `socket` ma esegue ogni server su stdio, quindi le regole del protocollo stdout si applicano a tutti i server |

278| `env` | Variabili di ambiente da impostare all'avvio del server |

279| `initializationOptions` | Opzioni passate al server durante l'inizializzazione |

280| `settings` | Impostazioni passate tramite `workspace/didChangeConfiguration` |

281| `workspaceFolder` | Percorso della cartella di lavoro per il server |

282| `startupTimeout` | Tempo massimo di attesa per l'avvio del server (millisecondi) |

283| `shutdownTimeout` | Tempo massimo di attesa per l'arresto graduale (millisecondi). Quando il timeout scade, Claude Code termina il processo del server. Se non impostato, non si applica alcun timeout |

284| `restartOnCrash` | Se riavviare il server dopo un crash. Predefinito su `true`. Impostare su `false` per lasciare un server bloccato fermo invece di riavviarlo |

285| `maxRestarts` | Numero massimo di tentativi di riavvio prima di rinunciare |

286| `diagnostics` | Se inserire la diagnostica nel contesto di Claude dopo le modifiche (predefinito `true`). Impostare su `false` per mantenere la navigazione del codice ma sopprimere l'iniezione automatica della diagnostica. |

287 

288`restartOnCrash` e `shutdownTimeout` richiedono Claude Code v2.1.205 o successivo. Prima della v2.1.205, lo schema di configurazione accettava entrambe le opzioni ma l'impostazione di una di esse causava a Claude Code di saltare completamente quel server LSP all'avvio, con il motivo visibile solo nell'output di `claude --debug`.

289 

290**Più server per la stessa estensione**: quando più di un server LSP abilitato dichiara la stessa estensione di file in `extensionToLanguage`, indipendentemente dal fatto che i server provengano da un plugin o da plugin diversi, il primo server registrato gestisce i file con quell'estensione e gli altri non si avviano mai. L'interfaccia `/plugin` mostra un avviso che nomina il plugin il cui server è attivo.

291 

292**Server che non riescono a inizializzare**: Claude Code salta un server la cui configurazione non è valida, ad esempio uno che manca `command` o `extensionToLanguage`, e gli altri server configurati si avviano comunque. Eseguire `claude --debug` per vedere perché un server è stato saltato.

293 

294Un server saltato non rivendica le sue estensioni di file, quindi un altro server valido che dichiara la stessa estensione, dallo stesso plugin o da un plugin diverso, gestisce comunque quei file.

295 

296**Invia l'output del log a stderr, non a stdout**: Claude Code legge lo stdout di un server solo come messaggi di protocollo e accetta intestazioni di messaggi fino a 64 KiB e un corpo di messaggio fino a 32 MiB. Claude Code disconnette un server che supera uno dei due limiti o scrive output non-protocollo a stdout, e conta la disconnessione come un crash per `restartOnCrash` e `maxRestarts`. Quando esegui con `--debug`, Claude Code scrive un errore che nomina la causa nel log di debug.

297 

298<Warning>

299 **Devi installare il binario del server di linguaggio separatamente.** I plugin LSP configurano come Claude Code si connette a un server di linguaggio, ma non includono il server stesso. Se vedi `Executable not found in $PATH` nella scheda Errors `/plugin`, installa il binario richiesto per il tuo linguaggio.

300</Warning>

301 

302**Plugin LSP disponibili:**

303 

304| Plugin | Language server | Install command |

305| :------------------ | :------------------------- | :------------------------------------------------------------------------------------------ |

306| `pyright-lsp` | Pyright (Python) | `pip install pyright` o `npm install -g pyright` |

307| `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |

308| `rust-analyzer-lsp` | rust-analyzer | [Vedi rust-analyzer installation](https://rust-analyzer.github.io/manual.html#installation) |

309 

310Installa il server di linguaggio per primo, quindi installa il plugin dal marketplace.

311 

312<h3 id="monitors">

313 Monitors

314</h3>

315 

316I plugin possono dichiarare monitor in background che Claude Code avvia automaticamente quando il plugin è attivo. Ogni monitor esegue un comando shell per la durata della sessione e fornisce ogni riga stdout a Claude come notifica, in modo che Claude possa reagire alle voci di log, ai cambiamenti di stato o agli eventi sondati senza essere chiesto di avviare il watch stesso.

317 

318I monitor del plugin utilizzano lo stesso meccanismo dello [strumento Monitor](/docs/it/tools-reference#monitor-tool) e condividono i suoi vincoli di disponibilità. Vengono eseguiti solo in sessioni CLI interattive, vengono eseguiti senza sandbox allo stesso livello di fiducia degli [hook](#hooks) e vengono saltati su host dove lo strumento Monitor non è disponibile.

319 

320**Posizione**: `monitors/monitors.json` nella radice del plugin, oppure inline in `plugin.json`

321 

322**Formato**: Array JSON di voci di monitor

323 

324Il seguente `monitors/monitors.json` osserva un endpoint di stato di distribuzione e un log di errore locale:

325 

326```json theme={null}

327[

328 {

329 "name": "deploy-status",

330 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",

331 "description": "Deployment status changes"

332 },

333 {

334 "name": "error-log",

335 "command": "tail -F ./logs/error.log",

336 "description": "Application error log",

337 "when": "on-skill-invoke:debug"

338 }

339]

340```

341 

342Per dichiarare monitor inline, impostare `experimental.monitors` in `plugin.json` sullo stesso array. Per caricare da un percorso non predefinito, impostare `experimental.monitors` su una stringa di percorso relativo come `"./config/monitors.json"`. I monitor sono un [componente sperimentale](#experimental-components).

343 

344**Campi obbligatori:**

345 

346| Field | Description |

347| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------ |

348| `name` | Identificatore univoco all'interno del plugin. Previene processi duplicati quando il plugin si ricarica o uno skill viene invocato di nuovo |

349| `command` | Comando shell eseguito come processo in background persistente nella directory di lavoro della sessione |

350| `description` | Breve riepilogo di ciò che viene osservato. Mostrato nel pannello attività e nei riepiloghi delle notifiche |

351 

352**Campi opzionali:**

353 

354| Field | Description |

355| :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

356| `when` | Controlla quando il monitor si avvia. `"always"` lo avvia all'avvio della sessione e al ricaricamento del plugin, ed è il predefinito. `"on-skill-invoke:<skill-name>"` lo avvia la prima volta che lo skill denominato in questo plugin viene inviato |

357 

358Il valore `command` supporta le [sostituzioni di percorso](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`, `${CLAUDE_PLUGIN_DATA}` e `${CLAUDE_PROJECT_DIR}`, più qualsiasi `${ENV_VAR}` dall'ambiente. Prefisso il comando con `cd "${CLAUDE_PLUGIN_ROOT}" && ` se lo script deve essere eseguito dalla directory del plugin stesso.

359 

360Un `command` di monitor non può fare riferimento ai valori [`${user_config.*}`](#user-configuration). Il comando viene eseguito attraverso una shell, quindi Claude Code rifiuta il monitor con un [errore](/docs/it/errors#plugin-command-references-user-config) invece di sostituire il valore. I processi di monitor non ricevono variabili di ambiente `CLAUDE_PLUGIN_OPTION_<KEY>`, quindi fai in modo che lo script di monitor legga il valore da un file di configurazione che possiede.

361 

362Se disabiliti un plugin a metà sessione, Claude Code non interrompe i monitor che sono già in esecuzione; si fermano quando la sessione termina.

363 

364<h3 id="themes">

365 Themes

366</h3>

367 

368I plugin possono fornire temi di colore che vengono visualizzati in `/theme` insieme ai preset integrati e ai temi locali dell'utente. Un tema è un file JSON in `themes/` con un preset `base` e una mappa sparsa `overrides` di token di colore. I temi sono un [componente sperimentale](#experimental-components).

369 

370```json theme={null}

371{

372 "name": "Dracula",

373 "base": "dark",

374 "overrides": {

375 "claude": "#bd93f9",

376 "error": "#ff5555",

377 "success": "#50fa7b"

378 }

379}

380```

381 

382Quando un utente seleziona un tema del plugin, Claude Code salva `custom:<plugin-name>:<slug>` nella sua configurazione. I temi del plugin sono di sola lettura: quando un utente preme `Ctrl+E` su uno in `/theme`, Claude Code lo copia in `~/.claude/themes/` in modo che possano modificare la copia.

383 

384***

385 

386<h2 id="plugin-installation-scopes">

387 Ambiti di installazione dei plugin

388</h2>

389 

390Quando installi un plugin, scegli un **ambito** che determina dove il plugin è disponibile e chi altro può utilizzarlo:

391 

392| Ambito | File di configurazione | Caso d'uso |

393| :-------- | :--------------------------------------- | :---------------------------------------------------------------------------------------------- |

394| `user` | `~/.claude/settings.json` | Plugin personali disponibili in tutti i progetti (predefinito) |

395| `project` | `.claude/settings.json` | Plugin del team condivisi tramite controllo versione |

396| `local` | `.claude/settings.local.json` | Plugin specifici del progetto, ignorati da git quando Claude Code salva un'impostazione in esso |

397| `managed` | [Managed settings](/docs/it/managed-settings) | Plugin gestiti (sola lettura, solo aggiornamento) |

398 

399I plugin utilizzano lo stesso sistema di ambiti di altre configurazioni di Claude Code. Per le istruzioni di installazione e i flag di ambito, vedi [Install plugins](/docs/it/discover-plugins#install-plugins). Per una spiegazione completa degli ambiti, vedi [Configuration scopes](/docs/it/settings#where-settings-live).

400 

401***

402 

403<h2 id="skills-directory-plugins">

404 Plugin della directory skills

405</h2>

406 

407Qualsiasi cartella sotto una directory skills che contiene un manifest `.claude-plugin/plugin.json` viene caricata come plugin denominato `<name>@skills-dir` nella sessione successiva, senza marketplace e senza passaggio di installazione. Creane uno con [`plugin init`](#plugin-init). A differenza di un'installazione marketplace copiata, il plugin viene scoperto sul posto piuttosto che copiato nella cache dei plugin.

408 

409Un albero di directory skills supporta tre cose distinte:

410 

411| Quello che hai | Che cosa è |

412| :-------------------------------------------- | :--------------------------------------------------------------------------------------- |

413| `<skills-dir>/foo/SKILL.md` senza manifest | Una semplice [skill](/docs/it/skills) denominata `foo` |

414| `<skills-dir>/foo/.claude-plugin/plugin.json` | Un plugin `foo@skills-dir`, che può raggruppare le proprie skills, agenti, hooks e altro |

415| `<plugin>/skills/bar/SKILL.md` | Una skill `bar` inclusa in un plugin |

416 

417<h3 id="choose-where-the-plugin-loads-from">

418 Scegli da dove il plugin viene caricato

419</h3>

420 

421| Directory skills | Ambito | Carica |

422| :---------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------- |

423| `~/.claude/skills/` | personale | In ogni progetto, poiché la posizione è solo tua |

424| `<cwd>/.claude/skills/` | progetto | Solo dopo che accetti la [finestra di dialogo di trust](/docs/it/permissions#what-runs-before-you-trust-a-folder) per quella cartella |

425 

426Un plugin con ambito progetto viene archiviato nel repository e raggiunge ogni collaboratore che lo clona. Poiché quel contenuto proviene dal repository piuttosto che da te, viene caricato solo dopo lo stesso gate di trust che governa le regole di autorizzazione del progetto in `.claude/settings.json`, quindi fidarsi di una cartella padre o eseguire con `-p` non è sufficiente, e i componenti che eseguono codice sono ulteriormente limitati:

427 

428* I server MCP che dichiara passano attraverso la [stessa approvazione per server](/docs/it/mcp) di un `.mcp.json` del progetto

429* I server LSP si avviano solo dopo che hai fiducia nell'area di lavoro

430* I [monitor in background](#monitors) non vengono caricati

431 

432I plugin con ambito personale non hanno nessuna di queste restrizioni.

433 

434<Warning>

435 I plugin `@skills-dir` con ambito progetto vengono caricati solo da `.claude/skills/` della [directory di lavoro primaria](/docs/it/permissions#working-directories) della sessione. Non [risalgono alla radice del repository](/docs/it/skills#discovery-from-parent-and-nested-directories) come fanno le skill e i comandi semplici, quindi l'avvio da una sottodirectory non trova un plugin che si trova alla radice del repository. Avvia dalla radice del repository, o [sposta la sessione lì con `/cd`](/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successivo.

436</Warning>

437 

438<h3 id="edit-reload-and-disable-a-skills-directory-plugin">

439 Modifica, ricarica e disabilita un plugin della directory skills

440</h3>

441 

442Le modifiche che apporti al `SKILL.md` di una skill hanno effetto immediato nella sessione corrente. Le modifiche agli altri componenti del plugin, come `hooks/`, `.mcp.json`, `agents/` e `output-styles/`, non lo fanno. Esegui `/reload-plugins` o riavvia Claude Code per caricarli. Vedi [Live change detection](/docs/it/skills#live-change-detection).

443 

444Per smettere di caricare un plugin della directory skills, elimina la sua cartella o disabilitalo per nome. Non c'è un passaggio `uninstall` perché nulla è stato installato da un marketplace.

445 

446```bash theme={null}

447claude plugin disable my-tool@skills-dir

448```

449 

450***

451 

452<h2 id="synced-plugins">

453 Plugin sincronizzati da claude.ai

454</h2>

455 

456Claude Code carica i plugin abilitati per il vostro account claude.ai, inclusi i plugin che la vostra organizzazione attiva per i suoi membri, insieme ai plugin che installate dai marketplace. Li scarica in `~/.claude/plugins/synced/` e carica ciascuno come `<name>@synced`, senza marketplace e senza record di installazione. Un plugin sincronizzato viene eseguito con la stessa fiducia di un plugin marketplace che avete installato: le sue skills, gli agenti, gli hooks, i server MCP e i server LSP si caricano tutti.

457 

458Il luogo in cui Claude Code sincronizza questi plugin dipende dalla sessione:

459 

460* In [Cowork](https://claude.com/product/cowork) e [sessioni cloud](/docs/it/cloud-environments#what-carries-over-from-your-setup), Claude Code li scarica nell'ambiente della sessione stessa quando la sessione inizia. Prima della v2.1.239, Claude Code caricava questi plugin come `<name>@inline`, l'identità che i plugin `--plugin-dir` utilizzano.

461* Nelle sessioni di terminale in cui vi accedete con il vostro account claude.ai, Claude Code controlla il vostro account una volta ogni volta che si avvia, quindi scarica i plugin nuovi e aggiornati e rimuove quelli che voi o la vostra organizzazione avete disabilitato, il tutto in background. La sincronizzazione nelle sessioni di terminale richiede Claude Code v2.1.273 o successivo.

462 

463Il controllo di avvio viene eseguito in background, quindi può terminare dopo che la vostra sessione è iniziata. Quando aggiunge, aggiorna o rimuove un plugin sincronizzato in una sessione interattiva, Claude Code mostra `Plugins changed. Run /reload-plugins to activate.` Eseguite [`/reload-plugins`](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) per caricare la modifica in quella sessione, oppure lasciatela per la prossima volta che avviate Claude Code. Se abilitate un plugin su claude.ai mentre una sessione è in esecuzione, Claude Code lo scarica la prossima volta che si avvia.

464 

465La sincronizzazione dei plugin nelle sessioni di terminale viene eseguita nelle stesse condizioni di accesso delle [skills sincronizzate da claude.ai](/docs/it/skills#where-synced-skills-load). Richiede anche un accesso che conceda a Claude Code l'accesso ai plugin del vostro account.

466 

467Un accesso da una versione precedente di Claude Code acquisisce l'accesso ai plugin la prossima volta che Claude Code rinnova quell'accesso in background, entro poche ore, o subito se eseguite di nuovo `/login`. La sincronizzazione dei plugin inizia la prossima volta che avviate Claude Code dopo di ciò.

468 

469`claude plugin list` mostra i plugin sincronizzati sotto un'intestazione `Synced from claude.ai`, e la scheda **Installed** di `/plugin` li elenca con `synced` come loro fonte. Gestite un plugin sincronizzato tramite l'ID `<name>@synced` che `claude plugin list` stampa:

470 

471* **Disabilitarne uno**: eseguite `claude plugin disable <name>@synced`, oppure disabilitatelo dalla scheda **Installed** di `/plugin`. Claude Code salva la scelta come `"<name>@synced": false` nel vostro [`enabledPlugins`](/docs/it/settings-reference#enabledplugins) a livello di utente. Per riabilitare il plugin, eseguite `claude plugin enable <name>@synced`.

472* **Mantenerlo fuori ovunque**: [disabilitate il plugin per il vostro account claude.ai](/docs/it/desktop#extend-claude-code). Per mantenerlo fuori da un progetto in ogni ambiente, impostate `"<name>@synced": false` sotto `enabledPlugins` nel `.claude/settings.json` committato di quel progetto.

473* **Gestite il plugin stesso su claude.ai**: `claude plugin install`, `update` e `uninstall` non si applicano a un plugin sincronizzato. Claude Code scarica gli aggiornamenti di un plugin alla prossima sincronizzazione. Per rimuoverne uno, disabilitate il plugin per il vostro account claude.ai, e Claude Code lo rimuove alla prossima sincronizzazione.

474* **Interrompere la sincronizzazione su una macchina**: impostate [`syncClaudeAiPlugins`](/docs/it/settings-reference#syncclaudeaiplugins) a `false` nelle vostre impostazioni utente. Claude Code smette di scaricare, e la prossima volta che si avvia sposta i plugin che ha già sincronizzato in `~/.claude/plugins/.trash/` e non li carica più. La vostra organizzazione può impostare la stessa chiave nelle [impostazioni gestite](/docs/it/managed-settings), oppure disabilitare Skills su claude.ai, il che interrompe anche la sincronizzazione dei plugin.

475 

476Non potete disabilitare un plugin che la vostra organizzazione contrassegna come obbligatorio su claude.ai. Claude Code lo carica anche se lo avete disabilitato in precedenza, e `claude plugin disable` rifiuta con `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.` In `claude plugin list`, questi plugin sono contrassegnati `required by your org`.

477 

478Quando un plugin abilitato da qualsiasi altra fonte corrisponde al nome di un plugin sincronizzato, Claude Code carica quel plugin e segnala la copia sincronizzata come non caricata. Le altre fonti includono installazioni da marketplace, plugin [skills-directory](#skills-directory-plugins), plugin `--plugin-dir` e plugin integrati in Claude Code. Per utilizzare la copia da claude.ai, disabilitate la vostra copia. Prima della v2.1.239, Claude Code caricava la copia sincronizzata al posto di un'installazione da marketplace con lo stesso nome.

479 

480***

481 

482<h2 id="plugin-manifest-schema">

483 Schema del manifest del plugin

484</h2>

485 

486Il file `.claude-plugin/plugin.json` definisce i metadati e la configurazione del plugin.

487 

488Il manifest è facoltativo. Se omesso, Claude Code scopre automaticamente i componenti nelle [posizioni predefinite](#file-locations-reference) e deriva il nome del plugin dal nome della directory. Utilizza un manifest quando hai bisogno di fornire metadati o percorsi di componenti personalizzati.

489 

490<h3 id="complete-schema">

491 Schema completo

492</h3>

493 

494```json theme={null}

495{

496 "name": "plugin-name",

497 "displayName": "Plugin Name",

498 "version": "1.2.0",

499 "description": "Brief plugin description",

500 "author": {

501 "name": "Author Name",

502 "email": "author@example.com",

503 "url": "https://github.com/author"

504 },

505 "homepage": "https://docs.example.com/plugin",

506 "repository": "https://github.com/author/plugin",

507 "license": "MIT",

508 "keywords": ["keyword1", "keyword2"],

509 "metadata": { "catalogId": "cat-123", "tier": "pro" },

510 "skills": "./custom/skills/",

511 "commands": ["./custom/commands/special.md"],

512 "agents": ["./custom/agents/reviewer.md"],

513 "hooks": "./config/hooks.json",

514 "mcpServers": "./mcp-config.json",

515 "outputStyles": "./styles/",

516 "lspServers": "./.lsp.json",

517 "experimental": {

518 "themes": "./themes/",

519 "monitors": "./monitors.json",

520 "evals": "quality/evals"

521 },

522 "dependencies": [

523 "helper-lib",

524 { "name": "secrets-vault", "version": "~2.1.0" }

525 ]

526}

527```

528 

529<h3 id="required-fields">

530 Campi obbligatori

531</h3>

532 

533Se includi un manifest, `name` è l'unico campo obbligatorio.

534 

535| Campo | Tipo | Descrizione | Esempio |

536| :----- | :----- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |

537| `name` | string | Identificatore univoco in kebab-case, senza spazi, caratteri di controllo o caratteri di formattazione bidirezionali. Quando una [voce del marketplace](/docs/it/plugin-marketplaces#plugin-entries) elenca il plugin con un nome diverso, il nome della voce del marketplace è quello che `enabledPlugins` e `/plugin` utilizzano | `"deployment-tools"` |

538 

539Questo nome viene utilizzato per lo spazio dei nomi dei componenti. Ad esempio, nell'interfaccia utente, l'agente `agent-creator` per il plugin con nome `plugin-dev` apparirà come `plugin-dev:agent-creator`.

540 

541<h3 id="unrecognized-fields">

542 Campi non riconosciuti

543</h3>

544 

545Claude Code ignora i campi di primo livello che non riconosce. Puoi mantenere i metadati da un altro ecosistema in `plugin.json` e il plugin si carica comunque. Questo rende pratico mantenere un manifest che funge anche da manifest di estensione VS Code o Cursor, da `package.json` npm, o da manifest bundle MCPB/DXT.

546 

547`claude plugin validate` segnala i campi non riconosciuti come avvisi, non come errori. Se un campo è uno o due caratteri diverso da uno riconosciuto, l'avviso suggerisce il nome probabilmente inteso. Un plugin con solo avvisi di campi non riconosciuti passa comunque la convalida e si carica al runtime.

548 

549Il modo in cui Claude Code gestisce un campo riconosciuto il cui valore ha il tipo sbagliato dipende dal campo:

550 

551* **La maggior parte dei campi**: il plugin non si carica. Ad esempio, un valore `keywords` che è una stringa invece di un array è un errore di caricamento, e `claude plugin validate` lo segnala come tale.

552* **`experimental` e `metadata`**: Claude Code ignora un valore non-oggetto, e `claude plugin validate` segnala un avviso.

553 

554Passa `--strict` per trattare gli avvisi come errori. Usalo in CI per rilevare un nome di campo scritto male o un campo rimasto da un manifest di un altro strumento prima della pubblicazione, anche se il plugin si caricherà al runtime.

555 

556```bash theme={null}

557claude plugin validate ./my-plugin --strict

558```

559 

560<h3 id="metadata-fields">

561 Campi di metadati

562</h3>

563 

564| Campo | Tipo | Descrizione | Esempio |

565| :--------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

566| `$schema` | string | URL dello schema JSON per l'autocompletamento e la convalida dell'editor. Claude Code ignora questo campo al momento del caricamento. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

567| `displayName` | string | Nome leggibile mostrato nel selettore `/plugin` e in altre superfici dell'interfaccia utente. Per un plugin installato dal marketplace, un `displayName` sulla [voce del marketplace](/docs/it/plugin-marketplaces#optional-plugin-fields) ha la precedenza su questo valore. Quando nessun nome visualizzato è impostato in nessuno dei due posti, gli utenti vedono `name`. A differenza di `name`, può contenere spazi e qualsiasi maiuscola/minuscola. Non utilizzato per lo spazio dei nomi o la ricerca. | `"Deployment Tools"` |

568| `version` | string | Facoltativo. Versione semantica. L'impostazione di questa opzione fissa il plugin a quella stringa di versione, quindi gli utenti ricevono aggiornamenti solo quando la aumenti, tranne per una [`command` source](/docs/it/plugin-marketplaces#command-sources) o un plugin [caricato in place](#plugin-caching-and-file-resolution); vedi [Gestione delle versioni](#version-management). Se impostato anche nella voce del marketplace, `plugin.json` vince. Se omesso, la versione proviene dalla prossima fonte in [Gestione delle versioni](#version-management). | `"2.1.0"` |

569| `description` | string | Breve spiegazione dello scopo del plugin | `"Deployment automation tools"` |

570| `author` | object | Informazioni sull'autore | `{"name": "Dev Team", "email": "dev@company.com"}` |

571| `homepage` | string | URL della documentazione | `"https://docs.example.com"` |

572| `repository` | string | URL del codice sorgente | `"https://github.com/user/plugin"` |

573| `license` | string | Identificatore della licenza | `"MIT"`, `"Apache-2.0"` |

574| `keywords` | array | Tag di scoperta | `["deployment", "ci-cd"]` |

575| `metadata` | object | Oggetto in forma libera per i tuoi dati, come campi di diritto o catalogo. Claude Code non lo legge, quindi i valori non influenzano mai il comportamento del plugin. Claude Code ignora un valore non-oggetto, e `claude plugin validate` lo segnala come avviso. Prima della v2.1.222, Claude Code trattava la chiave come un [campo non riconosciuto](#unrecognized-fields). | `{"catalogId": "cat-123"}` |

576| `defaultEnabled` | boolean | Se il plugin inizia in uno stato abilitato quando l'utente non ne ha impostato uno. Predefinito su `true`. Vedi [Abilitazione predefinita](#default-enablement). | `false` |

577 

578<h3 id="default-enablement">

579 Abilitazione predefinita

580</h3>

581 

582Imposta `defaultEnabled: false` in `plugin.json` per distribuire un plugin che si installa disabilitato. L'utente lo attiva con `claude plugin enable <plugin>` o l'interfaccia `/plugin`. Usalo per i plugin che aggiungono costi o ambito a cui un utente dovrebbe acconsentire, come uno che si connette a un servizio esterno.

583 

584`defaultEnabled` è il fallback quando nient'altro ha deciso lo stato del plugin. L'impostazione dell'utente e un requisito di dipendenza hanno la precedenza su di esso:

585 

586* **L'impostazione dell'utente**: una voce per il plugin in `enabledPlugins` a qualsiasi ambito di impostazioni. Una volta scritta, persiste negli aggiornamenti e reinstallazioni del plugin, quindi modificare `defaultEnabled` in una versione successiva non capovolge un utente esistente.

587* **Un requisito di dipendenza**: quando un plugin è richiesto da un altro che è attivo, Claude Code scrive `true` per esso al momento dell'installazione o dell'abilitazione. Questo gli dà un'impostazione esplicita, quindi il suo default non si applica più. Vedi [Abilitare o disabilitare un plugin con dipendenze](/docs/it/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).

588 

589Lo stesso campo può apparire nella voce del marketplace di un plugin, dove ha la precedenza sul valore in `plugin.json`. Vedi [Campi plugin facoltativi](/docs/it/plugin-marketplaces#optional-plugin-fields).

590 

591<h3 id="component-path-fields">

592 Campi del percorso del componente

593</h3>

594 

595| Campo | Tipo | Descrizione | Esempio |

596| :---------------------- | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

597| `skills` | string\|array | Directory di skill personalizzate contenenti `<name>/SKILL.md`. Si aggiunge alla scansione predefinita `skills/`. Vedi [Regole del comportamento del percorso](#path-behavior-rules) per l'eccezione della radice del marketplace | `"./custom/skills/"` |

598| `commands` | string\|array | File skill `.md` flat personalizzati o directory (sostituisce il valore predefinito `commands/`) | `"./custom/cmd.md"` o `["./cmd1.md"]` |

599| `agents` | string\|array | File agente personalizzati (sostituisce il valore predefinito `agents/`) | `"./custom/agents/reviewer.md"` |

600| `workflows` | string\|array | File script [workflow](/docs/it/workflows) personalizzati o directory (sostituisce il valore predefinito `workflows/`) | `"./custom/workflows/"` |

601| `hooks` | string\|array\|object | Percorsi di configurazione hook o configurazione inline | `"./my-extra-hooks.json"` |

602| `mcpServers` | string\|array\|object | Percorsi di configurazione MCP o configurazione inline | `"./my-extra-mcp-config.json"` |

603| `outputStyles` | string\|array | File/directory di stile di output personalizzati (sostituisce il valore predefinito `output-styles/`) | `"./styles/"` |

604| `lspServers` | string\|array\|object | Configurazioni [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) per l'intelligenza del codice (vai a definizione, trova riferimenti, ecc.) | `"./.lsp.json"` |

605| `experimental.themes` | string\|array | File/directory di tema colore (sostituisce il valore predefinito `themes/`). Vedi [Temi](#themes) | `"./themes/"` |

606| `experimental.monitors` | string\|array | Configurazioni [Monitor](/docs/it/tools-reference#monitor-tool) di background che si avviano automaticamente quando il plugin è attivo. Vedi [Monitor](#monitors) | `"./monitors.json"` |

607| `experimental.evals` | string\|array | Directory sotto la radice del plugin che contiene i [casi eval](/docs/it/plugin-evals#use-a-different-eval-directory) del plugin, quando non è il valore predefinito `evals/`. `claude plugin eval --eval-dir` lo sostituisce | `"quality/evals"` |

608| `userConfig` | object | Valori configurabili dall'utente richiesti al momento dell'abilitazione. Vedi [Configurazione utente](#user-configuration) | |

609| `channels` | array | Dichiarazioni di canale per l'iniezione di messaggi (stile Telegram, Slack, Discord). Vedi [Canali](#channels) | |

610| `dependencies` | array | Altri plugin richiesti da questo plugin, facoltativamente con vincoli di versione semver. Vedi [Vincolare le versioni di dipendenza del plugin](/docs/it/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

611 

612<h3 id="experimental-components">

613 Componenti sperimentali

614</h3>

615 

616I componenti sotto la chiave `experimental`, `themes` e `monitors`, hanno uno schema di manifest che potrebbe cambiare tra le versioni mentre si stabilizzano. Dove li dichiari è una migrazione separata: il livello superiore funziona ancora, `claude plugin validate` avverte, e una versione futura richiederà `experimental.*`.

617 

618<h3 id="user-configuration">

619 Configurazione utente

620</h3>

621 

622Il campo `userConfig` dichiara valori per i quali Claude Code richiede all'utente quando il plugin è abilitato. Usalo invece di richiedere agli utenti di modificare manualmente `settings.json`.

623 

624```json theme={null}

625{

626 "userConfig": {

627 "api_endpoint": {

628 "type": "string",

629 "title": "API endpoint",

630 "description": "Your team's API endpoint"

631 },

632 "api_token": {

633 "type": "string",

634 "title": "API token",

635 "description": "API authentication token",

636 "sensitive": true

637 }

638 }

639}

640```

641 

642Le chiavi devono essere identificatori validi. Ogni opzione supporta questi campi:

643 

644| Campo | Obbligatorio | Descrizione |

645| :------------ | :----------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

646| `type` | Sì | Uno di `string`, `number`, `boolean`, `directory`, o `file` |

647| `title` | Sì | Etichetta mostrata nella finestra di dialogo di configurazione |

648| `description` | Sì | Testo di aiuto mostrato sotto il campo |

649| `sensitive` | No | Se `true`, maschera l'input e memorizza il valore nell'archiviazione sicura invece di `settings.json` |

650| `required` | No | Se `true`, la convalida fallisce quando il campo è vuoto |

651| `default` | No | Valore utilizzato quando l'utente non fornisce nulla |

652| `options` | No | Per il tipo `string`, i valori che il campo accetta, mostrati in `/config` come un selettore su di essi. Vedi [Limitare un campo a opzioni fisse](#limit-a-field-to-fixed-options). Richiede Claude Code v2.1.271 o successivo |

653| `multiple` | No | Per il tipo `string`, consenti un array di stringhe |

654| `min` / `max` | No | Limiti per il tipo `number` |

655 

656Tranne i campi `sensitive` e gli elenchi `multiple`, ogni campo di ogni plugin abilitato appare anche come una riga nel pannello `/config`. Le righe richiedono Claude Code v2.1.269 o successivo.

657 

658Ogni valore è disponibile per la sostituzione come `${user_config.KEY}` nelle configurazioni del server MCP e LSP e nei comandi hook. I valori non sensibili possono anche essere sostituiti nel contenuto di skill e agente. Tutti i valori vengono esportati ai processi hook come variabili di ambiente `CLAUDE_PLUGIN_OPTION_<KEY>`, dove `<KEY>` è la chiave dell'opzione in maiuscolo.

659 

660I campi che vengono eseguiti in una shell rifiutano `${user_config.*}`: sostituire un valore configurato in un comando shell consentirebbe alla shell di eseguire qualsiasi cosa contenga quel valore, quindi il componente fallisce con un [errore](/docs/it/errors#plugin-command-references-user-config) invece. Ogni campo rifiutato ha un modo alternativo per passare il valore:

661 

662| Campo rifiutato | Come passare il valore |

663| :--------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |

664| Comandi hook in forma shell | Usa [forma exec](/docs/it/hooks#exec-form-and-shell-form) con `args`, o leggi `CLAUDE_PLUGIN_OPTION_<KEY>` dall'ambiente del hook |

665| Comandi [Monitor](#monitors) | Leggi il valore da un file di configurazione nello script |

666| MCP [`headersHelper`](/docs/it/mcp#use-dynamic-headers-for-custom-authentication) | Leggi il valore da un file di configurazione nello script |

667 

668Prima della v2.1.207, questi campi sostituivano i valori `${user_config.KEY}`; aggiorna i plugin che si basavano su questo.

669 

670I valori non sensibili vengono memorizzati sotto la chiave [`pluginConfigs`](/docs/it/settings-reference#pluginconfigs) nel tuo `settings.json` utente come `pluginConfigs[<plugin-id>].options`.

671 

672Su macOS, Claude Code memorizza i valori sensibili nel Portachiavi macOS, ricadendo su `~/.claude/.credentials.json` quando il Portachiavi rifiuta la scrittura. Su piattaforme senza un portachiavi supportato, li memorizza in `~/.claude/.credentials.json`. L'archiviazione del Portachiavi è condivisa con i token OAuth e ha un limite totale approssimativo di 2 KB, quindi mantieni i valori sensibili piccoli.

673 

674Claude Code legge tutti i valori `pluginConfigs` da solo tre fonti di impostazioni:

675 

676* **Impostazioni utente**: `~/.claude/settings.json`, il file che il prompt al momento dell'abilitazione scrive

677* **`--settings`**: il flag CLI o le impostazioni inline SDK

678* **Impostazioni gestite**: [politica controllata dall'organizzazione](/docs/it/permissions#managed-settings)

679 

680Quando più di una fonte imposta la stessa chiave, le impostazioni gestite hanno la precedenza, quindi `--settings`, quindi le impostazioni utente. L'unica fonte che puoi rimuovere da questo elenco è le impostazioni utente: passa [`--setting-sources`](/docs/it/cli-reference#cli-flags) senza `user` e Claude Code le salta. Le impostazioni gestite e `--settings` rimangono qualsiasi cosa tu passi. L'opzione [`settingSources`](/docs/it/agent-sdk/claude-code-features#what-settingsources-does-not-control) dell'SDK imposta lo stesso elenco.

681 

682Le voci nel `.claude/settings.json` o `.claude/settings.local.json` di un progetto vengono ignorate. Entrambi i file vivono nell'area di lavoro, quindi un repository clonato potrebbe fornire valori lì, e quei valori fluirebbero nei comandi hook del plugin, nelle configurazioni del server MCP, nei comandi LSP e nei comandi monitor. Prima della v2.1.207, queste voci venivano lette. La restrizione è specifica per `pluginConfigs`: [`enabledPlugins`](/docs/it/settings-reference#enabledplugins) onora ancora le impostazioni del progetto e locali.

683 

684<h4 id="limit-a-field-to-fixed-options">

685 Limitare un campo a opzioni fisse

686</h4>

687 

688Imposta `options` su un campo `userConfig` per fare in modo che gli utenti scelgano il suo valore da un elenco fisso.

689 

690Per limitare un campo `tone` a tre opzioni, elencale in `options` e imposta `default` su una di esse:

691 

692```json theme={null}

693{

694 "userConfig": {

695 "tone": {

696 "type": "string",

697 "title": "Tone",

698 "description": "Voice for generated replies",

699 "options": ["neutral", "warm", "formal"],

700 "default": "neutral"

701 }

702 }

703}

704```

705 

706Se dichiari `options` su qualsiasi campo, gli utenti su versioni di Claude Code precedenti alla v2.1.271 non possono caricare il plugin.

707 

708Quando imposti `options` su un campo, segui queste regole:

709 

710* Imposta `type` su `string`

711* Non impostare `multiple` o `sensitive` su `true`

712* Imposta `default` su una delle opzioni

713* Se lasci `default` non impostato, imposta `required` su `true`

714* Elenca almeno un'opzione, ognuna da 1 a 64 caratteri

715* Non iniziare o terminare un'opzione con uno spazio

716* Non usare caratteri di controllo, caratteri invisibili, caratteri che cambiano la direzione del testo, o spazi diversi da uno spazio regolare in un'opzione

717* Non elencare la stessa opzione due volte, nemmeno in una diversa maiuscola/minuscola

718 

719Se infrangi una di queste regole, il plugin non si carica. Esegui `claude plugin validate` per vedere quale campo infrange quale regola.

720 

721<h3 id="channels">

722 Canali

723</h3>

724 

725Il campo `channels` consente a un plugin di dichiarare uno o più canali di messaggi che iniettano contenuto nella conversazione. Ogni canale si associa a un server MCP fornito dal plugin.

726 

727```json theme={null}

728{

729 "channels": [

730 {

731 "server": "telegram",

732 "userConfig": {

733 "bot_token": {

734 "type": "string",

735 "title": "Bot token",

736 "description": "Telegram bot token",

737 "sensitive": true

738 },

739 "owner_id": {

740 "type": "string",

741 "title": "Owner ID",

742 "description": "Your Telegram user ID"

743 }

744 }

745 }

746 ]

747}

748```

749 

750Il campo `server` è obbligatorio e deve corrispondere a una chiave in `mcpServers` del plugin. Il `userConfig` facoltativo per canale utilizza lo stesso schema del campo di primo livello, consentendo al plugin di richiedere token bot o ID proprietario quando il plugin è abilitato.

751 

752<h3 id="path-behavior-rules">

753 Regole del comportamento del percorso

754</h3>

755 

756Se un percorso personalizzato sostituisce o estende la directory predefinita del plugin dipende dal campo:

757 

758* **Sostituisce il valore predefinito**: `commands`, `agents`, `workflows`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Ad esempio, quando il manifest specifica `commands`, la directory predefinita `commands/` non viene scansionata. Per mantenere il valore predefinito e aggiungerne altri, elencalo esplicitamente: `"commands": ["./commands/", "./extras/"]`

759* **Si aggiunge al valore predefinito**: `skills`. La directory predefinita `skills/` viene sempre scansionata, e le directory elencate in `skills` vengono caricate insieme ad essa. Eccezione: per una [voce del marketplace la cui `source` si risolve nella radice del marketplace](/docs/it/plugin-marketplaces#advanced-plugin-entries), dichiarare sottodirectory specifiche sostituisce la scansione predefinita `skills/`

760* **Regole di merge proprie**: [hooks](#hooks), [server MCP](#mcp-servers), e [server LSP](#lsp-servers). Vedi ogni sezione per come più fonti si combinano

761 

762Quando un plugin ha sia una cartella predefinita che la chiave manifest corrispondente, Claude Code avverte sulla cartella ignorata in `claude plugin list` e nella vista dei dettagli `/plugin`. Il plugin si carica comunque utilizzando i percorsi del manifest. Claude Code non avverte quando la chiave manifest punta nella cartella predefinita, ad esempio `"commands": ["./commands/deploy.md"]`, perché quel percorso nomina la cartella esplicitamente.

763 

764Per tutti i campi del percorso:

765 

766* Tutti i percorsi devono essere relativi alla radice del plugin e iniziare con `./`, tranne che il campo `skills` accetta anche `"."`

767 * Sia `"."` che `"./"` denotano la radice del plugin stesso

768 * Prima della v2.1.221, `"."` falliva la convalida del manifest e il plugin non si caricava, quindi usa `"./"` per supportare versioni precedenti

769* I componenti da percorsi personalizzati utilizzano le stesse regole di denominazione e spazio dei nomi, tranne i file agente. Vedi [Agenti](#agents) per come funzionano i nomi degli agenti

770* Più percorsi possono essere specificati come array

771* Un percorso di skill può puntare a una directory che contiene direttamente un `SKILL.md`, ad esempio `"skills": ["."]` per la radice del plugin

772 * Claude Code prende il nome di invocazione della skill dal campo frontmatter `name` in `SKILL.md`, quindi il nome rimane stabile qualunque sia il nome della directory di installazione

773 * Se `name` non è impostato nel frontmatter, Claude Code ricade sul basename della directory

774 

775Un plugin che ha un `SKILL.md` alla sua radice, nessuna sottodirectory `skills/`, e nessun campo manifest `skills` viene caricato automaticamente come plugin a skill singola. Non hai bisogno di impostare `"skills": ["./"]` in `plugin.json` per questo layout.

776 

777**Esempi di percorso**:

778 

779```json theme={null}

780{

781 "commands": [

782 "./specialized/deploy.md",

783 "./utilities/batch-process.md"

784 ],

785 "agents": [

786 "./custom-agents/reviewer.md",

787 "./custom-agents/tester.md"

788 ]

789}

790```

791 

792<h3 id="environment-variables">

793 Variabili di ambiente

794</h3>

795 

796Claude Code fornisce tre variabili per fare riferimento ai percorsi:

797 

798| Variabile | Si risolve in | Usala per |

799| :---------------------- | :---------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------- |

800| `${CLAUDE_PLUGIN_ROOT}` | Percorso assoluto della directory di installazione del plugin | Script, binari e file di configurazione forniti con il plugin |

801| `${CLAUDE_PLUGIN_DATA}` | [Directory persistente](#persistent-data-directory) che sopravvive agli aggiornamenti del plugin, creata al primo riferimento | Dipendenze installate come `node_modules` o ambienti virtuali Python, codice generato e cache |

802| `${CLAUDE_PROJECT_DIR}` | La radice del progetto | Script e file di configurazione locali del progetto |

803 

804Tutti e tre vengono esportati come variabili di ambiente ai processi hook e ai sottoprocessi del server MCP e LSP. Non sono presenti nell'ambiente dei comandi che Claude esegue attraverso lo strumento Bash, nella sessione principale o in un subagente. Nel contenuto del plugin, scrivi il placeholder invece, e Claude Code sostituisce il percorso inline quando carica il contenuto. Quali campi sostituiscono inline dipende dal componente del plugin:

805 

806| Componente del plugin | Campi dove i placeholder si risolvono |

807| :----------------------------- | :------------------------------------------ |

808| Contenuto di skill e agente | Ovunque appaia il placeholder |

809| Comandi hook e monitor | Ovunque appaia il placeholder |

810| Server MCP `stdio` | `command`, `args`, `env` |

811| Server MCP `http`, `sse`, `ws` | `url`, `headers`, `headersHelper` |

812| Server LSP | `command`, `args`, `env`, `workspaceFolder` |

813 

814Nei comandi hook, usa [forma exec](/docs/it/hooks#exec-form-and-shell-form) con `args` in modo che ogni percorso venga passato come un argomento senza virgolette. Negli hook in forma shell e nei comandi monitor, avvolgi le variabili tra virgolette doppie, come in `"${CLAUDE_PROJECT_DIR}/scripts/server.sh"`. Questo hook in forma shell esegue uno script fornito con un plugin:

815 

816```json theme={null}

817{

818 "hooks": {

819 "PostToolUse": [

820 {

821 "hooks": [

822 {

823 "type": "command",

824 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

825 }

826 ]

827 }

828 ]

829 }

830}

831```

832 

833Per un plugin copiato, `${CLAUDE_PLUGIN_ROOT}` cambia quando il plugin si aggiorna. La directory della versione precedente rimane su disco per un periodo di grazia dopo un aggiornamento, ma trattala come effimera e non scrivere stato lì. Per un plugin caricato in place da un marketplace di directory locale, la variabile punta alla directory sorgente stabile. Vedi [plugin caching](#plugin-caching-and-file-resolution) per quali plugin vengono copiati e per la semantica di pulizia.

834 

835Quando un plugin copiato si aggiorna a metà sessione, i comandi hook, i monitor, i server MCP e i server LSP continuano a utilizzare il percorso della versione precedente. Esegui `/reload-plugins` per passare hook, server MCP e server LSP al nuovo percorso; i monitor richiedono un riavvio della sessione. In una sessione senza un terminale interattivo, il ricaricamento lascia i server MCP del plugin sul vecchio percorso fino alla sessione successiva.

836 

837Per un plugin con una `command` source, Claude Code [può ricaricare il plugin stesso](/docs/it/plugin-marketplaces#when-claude-code-re-runs-the-command).

838 

839I server MCP possono anche chiamare la richiesta `roots/list` per leggere le directory di lavoro della sessione al runtime. Vedi [cosa restituisce `roots/list` e quando Claude Code notifica al server i cambiamenti](/docs/it/mcp#option-3-add-a-local-stdio-server).

840 

841<h4 id="persistent-data-directory">

842 Directory di dati persistenti

843</h4>

844 

845La directory `${CLAUDE_PLUGIN_DATA}` si risolve in `~/.claude/plugins/data/{id}/`, dove `{id}` è l'identificatore del plugin con caratteri al di fuori di `a-z`, `A-Z`, `0-9`, `_`, e `-` sostituiti da `-`. Per un plugin installato come `formatter@my-marketplace`, la directory è `~/.claude/plugins/data/formatter-my-marketplace/`.

846 

847Un uso comune è installare dipendenze di linguaggio una volta e riutilizzarle tra sessioni e aggiornamenti di plugin. Usala per dipendenze Python, dipendenze bloccate con Yarn o pnpm, e pacchetti i cui script del ciclo di vita devono essere eseguiti. Per un plugin installato dal marketplace, potresti non averne bisogno affatto: Claude Code installa automaticamente le [dipendenze del pacchetto Node.js](#node-js-package-dependencies) idonee quando memorizza il plugin nella cache.

848 

849Poiché la directory di dati sopravvive a qualsiasi singola versione del plugin, un controllo per l'esistenza della directory da solo non può rilevare quando un aggiornamento cambia il manifest di dipendenza del plugin. Il modello consigliato confronta il manifest fornito rispetto a una copia nella directory di dati e reinstalla quando differiscono.

850 

851Questo hook `SessionStart` installa `node_modules` alla prima esecuzione e di nuovo ogni volta che un aggiornamento del plugin include un `package.json` modificato:

852 

853```json theme={null}

854{

855 "hooks": {

856 "SessionStart": [

857 {

858 "hooks": [

859 {

860 "type": "command",

861 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

862 }

863 ]

864 }

865 ]

866 }

867}

868```

869 

870Il `diff` esce con codice diverso da zero quando la copia memorizzata è mancante o differisce da quella fornita, coprendo sia la prima esecuzione che gli aggiornamenti che cambiano le dipendenze. Se `npm install` fallisce, il trailing `rm` rimuove il manifest copiato in modo che la sessione successiva riprovi.

871 

872Gli script forniti in `${CLAUDE_PLUGIN_ROOT}` possono quindi essere eseguiti rispetto ai `node_modules` persistiti:

873 

874```json theme={null}

875{

876 "mcpServers": {

877 "routines": {

878 "command": "node",

879 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

880 "env": {

881 "NODE_PATH": "${CLAUDE_PLUGIN_DATA}/node_modules"

882 }

883 }

884 }

885}

886```

887 

888La directory di dati viene eliminata automaticamente quando disinstalli il plugin dall'ultimo ambito in cui è installato. L'interfaccia `/plugin` mostra la dimensione della directory e richiede conferma prima di eliminare. La CLI elimina per impostazione predefinita; passa [`--keep-data`](#plugin-uninstall) per preservarla.

889 

890***

891 

892<h2 id="plugin-caching-and-file-resolution">

893 Caching dei plugin e risoluzione dei file

894</h2>

895 

896I plugin vengono specificati in uno di tre modi:

897 

898* Tramite `claude --plugin-dir` o `claude --plugin-url`, per la durata di una sessione.

899* Tramite un marketplace, installato per sessioni future.

900* Tramite il vostro account claude.ai, [sincronizzato](#synced-plugins) in `~/.claude/plugins/synced/`.

901 

902Per motivi di sicurezza e verifica, Claude Code copia i plugin del *marketplace* nella **cache dei plugin** locale dell'utente (`~/.claude/plugins/cache`), a meno che il plugin non si carichi sul posto. Una [`command` source in link mode](/docs/it/plugin-marketplaces#copy-mode-and-link-mode) si carica sul posto tramite link nella voce della cache. Una [relative path source](/docs/it/plugin-marketplaces#relative-paths) in un marketplace aggiunto da una directory locale si carica sul posto dalla cartella del marketplace.

903 

904Per un plugin caricato sul posto da un marketplace di directory locale, le vostre modifiche alla directory di origine hanno effetto all'avvio della sessione successiva o `/reload-plugins`. Non avete bisogno di un bump di versione. I processi hook del plugin e i server MCP e LSP ricevono un `CLAUDE_PLUGIN_ROOT` che punta alla directory di origine. Claude Code non installa le [dipendenze dei pacchetti Node.js](#node-js-package-dependencies) del plugin nella directory di origine. Installatele lì voi stessi, o da un hook nella [directory dei dati persistenti](#persistent-data-directory).

905 

906Per i plugin copiati, ogni versione installata è una directory separata nella cache, raggruppata per marketplace e plugin e denominata per la versione risolta, con la propria copia dei file del plugin e delle [dipendenze dei pacchetti Node.js](#node-js-package-dependencies). Una dipendenza risolta da un [release tag](/docs/it/plugin-dependencies#tag-plugin-releases-for-version-resolution) ottiene un nome di directory con un suffisso commit-SHA.

907 

908Quando aggiornate o disinstallate un plugin, Claude Code contrassegna la directory della versione precedente come orfana e la rimuove in una scansione in background approssimativamente 14 giorni dopo. Il periodo di grazia consente alle sessioni di Claude Code concorrenti che hanno già caricato la versione precedente di continuare a funzionare senza errori. Claude Code esegue la scansione solo mentre è installato almeno un plugin; dopo aver disinstallato l'ultimo plugin, le directory orfane rimangono su disco fino a quando non installate di nuovo un plugin.

909 

910Claude Code rimuove una cartella di plugin o marketplace dalla cache solo quando non contiene più alcuna directory o symlink. Se create un symlink di uno sviluppo locale nella cache come voce di versione di un plugin, Claude Code non contrassegna mai il link come orfano e non lo rimuove mai né le cartelle che lo contengono. Claude Code inoltre non scrive mai i suoi file di tracciamento delle versioni all'interno del checkout collegato.

911 

912Gli strumenti Glob e Grep di Claude saltano le directory delle versioni orfane durante le ricerche, quindi i risultati dei file non includono codice di plugin obsoleto.

913 

914<h3 id="node-js-package-dependencies">

915 Dipendenze dei pacchetti Node.js

916</h3>

917 

918Quando Claude Code copia un plugin nella cache, installa anche le dipendenze dei pacchetti Node.js del plugin lì, in modo che gli hook e i server MCP del plugin possano caricarli. Questa sezione copre i pacchetti npm e Bun che un plugin dichiara nel suo `package.json`. Per i plugin che dipendono da altri plugin, vedere [versioni delle dipendenze dei plugin](/docs/it/plugin-dependencies).

919 

920Claude Code esegue l'installazione all'interno della directory della versione copiata ogni volta che ne crea una: quando installate un plugin, quando Claude Code aggiorna un plugin a una nuova versione, e all'inizio della sessione quando un plugin abilitato non è ancora memorizzato nella cache, ad esempio su una nuova macchina. L'installazione viene eseguita solo quando la directory root del plugin contiene sia un `package.json` che un lockfile supportato:

921 

922| Lockfile | Comando |

923| :------------------------------------------ | :----------------------------------------------- |

924| `bun.lock` o `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

925| `npm-shrinkwrap.json` o `package-lock.json` | `npm ci --ignore-scripts` |

926 

927Se un plugin contiene più di uno di questi lockfile, Claude Code utilizza la prima corrispondenza, controllando in ordine: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

928 

929Claude Code salta l'installazione in due casi, ognuno con la propria soluzione:

930 

931* Se il vostro plugin contiene solo un `yarn.lock` o `pnpm-lock.yaml`, sostituiscilo con un lockfile npm.

932* Se un `bunfig.toml` si trova accanto al lockfile bun, rimuovete il `bunfig.toml`, o sostituite il lockfile bun con un lockfile npm.

933 

934Fornite un lockfile npm per la portata più ampia. Claude Code esegue il gestore di pacchetti del lockfile corrispondente dal PATH dell'utente e non esegue il fallback all'altro lockfile se manca. Per un plugin distribuito tramite una fonte npm, utilizzate `npm-shrinkwrap.json`; npm esclude `package-lock.json` dai pacchetti pubblicati.

935 

936Claude Code vincola questa installazione di dipendenze in modo che nessun codice dal plugin o dai suoi pacchetti venga eseguito durante essa, e limita quanto tempo può durare:

937 

938* **Risoluzione congelata:** Bun e npm installano esattamente ciò che il lockfile fissa, e falliscono piuttosto che ri-risolvere le versioni quando `package.json` e il lockfile non concordano.

939* **Nessuno script del ciclo di vita:** `--ignore-scripts` impedisce l'esecuzione degli script `preinstall`, `install` e `postinstall`, in modo che le dipendenze che compilano moduli nativi in questi script scarichino ma non compilino durante questa installazione.

940* **Timeout di 60 secondi:** Claude Code interrompe un'installazione che dura più a lungo e la tratta come non riuscita.

941 

942Claude Code recupera un plugin da fonte npm prima di questa installazione di dipendenze, e nessuno degli script di installazione del pacchetto stesso viene eseguito durante il recupero. Vedere [pacchetti npm](/docs/it/plugin-marketplaces#npm-packages).

943 

944Un'installazione non riuscita o saltata non blocca mai il plugin. Quando l'installazione fallisce, o Claude Code salta un lockfile yarn o pnpm o un `bunfig.toml`, registra il motivo come avviso nell'[output di debug](#debugging-commands). Un plugin con un `package.json` e nessun lockfile viene saltato senza una voce di log. Un'installazione scaduta può lasciare un albero `node_modules` parziale nella copia memorizzata nella cache.

945 

946Non potete disattivare l'installazione automatica; nessuna impostazione o variabile di ambiente la disabilita. In reti ristrette, vedere i [requisiti di accesso alla rete](/docs/it/network-config#network-access-requirements) per gli host da consentire.

947 

948Per le dipendenze che l'installazione automatica non può fornire, come pacchetti che necessitano dei loro script del ciclo di vita per compilare, dipendenze Python, o un plugin bloccato con Yarn o pnpm, installatele da un hook nella [directory dei dati persistenti](#persistent-data-directory).

949 

950<h3 id="path-traversal-limitations">

951 Limitazioni dell'attraversamento dei percorsi

952</h3>

953 

954Claude Code non consente a un plugin di fare riferimento a file al di fuori della sua stessa directory. Rifiuta un percorso di componente che si risolve al di fuori della root del plugin, indipendentemente dal fatto che il percorso sia dichiarato in `plugin.json` o in una [voce del marketplace](/docs/it/plugin-marketplaces#plugin-entries). Ciò copre un percorso che punta al di fuori del plugin come scritto, come `../shared-utils`, e un symlink che porta al di fuori del plugin, ad eccezione dei [link all'interno di un marketplace](#share-files-within-a-marketplace-with-symlinks).

955 

956Su macOS e Linux, Claude Code rifiuta anche un percorso di componente che contiene una barra rovesciata in qualsiasi punto, anche quando il percorso rimane all'interno del plugin. I componenti dichiarati con percorsi con barra rovesciata quindi si caricano solo su Windows. Scrivete i percorsi dei componenti con barre oblique, come `./commands/deploy.md`.

957 

958Quando Claude Code rifiuta un percorso, segnala un errore [`path escapes plugin directory`](/docs/it/errors#path-escapes-plugin-directory) e carica il plugin senza quel componente.

959 

960Claude Code inoltre non copia i file al di fuori della directory del plugin nella cache quando installa il plugin, quindi quando uno script all'interno di un plugin copiato legge un percorso sopra la root del plugin, non trova nemmeno quei file.

961 

962<h3 id="share-files-within-a-marketplace-with-symlinks">

963 Condividere file all'interno di un marketplace con symlink

964</h3>

965 

966Se il vostro plugin ha bisogno di condividere file con altre parti dello stesso marketplace, potete creare link simbolici all'interno della directory del vostro plugin. Il modo in cui un symlink viene gestito quando il plugin viene copiato nella cache dipende da dove si risolve il suo target:

967 

968* **All'interno della directory del plugin:** il symlink viene preservato come symlink relativo nella cache, in modo che continui a risolvere il target copiato in fase di esecuzione.

969* **Altrove all'interno dello stesso marketplace:** il symlink viene dereferenziato. Il contenuto del target viene copiato nella cache al suo posto. Ciò consente alla directory `skills/` di un meta-plugin di collegarsi alle skill definite da altri plugin nel marketplace.

970* **Al di fuori del marketplace:** il symlink viene saltato per motivi di sicurezza. Ciò impedisce ai plugin di estrarre file host arbitrari come percorsi di sistema nella cache.

971 

972Per i plugin installati con `--plugin-dir`, da un percorso locale, o da una [`command` source](/docs/it/plugin-marketplaces#copy-mode-and-link-mode) in copy mode, solo i symlink che si risolvono all'interno della directory del plugin stesso vengono preservati. Tutti gli altri vengono saltati.

973 

974Il seguente comando crea un link dall'interno di un plugin del marketplace a una skill condivisa definita da un plugin sibling. Su Windows, utilizzate `mklink /D` da un Command Prompt elevato o abilitate Developer Mode:

975 

976```bash theme={null}

977ln -s ../../shared-plugin/skills/foo ./skills/foo

978```

979 

980***

981 

982<h2 id="plugin-directory-structure">

983 Struttura della directory dei plugin

984</h2>

985 

986<h3 id="standard-plugin-layout">

987 Layout standard dei plugin

988</h3>

989 

990Un plugin completo segue questa struttura:

991 

992```text theme={null}

993enterprise-plugin/

994├── .claude-plugin/ # Directory dei metadati (opzionale)

995│ └── plugin.json # plugin manifest

996├── skills/ # Skills

997│ ├── code-reviewer/

998│ │ └── SKILL.md

999│ └── pdf-processor/

1000│ ├── SKILL.md

1001│ └── scripts/

1002├── commands/ # Skills come file .md flat

1003│ ├── status.md

1004│ └── logs.md

1005├── agents/ # Definizioni dei subagent

1006│ ├── security-reviewer.md

1007│ ├── performance-tester.md

1008│ ├── compliance-checker.md

1009│ └── review/ # Gli agent qui si caricano come enterprise-plugin:review:<name>

1010│ └── accessibility.md

1011├── workflows/ # Script dei workflow

1012│ └── release-audit.js

1013├── output-styles/ # Definizioni dello stile di output

1014│ └── terse.md

1015├── themes/ # Definizioni dei temi colore

1016│ └── dracula.json

1017├── monitors/ # Configurazioni dei monitor in background

1018│ └── monitors.json

1019├── hooks/ # Configurazioni degli hook

1020│ ├── hooks.json # Configurazione principale degli hook

1021│ └── security-hooks.json # Hook aggiuntivi

1022├── bin/ # Eseguibili del plugin aggiunti a PATH

1023│ └── my-tool # Invocabile come comando bare in Bash tool

1024├── settings.json # Impostazioni predefinite per il plugin

1025├── .mcp.json # Definizioni dei server MCP

1026├── .lsp.json # Configurazioni dei server LSP

1027├── scripts/ # Script degli hook e script di utilità

1028│ ├── security-scan.sh

1029│ ├── format-code.py

1030│ └── deploy.js

1031├── LICENSE # File di licenza

1032└── CHANGELOG.md # Cronologia delle versioni

1033```

1034 

1035<Warning>

1036 La directory `.claude-plugin/` contiene il file `plugin.json`. Tutte le altre directory (commands/, agents/, skills/, workflows/, output-styles/, themes/, monitors/, hooks/) devono trovarsi nella radice del plugin, non all'interno di `.claude-plugin/`.

1037</Warning>

1038 

1039Un file `CLAUDE.md` nella radice del plugin non viene caricato come contesto del progetto. I plugin contribuiscono al contesto attraverso skills, agents e hooks piuttosto che tramite CLAUDE.md. Per fornire istruzioni che si carichino nel contesto di Claude, inseritele in una [skill](#skills).

1040 

1041<h3 id="file-locations-reference">

1042 Riferimento delle posizioni dei file

1043</h3>

1044 

1045| Componente | Posizione predefinita | Scopo |

1046| :---------------- | :--------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1047| **Manifest** | `.claude-plugin/plugin.json` | Metadati e configurazione del plugin (opzionale) |

1048| **Skills** | `skills/` | Skills con struttura `<name>/SKILL.md` |

1049| **Commands** | `commands/` | Skills come file Markdown flat. Utilizzare `skills/` per i nuovi plugin |

1050| **Agents** | `agents/` | File Markdown dei subagent. Le sottocartelle fanno parte del [nome dell'agent](#agents) |

1051| **Workflows** | `workflows/` | File script dei [Workflow](/docs/it/workflows) |

1052| **Output styles** | `output-styles/` | Definizioni dello stile di output |

1053| **Themes** | `themes/` | Definizioni dei temi colore |

1054| **Hooks** | `hooks/hooks.json` | Configurazione degli hook |

1055| **Server MCP** | `.mcp.json` | Definizioni dei server MCP |

1056| **Server LSP** | `.lsp.json` | Configurazioni dei language server |

1057| **Monitors** | `monitors/monitors.json` | Configurazioni dei monitor in background |

1058| **Eseguibili** | `bin/` | Eseguibili aggiunti al `PATH` del Bash tool e invocabili come comandi bare mentre il plugin è abilitato. Non è possibile includere questa directory in un plugin che [distribuite attraverso le impostazioni dell'organizzazione claude.ai](/docs/it/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory) |

1059| **Impostazioni** | `settings.json` | Configurazione predefinita applicata quando il plugin è abilitato. Sono supportate solo le chiavi [`agent`](/docs/it/sub-agents) e [`subagentStatusLine`](/docs/it/statusline#subagent-status-lines) |

1060 

1061***

1062 

1063<h2 id="cli-commands-reference">

1064 Riferimento dei comandi CLI

1065</h2>

1066 

1067Claude Code fornisce comandi CLI per la gestione non interattiva dei plugin, utile per scripting e automazione.

1068 

1069<h3 id="plugin-init">

1070 plugin init

1071</h3>

1072 

1073Crea lo scaffolding di un nuovo plugin in `~/.claude/skills/<name>/`. Nella prossima sessione di Claude Code si carica automaticamente come `<name>@skills-dir` e appare in `/plugin` e `claude plugin list` senza alcun passaggio di installazione.

1074 

1075Vedi [Skills-directory plugins](#skills-directory-plugins) per i requisiti di ambito e fiducia.

1076 

1077```bash theme={null}

1078claude plugin init <name> [options]

1079```

1080 

1081Il comando accetta questi argomenti:

1082 

1083* `<name>`: Nome del plugin. Diventa lo spazio dei nomi della skill e il nome della directory sotto `~/.claude/skills/`, quindi non può contenere spazi o separatori di percorso.

1084 

1085Il comando accetta queste opzioni:

1086 

1087| Opzione | Descrizione | Predefinito |

1088| :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------- |

1089| `--description <text>` | Descrizione del manifest | |

1090| `--author <name>` | Nome dell'autore | `git config user.name` |

1091| `--author-email <email>` | Email dell'autore | `git config user.email` |

1092| `--with <components...>` | Crea anche lo scaffolding delle cartelle dei componenti. Valori validi: `skills`, `agents`, `hooks`, `mcp`, `lsp`, `output-style`, `channel` | |

1093| `-f, --force` | Sovrascrivi un `.claude-plugin/` esistente nel target | |

1094| `-h, --help` | Visualizza la guida per il comando | |

1095 

1096`claude plugin new` è un alias per questo comando.

1097 

1098Ogni valore `--with` aggiunge un file di avvio per quel componente, pronto per essere modificato:

1099 

1100| Componente | Cosa crea lo scaffolding |

1101| :------------- | :-------------------------------------------------------------------------------------------------------------- |

1102| `skills` | Una skill aggiuntiva con spazio dei nomi `<name>:example` insieme a quella predefinita |

1103| `agents` | Una definizione di subagent in `agents/` |

1104| `hooks` | Un `hooks/hooks.json` con un gestore di eventi di esempio |

1105| `mcp` | Un `.mcp.json` con esempi di server HTTP e stdio |

1106| `lsp` | Un esempio di language-server `.lsp.json` |

1107| `output-style` | Un `output-styles/<name>.md` che si applica automaticamente mentre il plugin è abilitato |

1108| `channel` | Un [channel](/docs/it/channels) basato su MCP: un server stdio (`server.ts`), il suo `.mcp.json` e un `package.json` |

1109 

1110Il plugin creato con lo scaffolding utilizza la fonte `@skills-dir` piuttosto che un marketplace. Gli amministratori possono bloccare questa fonte con `strictKnownMarketplaces` o aggiungendo `{"source": "skills-dir"}` a `blockedMarketplaces` nelle [impostazioni gestite](/docs/it/plugin-marketplaces#managed-marketplace-restrictions). Quando bloccato, `plugin init` fallisce prima di scrivere.

1111 

1112Questi esempi mostrano invocazioni comuni:

1113 

1114```bash theme={null}

1115# Crea lo scaffolding di un plugin minimo

1116claude plugin init my-helper

1117 

1118# Crea lo scaffolding con cartelle skill e hook

1119claude plugin init my-helper --with skills hooks

1120 

1121# Sovrascrivi uno scaffolding esistente

1122claude plugin init my-helper --force

1123```

1124 

1125<h3 id="plugin-install">

1126 plugin install

1127</h3>

1128 

1129Installa un plugin dai marketplace disponibili.

1130 

1131```bash theme={null}

1132claude plugin install <plugin> [options]

1133```

1134 

1135Il comando accetta questi argomenti:

1136 

1137* `<plugin>`: Nome del plugin o `plugin-name@marketplace-name` per un marketplace specifico

1138 

1139Il comando accetta queste opzioni:

1140 

1141| Opzione | Descrizione | Predefinito |

1142| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------- |

1143| `-s, --scope <scope>` | Ambito di installazione: `user`, `project` o `local` | `user` |

1144| `--config <key=value>` | Imposta un'opzione [`userConfig`](#user-configuration) dichiarata nel manifest del plugin. Ripeti il flag per impostare più opzioni | |

1145| `-y, --yes` | Accetta un comando che il marketplace del plugin dichiara, senza il prompt di conferma: il comando che produce un plugin con una [`command` source](/docs/it/plugin-marketplaces#command-sources), o l'[`headersHelper`](/docs/it/plugin-marketplaces#authenticate-archive-downloads) che autentica un download di archivio. Accettare un `headersHelper` richiede Claude Code v2.1.238 o successivo. Claude Code stampa comunque il comando per primo. Obbligatorio quando stdin o stdout non è un TTY, a meno che non passi `--accept-command`. Non ha effetto all'interno di una sessione di Claude Code, quindi esegui il comando dal tuo terminale | |

1146| `--accept-command <sha256>` | Accetta il comando dichiarato dal marketplace il cui `sha256` una precedente esecuzione [`--json`](#plugin-json-result) ha segnalato in `shownCommand`, al posto di `-y`. L'accettazione conta esattamente per quel comando, plugin e catalogo del marketplace. Se uno qualsiasi di essi è cambiato da quando il comando è stato visualizzato, incluso attraverso l'aggiornamento del marketplace della stessa esecuzione, Claude Code non accetta il digest e mostra di nuovo il comando. Non può essere combinato con `-y`. Non ha effetto all'interno di una sessione di Claude Code, quindi esegui il comando dal tuo terminale. Richiede Claude Code v2.1.271 o successivo | |

1147| `--json` | Stampa il risultato come un oggetto JSON sulla ultima riga di stdout invece del messaggio leggibile, per l'uso negli script. Vedi [Formato del risultato JSON](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo | |

1148| `-h, --help` | Visualizza la guida per il comando | |

1149 

1150L'ambito determina quale file di impostazioni il plugin installato viene aggiunto. Ad esempio, `--scope project` scrive in `enabledPlugins` in .claude/settings.json, rendendo il plugin disponibile a chiunque cloni il repository del progetto.

1151 

1152<span id="plugin-json-result" />Con `--json`, l'ultima riga di stdout è un oggetto JSON. Analizza solo quella riga, perché Claude Code stampa qualsiasi comando che il marketplace dichiara prima di essa. Tre campi sono sempre presenti:

1153 

1154* `command`: il sottocomando che è stato eseguito, come `install`

1155* `outcome`: `ok` o `failed`

1156* `message`: una descrizione leggibile del risultato

1157 

1158Altri campi, come `pluginId`, `scope` e `failureCode`, appaiono solo quando applicabili. L'opzione `--json` su `plugin uninstall`, `plugin update`, `plugin enable` e `plugin disable` stampa lo stesso oggetto con i campi propri di quel sottocomando. Un errore di utilizzo, come uno `--scope` non valido, non stampa alcuna riga di risultato ed esce con 1 con il motivo su stderr.

1159 

1160Quando un'esecuzione visualizza un comando dichiarato dal marketplace e non lo esegue, il risultato `failed` porta anche un oggetto `shownCommand` i cui campi includono il comando come visualizzato, il plugin a cui appartiene e lo `sha256` del comando. Per accettare esattamente quel comando, esegui di nuovo con quello `sha256` come `--accept-command`. Richiede Claude Code v2.1.271 o successivo.

1161 

1162Se `shownCommand.acceptCommandMatched` è `false`, il digest che hai passato non corrisponde al comando ora visualizzato. Mostra quel comando a una persona prima di passare il suo `sha256`.

1163 

1164Questi esempi mostrano invocazioni comuni:

1165 

1166```bash theme={null}

1167# Installa nell'ambito utente (predefinito)

1168claude plugin install formatter@my-marketplace

1169 

1170# Installa nell'ambito progetto (condiviso con il team)

1171claude plugin install formatter@my-marketplace --scope project

1172 

1173# Installa nell'ambito locale (non condiviso con il team)

1174claude plugin install formatter@my-marketplace --scope local

1175```

1176 

1177<h3 id="plugin-uninstall">

1178 plugin uninstall

1179</h3>

1180 

1181Rimuovi un plugin installato.

1182 

1183```bash theme={null}

1184claude plugin uninstall <plugin> [options]

1185```

1186 

1187Il comando accetta questi argomenti:

1188 

1189* `<plugin>`: Nome del plugin o `plugin-name@marketplace-name`

1190 

1191Il comando accetta queste opzioni:

1192 

1193| Opzione | Descrizione | Predefinito |

1194| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- |

1195| `-s, --scope <scope>` | Disinstalla dall'ambito: `user`, `project` o `local` | `user` |

1196| `--keep-data` | Preserva la [persistent data directory](#persistent-data-directory) del plugin | |

1197| `--prune` | Rimuovi anche le dipendenze auto-installate che nessun altro plugin richiede. Vedi [plugin prune](#plugin-prune) | |

1198| `-y, --yes` | Salta il prompt di conferma `--prune`. Obbligatorio quando stdin o stdout non è un TTY | |

1199| `--json` | Stampa il risultato come un oggetto JSON sulla ultima riga di stdout, nello [stesso formato di `plugin install --json`](#plugin-json-result). Non può essere combinato con `--prune`. Richiede Claude Code v2.1.268 o successivo | |

1200| `-h, --help` | Visualizza la guida per il comando | |

1201 

1202`claude plugin remove` e `claude plugin rm` sono alias per questo comando.

1203 

1204Per impostazione predefinita, la disinstallazione dall'ultimo ambito rimanente elimina anche la directory `${CLAUDE_PLUGIN_DATA}` del plugin. Usa `--keep-data` per preservarla, ad esempio quando reinstalli dopo aver testato una nuova versione.

1205 

1206<Note>

1207 Quando i plugin installati da diversi marketplace condividono un nome, il modulo `plugin-name@marketplace-name` disinstalla solo il plugin dal marketplace denominato. Prima della v2.1.212, il modulo qualificato potrebbe corrispondere e disinstallare lo stesso plugin denominato da un marketplace diverso.

1208</Note>

1209 

1210<h3 id="plugin-prune">

1211 plugin prune

1212</h3>

1213 

1214Rimuovi le dipendenze dei plugin auto-installate che non sono più richieste da alcun plugin installato. Le dipendenze che Claude Code ha inserito per soddisfare il campo [`dependencies`](/docs/it/plugin-dependencies) di un altro plugin vengono rimosse; i plugin che hai installato direttamente non vengono mai toccati.

1215 

1216```bash theme={null}

1217claude plugin prune [options]

1218```

1219 

1220Il comando accetta queste opzioni:

1221 

1222| Opzione | Descrizione | Predefinito |

1223| :-------------------- | :--------------------------------------------------------------------------- | :---------- |

1224| `-s, --scope <scope>` | Prune all'ambito: `user`, `project` o `local` | `user` |

1225| `--dry-run` | Elenca cosa verrebbe rimosso senza rimuovere nulla | |

1226| `-y, --yes` | Salta il prompt di conferma. Obbligatorio quando stdin o stdout non è un TTY | |

1227| `-h, --help` | Visualizza la guida per il comando | |

1228 

1229`claude plugin autoremove` è un alias per questo comando.

1230 

1231Il comando elenca le dipendenze orfane e chiede conferma prima di rimuoverle. Per rimuovere un plugin e pulire le sue dipendenze in un unico passaggio, esegui `claude plugin uninstall <plugin> --prune`.

1232 

1233<h3 id="plugin-enable">

1234 plugin enable

1235</h3>

1236 

1237Abilita un plugin disabilitato. Quando il target è installato da un marketplace e dichiara [dependencies](/docs/it/plugin-dependencies), Claude Code li abilita transitivamente nello stesso ambito. Il comando fallisce nelle condizioni che [Enable or disable a plugin with dependencies](/docs/it/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) elenca.

1238 

1239```bash theme={null}

1240claude plugin enable <plugin> [options]

1241```

1242 

1243Il comando accetta questi argomenti:

1244 

1245* `<plugin>`: Nome del plugin, `plugin-name@marketplace-name` o `plugin-name@synced` per un [plugin sincronizzato da claude.ai](#synced-plugins)

1246 

1247Il comando accetta queste opzioni:

1248 

1249| Opzione | Descrizione | Predefinito |

1250| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- |

1251| `-s, --scope <scope>` | Ambito da abilitare: `user`, `project` o `local`. Quando omesso, Claude Code rileva l'ambito in cui il plugin è installato | Auto-detect |

1252| `--json` | Stampa il risultato come un oggetto JSON sulla ultima riga di stdout, nello [stesso formato di `plugin install --json`](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo | |

1253| `-h, --help` | Visualizza la guida per il comando | |

1254 

1255<h3 id="plugin-disable">

1256 plugin disable

1257</h3>

1258 

1259Disabilita un plugin senza disinstallarlo.

1260 

1261Quando il target è installato da un marketplace, il comando fallisce se un altro plugin abilitato [dipende da](/docs/it/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) esso. Il messaggio di errore include un comando concatenato che disabilita prima ogni dipendente.

1262 

1263Per un [synced plugin](#synced-plugins) che la tua organizzazione richiede, il comando fallisce e non salva nulla.

1264 

1265```bash theme={null}

1266claude plugin disable [plugin] [options]

1267```

1268 

1269Il comando accetta questi argomenti:

1270 

1271* `[plugin]`: Nome del plugin, `plugin-name@marketplace-name` o `plugin-name@synced` per un [plugin sincronizzato da claude.ai](#synced-plugins). Facoltativo quando si usa `--all`

1272 

1273Il comando accetta queste opzioni:

1274 

1275| Opzione | Descrizione | Predefinito |

1276| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- |

1277| `-a, --all` | Disabilita tutti i plugin abilitati. Non può essere combinato con `--scope` | |

1278| `-s, --scope <scope>` | Ambito da disabilitare: `user`, `project` o `local`. Quando omesso, Claude Code rileva l'ambito in cui il plugin è installato | Auto-detect |

1279| `--json` | Stampa il risultato come un oggetto JSON sulla ultima riga di stdout, nello [stesso formato di `plugin install --json`](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo | |

1280| `-h, --help` | Visualizza la guida per il comando | |

1281 

1282<h3 id="plugin-update">

1283 plugin update

1284</h3>

1285 

1286Aggiorna un plugin all'ultima versione.

1287 

1288```bash theme={null}

1289claude plugin update <plugin> [options]

1290```

1291 

1292Il comando accetta questi argomenti:

1293 

1294* `<plugin>`: Nome del plugin o `plugin-name@marketplace-name`

1295 

1296Il comando accetta queste opzioni:

1297 

1298| Opzione | Descrizione | Predefinito |

1299| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------- |

1300| `-s, --scope <scope>` | Ambito da aggiornare: `user`, `project`, `local` o `managed` | `user` |

1301| `-y, --yes` | Accetta un comando che il marketplace del plugin dichiara, senza il prompt di conferma: il comando che produce un plugin con una [`command` source](/docs/it/plugin-marketplaces#command-sources), o l'[`headersHelper`](/docs/it/plugin-marketplaces#authenticate-archive-downloads) che autentica un download di archivio. Accettare un `headersHelper` richiede Claude Code v2.1.238 o successivo. Claude Code stampa comunque il comando per primo. Obbligatorio quando stdin o stdout non è un TTY, a meno che non passi `--accept-command`. Non ha effetto all'interno di una sessione di Claude Code, quindi esegui il comando dal tuo terminale | |

1302| `--accept-command <sha256>` | Accetta il comando dichiarato dal marketplace il cui `sha256` una precedente esecuzione [`--json`](#plugin-json-result) ha segnalato in `shownCommand`, al posto di `-y`. L'accettazione conta esattamente per quel comando, plugin e catalogo del marketplace. Se uno qualsiasi di essi è cambiato da quando il comando è stato visualizzato, incluso attraverso l'aggiornamento del marketplace della stessa esecuzione, Claude Code non accetta il digest e mostra di nuovo il comando. Non può essere combinato con `-y`. Non ha effetto all'interno di una sessione di Claude Code, quindi esegui il comando dal tuo terminale. Richiede Claude Code v2.1.271 o successivo | |

1303| `--json` | Stampa il risultato come un oggetto JSON sulla ultima riga di stdout, nello [stesso formato di `plugin install --json`](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo | |

1304| `-h, --help` | Visualizza la guida per il comando | |

1305 

1306<Note>

1307 Claude Code risolve un nome di plugin semplice rispetto ai plugin installati. Quando i plugin installati da diversi marketplace condividono il nome, Claude Code rifiuta l'aggiornamento ed elenca i comandi `plugin-name@marketplace-name` qualificati da eseguire invece. Prima della v2.1.246, Claude Code accettava solo il modulo qualificato e rifiutava un nome semplice come non trovato.

1308</Note>

1309 

1310***

1311 

1312<h3 id="plugin-list">

1313 plugin list

1314</h3>

1315 

1316Elenca i plugin installati con la loro versione, il marketplace di origine e lo stato di abilitazione.

1317 

1318```bash theme={null}

1319claude plugin list [options]

1320```

1321 

1322Il comando accetta queste opzioni:

1323 

1324| Opzione | Descrizione | Predefinito |

1325| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- |

1326| `--json` | Output come JSON. Una riga di plugin con problemi di caricamento o avvisi di authoring porta array di stringhe `errors` o `notes`. Su Claude Code v2.1.268 o successivo, array paralleli `errorDetails` e `noteDetails` forniscono il `type` diagnostico di ogni voce e i nomi a cui si riferisce, come il plugin, il marketplace, il server o il file | |

1327| `--available` | Includi i plugin disponibili dai marketplace. Richiede `--json` | |

1328| `-h, --help` | Visualizza la guida per il comando | |

1329 

1330All'interno di una sessione interattiva, `/plugin list` stampa un elenco simile inline, ma copre solo i plugin installati dal marketplace:

1331 

1332* I plugin caricati dalle directory delle skill appaiono nell'interfaccia `/plugin` e in `claude plugin list`, ma non nell'output inline `/plugin list`.

1333* I [plugin sincronizzati da claude.ai](#synced-plugins) appaiono in `claude plugin list` su Claude Code v2.1.239 o successivo e nell'interfaccia `/plugin`, ma non nell'output inline `/plugin list`.

1334* I plugin caricati per la sessione con `--plugin-dir` o `--plugin-url` appaiono nell'interfaccia `/plugin` e in `claude plugin list` solo quando lo stesso flag precede il sottocomando, come in `claude --plugin-dir <dir> plugin list`. Solo il nome del flag identifica la loro posizione, quindi un semplice `claude plugin list` non può trovarli, a differenza dei plugin sincronizzati e dei plugin della directory delle skill, le cui directory fisse Claude Code scansiona.

1335 

1336Il modulo interattivo accetta `--enabled` o `--disabled` per mostrare solo i plugin in quello stato, e `ls` come abbreviazione per `list`.

1337 

1338<h3 id="plugin-details">

1339 plugin details

1340</h3>

1341 

1342Mostra l'inventario dei componenti di un plugin e il costo del token previsto. L'output elenca tutti i componenti che il plugin contribuisce, raggruppati come Skills, Agents, Hooks, server MCP e server LSP, insieme a una stima di quanti token aggiunge a ogni sessione. Il gruppo Skills include sia le voci `skills/` che `commands/`.

1343 

1344```bash theme={null}

1345claude plugin details <name>

1346```

1347 

1348Il comando accetta questi argomenti:

1349 

1350* `<name>`: Nome del plugin o `plugin-name@marketplace-name`

1351 

1352Il comando accetta queste opzioni:

1353 

1354| Opzione | Descrizione | Predefinito |

1355| :----------- | :--------------------------------- | :---------- |

1356| `-h, --help` | Visualizza la guida per il comando | |

1357 

1358L'output mostra due cifre di costo per ogni componente:

1359 

1360* **Always-on:** token aggiunti a ogni sessione dal testo dell'elenco del plugin, come descrizioni delle skill, descrizioni degli agent e nomi dei comandi, indipendentemente dal fatto che un componente si attivi.

1361* **On-invoke:** token che un componente costa quando si attiva. Mostrato per componente, non come totale del plugin, perché una sessione tipica invoca solo un sottoinsieme di componenti.

1362 

1363Questo esempio mostra come appare l'output per un plugin con due skill:

1364 

1365```

1366dependency-guard 1.2.0

1367 Dependency analysis for Claude Code sessions

1368 Source: dependency-guard@example-marketplace

1369 

1370Component inventory

1371 Skills (2) scan-dependencies, review-changes

1372 Agents (0)

1373 Hooks (1) SessionStart (harness-only — no model context cost)

1374 MCP servers (0)

1375 LSP servers (0)

1376 

1377Projected token cost

1378 Always-on: ~180 tok added to every session

1379 

1380Per-component (rounded)

1381 component always-on on-invoke

1382 scan-dependencies ~100 ~2400

1383 review-changes ~80 ~1800

1384 

1385 On-invoke cost is paid each time a skill or agent fires.

1386 Token counts are estimates and may differ from actual usage.

1387```

1388 

1389Il totale always-on viene calcolato tramite l'API `count_tokens` per il tuo modello attivo. I numeri per componente sono proporzionalmente scalati da quel totale. Se l'API non è raggiungibile, il comando ricade su una stima basata su caratteri.

1390 

1391<h3 id="plugin-validate">

1392 plugin validate

1393</h3>

1394 

1395Controlla un plugin o un marketplace per errori di sintassi e schema prima della pubblicazione.

1396 

1397Il comando esce con 0 quando la convalida passa, 1 quando fallisce e 2 quando l'esecuzione della convalida stessa fallisce, ad esempio quando il percorso che passi non è leggibile.

1398 

1399```bash theme={null}

1400claude plugin validate <path> [options]

1401```

1402 

1403Il comando accetta questi argomenti:

1404 

1405* `<path>`: Percorso a una directory di plugin o una directory di marketplace. Vedi [Validate a plugin or a directory without a manifest](/docs/it/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) per quali file una esecuzione di plugin copre.

1406 

1407Il comando accetta queste opzioni:

1408 

1409| Opzione | Descrizione | Predefinito |

1410| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- |

1411| `--strict` | Tratta gli avvisi come errori ed esce con 1 su di essi. Usa in CI per catturare problemi che il runtime tollera, come [unrecognized fields](#unrecognized-fields) | |

1412| `--json` | Output il rapporto di convalida come un oggetto JSON con gli stessi codici di uscita. Richiede Claude Code v2.1.259 o successivo | |

1413| `-h, --help` | Visualizza la guida per il comando | |

1414 

1415Con `--json`, Claude Code scrive il rapporto su stdout come un oggetto JSON con questi campi di livello superiore:

1416 

1417* `success`: lo stesso verdetto che il codice di uscita fornisce

1418* `strict`: se l'esecuzione ha trattato gli avvisi come errori

1419* `target`: il percorso risolto che Claude Code ha convalidato

1420* `manifest`: il risultato del manifest stesso, o `null` per un'[esecuzione senza manifest](/docs/it/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)

1421* `contents`: risultati per file, ognuno nominando il suo `file` e portando array `errors`, `warnings` e `notes`

1422 

1423All'uscita 2, il comando non scrive nulla su stdout; il messaggio di errore va su stderr.

1424 

1425All'interno di una sessione interattiva, `/plugin validate <path>` esegue gli stessi controlli inline.

1426 

1427<h3 id="plugin-eval">

1428 plugin eval

1429</h3>

1430 

1431Esegui i [eval cases](/docs/it/plugin-evals) di un plugin e segnala i risultati valutati. Richiede Claude Code v2.1.269 o successivo. Ogni caso è un prompt più grader; Claude Code lo esegue più volte in una sessione isolata con solo il plugin target caricato, e per impostazione predefinita anche senza il plugin in modo che il rapporto mostri la differenza. Vedi [Test plugins with evals](/docs/it/plugin-evals) per il formato del caso, i grader, i risultati e l'utilizzo in CI.

1432 

1433```bash theme={null}

1434claude plugin eval [target] [options]

1435```

1436 

1437Il `target` facoltativo è una directory di plugin, un singolo file `prompt.md` o `case.yaml`, un plugin installato come `name` o `name@marketplace`, o `name@skills-dir`, e predefinito è la directory corrente. Mettilo prima di `--tag`, `--allow-tools` e `--json`.

1438 

1439Questa tabella elenca le opzioni che la maggior parte delle esecuzioni utilizza. Esegui `claude plugin eval --help` per l'insieme completo, inclusi `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp` e `--verbose`.

1440 

1441| Opzione | Descrizione | Predefinito |

1442| :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |

1443| `--runs <n>` | Esecuzioni per caso per braccio | Ogni `runs` del caso, altrimenti 3 |

1444| `-j, --concurrency <n>` | Sessioni di agent da eseguire contemporaneamente, da 1 a 8. Condividono il tuo limite di velocità | `1` |

1445| `--model <model>` | Modello per l'agent in test | Ogni `model` del caso, altrimenti `ANTHROPIC_MODEL` se impostato, altrimenti il predefinito di Claude Code |

1446| `--judge-model <model>` | Modello per i grader `llm` e `baseline` | Un modello piccolo e veloce |

1447| `--ablation <mode>` | `none` o `with-without`. Vedi [Compare against a no-plugin baseline](/docs/it/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` quando un plugin si risolve, altrimenti `none` |

1448| `--threshold <0..1>` | Esci con 1 se un caso qualsiasi punteggia al di sotto di questo | `1.0` |

1449| `--max-cost-usd <usd>` | Interrompi prima della prossima esecuzione una volta che la spesa raggiunge questo, esci con 2 e segnala risultati parziali | Nessun limite |

1450| `--allow-tools <tools...>` | Concedi strumenti oltre l'insieme di sola lettura, come `Bash`, `Write`, `Edit` o `"mcp__plugin_<plugin>_<server>__*"`. Vedi [Grant tools](/docs/it/plugin-evals#grant-tools) | |

1451| `--scaffold` | Esegui lo [`scaffold_script`](/docs/it/plugin-evals#add-setup-or-history-with-case-yaml) di ogni caso | Off |

1452| `--trust-plugin` | Salta il prompt di fiducia della prima esecuzione, per CI. Vedi [What a run can access](/docs/it/plugin-evals#security) | Off |

1453| `--mocks <mode>` | `record` o `off`. Vedi [Mock MCP servers](/docs/it/plugin-evals#mock-mcp-servers) | `record` |

1454| `--eval-dir <dir>` | Directory sotto il plugin che contiene i casi | Il `experimental.evals` del manifest, altrimenti `evals` |

1455| `--json [path]` | Stampa il [result document](/docs/it/plugin-evals#json-result) su stdout, o scrivilo in un percorso `.json` | |

1456| `--no-publish` | Mantieni il rapporto HTML locale | |

1457| `-h, --help` | Visualizza la guida per il comando | |

1458 

1459Il comando esce con 0 quando ogni caso soddisfa la soglia, 1 su un caso fallito, un errore di caricamento o una directory di plugin non attendibile, 2 su un'esecuzione parziale, 130 quando interrotto e 143 quando terminato. Vedi [Run evals in CI](/docs/it/plugin-evals#run-evals-in-ci).

1460 

1461<h3 id="plugin-eval-init">

1462 plugin eval init

1463</h3>

1464 

1465Crea una suite di eval per il plugin nella directory corrente. Richiede Claude Code v2.1.269 o successivo. In un terminale questo avvia un'intervista di authoring che legge il plugin, propone casi e grader, li pilota e scrive i file. Con `--bare`, o senza un terminale, scrive invece un modello di singolo caso vuoto. Esegui da dentro una sessione interattiva di Claude Code, stampa le istruzioni dell'intervista per quella sessione da seguire piuttosto che scrivere un modello. Vedi [Create your first eval suite](/docs/it/plugin-evals#create-your-first-eval-suite).

1466 

1467```bash theme={null}

1468claude plugin eval init [name] [options]

1469```

1470 

1471Il `name` facoltativo è un nome di caso: l'intervista non ne ha bisogno, mentre `--bare` e il percorso del modello senza terminale lo richiedono. Accetta queste opzioni:

1472 

1473| Opzione | Descrizione | Predefinito |

1474| :------------------ | :----------------------------------------------------------------------------------------------- | :------------------------------------------------------- |

1475| `--bare` | Scrivi un `prompt.md` vuoto e `graders/criteria.md` per `<name>` invece di eseguire l'intervista | |

1476| `-i, --interactive` | Richiedi l'intervista. Fallisce senza un terminale invece di scrivere un modello | |

1477| `--eval-dir <dir>` | Directory sotto la directory corrente in cui scrivere i casi | Il `experimental.evals` del manifest, altrimenti `evals` |

1478| `-h, --help` | Visualizza la guida per il comando | |

1479 

1480<h3 id="plugin-tag">

1481 plugin tag

1482</h3>

1483 

1484Crea un tag git di rilascio per un plugin. Per impostazione predefinita il comando etichetta il plugin nella directory corrente; passa un percorso per etichettare un plugin altrove. Vedi [Tag plugin releases](/docs/it/plugin-dependencies#tag-plugin-releases-for-version-resolution).

1485 

1486```bash theme={null}

1487claude plugin tag [path] [options]

1488```

1489 

1490Il comando accetta questi argomenti:

1491 

1492* `[path]`: Percorso alla directory del plugin. Predefinito è la directory corrente.

1493 

1494Il comando accetta queste opzioni:

1495 

1496| Opzione | Descrizione | Predefinito |

1497| :-------------------- | :------------------------------------------------------------------------- | :---------- |

1498| `--push` | Spinge il tag al remote dopo averlo creato | |

1499| `--dry-run` | Stampa cosa verrebbe etichettato senza creare il tag | |

1500| `-f, --force` | Crea il tag anche se l'albero di lavoro è sporco o il tag esiste già | |

1501| `-m, --message <msg>` | Messaggio di annotazione del tag. Usa `%s` come segnaposto per la versione | |

1502| `--remote <name>` | Remote a cui spingere con `--push` | `origin` |

1503| `-h, --help` | Visualizza la guida per il comando | |

1504 

1505***

1506 

1507<h2 id="debugging-and-development-tools">

1508 Strumenti di debug e sviluppo

1509</h2>

1510 

1511<h3 id="debugging-commands">

1512 Comandi di debug

1513</h3>

1514 

1515Utilizzare `claude --debug` per visualizzare i dettagli del caricamento dei plugin:

1516 

1517Questo mostra:

1518 

1519* Quali plugin vengono caricati

1520* Eventuali errori nei manifest dei plugin

1521* Registrazione di skill, agent e hook

1522* Inizializzazione del server MCP

1523 

1524<h3 id="common-issues">

1525 Problemi comuni

1526</h3>

1527 

1528| Problema | Causa | Soluzione |

1529| :---------------------------------- | :------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1530| Plugin non caricato | `plugin.json` non valido | Eseguire `claude plugin validate ./my-plugin` o `/plugin validate ./my-plugin`, dove `./my-plugin` è la directory del plugin, per controllare `plugin.json`, `hooks/hooks.json` e il frontmatter delle skill, degli agent e dei comandi nelle directory predefinite del plugin per errori di sintassi e schema. Vedere [Validate a plugin or a directory without a manifest](/docs/it/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) per informazioni su cosa copre un'esecuzione |

1531| Skill non visualizzate | Struttura di directory errata | Assicurarsi che `skills/` o `commands/` sia nella radice del plugin, non dentro `.claude-plugin/` |

1532| Hook non attivati | Script non eseguibile | Eseguire `chmod +x script.sh` |

1533| Server MCP non funziona | `${CLAUDE_PLUGIN_ROOT}` mancante | Utilizzare la variabile per tutti i percorsi dei plugin |

1534| Errori di percorso | Percorsi assoluti utilizzati | Rendere i percorsi relativi, iniziando con `./`; vedere [Path behavior rules](#path-behavior-rules), che coprono l'eccezione `"."` del campo `skills` |

1535| LSP `Executable not found in $PATH` | Language server non installato | Installare il binario (ad es., `npm install -g typescript-language-server typescript`) |

1536 

1537<h3 id="example-error-messages">

1538 Messaggi di errore di esempio

1539</h3>

1540 

1541**Errori di convalida del manifest**:

1542 

1543* `Invalid JSON syntax: Unexpected token } in JSON at position 142`: controllare la presenza di virgole mancanti, virgole extra o stringhe non quotate

1544* `Plugin <name> has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Invalid input: expected string, received undefined`: un campo obbligatorio è mancante

1545* `Plugin <name> has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...`: errore di sintassi JSON. Prima della versione 2.1.246, Claude Code produceva anche questo errore per un `plugin.json` salvato come UTF-8 con un byte order mark (BOM) iniziale, anche quando il JSON era altrimenti valido.

1546 

1547**Errori di caricamento del plugin**:

1548 

1549* `Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.`: il percorso del comando esiste ma non contiene file di comando validi

1550* `Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.`: il percorso `source` in marketplace.json punta a una directory inesistente

1551* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`: rimuovere le definizioni di componenti duplicate o rimuovere `strict: false` nella voce del marketplace

1552 

1553<h3 id="hook-troubleshooting">

1554 Risoluzione dei problemi degli hook

1555</h3>

1556 

1557**Script hook non in esecuzione**:

1558 

15591. Verificare che lo script sia eseguibile: `chmod +x ./scripts/your-script.sh`

15602. Verificare la riga shebang: La prima riga deve essere `#!/bin/bash` o `#!/usr/bin/env bash`

15613. Verificare che il percorso utilizzi `${CLAUDE_PLUGIN_ROOT}`: `"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/your-script.sh"`

15624. Testare lo script manualmente: `./scripts/your-script.sh`

1563 

1564**Hook non attivato su eventi previsti**:

1565 

15661. Verificare che il nome dell'evento sia corretto (sensibile alle maiuscole): `PostToolUse`, non `postToolUse`

15672. Verificare che il pattern del matcher corrisponda ai vostri strumenti: `"matcher": "Write|Edit"` per le operazioni su file

15683. Confermare che il tipo di hook sia valido: `command`, `http`, `mcp_tool`, `prompt` o `agent`

1569 

1570<h3 id="mcp-server-troubleshooting">

1571 Risoluzione dei problemi del server MCP

1572</h3>

1573 

1574**Server non avviato**:

1575 

15761. Verificare che il comando esista e sia eseguibile

15772. Verificare che tutti i percorsi utilizzino la variabile `${CLAUDE_PLUGIN_ROOT}`

15783. Controllare i log del server MCP: `claude --debug` mostra gli errori di inizializzazione

15794. Testare il server manualmente al di fuori di Claude Code

1580 

1581**Strumenti del server non visualizzati**:

1582 

15831. Assicurarsi che il server sia configurato correttamente in `.mcp.json` o `plugin.json`

15842. Verificare che il server implementi correttamente il protocollo MCP

15853. Controllare i timeout di connessione nell'output di debug

1586 

1587<h3 id="directory-structure-mistakes">

1588 Errori di struttura della directory

1589</h3>

1590 

1591**Sintomi**: Il plugin viene caricato ma i componenti (skill, agent, hook) sono mancanti.

1592 

1593**Struttura corretta**: I componenti devono essere nella radice del plugin, non dentro `.claude-plugin/`. Solo `plugin.json` appartiene a `.claude-plugin/`.

1594 

1595**Elenco di controllo del debug**:

1596 

15971. Eseguire `claude --debug` e cercare i messaggi "loading plugin"

15982. Verificare che ogni directory di componenti sia elencata nell'output di debug

15993. Verificare che i permessi dei file consentano la lettura dei file del plugin

1600 

1601***

1602 

1603<h2 id="distribution-and-versioning-reference">

1604 Riferimento di distribuzione e versioning

1605</h2>

1606 

1607<h3 id="version-management">

1608 Gestione delle versioni

1609</h3>

1610 

1611Claude Code utilizza la versione del plugin come chiave di cache che determina se un aggiornamento è disponibile. Quando esegui `/plugin update` o l'aggiornamento automatico si attiva, Claude Code calcola la versione corrente e salta l'aggiornamento se corrisponde a quella già installata. Un plugin [caricato in place](#plugin-caching-and-file-resolution) da un marketplace di directory locale carica i suoi file sorgente correnti all'inizio di ogni sessione, indipendentemente da ciò che dice la sua stringa di versione.

1612 

1613Per ogni tipo di sorgente eccetto `command`, Claude Code risolve la versione dal primo di questi che è impostato:

1614 

16151. Il campo `version` nel `plugin.json` del plugin

16162. Il campo `version` nella voce del plugin nel marketplace in `marketplace.json`

16173. Lo SHA del commit git della sorgente del plugin, per le sorgenti `github`, `url`, `git-subdir` e relative-path in un marketplace ospitato su git

16184. Il digest SHA-256, per le [sorgenti `archive`](/docs/it/plugin-marketplaces#zip-archives): il pin `sha256` nella voce del marketplace, o il digest del file scaricato quando non imposti alcun pin. Claude Code lo accorcia ai primi 12 caratteri

16195. `unknown`, per le sorgenti `npm` o le directory locali quando né la directory del plugin né il suo marketplace è un repository git. Claude Code non prende la versione da un repository che racchiude il percorso di installazione, come un `~/.claude` gestito da git

1620 

1621Per una [sorgente `command`](/docs/it/plugin-marketplaces#command-sources), Claude Code deriva sempre la versione da ciò che il comando ha prodotto: un hash di contenuto di 12 caratteri da solo, o aggiunto alla versione `plugin.json` come `<version>-<hash>` quando uno è impostato. Claude Code ignora il campo `version` della voce del marketplace per le sorgenti command. Un comando il cui output con hash cambia produce quindi una nuova versione, anche quando la stringa di versione creata rimane la stessa. In [link mode](/docs/it/plugin-marketplaces#copy-mode-and-link-mode), l'hash copre il percorso reale della directory stampata e le sue voci di primo livello piuttosto che i contenuti dei file.

1622 

1623Per questi tipi di sorgente, questo ti dà tre modi per versioning di un plugin:

1624 

1625| Approccio | Come | Comportamento dell'aggiornamento | Migliore per |

1626| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------- |

1627| **Versione esplicita** | Imposta `"version": "2.1.0"` in `plugin.json` | Gli utenti ricevono aggiornamenti solo quando aumenti questo campo. Spingere nuovi commit senza aumentarlo non ha effetto, e `/plugin update` segnala "already at the latest version". Per un plugin [caricato in place](#plugin-caching-and-file-resolution), il nuovo contenuto si carica comunque. | Plugin pubblicati con cicli di rilascio stabili |

1628| **Versione Commit-SHA** | Ometti `version` sia da `plugin.json` che dalla voce del marketplace | Gli utenti ricevono aggiornamenti ogni volta che il commit risolto della sorgente cambia | Plugin interni o di team in sviluppo attivo |

1629| **Versione Digest** | Utilizza una [sorgente `archive`](/docs/it/plugin-marketplaces#zip-archives) e ometti `version` sia da `plugin.json` che dalla voce del marketplace | Con un pin `sha256`, gli utenti ricevono aggiornamenti quando cambi il pin. Senza uno, gli utenti ricevono aggiornamenti ogni volta che i byte del file zip ospitato cambiano | Plugin pubblicati come file zip su un server statico o repository di artefatti |

1630 

1631Se utilizzi versioni esplicite, segui il [semantic versioning](https://semver.org) (`MAJOR.MINOR.PATCH`): aumenta MAJOR per i cambiamenti che rompono la compatibilità, MINOR per le nuove funzionalità, PATCH per le correzioni di bug. Documenta i cambiamenti in un `CHANGELOG.md`.

1632 

1633***

1634 

1635<h2 id="see-also">

1636 Vedi anche

1637</h2>

1638 

1639* [Plugin](/docs/it/plugins) - Tutorial e utilizzo pratico

1640* [Marketplace dei plugin](/docs/it/plugin-marketplaces) - Creazione e gestione dei marketplace

1641* [Skills](/docs/it/skills) - Dettagli dello sviluppo delle skill

1642* [Subagents](/docs/it/sub-agents) - Configurazione e capacità dell'agent

1643* [Hooks](/docs/it/hooks) - Gestione degli eventi e automazione

1644* [MCP](/docs/it/mcp) - Integrazione di strumenti esterni

1645* [Impostazioni](/docs/it/settings) - Opzioni di configurazione per i plugin

plugins/cli-hints.md +136 −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# Consiglia il tuo plugin dalla tua CLI

6 

7> Invita gli utenti di Claude Code a installare il tuo plugin del marketplace ufficiale emettendo un tag claude-code-hint dalla tua CLI o SDK.

8 

9Se gestisci una CLI o un SDK, il tuo strumento può invitare gli utenti di Claude Code a installare il tuo plugin. Quando la tua CLI rileva che è in esecuzione all'interno di Claude Code, fai in modo che scriva un tag `<claude-code-hint />` su una singola riga verso stderr. Claude Code rimuove la riga dall'output dello strumento Bash e PowerShell prima che il modello veda l'output, quindi mostra all'utente un prompt di installazione una sola volta.

10 

11Questa pagina si applica solo se il tuo plugin è elencato in `claude-plugins-official` o in un altro marketplace con uno dei [nomi ufficiali del marketplace](/docs/it/plugins/security#official-marketplace-names) di Anthropic. Il marketplace della comunità, `claude-community`, non è uno di questi.

12 

13<Note>

14 Per pubblicare un plugin, vedi [Pubblica e distribuisci un plugin](/docs/it/plugins/publish).

15</Note>

16 

17<h2 id="emit-the-hint">

18 Emetti l'hint

19</h2>

20 

21Emetti il tag solo quando `CLAUDECODE` o `CLAUDE_CODE_CHILD_SESSION` è impostato, in modo che non appaia quando una persona esegue la tua CLI direttamente.

22 

23Claude Code imposta `CLAUDECODE=1` nei comandi che esegue attraverso gli strumenti Bash e PowerShell e nei comandi hook. Dalla versione 2.1.172 in poi imposta anche `CLAUDE_CODE_CHILD_SESSION=1` lì. Le variabili differiscono nei processi che le portano:

24 

25* **`CLAUDECODE`**: impostato da ogni versione di Claude Code. Le estensioni IDE lo impostano anche nei loro terminali integrati, quindi un gate su `CLAUDECODE` da solo emette il tag anche quando una persona esegue la tua CLI direttamente in uno di questi terminali

26* **`CLAUDE_CODE_CHILD_SESSION`**: impostato solo nei sottoprocessi che Claude Code stesso avvia. Usalo quando puoi richiedere la versione 2.1.172 o successiva

27 

28Il [riferimento delle variabili di ambiente](/docs/it/env-vars) contiene i dettagli.

29 

30I seguenti esempi usano un gate su `CLAUDECODE` per la massima portata ed emettono un hint per un plugin denominato `example-cli` nel marketplace ufficiale:

31 

32<CodeGroup>

33 ```javascript Node.js theme={null}

34 if (process.env.CLAUDECODE) {

35 process.stderr.write(

36 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />\n',

37 )

38 }

39 ```

40 

41 ```python Python theme={null}

42 import os, sys

43 

44 if os.environ.get("CLAUDECODE"):

45 print(

46 '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />',

47 file=sys.stderr,

48 )

49 ```

50 

51 ```go Go theme={null}

52 if os.Getenv("CLAUDECODE") != "" {

53 fmt.Fprintln(os.Stderr,

54 `<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />`)

55 }

56 ```

57 

58 ```shell Shell theme={null}

59 if [ -n "$CLAUDECODE" ]; then

60 printf '%s\n' '<claude-code-hint v="1" type="plugin" value="example-cli@claude-plugins-official" />' >&2

61 fi

62 ```

63</CodeGroup>

64 

65Sostituisci `example-cli` con il nome del tuo plugin nel marketplace ufficiale.

66 

67Puoi emettere l'hint ad ogni invocazione, perché Claude Code chiede per ogni plugin una sola volta.

68 

69Per verificare l'emettitore, esegui `CLAUDECODE=1 example-cli` in un terminale e conferma che la riga del tag appaia su stderr, quindi esegui `example-cli` senza la variabile e conferma che non stampi nulla di extra.

70 

71<h2 id="hint-format">

72 Formato dell'hint

73</h2>

74 

75Il tag deve occupare la sua propria riga; Claude Code ignora un tag incorporato a metà riga.

76 

77Il tag accetta tre attributi, tutti obbligatori:

78 

79| Attributo | Descrizione |

80| :-------- | :------------------------------------------------------- |

81| `v` | Versione del protocollo. `1` è l'unico valore supportato |

82| `type` | Tipo di hint. `plugin` è l'unico valore supportato |

83| `value` | Identificatore del plugin nella forma `name@marketplace` |

84 

85I valori possono essere tra virgolette doppie o senza virgolette; un valore senza virgolette non può contenere spazi.

86 

87Claude Code rimuove la riga dall'output anche quando `v` o `type` non è riconosciuto.

88 

89<h2 id="check-when-the-prompt-appears">

90 Verifica quando appare il prompt

91</h2>

92 

93Il prompt appare solo nelle sessioni di terminale interattive. Nelle esecuzioni `claude -p`, nelle esecuzioni di subagent e nell'output dei comandi hook, il tag viene rimosso e nessun prompt viene mostrato. Tutti questi controlli devono anche passare:

94 

95* **Ufficiale e installabile**: `value` nomina un plugin che Claude Code trova nella sua copia locale di un marketplace ufficiale, che non è già installato e che nessuna policy blocca

96* **Analytics attivato**: una sessione in cui gli analytics di Claude Code sono disattivati non chiede mai, ad esempio una con `DISABLE_TELEMETRY`, `DO_NOT_TRACK` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` impostato, o una su un provider di terze parti come Amazon Bedrock, dove si applica l'[opt-out automatico della telemetria](/docs/it/data-usage#default-behaviors-by-api-provider)

97* **Limiti di frequenza**: un prompt per sessione, un prompt mai per plugin indipendentemente dalla risposta dell'utente, e nessuno una volta che 100 plugin sono stati richiesti su quella macchina

98* **Non disattivato**: l'utente non ha scelto **No, e non mostrare più gli hint di installazione dei plugin**

99* **Sessione locale e presidiata**: lo spazio di lavoro della sessione è locale piuttosto che su una macchina cloud o remota, e la sessione non è in esecuzione incustodita. Ad esempio, una sessione avviata con `--cloud`, una che serve Remote Control, o un compagno di squadra agent-team non chiede mai

100 

101<h2 id="preview-what-the-user-sees">

102 Anteprima di ciò che vede l'utente

103</h2>

104 

105Quando i controlli in [Verifica quando appare il prompt](#check-when-the-prompt-appears) passano, Claude Code mostra una finestra di dialogo **Plugin recommendation** come la seguente:

106 

107```text theme={null}

108─────────────────────────────────────────────────────────────

109 Plugin recommendation

110 

111 The example-cli command suggests installing a plugin.

112 

113 Plugin: example-cli

114 Marketplace: claude-plugins-official

115 Description: Official integration for example-cli deployments

116 

117 Would you like to install it?

118 ❯ 1. Yes, install

119 2. No

120 3. No, and don't show plugin installation hints again

121 

122─────────────────────────────────────────────────────────────

123```

124 

125La finestra di dialogo nomina la prima parola del comando shell che Claude ha eseguito, in modo che gli utenti possano individuare una mancata corrispondenza. Ogni risposta ha un effetto:

126 

127* **Yes, install**: installa il plugin a [user scope](/docs/it/plugins/install)

128* **No, and don't show plugin installation hints again**: disattiva i futuri prompt di hint per quell'utente

129* **Nessuna risposta per 30 secondi**: conta come **No**

130 

131<h2 id="next-steps">

132 Passaggi successivi

133</h2>

134 

135* [Pubblica e distribuisci un plugin](/docs/it/plugins/publish): i percorsi in ogni marketplace, incluso il marketplace ufficiale, che l'hint richiede

136* [Riferimento dei comandi dei plugin](/docs/it/plugins/cli-reference#plugin-install): il comando shell che installa lo stesso plugin al di fuori di una sessione

plugins/cli-reference.md +841 −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# Riferimento comandi plugin

6 

7> Riferimento completo per i comandi shell del plugin claude, /plugin e /reload-plugins in una sessione, e i flag che caricano un plugin per una sola sessione.

8 

9Esegui i comandi plugin come `claude plugin` dalla tua shell o da uno script, oppure come `/plugin` e `/reload-plugins` all'interno di una sessione Claude Code. Questo riferimento fornisce i flag, i valori predefiniti, l'output e i codici di uscita di ogni comando, insieme ai due flag che caricano un plugin per una sola sessione.

10 

11Esegui `claude plugin --help` sulla tua build per confermare quali sottocomandi ha la tua versione.

12 

13<Note>

14 Questi casi sono trattati su altre pagine:

15 

16 * **Installa e gestisci i passaggi, e dove `/plugin` viene eseguito**: vedi [Installa e gestisci i plugin](/docs/it/plugins/install)

17 * **Cosa un comando cambia su disco e quale ambito ha la precedenza**: vedi [Riferimento caricamento plugin](/docs/it/plugins/loading)

18 * **Cosa significa un messaggio di errore**: vedi [Risolvi i problemi dei plugin](/docs/it/plugins/troubleshooting)

19</Note>

20 

21<h2 id="claude-plugin-commands">

22 Comandi claude plugin

23</h2>

24 

25Esegui `claude plugin <subcommand>` dalla tua shell o da uno script, al di fuori di una sessione Claude Code. Questi sottocomandi installano e gestiscono i plugin senza aprire il pannello [`/plugin`](#plugin-in-a-session).

26 

27`claude plugins` è un alias per `claude plugin`.

28 

29Ogni sottocomando condivide questi codici di uscita, argomenti plugin e valori di ambito:

30 

31* **Codici di uscita**: `0` in caso di successo e `1` in caso di errore. `validate` aggiunge l'uscita `2` per un errore inaspettato, e `eval` aggiunge i codici elencati nella [sua sezione](#plugin-eval).

32* **Argomenti plugin**: un argomento `<plugin>` è un plugin `name` o `name@marketplace`. Quando due marketplace offrono lo stesso nome, usa la forma qualificata.

33* **Ambiti**: `--scope` accetta `user`, `project` o `local`, e nomina il file di impostazioni in cui il comando scrive. `update` accetta anche `managed`.

34 

35<h3 id="plugin-init">

36 plugin init

37</h3>

38 

39Crea lo scaffolding di un nuovo plugin in `~/.claude/skills/<name>/`. Si carica nella tua prossima sessione come `<name>@skills-dir` senza alcun passaggio di installazione.

40 

41`new` è un alias per `init`.

42 

43Per il flusso di lavoro di creazione, test e modifica che inizia con questo comando, vedi [Crea un plugin](/docs/it/plugins/create).

44 

45```bash theme={null}

46claude plugin init <name> [options]

47```

48 

49`<name>` diventa il nome della directory sotto `~/.claude/skills/` e il `name` del plugin nel suo manifest.

50 

51Il comando non ha un flag per un'altra posizione. Per creare lo scaffolding all'interno di un progetto, vedi [Crea un plugin](/docs/it/plugins/create).

52 

53| Flag | Descrizione |

54| :----------------------- | :------------------------------------------------------------------------------------------------ |

55| `--description <text>` | Descrizione del manifest |

56| `--author <name>` | Nome dell'autore. Predefinito a `git config user.name` |

57| `--author-email <email>` | Email dell'autore. Predefinito a `git config user.email` |

58| `--with <components...>` | Crea anche file starter per `skills`, `agents`, `hooks`, `mcp`, `lsp`, `output-style` o `channel` |

59| `-f, --force` | Sovrascrivi un `.claude-plugin/` esistente al target |

60 

61Crea lo scaffolding di un plugin con file skill e hook starter:

62 

63```bash theme={null}

64claude plugin init my-helper --with skills hooks

65```

66 

67Claude Code convalida ciò che ha scritto e stampa `Created plugin "my-helper" at ~/.claude/skills/my-helper`, seguito dall'id con cui si carica e dal comando `claude plugin disable` che lo disattiva.

68 

69Claude Code esce con `1` senza scrivere quando non può creare lo scaffolding in sicurezza, e il messaggio nomina il motivo. Questi sono motivi comuni:

70 

71* Un valore `--with` sconosciuto

72* Uno scaffolding esistente al target senza `--force`

73* Un'impostazione gestita che blocca i plugin della directory skills

74 

75<h3 id="plugin-install">

76 plugin install

77</h3>

78 

79Installa un plugin da un marketplace che hai aggiunto. `i` è un alias per `install`.

80 

81```bash theme={null}

82claude plugin install <plugin> [options]

83```

84 

85La maggior parte dei plugin si installa senza un prompt. Per un plugin il cui entry del marketplace [esegue un comando per installarlo](/docs/it/plugins/host-marketplace) o [imposta un `headersHelper` per il suo download](/docs/it/plugins/host-marketplace#how-users-accept-a-headershelper-command), Claude Code prima stampa il comando e chiede `Run this command now? [y/N]`.

86 

87| Flag | Descrizione |

88| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

89| `-s, --scope <scope>` | Ambito di installazione: `user`, `project` o `local`. Predefinito a `user` |

90| `--config <key=value>` | Imposta un'opzione [`userConfig`](/docs/it/plugins/manifest-reference) che il manifest del plugin dichiara. Ripeti il flag per ogni opzione. Richiede Claude Code v2.1.147 o successivo |

91| `-y, --yes` | Accetta il comando di installazione visualizzato senza il prompt `Run this command now?`. Ignorato quando il comando viene eseguito all'interno di una sessione Claude Code, ad esempio dallo strumento Bash o da un hook. Richiede Claude Code v2.1.229 o successivo |

92| `--accept-command <sha256>` | Accetta il comando di installazione visualizzato il cui `sha256` un'esecuzione precedente [`--json`](#plugin-json-result) ha riportato in `shownCommand`, al posto di `-y`. Non può essere combinato con `-y`. Vedi [Accetta un comando di installazione visualizzato](#accept-a-displayed-install-command). Richiede Claude Code v2.1.271 o successivo |

93| `--json` | Stampa il risultato come un oggetto JSON sull'ultima riga di stdout invece del messaggio leggibile, per l'uso negli script. Vedi [Formato risultato JSON](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo |

94 

95Passa `-y` dal tuo terminale per accettare il comando visualizzato senza il prompt. Ecco cosa succede senza un TTY e quando Claude esegue il comando:

96 

97* **stdin o stdout non è un TTY, e non passi né `-y` né `--accept-command`**: l'installazione viene rifiutata. L'output dice che il comando è stato solo visualizzato, e il codice di uscita è `1`

98* **Claude esegue il comando attraverso il suo strumento Bash**: `-y` viene ignorato. Esegui il comando dal tuo terminale invece

99 

100Installa un plugin per tutti coloro che clonano il progetto:

101 

102```bash theme={null}

103claude plugin install formatter@my-marketplace --scope project

104```

105 

106Claude Code stampa `Successfully installed plugin: formatter@my-marketplace (scope: project)`. Quando nulla di nuovo viene installato, l'output dice perché:

107 

108* **Già installato a quell'ambito**: l'output è `Plugin "formatter@my-marketplace" is already installed (scope: project)` e il codice di uscita è `0`

109* **Rifiuti un prompt di origine comando**: l'output è `Aborted.` e il codice di uscita è `1`

110* **Rifiuti un prompt `headersHelper`, o non può essere confermato senza un TTY**: l'output è `Aborted — the command was not run.` e il codice di uscita è `1`

111 

112<h4 id="plugin-json-result">

113 Formato risultato JSON

114</h4>

115 

116Quando passi `--json` a `plugin install`, l'ultima riga di stdout è un oggetto JSON. Analizza solo quella riga, perché Claude Code stampa qualsiasi comando che il marketplace dichiara prima di essa.

117 

118Tre campi sono sempre presenti:

119 

120* `command`: il sottocomando che è stato eseguito, ad esempio `install`

121* `outcome`: `ok` o `failed`

122* `message`: una descrizione leggibile del risultato

123 

124Altri campi, come `pluginId`, `scope` e `failureCode`, appaiono solo quando si applicano.

125 

126Un errore di utilizzo, come uno `--scope` non valido, non stampa alcuna riga di risultato ed esce con `1` con il motivo su stderr.

127 

128<h4 id="accept-a-displayed-install-command">

129 Accetta un comando di installazione visualizzato

130</h4>

131 

132Quando un'esecuzione `--json` visualizza un comando dichiarato dal marketplace e non lo esegue, il risultato `failed` porta anche un oggetto `shownCommand`. I suoi campi includono il comando come visualizzato, il plugin a cui appartiene, e lo `sha256` del comando.

133 

134Per accettare esattamente quel comando, esegui di nuovo con quello `sha256` come `--accept-command` dal tuo terminale, perché il flag non ha effetto all'interno di una sessione Claude Code. Richiede Claude Code v2.1.271 o successivo.

135 

136Lo `sha256` conta come accettazione per esattamente quel comando, plugin e catalogo marketplace. Se uno di essi è cambiato dal momento in cui il comando è stato visualizzato, Claude Code non accetta lo `sha256` e mostra di nuovo il comando. Un cambiamento che l'aggiornamento del marketplace della stessa esecuzione recupera conta anche come tale cambiamento.

137 

138Se `shownCommand.acceptCommandMatched` è `false`, lo `sha256` che hai passato non corrisponde al comando ora visualizzato. Rivedi quel comando prima di eseguire di nuovo con il suo `sha256`.

139 

140<h3 id="plugin-uninstall">

141 plugin uninstall

142</h3>

143 

144Rimuovi un plugin installato da un ambito. `remove` e `rm` sono alias per `uninstall`.

145 

146```bash theme={null}

147claude plugin uninstall <plugin> [options]

148```

149 

150| Flag | Descrizione |

151| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

152| `-s, --scope <scope>` | Disinstalla dall'ambito: `user`, `project` o `local`. Predefinito a `user` |

153| `--keep-data` | Preserva la directory di dati persistenti del plugin, `~/.claude/plugins/data/<id>/` |

154| `--prune` | Rimuovi anche le [dipendenze](/docs/it/plugins/dependencies) auto-installate che nessun plugin rimanente necessita |

155| `-y, --yes` | Salta il prompt di conferma `--prune`. Richiesto con `--prune` quando stdin o stdout non è un TTY |

156| `--json` | Stampa il risultato come un oggetto JSON sull'ultima riga di stdout, nello [stesso formato di `plugin install --json`](#plugin-json-result). Non può essere combinato con `--prune`. Richiede Claude Code v2.1.268 o successivo |

157 

158Disinstalla un plugin dall'ambito del progetto:

159 

160```bash theme={null}

161claude plugin uninstall formatter@my-marketplace --scope project

162```

163 

164Claude Code stampa `Successfully uninstalled plugin: formatter (scope: project)`. Quando il plugin non è installato a quell'ambito, il comando stampa una riga che inizia con `Failed to uninstall plugin "formatter@my-marketplace":` ed esce con `1`.

165 

166<h3 id="plugin-enable">

167 plugin enable

168</h3>

169 

170Abilita un plugin disabilitato. Per un [plugin sincronizzato da claude.ai](/docs/it/plugins/loading#synced-plugins), passa `<name>@synced` come plugin.

171 

172```bash theme={null}

173claude plugin enable <plugin> [options]

174```

175 

176| Flag | Descrizione |

177| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

178| `-s, --scope <scope>` | Ambito in cui abilitare: `user`, `project` o `local`. Auto-rilevato quando omesso |

179| `--json` | Stampa il risultato come un oggetto JSON sull'ultima riga di stdout, nello [stesso formato di `plugin install --json`](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo |

180 

181Senza `--scope`, il comando controlla i tuoi file di impostazioni nell'ordine local, project, user, e usa il primo ambito che menziona il plugin.

182 

183Se passi uno `--scope` dove il plugin non è dichiarato, il comando scrive un override o fallisce:

184 

185* **Un ambito che [ha precedenza](/docs/it/plugins/loading) su quello dichiarante**: Claude Code scrive un override all'ambito che hai passato. Ad esempio, `claude plugin disable formatter --scope local` disattiva un plugin abilitato a livello di progetto solo per te

186* **Qualsiasi altro ambito**: il comando fallisce con `Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.`

187 

188Se il plugin è già abilitato all'ambito risolto, il comando stampa `Plugin "formatter" is already enabled` ed esce con `1`. Con `--json`, il risultato ha `"failureCode": "already_in_goal_state"` e `"alreadyInGoalState": true`, quindi uno script può trattare quel caso come successo.

189 

190Quando il plugin dichiara [dipendenze](/docs/it/plugins/dependencies), Claude Code le abilita anche. Il comando fallisce in questi casi:

191 

192* **Una dipendenza non è installata**: enable fallisce e stampa il comando `claude plugin install` per ogni dipendenza mancante

193* **Una dipendenza è bloccata dalla politica dei plugin della tua organizzazione**: enable fallisce e nomina la dipendenza bloccata

194* **Una dipendenza è impostata a `false` a un ambito con precedenza più alta dell'ambito target**: enable fallisce. Abilita la dipendenza a quell'ambito, o passa `--scope` per scrivere lì

195 

196Riabilita un plugin ovunque sia dichiarato:

197 

198```bash theme={null}

199claude plugin enable formatter

200```

201 

202Claude Code stampa `Successfully enabled plugin: formatter (scope: project)`, nominando l'ambito che ha rilevato.

203 

204<h3 id="plugin-disable">

205 plugin disable

206</h3>

207 

208Disabilita un plugin senza disinstallarlo. Per un [plugin sincronizzato da claude.ai](/docs/it/plugins/loading#synced-plugins), passa `<name>@synced` come plugin.

209 

210```bash theme={null}

211claude plugin disable [plugin] [options]

212```

213 

214| Flag | Descrizione |

215| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

216| `-a, --all` | Disabilita ogni plugin abilitato. Non può essere combinato con un nome di plugin o `--scope` |

217| `-s, --scope <scope>` | Ambito in cui disabilitare: `user`, `project` o `local`. Auto-rilevato quando omesso |

218| `--json` | Stampa il risultato come un oggetto JSON sull'ultima riga di stdout, nello [stesso formato di `plugin install --json`](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo |

219 

220Senza `--scope`, l'ambito è auto-rilevato nello stesso ordine local, project, user di [`plugin enable`](#plugin-enable).

221 

222Se non passi né un nome di plugin né `--all`, Claude Code stampa `Please specify a plugin name or use --all to disable all plugins` ed esce con `1`. Disabilitare un plugin che è già disabilitato stampa `Plugin "formatter" is already disabled` ed esce con `1`, come [`plugin enable`](#plugin-enable) fa per un plugin già abilitato.

223 

224Il comando fallisce per un plugin che è ancora richiesto:

225 

226* **Un altro plugin abilitato [dipende da](/docs/it/plugins/dependencies) esso**: il comando fallisce e nomina i dipendenti da disabilitare prima

227* **La tua organizzazione lo richiede come plugin sincronizzato**: il comando fallisce e non salva nulla

228 

229Disabilita un plugin:

230 

231```bash theme={null}

232claude plugin disable formatter

233```

234 

235Claude Code stampa `Successfully disabled plugin: formatter (scope: project)`.

236 

237<h3 id="plugin-update">

238 plugin update

239</h3>

240 

241Aggiorna un plugin all'ultima versione che il suo marketplace offre. La nuova versione si carica nella tua prossima sessione, o dopo che esegui `/reload-plugins` in una sessione in esecuzione.

242 

243```bash theme={null}

244claude plugin update <plugin> [options]

245```

246 

247| Flag | Descrizione |

248| :-------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

249| `-s, --scope <scope>` | Ambito da aggiornare: `user`, `project`, `local` o `managed`. Predefinito all'ambito in cui il plugin è installato |

250| `-y, --yes` | Accetta un comando di installazione modificato da un plugin [command-source](/docs/it/plugins/host-marketplace), senza il prompt. Richiesto quando stdin o stdout non è un TTY, a meno che non passi `--accept-command`. Richiede Claude Code v2.1.229 o successivo |

251| `--accept-command <sha256>` | Accetta il comando dichiarato dal marketplace il cui `sha256` un'esecuzione precedente [`--json`](#plugin-json-result) ha riportato in `shownCommand`, al posto di `-y`. Non può essere combinato con `-y`. Richiede Claude Code v2.1.271 o successivo |

252| `--json` | Stampa il risultato come un oggetto JSON sull'ultima riga di stdout, nello [stesso formato di `plugin install --json`](#plugin-json-result). Richiede Claude Code v2.1.268 o successivo |

253 

254`managed` è l'unico ambito che puoi aggiornare ma non installare. Per i plugin installati dall'amministratore, vedi [Gestisci i plugin per la tua organizzazione](/docs/it/plugins/org).

255 

256Aggiorna un plugin:

257 

258```bash theme={null}

259claude plugin update formatter@my-marketplace

260```

261 

262Claude Code stampa `Checking for updates for plugin "formatter@my-marketplace"…`, poi il risultato. Quando nulla è più recente, stampa `formatter is already at the latest version (1.0.0).` ed esce con `0`.

263 

264Puoi passare un nome di plugin semplice, che il comando abbina ai tuoi plugin installati. Quando i plugin installati da diversi marketplace condividono il nome, il comando rifiuta l'aggiornamento ed elenca i comandi `plugin-name@marketplace-name` qualificati da eseguire invece. L'aggiornamento per nome semplice richiede Claude Code v2.1.246 o successivo.

265 

266<h3 id="plugin-list">

267 plugin list

268</h3>

269 

270Elenca i plugin installati con la loro versione, ambito e stato.

271 

272```bash theme={null}

273claude plugin list [options]

274```

275 

276| Flag | Descrizione |

277| :------------ | :--------------------------------------------------------------------------------------------------------- |

278| `--json` | Stampa l'elenco come JSON |

279| `--available` | Elenca anche i plugin che i tuoi marketplace offrono che non hai installato. Non ha effetto senza `--json` |

280 

281Claude Code raggruppa l'output leggibile per come ogni plugin si carica:

282 

283* **`Installed plugins:`**: plugin che hai installato da un marketplace

284* **`Session-only plugins (--plugin-dir / --plugin-url):`**: plugin caricati da quei flag nello stesso comando, come in `claude --plugin-dir ./my-plugin plugin list`

285* **`Skills-directory plugins (.claude/skills/*):`**: plugin che Claude Code ha trovato in una directory skills

286* **`Synced from claude.ai`**: [plugin sincronizzati dal tuo account claude.ai](/docs/it/plugins/loading#synced-plugins)

287 

288Con nulla in nessun gruppo, Claude Code stampa ``No plugins installed. Use `claude plugin install` to install a plugin.``

289 

290<h4 id="json-output">

291 Output JSON

292</h4>

293 

294Con `--json`, Claude Code stampa un array con un oggetto per installazione. Ogni oggetto porta i campi sottostanti. `id`, `version`, `scope`, `enabled` e `installPath` sono sempre presenti, e gli altri appaiono solo quando si applicano.

295 

296| Campo | Tipo | Descrizione |

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

298| `id` | string | `name@marketplace` per installazioni, `name@inline` per plugin solo sessione, `name@skills-dir` per plugin della directory skills, `name@synced` per plugin sincronizzati da claude.ai |

299| `version` | string | Per un'installazione marketplace, la [versione che Claude Code ha calcolato](/docs/it/plugins/loading#versions-and-updates) all'installazione. Per un plugin solo sessione, della directory skills o sincronizzato, il `version` del manifest, o `unknown` quando non ne dichiara uno |

300| `scope` | string | `user`, `project`, `local` o `managed` per installazioni; `user` o `project` per plugin della directory skills; `session` per plugin solo sessione; `synced` per plugin sincronizzati da claude.ai |

301| `enabled` | boolean | Se il plugin è abilitato nelle tue impostazioni unite |

302| `installPath` | string | Directory da cui il plugin si carica |

303| `installedAt` | string | Timestamp ISO dell'installazione. Solo installazioni marketplace |

304| `lastUpdated` | string | Timestamp ISO dell'ultimo aggiornamento. Solo installazioni marketplace |

305| `projectPath` | string | Progetto a cui appartiene l'installazione. Solo ambito `project` e `local` |

306| `mcpServers` | object | Le definizioni del server MCP del plugin, quando un plugin installato marketplace ne ha |

307| `errors` | array of strings | Errori di caricamento, quando il plugin non è riuscito a caricarsi |

308| `notes` | array of strings | Avvertimenti di authoring per un plugin che si è caricato e funziona |

309| `errorDetails` | array of objects | Un oggetto per voce `errors`, fornendo il suo `type` diagnostico e i nomi a cui si riferisce, come il plugin, marketplace, server o file. Richiede Claude Code v2.1.268 o successivo |

310| `noteDetails` | array of objects | Gli stessi oggetti di dettaglio per ogni voce `notes`. Richiede Claude Code v2.1.268 o successivo |

311 

312Con `--json --available`, Claude Code stampa un oggetto invece di un array. Il suo campo `installed` contiene l'array di oggetti plugin installati, e il suo campo `available` contiene un oggetto per plugin marketplace non installato con i campi sottostanti.

313 

314| Campo | Tipo | Descrizione |

315| :---------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------- |

316| `pluginId` | string | `name@marketplace` |

317| `name` | string | Il nome del plugin nel marketplace |

318| `marketplaceName` | string | Il marketplace che lo offre |

319| `source` | string or object | La [source](/docs/it/plugins/marketplace-reference) dell'entry del marketplace: una stringa per un percorso relativo, un oggetto altrimenti |

320| `description` | string | La descrizione dell'entry, quando ne ha una |

321| `version` | string | La versione dell'entry, quando ne dichiara una |

322| `installCount` | number | Conteggio delle installazioni, quando Claude Code ne ha uno per il plugin |

323 

324<h3 id="plugin-details">

325 plugin details

326</h3>

327 

328Mostra l'inventario dei componenti di un plugin e il suo costo token previsto.

329 

330Il plugin deve essere caricato: installato, trovato in una directory skills, o passato con `--plugin-dir` o `--plugin-url` nello stesso comando. Il `<name>` è un plugin `name` o `name@marketplace`.

331 

332```bash theme={null}

333claude plugin details <name>

334```

335 

336Il comando non accetta flag oltre a `--help`.

337 

338Mostra cosa contribuisce un plugin installato:

339 

340```bash theme={null}

341claude plugin details formatter

342```

343 

344Claude Code stampa il nome, la versione, la descrizione e la source del plugin, poi queste sezioni:

345 

346* **`Component inventory`**: le skills, gli agents, gli hooks, i server MCP e i server LSP del plugin

347* **`Projected token cost`**: i token sempre attivi che il plugin aggiunge a ogni sessione

348* **`Per-component (rounded)`**: stime sempre attive e on-invoke per ogni skill, agent e comando. Omesso quando il plugin non ne ha

349 

350Per cosa significano le due figure di costo, vedi [Misura il costo e l'utilizzo del plugin](/docs/it/plugins/measure).

351 

352Per un plugin che non è caricato, Claude Code stampa ``Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk.`` ed esce con `1`.

353 

354<h3 id="plugin-prune">

355 plugin prune

356</h3>

357 

358Rimuovi le [dipendenze](/docs/it/plugins/dependencies) auto-installate che nessun plugin installato necessita più. Il comando non rimuove mai un plugin che hai installato tu stesso. `autoremove` è un alias per `prune`.

359 

360```bash theme={null}

361claude plugin prune [options]

362```

363 

364| Flag | Descrizione |

365| :-------------------- | :------------------------------------------------------------------------ |

366| `-s, --scope <scope>` | Prune all'ambito: `user`, `project` o `local`. Predefinito a `user` |

367| `--dry-run` | Elenca cosa verrebbe rimosso senza rimuoverlo |

368| `-y, --yes` | Salta il prompt di conferma. Richiesto quando stdin o stdout non è un TTY |

369 

370Anteprima cosa un prune rimuoverebbe:

371 

372```bash theme={null}

373claude plugin prune --dry-run

374```

375 

376Claude Code elenca le dipendenze orfane e termina con `(dry run — nothing removed)`. Con nulla da rimuovere, stampa una riga che inizia con `Nothing to prune`.

377 

378Senza `--dry-run`, il comando rimuove le dipendenze orfane solo dopo che confermi al prompt o passi `-y`.

379 

380Il codice di uscita è `0` qualunque sia la tua risposta al prompt.

381 

382Cosa fa `prune` dipende dal fatto che un terminale sia collegato e se passi `-y`:

383 

384| Terminale e flag | Cosa succede |

385| :------------------------------ | :---------------------------------------------------------------------------------------------- |

386| Terminale interattivo, no `-y` | Elenca le dipendenze orfane e chiede `Remove? [y/N]` |

387| Qualsiasi terminale, `-y` | Le rimuove e stampa `Removed N auto-installed plugins: <names>` |

388| stdin o stdout non-TTY, no `-y` | Stampa l'elenco e ``Not a TTY — run `claude plugin prune -y` to remove.``, non rimuovendo nulla |

389 

390<h3 id="plugin-eval">

391 plugin eval

392</h3>

393 

394Esegui i [casi eval](/docs/it/plugin-evals) di un plugin e riporta i risultati valutati. Richiede Claude Code v2.1.269 o successivo.

395 

396Ogni caso è un prompt più grader. Claude Code lo esegue più volte in una sessione isolata con solo il plugin target caricato, e per impostazione predefinita anche senza il plugin in modo che il rapporto mostri la differenza.

397 

398Vedi [Testa i plugin con evals](/docs/it/plugin-evals) per il formato del caso, i grader, i risultati e l'utilizzo in CI.

399 

400```bash theme={null}

401claude plugin eval [target] [options]

402```

403 

404Il `target` opzionale predefinito è la directory corrente e accetta uno di questi moduli:

405 

406* Una directory plugin

407* Un singolo file `prompt.md` o `case.yaml`

408* Un plugin installato come `name` o `name@marketplace`

409* `name@skills-dir`

410 

411Metti il target prima di `--tag`, `--allow-tools` e `--json`. Ognuna di queste opzioni prende le parole che la seguono come suo valore, quindi un target scritto dopo una di esse viene letto come un tag, un nome di strumento o il percorso di output JSON invece che come target.

412 

413Questa tabella elenca le opzioni che la maggior parte delle esecuzioni usa. Esegui `claude plugin eval --help` per l'insieme completo, inclusi `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp` e `--verbose`.

414 

415| Opzione | Descrizione | Predefinito |

416| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------- |

417| `--runs <n>` | Esecuzioni per caso in ogni [arm](/docs/it/plugin-evals#compare-against-a-no-plugin-baseline) | Il `runs` di ogni caso, altrimenti 3 |

418| `-j, --concurrency <n>` | Sessioni di agent da eseguire contemporaneamente, da 1 a 8. Condividono il tuo limite di velocità | `1` |

419| `--model <model>` | Modello per l'agent in test | Il `model` di ogni caso, altrimenti `ANTHROPIC_MODEL` se impostato, altrimenti il predefinito di Claude Code |

420| `--judge-model <model>` | Modello per i grader `llm` e `baseline` | Un modello piccolo e veloce |

421| `--ablation <mode>` | `none` o `with-without`. Vedi [Confronta con una baseline senza plugin](/docs/it/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` quando un plugin si risolve, altrimenti `none` |

422| `--threshold <0..1>` | Esci con 1 se un caso qualsiasi punteggia sotto questo | `1.0` |

423| `--max-cost-usd <usd>` | Ferma prima della prossima esecuzione una volta che la spesa raggiunge questo, esci con 2 e riporta risultati parziali | Nessun limite |

424| `--allow-tools <tools...>` | Concedi strumenti oltre al set di sola lettura, come `Bash`, `Write`, `Edit` o `"mcp__plugin_<plugin>_<server>__*"`. Vedi [Concedi strumenti](/docs/it/plugin-evals#grant-tools) | |

425| `--scaffold` | Esegui lo [`scaffold_script`](/docs/it/plugin-evals#add-setup-or-history-with-case-yaml) di ogni caso | Off |

426| `--trust-plugin` | Salta il prompt di fiducia della prima esecuzione, per CI. Vedi [Cosa può accedere un'esecuzione](/docs/it/plugin-evals#security) | Off |

427| `--mocks <mode>` | `record` o `off`. Vedi [Mock dei server MCP](/docs/it/plugin-evals#mock-mcp-servers) | `record` |

428| `--eval-dir <dir>` | Directory sotto il plugin che contiene i casi | L'`experimental.evals` del manifest, altrimenti `evals` |

429| `--json [path]` | Stampa il [documento risultato](/docs/it/plugin-evals#json-result) su stdout, o scrivilo in un percorso `.json` | |

430| `--no-publish` | Mantieni il rapporto HTML locale | |

431 

432Il codice di uscita riporta come è terminata l'esecuzione. Per agire su di esso in una pipeline, vedi [Esegui evals in CI](/docs/it/plugin-evals#run-evals-in-ci).

433 

434| Codice di uscita | Significato |

435| :--------------- | :------------------------------------------------------------------------------- |

436| `0` | Ogni caso soddisfa la soglia |

437| `1` | Un caso fallito, un errore di caricamento o una directory plugin non attendibile |

438| `2` | Un'esecuzione parziale |

439| `130` | Interrotto |

440| `143` | Terminato |

441 

442<h3 id="plugin-eval-init">

443 plugin eval init

444</h3>

445 

446Crea una suite eval per il plugin nella directory corrente. Richiede Claude Code v2.1.269 o successivo. Vedi [Crea la tua prima suite eval](/docs/it/plugin-evals#create-your-first-eval-suite).

447 

448```bash theme={null}

449claude plugin eval init [name] [options]

450```

451 

452In un terminale, il comando apre una sessione Claude Code interattiva per un'intervista di authoring. Nell'intervista, Claude fa quanto segue:

453 

4541. Legge il plugin

4552. Ti chiede cosa dovrebbe fare bene

4563. Propone casi e grader

4574. Scrive i file dei casi

4585. Esegue i casi e rivede i voti con te per verificare che i grader puntino come faresti tu

459 

460Con `--bare`, o senza un terminale, il comando scrive un template di caso singolo vuoto. Quando Claude esegue il comando dall'interno di una sessione Claude Code, il comando stampa le istruzioni dell'intervista per quella sessione da seguire piuttosto che scrivere un template.

461 

462Il `name` opzionale è un nome di caso. È richiesto con `--bare` o senza un terminale, perché il comando scrive il template vuoto per quel caso. L'intervista non ne ha bisogno.

463 

464Il comando accetta queste opzioni:

465 

466| Opzione | Descrizione | Predefinito |

467| :------------------ | :----------------------------------------------------------------------------------------------- | :------------------------------------------------------ |

468| `--bare` | Scrivi un `prompt.md` e `graders/criteria.md` vuoti per `<name>` invece di eseguire l'intervista | |

469| `-i, --interactive` | Richiedi l'intervista. Fallisce senza un terminale invece di scrivere un template | |

470| `--eval-dir <dir>` | Directory sotto la directory corrente in cui scrivere i casi | L'`experimental.evals` del manifest, altrimenti `evals` |

471 

472<h3 id="plugin-tag">

473 plugin tag

474</h3>

475 

476Crea un tag git annotato denominato `<name>--v<version>` per un rilascio di plugin. Prima di taggare, il comando controlla che il `plugin.json` del plugin e qualsiasi entry del marketplace che lo elenca siano d'accordo sulla versione.

477 

478Per quando taggare un rilascio, vedi [Pubblica un plugin](/docs/it/plugins/publish).

479 

480```bash theme={null}

481claude plugin tag [path] [options]

482```

483 

484Il `[path]` è la directory del plugin, predefinito alla directory corrente. Il comando trova l'entry del marketplace camminando su da quella directory a un `.claude-plugin/marketplace.json` che elenca il plugin.

485 

486| Flag | Descrizione |

487| :-------------------- | :------------------------------------------------------------------------------------------- |

488| `--push` | Spingi il tag a `--remote` dopo averlo creato |

489| `--dry-run` | Stampa cosa verrebbe taggato senza creare il tag |

490| `-f, --force` | Salta i controlli dell'albero di lavoro sporco e del tag già esistente |

491| `-m, --message <msg>` | Messaggio di annotazione del tag. `%s` sta per la versione. Predefinito a `<name> <version>` |

492| `--remote <name>` | Remote a cui spingere con `--push`. Predefinito a `origin` |

493 

494Anteprima il tag per un plugin in un checkout marketplace:

495 

496```bash theme={null}

497claude plugin tag plugins/formatter --dry-run

498```

499 

500Claude Code stampa il piano:

501 

502* Il nome del plugin

503* La versione e da quale file proviene

504* L'entry del marketplace corrispondente, quando ce n'è uno

505* Il nome del tag

506* I comandi `git tag` e `git push` che eseguirebbe

507 

508Senza `--dry-run`, Claude Code stampa `Created tag formatter--v1.0.0` e sia `Pushed to origin` o il comando push da eseguire tu stesso. Se il push fallisce, il tag è ancora creato localmente e il comando esce con un errore.

509 

510Il comando esce con `1` e stampa il motivo quando non può taggare in sicurezza. I motivi comuni sono:

511 

512* Nessun `version` in `plugin.json` o nell'entry del marketplace

513* Il tag esiste già

514* L'albero di lavoro è sporco

515 

516<h3 id="plugin-validate">

517 plugin validate

518</h3>

519 

520Convalida un manifest plugin, un manifest marketplace, o le skills, gli agents e i comandi in una directory, ed esci con un codice su cui un lavoro CI può agire. Per il flusso di lavoro di creazione, test e modifica, vedi [Crea un plugin](/docs/it/plugins/create). Per cosa il validatore controlla in ogni manifest, vedi il [riferimento manifest plugin](/docs/it/plugins/manifest-reference) e il [riferimento marketplace](/docs/it/plugins/marketplace-reference).

521 

522```bash theme={null}

523claude plugin validate <path> [options]

524```

525 

526| Flag | Descrizione |

527| :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

528| `--strict` | Tratta gli avvertimenti come errori, quindi i campi non riconosciuti e i metadati mancanti che il runtime tollera falliscono l'esecuzione. Richiede Claude Code v2.1.145 o successivo |

529| `--json` | Stampa il rapporto di convalida come un oggetto JSON con gli stessi codici di uscita. Richiede Claude Code v2.1.259 o successivo |

530 

531Convalida un plugin prima di eseguirne il commit:

532 

533```bash theme={null}

534claude plugin validate ./my-plugin --strict

535```

536 

537<h4 id="validate-a-directory">

538 Convalida una directory

539</h4>

540 

541Il `<path>` è un file manifest o una directory. Data una directory, Claude Code sceglie cosa convalidare da quello che trova lì:

542 

543* `.claude-plugin/marketplace.json`, quando esiste

544* Altrimenti `.claude-plugin/plugin.json`

545* Altrimenti i file dei componenti, scelti dal nome della directory. La convalida dei file dei componenti senza un manifest richiede Claude Code v2.1.233 o successivo:

546 * Una directory denominata `skills`, `agents` o `commands`: i file al suo interno

547 * Una directory denominata `.claude`: le directory `skills`, `agents` e `commands` al suo interno

548 * Qualsiasi altra directory: quelle tre directory sotto il suo `.claude`

549 

550Claude Code non segue i symlink all'interno della directory che nomini. Cosa fa dipende da dove si trova il link:

551 

552* **Una directory `skills`, `agents` o `commands` collegata sotto la root del plugin o `.claude`**: Claude Code avverte che nulla in essa è stato letto.

553* **Un'entry collegata all'interno di una directory `skills`, `agents` o `commands`**: Claude Code la salta e avverte, per directory, quante entry ha saltato che una sessione caricherà.

554* **La directory `skills`, `agents` o `commands` che nomini è essa stessa un symlink, o la sua directory padre `.claude` è**: Claude Code riporta un errore e non controlla nulla in essa. Nomina la directory reale invece.

555 

556Alcuni file non vengono letti da un'esecuzione di convalida:

557 

558* **Un `SKILL.md` alla root del plugin**: quando esegui `claude plugin validate` su una directory plugin, Claude Code non controlla un `SKILL.md` alla root del plugin

559* **Un `CLAUDE.md` alla root del plugin**: in un'esecuzione plugin, Claude Code avverte anche di un `CLAUDE.md` alla root del plugin

560* **File plugin in un'esecuzione marketplace**: da una directory marketplace, Claude Code non apre i file skill, agent, command o hook dei plugin. Per trovare errori in quei file, convalida ogni directory plugin

561 

562<h4 id="output-and-exit-codes">

563 Output e codici di uscita

564</h4>

565 

566Claude Code stampa il file che ha convalidato, eventuali errori e avvertimenti con i loro percorsi, e una riga di verdetto. Il codice di uscita segue il verdetto:

567 

568| Codice di uscita | Riga di verdetto | Significato |

569| :--------------- | :----------------------------------------------------------------------------- | :--------------------------------------------------------------- |

570| `0` | `Validation passed` o `Validation passed with warnings` | Il manifest si carica. Con `--strict`, nemmeno avvertimenti |

571| `1` | `Validation failed` o `Validation failed (--strict treats warnings as errors)` | Un errore, o un avvertimento sotto `--strict` |

572| `2` | `Unexpected error during validation: <reason>` | Il validatore stesso ha fallito, come su un percorso illeggibile |

573 

574Con `--json`, Claude Code scrive il rapporto su stdout come un oggetto JSON con questi campi di livello superiore:

575 

576* `success`: lo stesso verdetto che il codice di uscita fornisce

577* `strict`: se l'esecuzione ha trattato gli avvertimenti come errori

578* `target`: il percorso risolto che Claude Code ha convalidato

579* `manifest`: il risultato del manifest stesso, o `null` per un'esecuzione senza manifest

580* `contents`: risultati per file, ognuno nominando il suo `file` e portando array `errors`, `warnings` e `notes`

581 

582All'uscita `2`, il comando non scrive nulla su stdout. Il messaggio di errore va su stderr.

583 

584<h2 id="claude-plugin-marketplace-commands">

585 Comandi claude plugin marketplace

586</h2>

587 

588Esegui `claude plugin marketplace <subcommand>` dalla tua shell per aggiungere, elencare, aggiornare e rimuovere i marketplace da cui installi i plugin.

589 

590* **Codici di uscita**: questi sottocomandi seguono la [convenzione del codice di uscita](#claude-plugin-commands) dei comandi plugin

591* **Ambiti**: il loro flag `--scope` non ha una forma breve `-s`

592 

593Per cosa è un marketplace e come Claude Code lo memorizza nella cache, vedi [Riferimento caricamento plugin](/docs/it/plugins/loading).

594 

595<h3 id="plugin-marketplace-add">

596 plugin marketplace add

597</h3>

598 

599Aggiungi un marketplace da un repository GitHub, un URL git, un `marketplace.json` ospitato o un percorso locale, e dichiaralo in un file di impostazioni.

600 

601Dopo averlo aggiunto, Claude Code installa qualsiasi [dipendenza](/docs/it/plugins/dependencies) che i tuoi plugin installati stavano perdendo.

602 

603```bash theme={null}

604claude plugin marketplace add <source> [options]

605```

606 

607| Flag | Descrizione |

608| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

609| `--scope <scope>` | File di impostazioni in cui dichiarare il marketplace: `user`, `project` o `local`. Predefinito a `user` |

610| `--sparse <paths...>` | Limita il checkout git a queste directory, per monorepo. Solo fonti `github` e `git` |

611| `--claudeai` | Leggi l'argomento come il nome di un [marketplace ospitato su claude.ai](/docs/it/plugins/install#add-from-claude-ai) invece di una fonte. Richiede Claude Code v2.1.273 o successivo |

612 

613`<source>` accetta uno qualsiasi dei moduli nella tabella sottostante, e il suo modulo decide il tipo di fonte e come Claude Code recupera il marketplace. Per l'oggetto source risultante, vedi il [riferimento marketplace](/docs/it/plugins/marketplace-reference).

614 

615| Digiti | Tipo di fonte | Come Claude Code lo recupera |

616| :----------------------------------------------------------------------------------------- | :------------ | :------------------------------------------------------------------------------------------------------------------------ |

617| `owner/repo`, `owner/repo#ref` o `owner/repo@ref` | `github` | Clona il repository GitHub, fissato a `ref` quando fornito. Owner e repo devono seguire le regole di denominazione GitHub |

618| `user@host:path[.git][#ref]` | `git` | Clona su SSH |

619| `https://example.com/repo.git[#ref]`, o un URL contenente `/_git/` | `git` | Clona su HTTPS, inclusi gli URL di Azure DevOps |

620| `https://github.com/owner/repo` o `https://gitlab.com/namespace/project` | `git` | Clona su HTTPS dopo aver aggiunto `.git` |

621| Qualsiasi altro URL `http://` o `https://`, incluso un host git auto-ospitato senza `.git` | `url` | Recupera l'URL come `marketplace.json`. Per clonare un repository lì, aggiungi `.git` |

622| `./path`, `../path`, `/path` o `~/path` a una directory | `directory` | Legge la directory in posizione. Su Windows, anche i moduli `.\`, `..\` e `C:\` funzionano |

623| Gli stessi moduli di percorso, a un file `.json` | `file` | Legge il file in posizione |

624 

625Per un host i cui URL di clone non portano il suffisso `.git`, come AWS CodeCommit, aggiungi il marketplace come entry git in [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces). Claude Code clona un'entry git indipendentemente dal fatto che il suo URL termini in `.git`.

626 

627Claude Code clona anche un URL `gitlab.com` con sottogruppi annidati, come `https://gitlab.com/group/subgroup/project`.

628 

629Aggiungi un marketplace e condividilo con il progetto:

630 

631```bash theme={null}

632claude plugin marketplace add your-org/your-marketplace --scope project

633```

634 

635Claude Code stampa `Successfully added marketplace: your-marketplace (declared in project settings)`, usando il `name` dal manifest del marketplace stesso. Un'aggiunta ripetuta o una fonte non valida stampa uno di questi risultati:

636 

637* **Marketplace già su disco**: l'output è `Marketplace 'your-marketplace' already on disk — declared in project settings` e il codice di uscita è `0`

638* **Fonte non riconosciuta**: l'output è `Invalid marketplace source format. Try: owner/repo, https://..., or ./path` e il codice di uscita è `1`

639* **Host semplice come `gitlab.example.com/team/plugins`**: l'aggiunta fallisce come una scorciatoia `owner/repo` non valida, e il messaggio ti dice di aggiungere `https://` o usare un percorso locale

640 

641Aggiungi un [marketplace ospitato su claude.ai](/docs/it/plugins/install#add-from-claude-ai) per il nome stampato nella sezione `From claude.ai:` di `claude plugin marketplace list`:

642 

643```bash theme={null}

644claude plugin marketplace add --claudeai claudeai-organization-library

645```

646 

647Con `--claudeai`, il comando rifiuta `--scope` e `--sparse`. Il marketplace è ospitato per il tuo account, non dichiarato in un file di impostazioni, quindi non puoi condividerlo attraverso il `.claude/settings.json` di un progetto.

648 

649<h3 id="plugin-marketplace-list">

650 plugin marketplace list

651</h3>

652 

653Elenca ogni marketplace che hai aggiunto, con la sua fonte.

654 

655```bash theme={null}

656claude plugin marketplace list [options]

657```

658 

659| Flag | Descrizione |

660| :------- | :------------------------ |

661| `--json` | Stampa l'elenco come JSON |

662 

663Claude Code stampa `Configured marketplaces:` e una riga `Source:` per marketplace, o `No marketplaces configured`.

664 

665Con `--json`, Claude Code stampa un array con un oggetto per marketplace, portando i campi sottostanti. Ogni campo è una stringa.

666 

667| Campo | Descrizione |

668| :---------------- | :----------------------------------------------------------------- |

669| `name` | Il nome del marketplace |

670| `source` | `github`, `git`, `url`, `directory`, `file` o `claudeai` |

671| `repo` | `owner/repo`. Solo fonti `github` |

672| `url` | L'URL di clone o recupero. Solo fonti `git` e `url` |

673| `path` | Il percorso locale. Solo fonti `directory` e `file` |

674| `ref` | Il ramo o tag fissato. Fonti `github` e `git`, solo quando fissato |

675| `installLocation` | Dove Claude Code ha memorizzato nella cache il marketplace |

676 

677Un marketplace [claude.ai](/docs/it/plugins/install#add-from-claude-ai) aggiunto non ha un clone locale, quindi la sua entry porta i suoi identificatori claude.ai, `marketplaceId` e `organizationUuid`, al posto di `installLocation`. Porta anche `scope` quando uno è registrato, e `status`.

678 

679Se le tue sessioni di terminale [sincronizzano i plugin dal tuo account claude.ai](/docs/it/plugins/loading#synced-plugins), l'elenco di testo termina con una sezione `From claude.ai:`. Quella sezione nomina i marketplace che claude.ai elenca per il tuo account che non hai aggiunto, sia basati su git che ospitati. Richiede Claude Code v2.1.273 o successivo.

680 

681Per aggiungere un marketplace da quella sezione, vedi [Aggiungi un marketplace da claude.ai](/docs/it/plugins/install#add-from-claude-ai).

682 

683L'output `--json` copre solo i marketplace configurati e lascia la sezione fuori.

684 

685<h3 id="plugin-marketplace-remove">

686 plugin marketplace remove

687</h3>

688 

689Rimuovi la dichiarazione di un marketplace dalle tue impostazioni. `rm` è un alias per `remove`.

690 

691<Warning>

692 Quando rimuovi un marketplace dall'ultimo ambito che lo dichiara, Claude Code elimina anche la sua cache e disinstalla ogni plugin che hai installato da esso. Senza `--scope`, il comando rimuove la dichiarazione da ogni ambito. Per aggiornare un marketplace senza perdere i suoi plugin, esegui `plugin marketplace update`.

693</Warning>

694 

695```bash theme={null}

696claude plugin marketplace remove <name> [options]

697```

698 

699Il `<name>` è il nome del marketplace che `plugin marketplace list` mostra, non la fonte che hai passato a `add`.

700 

701| Flag | Descrizione |

702| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |

703| `--scope <scope>` | Rimuovi la dichiarazione da un ambito di impostazioni: `user`, `project` o `local`. Senza di esso, Claude Code rimuove la dichiarazione da ogni ambito |

704 

705Rimuovi un marketplace da ogni ambito:

706 

707```bash theme={null}

708claude plugin marketplace remove your-marketplace

709```

710 

711Claude Code stampa `Successfully removed marketplace: your-marketplace`, aggiungendo `(from project settings)` quando lo hai scoped. Se scopi a un file di impostazioni che non dichiara il marketplace, il comando fallisce con `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`

712 

713<h3 id="plugin-marketplace-update">

714 plugin marketplace update

715</h3>

716 

717Aggiorna un marketplace, o ogni marketplace, dalla sua fonte per recuperare nuovi plugin e versioni. Un marketplace aggiunto con un ramo o tag `ref` si aggiorna al commit più recente di quel ref, non al ramo predefinito del repository.

718 

719```bash theme={null}

720claude plugin marketplace update [name]

721```

722 

723Il comando non accetta flag oltre a `--help`.

724 

725Aggiorna un marketplace:

726 

727```bash theme={null}

728claude plugin marketplace update your-marketplace

729```

730 

731Claude Code stampa `Successfully updated marketplace: your-marketplace`. Quando ometti il nome, stampa un conteggio come `Successfully updated 2 marketplaces`. Senza marketplace aggiunti, stampa `No marketplaces configured` ed esce con `0`.

732 

733<h2 id="plugin-in-a-session">

734 /plugin in una sessione

735</h2>

736 

737All'interno di una sessione interattiva, `/plugin` apre il pannello plugin. Ogni sottocomando apre il pannello su una scheda, esegue un'azione lì, o stampa un risultato inline. `/plugins` e `/marketplace` sono alias per `/plugin`.

738 

739Puoi eseguire questi comandi solo in una sessione di terminale interattiva. In un'esecuzione non interattiva come `claude -p`, Claude Code risponde che `/plugin` non è disponibile in questo ambiente.

740 

741Per quali superfici hanno `/plugin`, come installare senza di esso, e cosa mostra ogni scheda del pannello, vedi [Installa e gestisci i plugin](/docs/it/plugins/install).

742 

743Un `<plugin>` è un plugin `name` o `name@marketplace`.

744 

745La tabella sottostante elenca ogni forma di sessione. I sottocomandi shell `init`, `update`, `details`, `prune`, `eval` e `eval init` non hanno una forma di sessione.

746 

747| Comando | Alias | Cosa fa |

748| :-------------------------------------------------- | :--------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

749| `/plugin` | | Apre il pannello sulla scheda **Discover**. Qualsiasi prima parola non riconosciuta dopo `/plugin` fa lo stesso |

750| `/plugin help` | `/plugin --help`, `/plugin -h` | Mostra l'elenco di utilizzo dei sottocomandi `/plugin` |

751| `/plugin list [--enabled\|--disabled]` | `ls` | Stampa i tuoi plugin installati da marketplace inline, con versione, ambito e stato. Un flag di filtro mostra solo quello stato. Un plugin il cui stato di abilitazione non è stato ancora applicato è contrassegnato `— run /reload-plugins to apply`. Richiede Claude Code v2.1.163 o successivo |

752| `/plugin install` | `i` | Apre la scheda **Discover** |

753| `/plugin install <plugin>` | `i` | Apre i dettagli del plugin nella scheda **Discover**. Con `name@marketplace`, li apre nell'elenco di quel marketplace |

754| `/plugin install <plugin> --marketplace <source>` | `i` | Aggiunge il marketplace a `<source>` quando non l'hai ancora aggiunto, chiedendoti di confermare prima, poi apre i dettagli del plugin. Vedi [Aggiungi un marketplace e installa in un comando](/docs/it/plugins/install#add-a-marketplace-and-install-in-one-command). Richiede Claude Code v2.1.275 o successivo |

755| `/plugin manage` | | Apre la scheda **Installed** |

756| `/plugin stats` | | Apre la scheda **Stats**, in sessioni dove [`/skill-doctor`](/docs/it/skills#find-unused-skills) è disponibile. Altrove apre il pannello sulla scheda **Discover** |

757| `/plugin enable <plugin>` | | Apre la scheda **Installed** al plugin e lo abilita |

758| `/plugin disable <plugin>` | | Apre la scheda **Installed** al plugin e lo disabilita |

759| `/plugin uninstall <plugin>` | | Apre la scheda **Installed** al plugin e lo disinstalla |

760| `/plugin configure <plugin>` | `config` | Apre la finestra di dialogo [`userConfig`](/docs/it/plugins/manifest-reference) del plugin, o riporta che il plugin non ne dichiara nessuno. Richiede Claude Code v2.1.147 o successivo |

761| `/plugin validate <path>` | | Stampa lo stesso rapporto di `claude plugin validate`, inline |

762| `/plugin tag [path] [--push] [--dry-run] [--force]` | | Crea il tag di rilascio come `claude plugin tag` fa. Accetta `--push`, `--dry-run` e `--force` o `-f`; con qualsiasi altro flag o un argomento extra, Claude Code stampa l'utilizzo |

763| `/plugin marketplace` | `market` | Non fa nulla di visibile. Passa `add`, `list`, `update` o `remove` |

764| `/plugin marketplace add [source]` | `market add` | Con una fonte, la aggiunge e riporta il risultato. Senza una, apre l'input **Add marketplace** |

765| `/plugin marketplace list` | `market list` | Stampa i nomi dei tuoi marketplace inline |

766| `/plugin marketplace update [name]` | `market update` | Apre la scheda **Marketplaces**. Con un nome, aggiorna quel marketplace lì |

767| `/plugin marketplace remove [name]` | `market remove`, `market rm`, `marketplace rm` | Apre la scheda **Marketplaces**. Con un nome, rimuove quel marketplace lì |

768 

769Se nomini un plugin che non è installato nel progetto corrente in `/plugin enable`, `disable`, `uninstall` o `configure`, Claude Code stampa `Plugin "<plugin>" is not installed in this project` invece di agire.

770 

771<h2 id="reload-plugins">

772 /reload-plugins

773</h2>

774 

775Applica le modifiche ai plugin in sospeso alla sessione in esecuzione senza riavviarla. Le modifiche in sospeso sono plugin che hai installato, aggiornato, abilitato, disabilitato o modificato su disco da quando la sessione è iniziata.

776 

777Quando chiudi il pannello `/plugin` con modifiche in sospeso che hai fatto in esso, Claude Code esegue `/reload-plugins` per te. Eseguilo tu stesso dopo le modifiche ai plugin che accadono al di fuori del pannello, come un comando `claude plugin` che hai eseguito in un altro terminale.

778 

779```text theme={null}

780/reload-plugins [--force]

781```

782 

783| Flag | Descrizione |

784| :-------- | :------------------------------------------------------------------------------------------------------------- |

785| `--force` | Applica il ricaricamento anche quando invaliderebbe la cache del prompt. `force` senza trattini funziona anche |

786 

787<h3 id="reload-summary">

788 Riepilogo ricaricamento

789</h3>

790 

791Claude Code ricarica ogni plugin attivo e stampa una riga di riepilogo, `Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers`, omettendo il conteggio del server MCP del plugin in una sessione senza un terminale interattivo. Quando un plugin qualsiasi ha fallito, il riepilogo aggiunge `N errors during load. Run /plugin for details.`

792 

793Il conteggio delle skills copre ogni skill che un plugin fornisce, sia le sue entry `commands/` che le skills `SKILL.md`. Il conteggio degli agents è il numero di agent caricati nella sessione, inclusi quelli che non provengono da plugin.

794 

795Quando le [dipendenze](/docs/it/plugins/dependencies) di un plugin ricaricato sono mancanti, Claude Code le installa, ricarica di nuovo, e aggiunge `(+ N dependencies: <names>) resolved` al riepilogo.

796 

797<h3 id="reloads-that-change-mcp-tools">

798 Ricaricamenti che cambiano gli strumenti MCP

799</h3>

800 

801Quando il ricaricamento aggiungerebbe o rimuoverebbe un server MCP del plugin o lo strumento `LSP`, e quel cambiamento invaliderebbe la [cache del prompt](/docs/it/prompt-caching#enabling-or-disabling-a-plugin), Claude Code non applica il ricaricamento. Stampa una riga come `This reload changes MCP tools (<server>) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply.` Passa `--force` per applicarlo comunque.

802 

803<h3 id="sessions-without-an-interactive-terminal">

804 Sessioni senza un terminale interattivo

805</h3>

806 

807`/reload-plugins` viene eseguito anche in sessioni senza un terminale interattivo, come l'app desktop, l'Agent SDK e la [modalità non interattiva](/docs/it/headless) con `-p`. Richiede Claude Code v2.1.260 o successivo.

808 

809In quelle sessioni, il comando viene eseguito solo quando lo digiti nella sessione tu stesso, come nel prompt `-p` o nella casella del prompt dell'app desktop. Quando arriva in un altro modo, come attraverso [Remote Control](/docs/it/remote-control) o un messaggio inoltrato da Slack, il comando risponde `/reload-plugins isn't available over a remote connection in this session.` e non ricarica nulla.

810 

811Il ricaricamento in quelle sessioni non connette o disconnette i server MCP del plugin. Quei cambiamenti hanno effetto nella tua prossima sessione.

812 

813<h2 id="flags-that-load-a-plugin-for-one-session">

814 Flag che caricano un plugin per una sola sessione

815</h2>

816 

817Due flag `claude` caricano un plugin per una sola sessione, senza installarlo. Entrambi sono ripetibili.

818 

819Gli autori di plugin li usano per testare un plugin prima di pubblicarlo. Per il flusso di lavoro carica-modifica-ricarica, vedi [Sviluppa senza un marketplace](/docs/it/plugins/create#develop-without-a-marketplace).

820 

821| Flag | Descrizione | Esempio |

822| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------- |

823| `--plugin-dir <path>` | Carica un plugin da una directory o un archivio `.zip` di uno. Una cartella di plugin carica ogni cartella figlio che contiene un `.claude-plugin/plugin.json`. Ogni flag accetta un percorso | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

824| `--plugin-url <url>` | Recupera un archivio `.zip` plugin da un URL. Ripeti il flag, o passa più URL separati da spazi in un valore tra virgolette | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

825 

826Un plugin che uno di questi flag carica è un plugin solo sessione. `claude plugin list` lo mostra come `<name>@inline` con ambito `session`, ma solo quando lo stesso flag precede il sottocomando. Ad esempio, esegui `claude --plugin-dir ./my-plugin plugin list`.

827 

828Quando un plugin solo sessione condivide un nome con un plugin installato, Claude Code carica la copia solo sessione per quella sessione e salta quella installata. La copia installata si carica invece se hai disabilitato la copia solo sessione con `claude plugin disable <name>@inline`, o se le impostazioni gestite bloccano quel nome di plugin. Per la precedenza, vedi [Riferimento caricamento plugin](/docs/it/plugins/loading).

829 

830Un amministratore può rifiutare entrambi i flag, e le cartelle nominate nella variabile [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/it/env-vars#variables), con l'impostazione gestita [`disableSideloadFlags`](/docs/it/settings-reference#disablesideloadflags). Claude Code stampa che il flag è disabilitato dalle impostazioni gestite della tua organizzazione ed esce con `1` senza avviare.

831 

832Dall'Agent SDK, l'opzione [`plugins`](/docs/it/agent-sdk/plugins) è l'equivalente di `--plugin-dir`.

833 

834<h2 id="next-steps">

835 Passaggi successivi

836</h2>

837 

838* [Installa e gestisci i plugin](/docs/it/plugins/install): le stesse operazioni dei passaggi, con quello che vedi in ognuno

839* [Riferimento caricamento plugin](/docs/it/plugins/loading): cosa ogni comando cambia su disco e quale ambito ha effetto

840* [Risolvi i problemi dei plugin](/docs/it/plugins/troubleshooting): messaggi di errore di installazione, marketplace, caricamento e convalida con le loro correzioni

841* [Riferimento manifest plugin](/docs/it/plugins/manifest-reference): i campi che `claude plugin validate` controlla

plugins/code-intelligence.md +156 −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# Code intelligence plugins

6 

7> Installa un plugin di language server in modo che Claude veda gli errori di tipo dopo le modifiche e navighi il codice per simbolo, e rispondi alla finestra di dialogo di raccomandazione del plugin LSP.

8 

9Un plugin di code intelligence fornisce a Claude la diagnostica in tempo reale e la funzione go-to-definition che ha il tuo editor, in modo che Claude catturi gli errori di tipo e le importazioni mancanti che le sue stesse modifiche introducono prima di eseguire la compilazione, e trovi definizioni e riferimenti per simbolo invece di cercarli per testo.

10 

11Ogni plugin connette Claude Code a un language server per un linguaggio attraverso il Language Server Protocol (LSP). Installi il plugin dal marketplace ufficiale di Anthropic e il binario del language server sulla tua macchina.

12 

13<Note>

14 I plugin di code intelligence funzionano nelle sessioni di terminale. Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), Claude Code non avvia i language server dei plugin, quindi Claude non ottiene diagnostica o navigazione del codice lì. Per scrivere il tuo plugin di language server, o per connettere un language server che non ha un plugin, vedi [LSP servers in plugin components](/docs/it/plugins/components#lsp-servers).

15</Note>

16 

17Per iniziare, trova il tuo linguaggio nella tabella sotto [Install a code intelligence plugin](#install-a-code-intelligence-plugin). I plugin in quella tabella provengono dal [marketplace ufficiale dei plugin](/docs/it/plugins/anthropic-marketplaces) di Anthropic.

18 

19Se hai già visto una finestra di dialogo di **LSP plugin recommendation**, vedi [Accept or dismiss the recommendation dialog](#accept-or-dismiss-the-recommendation-dialog) per sapere cosa fa ogni scelta.

20 

21<h2 id="install-a-code-intelligence-plugin">

22 Install a code intelligence plugin

23</h2>

24 

25Un plugin di code intelligence dice a Claude Code quale comando avvia il language server e quali estensioni di file gestisce. Non include il language server. Installa prima il binario del language server, poi il plugin, poi conferma che il server si avvia.

26 

27<Steps>

28 <Step title="Install the language server binary">

29 Trova il tuo linguaggio nella tabella sottostante e installa il binario nella sua riga. Se il tuo linguaggio non è elencato, vedi [Add a language without an official plugin](#add-a-language-without-an-official-plugin).

30 

31 | Language | Plugin | Binary |

32 | :------------------------ | :--------------------------------------------------------------------------------------------------------------- | :------------------------------ |

33 | C/C++ | [`clangd-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/clangd-lsp) | `clangd` |

34 | C# | [`csharp-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/csharp-lsp) | `csharp-ls` |

35 | Go | [`gopls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/gopls-lsp) | `gopls` |

36 | Java | [`jdtls-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/jdtls-lsp) | `jdtls` |

37 | Kotlin | [`kotlin-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/kotlin-lsp) | `kotlin-lsp` |

38 | Liquid | [`liquid-lsp`](https://github.com/Shopify/liquid-skills/tree/main/plugins/liquid-lsp) | `shopify`, from the Shopify CLI |

39 | Lua | [`lua-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/lua-lsp) | `lua-language-server` |

40 | PHP | [`php-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/php-lsp) | `intelephense` |

41 | Python | [`pyright-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/pyright-lsp) | `pyright-langserver` |

42 | Ruby | [`ruby-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/ruby-lsp) | `ruby-lsp` |

43 | Rust | [`rust-analyzer-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/rust-analyzer-lsp) | `rust-analyzer` |

44 | Swift | [`swift-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/swift-lsp) | `sourcekit-lsp` |

45 | TypeScript and JavaScript | [`typescript-lsp`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/typescript-lsp) | `typescript-language-server` |

46 

47 Anthropic mantiene ogni plugin nella tabella tranne `liquid-lsp`, che Shopify mantiene e il marketplace ufficiale elenca.

48 

49 Per trovare il comando che installa il binario, segui il link del plugin nella tabella al suo README. Per TypeScript, quel comando è `npm install -g typescript-language-server typescript`.

50 

51 Dopo aver installato il binario, conferma che sia nel `PATH` della shell da cui avvii `claude`, ad esempio con `which typescript-language-server`, o `Get-Command typescript-language-server` in PowerShell.

52 </Step>

53 

54 <Step title="Install the plugin">

55 Per installare il plugin elencato per il tuo linguaggio nella tabella del passaggio 1, esegui `/plugin install` in una sessione di Claude Code, sostituendo `typescript-lsp` con il nome di quel plugin:

56 

57 ```

58 /plugin install typescript-lsp@claude-plugins-official

59 ```

60 

61 Un messaggio di conferma dice se il plugin è attivo ora o ha bisogno di `/reload-plugins`. Se l'installazione fallisce con `Marketplace "claude-plugins-official" not found`, vedi la [voce di risoluzione dei problemi per quell'errore](/docs/it/plugins/troubleshooting#marketplace-claude-plugins-official-not-found). Per controllare dove il plugin è installato, o per eseguire l'installazione dalla tua shell invece che dentro Claude Code, vedi [Install plugins](/docs/it/plugins/install).

62 </Step>

63 

64 <Step title="Confirm the server starts">

65 Il language server si avvia la prima volta che Claude modifica un file con una delle estensioni del plugin. Per vederlo funzionare, chiedi a Claude di introdurre un errore di tipo in un file di quel linguaggio e poi correggerlo. Poi controlla la conversazione per una riga di diagnostica:

66 

67 * **Una riga di diagnostica appare**: `Found N new diagnostic issues in M files (ctrl+o to expand)` sotto la modifica che ha introdotto l'errore significa che il server si è avviato.

68 * **Nessuna riga di diagnostica appare**: esegui `/plugin` e apri la scheda **Errors**. Una riga che legge `Executable not found in $PATH: "<binary>"` nomina il binario da installare. Se la scheda non ha tale riga, vedi [Troubleshoot code intelligence](#troubleshoot-code-intelligence).

69 

70 Dopo aver installato un binario mancante, Claude Code riprova la prossima volta che Claude modifica un file corrispondente. Se hai installato il binario in una directory che non è nel `PATH` della shell da cui hai avviato `claude`, avvia una nuova sessione da una shell dove lo è.

71 </Step>

72</Steps>

73 

74<h2 id="see-what-claude-gains">

75 See what Claude gains

76</h2>

77 

78Con un language server in esecuzione, Claude guadagna diagnostica e navigazione del codice:

79 

80* **Diagnostica dopo le modifiche**: ogni volta che Claude modifica o scrive un file che il server gestisce, Claude ottiene gli errori e gli avvisi che il server segnala. Vede un errore di tipo, un'importazione mancante, o un errore di sintassi che ha introdotto senza eseguire un compilatore.

81* **Navigazione del codice**: Claude ottiene uno strumento `LSP` che cerca i simboli attraverso il server invece di cercarli nel testo. Lo strumento è di sola lettura. Per quello che Claude può cercare con lo strumento e come i permessi si applicano ad esso, vedi [LSP tool behavior](/docs/it/tools-reference#lsp-tool-behavior).

82 

83<h3 id="read-the-diagnostics-yourself">

84 Read the diagnostics yourself

85</h3>

86 

87Dopo che Claude modifica un file che il server gestisce, la conversazione mostra solo il riassunto `Found N new diagnostic issues`. Per leggere i problemi stessi, premi **Ctrl+O**.

88 

89<h2 id="accept-or-dismiss-the-recommendation-dialog">

90 Accept or dismiss the recommendation dialog

91</h2>

92 

93Se un binario di language server è già nel tuo `PATH` e il plugin che lo usa non è installato, Claude Code ti offre di installare il plugin per te in una finestra di dialogo intitolata **LSP plugin recommendation**.

94 

95<h3 id="when-the-recommendation-dialog-appears">

96 When the recommendation dialog appears

97</h3>

98 

99La finestra di dialogo **LSP plugin recommendation** può apparire dopo che Claude modifica un file. Queste condizioni decidono se appare e quale plugin offre:

100 

101* **Un plugin corrisponde al file**: uno dei marketplace che hai aggiunto, o il marketplace ufficiale che Claude Code ha registrato per te, elenca un plugin di code intelligence per l'estensione di quel file, e il binario del plugin è installato.

102* **Ufficiale per primo**: quando più di un marketplace offre un plugin per l'estensione, la finestra di dialogo offre il plugin del marketplace ufficiale.

103* **Una volta per sessione**: la finestra di dialogo appare al massimo una volta in una sessione, per il primo file corrispondente che Claude modifica.

104* **Non per le sessioni cloud**: la finestra di dialogo non appare mai quando il tuo terminale è collegato a una sessione cloud, come una che hai avviato con [`claude --cloud`](/docs/it/claude-code-on-the-web#from-terminal-to-cloud).

105 

106<h3 id="respond-to-the-recommendation-dialog">

107 Respond to the recommendation dialog

108</h3>

109 

110La finestra di dialogo **LSP plugin recommendation** nomina il plugin e offre queste scelte:

111 

112* **Yes, install**: Claude Code installa il plugin per il tuo account utente e stampa `<plugin> installed · restart to apply`. Avvia una nuova sessione per caricare il server.

113* **No, not now**: la finestra di dialogo si chiude, e una sessione successiva può offrire il plugin di nuovo. Premere **Esc** fa lo stesso.

114* **Never for this plugin**: la finestra di dialogo smette di apparire per quel plugin e continua ad apparire per altri.

115* **Disable all LSP recommendations**: la finestra di dialogo smette di apparire per ogni linguaggio.

116 

117Se non scegli un'opzione, Claude Code la chiude dopo 30 secondi e lo conta come ignorato. Il conteggio viene mantenuto tra le sessioni. Dopo cinque finestre di dialogo ignorate, Claude Code smette di raccomandare plugin, lo stesso che se avessi scelto **Disable all LSP recommendations**.

118 

119<h3 id="turn-recommendations-back-on">

120 Turn recommendations back on

121</h3>

122 

123La finestra di dialogo **LSP plugin recommendation** smette di apparire dopo che scegli **Disable all LSP recommendations** o la ignori cinque volte.

124 

125* **Disabilitato o ignorato cinque volte**: per riattivarlo in entrambi i casi, rimuovi le chiavi `lspRecommendationDisabled` e `lspRecommendationIgnoredCount` da `~/.claude.json`, il file di configurazione di Claude Code.

126* **Never for this plugin**: se hai scelto **Never for this plugin** e vuoi che quel plugin sia offerto di nuovo, rimuovi il suo id `name@marketplace` dalla lista `lspRecommendationNeverPlugins` nello stesso file.

127 

128<h2 id="troubleshoot-code-intelligence">

129 Troubleshoot code intelligence

130</h2>

131 

132La pagina di risoluzione dei problemi dei plugin copre i sintomi specifici dei plugin di code intelligence sotto [Language server doesn't start, uses too much memory, or reports wrong diagnostics](/docs/it/plugins/troubleshooting#language-server-doesnt-start):

133 

134* **Il language server non si avvia**: vedi `Executable not found in $PATH` nella scheda **Errors** di `/plugin`, o Claude non segnala mai diagnostica per il linguaggio.

135* **Uso elevato della memoria**: l'uso della memoria aumenta mentre il server indicizza il progetto.

136* **Diagnostica falsa positiva in un monorepo**: la diagnostica segnala le importazioni come non risolte quando non lo sono.

137 

138<h2 id="add-a-language-without-an-official-plugin">

139 Add a language without an official plugin

140</h2>

141 

142Se il tuo linguaggio non è nella [tabella dei plugin ufficiali](#install-a-code-intelligence-plugin), puoi comunque connettere un language server.

143 

1441. Scrivi un plugin con un file `.lsp.json` che nomina il comando del server e le estensioni di file che gestisce.

1452. Poi carica il plugin con [`--plugin-dir`](/docs/it/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) o pubblicalo su un marketplace.

146 

147Per i campi del file e un esempio elaborato, vedi [LSP servers in plugin components](/docs/it/plugins/components#lsp-servers).

148 

149<h2 id="next-steps">

150 Passaggi successivi

151</h2>

152 

153* [Server LSP nei componenti plugin](/docs/it/plugins/components#lsp-servers): scrivere il `.lsp.json` per un server di linguaggio che non ha un plugin ufficiale

154* [Installare e gestire i plugin](/docs/it/plugins/install): ambiti, aggiornamenti e disinstallazione

155* [Risolvere i problemi dei plugin](/docs/it/plugins/troubleshooting): errori di caricamento oltre a quelli del server di linguaggio su questa pagina

156* [Trovare i plugin nel marketplace ufficiale](/docs/it/plugins/anthropic-marketplaces#find-plugins-in-the-official-marketplace): dove sfogliare il resto del marketplace ufficiale

plugins/components.md +1130 −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# Aggiungi componenti a un plugin

6 

7> Aggiungi skills, hooks, server MCP e ogni altro tipo di componente a un plugin Claude Code, con un esempio che convalida per ciascuno.

8 

9export const Piece = ({id, children}) => <div className="pe-piece" data-piece={id}>{children}</div>;

10 

11export const PluginExplorer = ({children}) => {

12 const PIECES = [{

13 id: 'manifest',

14 name: 'Manifest',

15 path: '.claude-plugin/plugin.json',

16 required: "Required by Anthropic's directory",

17 lines: [{

18 depth: 0,

19 kind: 'folder',

20 text: '.claude-plugin/'

21 }, {

22 depth: 1,

23 kind: 'file',

24 text: 'plugin.json'

25 }],

26 href: '/en/plugins/manifest-reference#manifest-file',

27 linkText: 'Go to the manifest reference'

28 }, {

29 id: 'skills',

30 name: 'Skills',

31 path: 'skills/review/SKILL.md',

32 lines: [{

33 depth: 0,

34 kind: 'folder',

35 text: 'skills/'

36 }, {

37 depth: 1,

38 kind: 'folder',

39 text: 'review/'

40 }, {

41 depth: 2,

42 kind: 'file',

43 text: 'SKILL.md'

44 }],

45 href: '/en/plugins/components#skills',

46 linkText: 'Go to the Skills section'

47 }, {

48 id: 'commands',

49 name: 'Commands',

50 path: 'commands/about.md',

51 lines: [{

52 depth: 0,

53 kind: 'folder',

54 text: 'commands/'

55 }, {

56 depth: 1,

57 kind: 'file',

58 text: 'about.md'

59 }],

60 href: '/en/plugins/components#commands',

61 linkText: 'Go to the Commands section'

62 }, {

63 id: 'agents',

64 name: 'Agents',

65 path: 'agents/security-reviewer.md',

66 lines: [{

67 depth: 0,

68 kind: 'folder',

69 text: 'agents/'

70 }, {

71 depth: 1,

72 kind: 'file',

73 text: 'security-reviewer.md'

74 }],

75 href: '/en/plugins/components#agents',

76 linkText: 'Go to the Agents section'

77 }, {

78 id: 'hooks',

79 name: 'Hooks',

80 path: 'hooks/hooks.json',

81 lines: [{

82 depth: 0,

83 kind: 'folder',

84 text: 'hooks/'

85 }, {

86 depth: 1,

87 kind: 'file',

88 text: 'hooks.json'

89 }],

90 href: '/en/plugins/components#hooks',

91 linkText: 'Go to the Hooks section'

92 }, {

93 id: 'monitors',

94 name: 'Monitors',

95 path: 'monitors/monitors.json',

96 lines: [{

97 depth: 0,

98 kind: 'folder',

99 text: 'monitors/'

100 }, {

101 depth: 1,

102 kind: 'file',

103 text: 'monitors.json'

104 }],

105 href: '/en/plugins/components#monitors',

106 linkText: 'Go to the Monitors section'

107 }, {

108 id: 'output-styles',

109 name: 'Output styles',

110 path: 'output-styles/terse.md',

111 lines: [{

112 depth: 0,

113 kind: 'folder',

114 text: 'output-styles/'

115 }, {

116 depth: 1,

117 kind: 'file',

118 text: 'terse.md'

119 }],

120 href: '/en/plugins/components#themes-and-output-styles',

121 linkText: 'Go to the Themes and output styles section'

122 }, {

123 id: 'themes',

124 name: 'Themes',

125 path: 'themes/dracula.json',

126 lines: [{

127 depth: 0,

128 kind: 'folder',

129 text: 'themes/'

130 }, {

131 depth: 1,

132 kind: 'file',

133 text: 'dracula.json'

134 }],

135 href: '/en/plugins/components#themes-and-output-styles',

136 linkText: 'Go to the Themes and output styles section'

137 }, {

138 id: 'workflows',

139 name: 'Workflows',

140 path: 'workflows/audit-routes.js',

141 lines: [{

142 depth: 0,

143 kind: 'folder',

144 text: 'workflows/'

145 }, {

146 depth: 1,

147 kind: 'file',

148 text: 'audit-routes.js'

149 }],

150 href: '/en/workflows#distribute-a-workflow-in-a-plugin',

151 linkText: 'Go to Distribute a workflow in a plugin'

152 }, {

153 id: 'bin',

154 name: 'Executables',

155 path: 'bin/hello-plugin',

156 lines: [{

157 depth: 0,

158 kind: 'folder',

159 text: 'bin/'

160 }, {

161 depth: 1,

162 kind: 'file',

163 text: 'hello-plugin'

164 }],

165 href: '/en/plugins/components#executables',

166 linkText: 'Go to the Executables section'

167 }, {

168 id: 'scripts',

169 name: 'Scripts',

170 path: 'scripts/format.sh',

171 lines: [{

172 depth: 0,

173 kind: 'folder',

174 text: 'scripts/'

175 }, {

176 depth: 1,

177 kind: 'file',

178 text: 'format.sh'

179 }],

180 href: '/en/plugins/components#hooks',

181 linkText: 'Go to the Hooks section'

182 }, {

183 id: 'settings',

184 name: 'Default settings',

185 path: 'settings.json',

186 lines: [{

187 depth: 0,

188 kind: 'file',

189 text: 'settings.json'

190 }],

191 href: '/en/plugins/components#default-settings',

192 linkText: 'Go to the Default settings section'

193 }, {

194 id: 'mcp',

195 name: 'MCP servers',

196 path: '.mcp.json',

197 lines: [{

198 depth: 0,

199 kind: 'file',

200 text: '.mcp.json'

201 }],

202 href: '/en/plugins/components#mcp-servers',

203 linkText: 'Go to the MCP servers section'

204 }, {

205 id: 'lsp',

206 name: 'LSP servers',

207 path: '.lsp.json',

208 lines: [{

209 depth: 0,

210 kind: 'file',

211 text: '.lsp.json'

212 }],

213 href: '/en/plugins/components#lsp-servers',

214 linkText: 'Go to the LSP servers section'

215 }];

216 const [selectedId, setSelectedId] = useState('manifest');

217 const [isFullscreen, setIsFullscreen] = useState(false);

218 const rootRef = useRef(null);

219 useEffect(() => {

220 const onFsChange = () => setIsFullscreen(!!document.fullscreenElement);

221 document.addEventListener('fullscreenchange', onFsChange);

222 return () => document.removeEventListener('fullscreenchange', onFsChange);

223 }, []);

224 const toggleFullscreen = () => {

225 if (!rootRef.current) return;

226 if (document.fullscreenElement) document.exitFullscreen(); else rootRef.current.requestFullscreen().catch(() => {});

227 };

228 const selected = PIECES.find(p => p.id === selectedId) || PIECES[0];

229 const onTreeKeyDown = e => {

230 const keys = ['ArrowDown', 'ArrowUp', 'Home', 'End'];

231 if (keys.indexOf(e.key) === -1) return;

232 const i = PIECES.findIndex(p => p.id === selectedId);

233 let next = i;

234 if (e.key === 'ArrowDown') next = Math.min(PIECES.length - 1, i + 1);

235 if (e.key === 'ArrowUp') next = Math.max(0, i - 1);

236 if (e.key === 'Home') next = 0;

237 if (e.key === 'End') next = PIECES.length - 1;

238 e.preventDefault();

239 if (next === i) return;

240 const id = PIECES[next].id;

241 setSelectedId(id);

242 const el = document.getElementById('pe-node-' + id);

243 if (el) el.focus();

244 };

245 const FolderIcon = () => <svg className="pe-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">

246 <path d="M1.5 4.5a1 1 0 0 1 1-1h3.2l1.3 1.5h6a1 1 0 0 1 1 1V12a1 1 0 0 1-1 1h-10.5a1 1 0 0 1-1-1z" />

247 </svg>;

248 const FileIcon = () => <svg className="pe-icon" width="15" height="15" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinejoin="round" aria-hidden="true">

249 <path d="M4 1.5h5.5L13 5v9.5H4z" />

250 <path d="M9.5 1.5V5H13" />

251 </svg>;

252 return <div ref={rootRef} className={isFullscreen ? 'pe-root pe-fullscreen not-prose' : 'pe-root not-prose'} data-selected={selected.id}>

253 <style>{`

254 .pe-root {

255 --pe-mono: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);

256 --pe-accent: #D97757;

257 --pe-accent-text: #A8502F;

258 --pe-accent-bg: rgba(217,119,87,0.10);

259 --pe-bg: #FFFFFF;

260 --pe-surface: #FAFAF7;

261 --pe-hover: #F0EEE6;

262 --pe-border: #E8E6DC;

263 --pe-text: #141413;

264 --pe-text-2: #3D3D3A;

265 --pe-text-3: #5E5D59;

266 font-family: inherit;

267 background: var(--pe-bg);

268 color: var(--pe-text);

269 border: 1px solid var(--pe-border);

270 border-radius: 12px;

271 margin: 1.5rem 0;

272 overflow: hidden;

273 box-sizing: border-box;

274 }

275 .dark .pe-root {

276 --pe-accent-text: #EBA98F;

277 --pe-accent-bg: rgba(217,119,87,0.18);

278 --pe-bg: #1A1918;

279 --pe-surface: #232221;

280 --pe-hover: #2E2D2B;

281 --pe-border: #3A3936;

282 --pe-text: #F1EFE9;

283 --pe-text-2: #D6D4CA;

284 --pe-text-3: #B8B5AD;

285 }

286 .pe-root *, .pe-root *::before, .pe-root *::after { box-sizing: border-box; }

287 .pe-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 24px 16px; border-bottom: 1px solid var(--pe-border); }

288 .pe-head-text { flex: 1; min-width: 0; }

289 .pe-fs-btn { flex-shrink: 0; width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--pe-border); border-radius: 6px; background: var(--pe-surface); color: var(--pe-text-2); font-size: 15px; line-height: 1; cursor: pointer; }

290 .pe-fs-btn:hover { background: var(--pe-hover); }

291 .pe-fs-btn:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

292 .pe-fullscreen { border-radius: 0; height: 100vh; display: flex; flex-direction: column; overflow: auto; }

293 .pe-fullscreen .pe-body { flex: 1; }

294 .pe-title { font-size: 19px; font-weight: 600; line-height: 1.3; color: var(--pe-text); margin: 0; }

295 .pe-sub { font-size: 15px; line-height: 1.5; color: var(--pe-text-3); margin: 4px 0 0; }

296 .pe-sub code { font-family: var(--pe-mono); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--pe-surface); border: 1px solid var(--pe-border); }

297 .pe-body { display: flex; align-items: stretch; }

298 .pe-tree-pane { width: 270px; flex-shrink: 0; background: var(--pe-surface); border-right: 1px solid var(--pe-border); padding: 16px 0 12px; }

299 .pe-panel { flex: 1; min-width: 0; padding: 16px 24px 24px; }

300 .pe-caption { font-size: 13px; font-weight: 600; color: var(--pe-text-3); margin: 0 0 10px; }

301 .pe-tree-pane .pe-caption { padding: 0 16px; }

302 .pe-rootline { display: flex; align-items: center; gap: 7px; padding: 3px 16px; font-family: var(--pe-mono); font-size: 13.5px; color: var(--pe-text-3); }

303 .pe-node {

304 display: block; width: 100%; margin: 0; padding: 3px 16px 3px 30px; text-align: left; cursor: pointer;

305 background: transparent; color: var(--pe-text-2);

306 border: none; border-left: 3px solid transparent;

307 font-family: var(--pe-mono); font-size: 13.5px; line-height: 1.4;

308 }

309 .pe-node:hover { background: var(--pe-hover); }

310 .pe-node:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: -2px; }

311 .pe-node[aria-pressed="true"] { background: var(--pe-accent-bg); border-left-color: var(--pe-accent); color: var(--pe-accent-text); font-weight: 600; }

312 .pe-line { display: flex; align-items: center; gap: 7px; padding: 2px 0; }

313 .pe-line-tree { flex-wrap: wrap; }

314 .pe-line-tree .pe-req { flex-basis: 100%; margin: 2px 0 0 22px; white-space: normal; width: fit-content; max-width: calc(100% - 22px); }

315 .pe-line span { overflow-wrap: anywhere; }

316 .pe-piece { display: none; font-size: 16px; line-height: 1.6; color: var(--pe-text-2); }

317 .pe-root[data-selected="manifest"] .pe-piece[data-piece="manifest"],

318 .pe-root[data-selected="skills"] .pe-piece[data-piece="skills"],

319 .pe-root[data-selected="commands"] .pe-piece[data-piece="commands"],

320 .pe-root[data-selected="agents"] .pe-piece[data-piece="agents"],

321 .pe-root[data-selected="hooks"] .pe-piece[data-piece="hooks"],

322 .pe-root[data-selected="monitors"] .pe-piece[data-piece="monitors"],

323 .pe-root[data-selected="output-styles"] .pe-piece[data-piece="output-styles"],

324 .pe-root[data-selected="themes"] .pe-piece[data-piece="themes"],

325 .pe-root[data-selected="workflows"] .pe-piece[data-piece="workflows"],

326 .pe-root[data-selected="bin"] .pe-piece[data-piece="bin"],

327 .pe-root[data-selected="scripts"] .pe-piece[data-piece="scripts"],

328 .pe-root[data-selected="settings"] .pe-piece[data-piece="settings"],

329 .pe-root[data-selected="mcp"] .pe-piece[data-piece="mcp"],

330 .pe-root[data-selected="lsp"] .pe-piece[data-piece="lsp"] { display: block; }

331 .pe-piece p { margin: 0 0 10px; }

332 .pe-piece p:last-child { margin-bottom: 0; }

333 .pe-piece code { font-family: var(--pe-mono); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--pe-surface); border: 1px solid var(--pe-border); }

334 .pe-piece .code-block { margin: 12px 0 0; }

335 .pe-piece pre code { padding: 0; border: none; background: none; }

336 .pe-piece a { color: var(--pe-accent-text); }

337 .pe-line-compact { display: none; }

338 .pe-icon { flex-shrink: 0; }

339 .pe-req { margin-left: 8px; padding: 0 6px; border-radius: 999px; font-size: 11px; line-height: 18px; letter-spacing: .02em; color: var(--pe-accent-text); border: 1px solid var(--pe-border); background: var(--pe-surface); white-space: nowrap; font-weight: 500; vertical-align: middle; }

340 .pe-name { font-size: 22px; font-weight: 600; line-height: 1.25; letter-spacing: -0.2px; color: var(--pe-text); margin: 0; }

341 .pe-path { font-family: var(--pe-mono); font-size: 13.5px; color: var(--pe-accent-text); margin: 4px 0 0; overflow-wrap: anywhere; }

342 .pe-block { margin: 20px 0 0; }

343 .pe-link {

344 display: inline-block; margin: 24px 0 0; padding: 8px 14px; border-radius: 8px;

345 font-size: 14.5px; font-weight: 600; text-decoration: none;

346 color: var(--pe-accent-text); background: var(--pe-accent-bg); border: 1px solid var(--pe-accent);

347 }

348 .pe-link:hover { filter: brightness(0.97); }

349 .pe-link:focus-visible { outline: 2px solid var(--pe-accent); outline-offset: 2px; }

350 @media (max-width: 700px) {

351 .pe-head { padding: 16px 16px 14px; }

352 .pe-body { flex-direction: column; }

353 .pe-tree-pane { width: 100%; border-right: none; border-bottom: 1px solid var(--pe-border); }

354 .pe-line-tree { display: none; }

355 .pe-line-compact { display: flex; }

356 .pe-panel { padding: 16px 16px 20px; }

357 }

358 `}</style>

359 

360 <div className="pe-head">

361 <div className="pe-head-text">

362 <div className="pe-title">What goes in a plugin</div>

363 <div className="pe-sub">This example plugin, <code>my-plugin</code>, has one of every kind of component, each in its default location. Select a file or folder to read what it’s for and see what goes in it.</div>

364 </div>

365 <button type="button" className="pe-fs-btn" onClick={toggleFullscreen} aria-label={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'} title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'}>

366 {isFullscreen ? '⤡' : '⛶'}

367 </button>

368 </div>

369 

370 <div className="pe-body">

371 <div className="pe-tree-pane">

372 <div className="pe-caption" id="pe-tree-caption">Plugin directory</div>

373 <div role="group" aria-labelledby="pe-tree-caption" onKeyDown={onTreeKeyDown}>

374 <div className="pe-rootline"><FolderIcon /><span>my-plugin/</span></div>

375 {PIECES.map(p => <button key={p.id} id={'pe-node-' + p.id} type="button" className="pe-node" aria-pressed={p.id === selected.id} aria-label={p.name + ', ' + p.path} onClick={() => setSelectedId(p.id)}>

376 {p.lines.map((line, i) => <span key={i} className="pe-line pe-line-tree" style={{

377 paddingLeft: line.depth * 18 + 'px'

378 }}>

379 {line.kind === 'folder' ? <FolderIcon /> : <FileIcon />}

380 <span>{line.text}</span>

381 {p.required && i === p.lines.length - 1 ? <span className="pe-req">{p.required}</span> : null}

382 </span>)}

383 <span className="pe-line pe-line-compact">

384 <FileIcon />

385 <span>{p.path}</span>

386 {p.required ? <span className="pe-req">{p.required}</span> : null}

387 </span>

388 </button>)}

389 </div>

390 </div>

391 

392 <div className="pe-panel" role="region" aria-labelledby="pe-panel-caption" aria-live="polite" aria-atomic="true">

393 <div className="pe-caption" id="pe-panel-caption">Selected piece</div>

394 <div className="pe-name">{selected.name}{selected.required ? <span className="pe-req">{selected.required}</span> : null}</div>

395 <div className="pe-path">{selected.path}</div>

396 

397 <div className="pe-block">{children}</div>

398 

399 <a className="pe-link" href={selected.href}>{selected.linkText}</a>

400 </div>

401 </div>

402 </div>;

403};

404 

405Un plugin Claude Code è costruito da componenti, come skills, agenti, hooks e server MCP. Ogni componente ha una cartella predefinita nel plugin, una chiave manifest opzionale in `.claude-plugin/plugin.json` che sostituisce o aggiunge a quella cartella, e un nome che l'utente vede. Per la tabella dei campi completa di ogni chiave, vedere il [riferimento manifest](/docs/it/plugins/manifest-reference#fields).

406 

407Utilizzare questa pagina per aggiungere un componente a un plugin che già carica.

408 

409Dopo aver aggiunto un componente, eseguire `/reload-plugins` in una sessione in esecuzione o avviarne una nuova in modo che Claude Code lo carichi. Per controllare il file del componente prima di caricarlo, eseguire [`claude plugin validate .`](/docs/it/plugins/cli-reference#plugin-validate) nella shell dalla directory del plugin.

410 

411<Note>

412 Questi casi sono coperti su altre pagine:

413 

414 * **Costruire il primo plugin**: iniziare con [Crea un plugin](/docs/it/plugins/create)

415 * **Installare il plugin di qualcun altro**: vedere [Installa plugin](/docs/it/plugins/install)

416 * **Gli utenti del plugin sono su claude.ai o in Cowork**: un set diverso di componenti carica lì. Vedere [Plugin su claude.ai e in Cowork](https://claude.com/docs/plugins/overview)

417</Note>

418 

419<h2 id="explore-the-plugin-directory">

420 Esplora la directory dei plugin

421</h2>

422 

423L'explorer mostra un plugin di esempio, `my-plugin`, che ha uno di ogni tipo di componente nella sua posizione predefinita:

424 

425* Una skill di revisione e un comando `about`

426* Un subagent di security-review

427* Un hook che formatta i file dopo che Claude li modifica, e la cartella `scripts/` che chiama

428* Un monitor di log

429* Uno stile di output e un tema di colore

430* Un workflow route-audit

431* Un eseguibile `hello-plugin`

432* Impostazioni predefinite

433* Un server MCP locale e un language server Go

434 

435Ogni file è l'esempio valido più piccolo del suo formato, presente per mostrare la struttura piuttosto che per essere utile: una skill o un agent reale contiene istruzioni complete e spesso file di supporto, e un hook o monitor reale svolge un lavoro reale. Le sezioni dopo l'explorer utilizzano gli stessi file come esempi e collegano a versioni più complete. Seleziona un file o una cartella per leggere a cosa serve, vedere cosa va dentro e trovare la sezione che la copre.

436 

437<PluginExplorer>

438 <Piece id="manifest">

439 Il [manifest](/docs/it/plugins/manifest-reference) è il file `plugin.json` nella directory `.claude-plugin/` di un plugin. Contiene i metadati del plugin e i valori `userConfig` che Claude Code richiede all'utente. Solo `name` è obbligatorio. In questo, `description` è il testo che gli utenti vedono per il plugin in `/plugin`, e `version` mantiene gli utenti su quella versione finché non la modifichi:

440 

441 ```json theme={null}

442 {

443 "name": "my-plugin",

444 "version": "1.0.0",

445 "description": "Review, formatting, and database tools for this team"

446 }

447 ```

448 </Piece>

449 

450 <Piece id="skills">

451 Una [skill](/docs/it/skills) è un file `SKILL.md`. Salva ogni skill nella sua directory sotto `skills/`. Claude legge la `description` di ogni skill, e quando quello che l'utente chiede corrisponde, come chiedere a Claude di revisionare una pull request qui, Claude carica le istruzioni della skill e le segue. L'utente può anche eseguirla direttamente come `/my-plugin:review`:

452 

453 ```markdown theme={null}

454 ---

455 description: Reviews a pull request for style and test coverage. Use when asked to review code.

456 ---

457 

458 Review the changed files. Report style problems first, then missing tests.

459 ```

460 </Piece>

461 

462 <Piece id="commands">

463 Un comando è un singolo file Markdown che l'utente esegue per nome. I comandi sono il formato più vecchio: una skill viene eseguita per nome allo stesso modo e può anche contenere file di supporto nella sua directory, quindi scrivi i nuovi come skill e mantieni `commands/` per i file che hai già. Questo file diventa `/my-plugin:about` e accetta lo stesso frontmatter di una skill:

464 

465 ```markdown theme={null}

466 ---

467 description: Summarize the repository

468 ---

469 

470 Summarize what this repository does in three sentences.

471 ```

472 </Piece>

473 

474 <Piece id="agents">

475 Un [subagent](/docs/it/sub-agents) è un assistente separato, con le sue istruzioni e la sua finestra di contesto, che Claude può delegare un compito e ottenere un risultato. Ogni file Markdown sotto `agents/` ne definisce uno: il frontmatter lo nomina e dice quando usarlo, e il corpo è il suo system prompt. Questo è denominato `my-plugin:security-reviewer`, e l'utente può invocarlo con `@agent-my-plugin:security-reviewer`:

476 

477 ```markdown theme={null}

478 ---

479 name: security-reviewer

480 description: Reviews code changes for security issues. Use after edits to authentication or input handling.

481 model: sonnet

482 ---

483 

484 You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

485 ```

486 </Piece>

487 

488 <Piece id="hooks">

489 Un [hook](/docs/it/hooks-guide) esegue qualcosa automaticamente in un punto del ciclo di vita di Claude Code, come dopo ogni modifica di file: un comando shell, una richiesta HTTP, una chiamata a uno strumento MCP, un prompt a un modello, o un subagent. Salva gli hook del plugin in `hooks/hooks.json` alla radice del plugin. Questo esegue lo script `scripts/format.sh` del plugin dopo che Claude scrive o modifica un file:

490 

491 ```json theme={null}

492 {

493 "hooks": {

494 "PostToolUse": [

495 {

496 "matcher": "Write|Edit",

497 "hooks": [

498 {

499 "type": "command",

500 "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/format.sh\""

501 }

502 ]

503 }

504 ]

505 }

506 }

507 ```

508 </Piece>

509 

510 <Piece id="monitors">

511 Un monitor è un comando shell che Claude Code avvia in background quando la sessione inizia e continua a eseguire fino a quando non termina, utilizzando lo [strumento Monitor](/docs/it/tools-reference#monitor-tool). Quello che stampa raggiunge Claude come notifiche. Un campo `when` può invece avviarlo la prima volta che una skill denominata viene eseguita. Questo monitora un log di errore:

512 

513 ```json theme={null}

514 [

515 {

516 "name": "error-log",

517 "command": "tail -F ./logs/error.log",

518 "description": "Application error log"

519 }

520 ]

521 ```

522 </Piece>

523 

524 <Piece id="output-styles">

525 Un plugin può includere [stili di output](/docs/it/output-styles), che cambiano il modo in cui Claude formatta e formula le sue risposte. Salva ogni stile di output come `output-styles/<name>.md`. Questo appare in `/output-style` come `my-plugin:terse`:

526 

527 ```markdown theme={null}

528 ---

529 name: terse

530 description: Answer in as few words as possible

531 keep-coding-instructions: true

532 ---

533 

534 Keep every reply short. Skip preambles and summaries.

535 ```

536 </Piece>

537 

538 <Piece id="themes">

539 Un plugin può includere [temi di colore](/docs/it/terminal-config#create-a-custom-theme) per l'interfaccia di Claude Code. Salva ogni tema come `themes/<slug>.json`. Questo appare in `/theme` come `Dracula`, contrassegnato come da `my-plugin`:

540 

541 ```json theme={null}

542 {

543 "name": "Dracula",

544 "base": "dark",

545 "overrides": {

546 "claude": "#bd93f9",

547 "error": "#ff5555"

548 }

549 }

550 ```

551 </Piece>

552 

553 <Piece id="workflows">

554 La cartella `workflows/` contiene file [workflow](/docs/it/workflows) `.js`: un blocco `meta`, quindi un corpo di script che orchestra diversi subagent. Questo viene eseguito come `/my-plugin:audit-routes`:

555 

556 ```javascript theme={null}

557 export const meta = {

558 name: 'audit-routes',

559 description: 'Audit every route handler for missing auth checks',

560 }

561 

562 const found = await agent('List every .ts file under src/routes/.', {

563 schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },

564 })

565 

566 const audits = await pipeline(found.files, file =>

567 agent(`Audit ${file} for missing authentication checks.`, { label: file }),

568 )

569 

570 return audits.filter(Boolean)

571 ```

572 </Piece>

573 

574 <Piece id="bin">

575 `bin/` è il modo in cui un plugin fornisce uno strumento da riga di comando. Mentre il plugin è abilitato, Claude Code mette questa cartella sul `PATH` della shell in cui esegue i comandi, quindi Claude, o le istruzioni di una skill, possono eseguire lo strumento per nome senza che l'utente installi nulla. Con questo [eseguibile](#executables) in posizione, `hello-plugin` è un comando che Claude può eseguire:

576 

577 ```bash theme={null}

578 #!/bin/bash

579 echo "hello from my-plugin"

580 ```

581 </Piece>

582 

583 <Piece id="scripts">

584 L'hook in `hooks/hooks.json` esegue uno script, e questa cartella è dove l'esempio lo mantiene. Il nome `scripts/` è una convenzione, non qualcosa che Claude Code cerca: l'hook punta al file dal suo percorso, `${CLAUDE_PLUGIN_ROOT}/scripts/format.sh`. Uno script di formattazione potrebbe assomigliare a questo:

585 

586 ```bash theme={null}

587 #!/bin/bash

588 npx prettier --write .

589 ```

590 </Piece>

591 

592 <Piece id="settings">

593 Un `settings.json` alla radice del plugin contiene [impostazioni](/docs/it/settings-reference) che si applicano mentre il plugin è abilitato, quindi un plugin può cambiare il comportamento della sessione e non solo aggiungere componenti. Solo due chiavi hanno effetto da un plugin, [`agent`](/docs/it/settings-reference#agent) e [`subagentStatusLine`](/docs/it/settings-reference#subagentstatusline); ogni altra chiave viene scartata. Vedi [Impostazioni predefinite](#default-settings).

594 

595 Questo imposta `agent`, che esegue il thread principale della sessione come l'agent `security-reviewer` del plugin, quindi il system prompt di quell'agent, le restrizioni degli strumenti e il modello si applicano all'intera sessione:

596 

597 ```json theme={null}

598 {

599 "agent": "security-reviewer"

600 }

601 ```

602 </Piece>

603 

604 <Piece id="mcp">

605 Un [server MCP](/docs/it/mcp) fornisce a Claude strumenti da un sistema esterno. Dichiaralo in `.mcp.json` alla radice del plugin. Questo avvia un server locale da uno script all'interno del plugin e appare in `/mcp` come `plugin:my-plugin:db`:

606 

607 ```json theme={null}

608 {

609 "mcpServers": {

610 "db": {

611 "command": "node",

612 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

613 }

614 }

615 }

616 ```

617 </Piece>

618 

619 <Piece id="lsp">

620 Un server LSP fornisce a Claude [diagnostica e navigazione del codice](/docs/it/plugins/code-intelligence) per un linguaggio. Dichiara il server in `.lsp.json` alla radice del plugin. Questo connette il language server Go per i file `.go`:

621 

622 ```json theme={null}

623 {

624 "gopls": {

625 "command": "gopls",

626 "args": ["serve"],

627 "extensionToLanguage": {

628 ".go": "go"

629 }

630 }

631 }

632 ```

633 </Piece>

634</PluginExplorer>

635 

636<h2 id="add-each-kind-of-component">

637 Aggiungi ogni tipo di componente

638</h2>

639 

640Ogni sezione di seguito copre un tipo di componente: dove i suoi file vanno nel plugin, un esempio che convalida, cosa vede l'utente una volta che il plugin carica, e la chiave manifest che cambia la posizione predefinita. Aggiungere quelli di cui il plugin ha bisogno; nessuno è obbligatorio.

641 

642<h3 id="skills">

643 Skills

644</h3>

645 

646Una [skill](/docs/it/skills) è un file `SKILL.md` che Claude può caricare quando la sua descrizione corrisponde al compito. L'utente può anche eseguirla come comando. Salvare ogni skill nella sua directory sotto `skills/`:

647 

648```text theme={null}

649my-plugin/

650├── .claude-plugin/

651│ └── plugin.json

652└── skills/

653 └── review/

654 └── SKILL.md

655```

656 

657Dare al `SKILL.md` una `description` in modo che Claude sappia quando usarla:

658 

659```markdown skills/review/SKILL.md theme={null}

660---

661description: Reviews a pull request for style and test coverage. Use when asked to review code.

662---

663 

664Review the changed files. Report style problems first, then missing tests.

665```

666 

667Dopo aver caricato il plugin, `/my-plugin:review` esegue la skill. Il nome del comando e chi può invocarlo seguono queste regole:

668 

669* **Nome del comando**: `/<plugin>:<directory>`, quindi `skills/review/SKILL.md` in `my-plugin` è `/my-plugin:review`. Se imposti `name` nel frontmatter, sostituisce l'ultimo segmento e il prefisso del plugin rimane. Vedere [come una skill ottiene il suo nome di comando](/docs/it/skills#how-a-skill-gets-its-command-name)

670* **Chi la invoca**: Claude, l'utente o entrambi, controllato dal frontmatter. Vedere [Controlla chi invoca una skill](/docs/it/skills#control-who-invokes-a-skill)

671 

672Puoi anche posizionare le skills al di fuori della directory predefinita `skills/`:

673 

674* **Directory aggiuntive**: elencale nella chiave manifest `skills`. Aggiungono alla scansione predefinita `skills/` piuttosto che sostituirla, a differenza di `commands` e `agents`

675* **Una singola skill alla radice del plugin**: senza directory `skills/` e senza chiave manifest `skills`, un `SKILL.md` alla radice del plugin carica come una skill. Imposta `name` nel suo frontmatter, perché altrimenti un'installazione del marketplace nomina la skill dopo la sua [directory cache](/docs/it/plugins/loading#find-plugins-on-disk) piuttosto che il tuo plugin

676 

677Per includere istruzioni in un plugin, scrivile come una skill. Claude Code non carica un `CLAUDE.md` alla radice del plugin, e `claude plugin validate` avverte `CLAUDE.md at the plugin root is not loaded as project context`.

678 

679Per i campi frontmatter e i file di supporto, vedere [Skills](/docs/it/skills).

680 

681<h3 id="commands">

682 Comandi

683</h3>

684 

685Un comando è un singolo file Markdown che l'utente esegue per nome, come `/my-plugin:about`.

686 

687<Note>

688 I comandi sono il formato più vecchio, e le [skills](#skills) li superano per il nuovo lavoro. Una skill viene eseguita per nome allo stesso modo, e può anche portare file di supporto nella sua directory. Mantenere `commands/` per i file che stai spostando da `.claude/commands/`.

689</Note>

690 

691Salvare un comando in `commands/<file>.md` e diventa `/<plugin>:<file>`. Una sottodirectory aggiunge un segmento, quindi `commands/db/migrate.md` è `/my-plugin:db:migrate`.

692 

693I file di comando accettano lo stesso frontmatter delle skills.

694 

695<h4 id="define-commands-in-the-manifest">

696 Definisci comandi nel manifest

697</h4>

698 

699Hai bisogno di questo solo se vuoi mantenere i file di comando da qualche parte diversa da `commands/`, o per definire un comando breve all'interno di `plugin.json` senza un file Markdown separato. Imposta la chiave manifest `commands`, e Claude Code la legge invece di scansionare `commands/`. La chiave accetta un percorso, un array di percorsi, o un oggetto che mappa ogni nome di comando a un file `source` o a `content` inline.

700 

701Questo manifest definisce `/my-plugin:about` inline, senza file Markdown:

702 

703```json .claude-plugin/plugin.json theme={null}

704{

705 "name": "my-plugin",

706 "commands": {

707 "about": {

708 "content": "Summarize what this repository does in three sentences.",

709 "description": "Summarize the repository"

710 }

711 }

712}

713```

714 

715Carica il plugin ed esegui `/my-plugin:about` nella sessione per confermare che ha caricato.

716 

717Per la sintassi completa della chiave, vedere [`commands`](/docs/it/plugins/manifest-reference#commands).

718 

719<h3 id="agents">

720 Agenti

721</h3>

722 

723Un [subagente](/docs/it/sub-agents) è un assistente separato, con le sue istruzioni e finestra di contesto, che Claude può delegare a un compito. Ogni file Markdown sotto `agents/` ne definisce uno:

724 

725```markdown agents/security-reviewer.md theme={null}

726---

727name: security-reviewer

728description: Reviews code changes for security issues. Use after edits to authentication or input handling.

729model: sonnet

730---

731 

732You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

733```

734 

735Questo agente è denominato `my-plugin:security-reviewer`, e l'utente può [invocarlo esplicitamente](/docs/it/sub-agents#invoke-subagents-explicitly) con `@agent-my-plugin:security-reviewer`. La forma del nome è `<plugin>:<name>`, dove `<name>` viene dal frontmatter, o dal nome del file quando non c'è.

736 

737La chiave manifest `agents` sostituisce la scansione `agents/`.

738 

739<h4 id="organize-agents-in-subfolders">

740 Organizza agenti in sottocartelle

741</h4>

742 

743Puoi mettere i file dell'agente del plugin in sottocartelle di `agents/`. Claude Code [li carica ricorsivamente](/docs/it/sub-agents#choose-the-subagent-scope) e unisce il nome del plugin, ogni nome di sottocartella e il nome del file con due punti per formare il nome con ambito dell'agente. Ad esempio, `agents/review/security.md` in un plugin denominato `my-plugin` carica come `my-plugin:review:security`. Due impostazioni cambiano quel nome:

744 

745* Frontmatter `name`: sostituisce solo il nome del file, quindi `name: audit` in `agents/review/security.md` carica come `my-plugin:review:audit`

746* Campo manifest [`agents`](/docs/it/plugins/manifest-reference#fields): un file che elenchi lì carica senza nomi di sottocartella, quindi `"agents": "./custom/review/security.md"` carica come `my-plugin:security`

747 

748<h4 id="frontmatter-fields-in-plugin-agents">

749 Campi frontmatter negli agenti del plugin

750</h4>

751 

752Il frontmatter di un agente del plugin segue queste regole:

753 

754* **Campi supportati**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, e la chiave `cacheTtl` di `experimental`. L'unico valore `isolation` valido è `"worktree"`. Vedere [campi frontmatter supportati](/docs/it/sub-agents#supported-frontmatter-fields) per quello che fa ciascuno

755* **Campi ignorati**: `permissionMode`, `hooks`, `mcpServers`, e `initialPrompt`. Un file agente non può aggiungere hook o server MCP da solo, quindi aggiungili come plugin [hooks](#hooks) e [server MCP](#mcp-servers) invece

756* **Frontmatter che non analizza**: l'agente carica comunque con ogni campo ignorato. È denominato dopo il file, e la sua descrizione legge `Agent from my-plugin plugin`. Esegui [`claude plugin validate`](/docs/it/plugins/cli-reference#plugin-validate) nella shell per trovare questi file

757 

758Per quello che fa ogni campo e le regole di precedenza, vedere [Subagenti](/docs/it/sub-agents#supported-frontmatter-fields).

759 

760<h3 id="hooks">

761 Hooks

762</h3>

763 

764Un [hook](/docs/it/hooks-guide) esegue qualcosa automaticamente in un punto del ciclo di vita di Claude Code, come dopo ogni modifica di file: un comando shell, una richiesta HTTP, una chiamata a uno strumento MCP, un prompt a un modello, o un subagente. Salvare gli hook del plugin in `hooks/hooks.json` alla radice del plugin, sotto una chiave `"hooks"` di livello superiore, nella stessa forma dell'oggetto `hooks` in `settings.json`. Questo ti permette di copiare un hook di impostazioni esistente senza modifiche.

765 

766Questo hook esegue uno script in bundle dopo ogni `Write` o `Edit`:

767 

768```json hooks/hooks.json theme={null}

769{

770 "hooks": {

771 "PostToolUse": [

772 {

773 "matcher": "Write|Edit",

774 "hooks": [

775 {

776 "type": "command",

777 "command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/format.sh\""

778 }

779 ]

780 }

781 ]

782 }

783}

784```

785 

786Salvare lo script in `scripts/format.sh` e renderlo eseguibile.

787 

788Carica il plugin e chiedi a Claude di modificare un file. Un hook `PostToolUse` che esce con 0 non mostra nulla nella trascrizione, quindi conferma che è stato eseguito con [debug logging](/docs/it/hooks#debug-hooks) o da quello che lo script stesso cambia.

789 

790Gli hook in `hooks/hooks.json` e nella chiave manifest `hooks` caricano entrambi. Per ogni evento e il suo payload, vedere [Hook events](/docs/it/hooks#hook-events).

791 

792<h4 id="when-plugin-hooks-fire">

793 Quando gli hook del plugin si attivano

794</h4>

795 

796Gli hook di un plugin non aspettano che una delle skill o dei comandi del plugin venga utilizzata. Claude Code li registra quando una sessione carica il plugin, e si attivano sui loro eventi da allora in poi. Per limitare quando un hook viene eseguito, restringere il suo `matcher`.

797 

798Se un hook non si attiva mai, vedere [hook che non si attivano](/docs/it/plugins/troubleshooting#failed-to-load-hooks-from-and-hooks-that-dont-fire).

799 

800<h4 id="environment-quoting-and-matching-mcp-tools">

801 Ambiente, quoting e corrispondenza degli strumenti MCP

802</h4>

803 

804L'ambiente dell'hook, il quoting di `${CLAUDE_PLUGIN_ROOT}`, e i matcher per gli strumenti MCP del plugin funzionano come segue:

805 

806* **Ambiente**: ogni processo hook riceve `CLAUDE_PLUGIN_ROOT` e `CLAUDE_PLUGIN_DATA` nel suo ambiente, più `CLAUDE_PLUGIN_OPTION_<KEY>` per ogni valore di [configurazione utente](#user-configuration), in modo che lo script possa leggerli da lì

807* **Quoting**: quando `command` non ha `args`, viene eseguito attraverso una shell, quindi avvolgi il percorso `${CLAUDE_PLUGIN_ROOT}` tra virgolette doppie, come fa l'esempio `hooks/hooks.json` sotto [Hooks](#hooks), per mantenere il percorso espanso una parola shell. Quando passi `args` invece, ogni elemento viene passato come un argomento senza shell e non ha bisogno di quoting. Vedere [exec form e shell form](/docs/it/hooks#exec-form-and-shell-form)

808* **Corrispondenza degli strumenti MCP del plugin**: uno strumento da un [server MCP che questo plugin dichiara](#mcp-servers) è denominato `mcp__plugin_<plugin>_<server>__<tool>`, quindi scrivi quel nome completo nel matcher. Un matcher sul solo nome del server non si attiva mai. Vedere [Match MCP tools](/docs/it/hooks#match-mcp-tools)

809 

810<h3 id="mcp-servers">

811 Server MCP

812</h3>

813 

814Un server MCP fornisce a Claude strumenti da un sistema esterno. Dichiararlo in `.mcp.json` alla radice del plugin, nella stessa forma di un [`.mcp.json` di progetto](/docs/it/mcp#project-scope). Questo `.mcp.json` dichiara un server denominato `db`:

815 

816```json .mcp.json theme={null}

817{

818 "mcpServers": {

819 "db": {

820 "command": "node",

821 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

822 }

823 }

824}

825```

826 

827Puoi anche omettere il wrapper `mcpServers` e mettere `db` al livello superiore del file.

828 

829Carica il plugin ed esegui `/mcp` per confermare che il server appare come `plugin:my-plugin:db`.

830 

831`claude plugin validate` controlla `.mcp.json` e segnala una voce di server che Claude Code eliminerebbe al momento del caricamento come errore. Richiede Claude Code v2.1.281 o successivo.

832 

833Per dove una voce errata appare al momento del caricamento, vedere [Server MCP che non si avviano](/docs/it/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start).

834 

835La chiave manifest `mcpServers` accetta una mappa di server inline, un percorso a un file JSON, o un array di quelli. Quando un server manifest ha lo stesso nome di uno in `.mcp.json`, il server manifest lo sostituisce.

836 

837<h4 id="reach-users-on-claude-ai-and-cowork">

838 Raggiungi gli utenti su claude.ai e Cowork

839</h4>

840 

841Un server stdio locale, come il server `db` sotto [Server MCP](#mcp-servers), viene eseguito in Claude Code e in una sessione Cowork che viene eseguita sulla tua macchina nell'app Claude Desktop, ma non su claude.ai. Per raggiungerli anche lì, fai riferimento a un server remoto dal suo URL `https://`, che claude.ai e Cowork offrono all'utente come connettore.

842 

843<h4 id="server-names-tool-names-and-reloads">

844 Nomi dei server, nomi degli strumenti e ricaricamenti

845</h4>

846 

847I nomi del server, la sostituzione delle variabili e il comportamento di ricaricamento seguono queste regole:

848 

849* **Nome del server**: `plugin:<plugin>:<server>`, quindi il server `db` in `my-plugin` è `plugin:my-plugin:db` in `/mcp`. Usa la stessa forma per nominare il server in un [hook `mcp_tool`](/docs/it/hooks#mcp-tool-hook-fields)

850* **Nomi degli strumenti**: `mcp__plugin_<plugin>_<server>__<tool>`, quindi uno strumento `query` su quel server `db` è `mcp__plugin_my-plugin_db__query`. Questo è il nome da usare in [regole di permesso](/docs/it/permissions) e [matcher di hook](#hooks)

851* **Sostituzione**: `${CLAUDE_PLUGIN_ROOT}` e le altre [variabili di percorso](#path-variables-and-persistent-data) vengono sostituite in `command`, `args`, e `env`. Non è necessario quoting in `args`, perché ogni elemento viene passato come un argomento

852* **Ricaricamento**: quando l'utente esegue `/reload-plugins` e [il ricaricamento si applica](/docs/it/plugins/cli-reference#reloads-that-change-mcp-tools), un server la cui configurazione è invariata mantiene la sua connessione. Un server la cui configurazione è cambiata si riconnette, e uno che hai rimosso si disconnette

853 

854<h4 id="include-a-packaged-mcpb-server">

855 Includi un server MCPB in pacchetto

856</h4>

857 

858La chiave `mcpServers` accetta anche un server in pacchetto come file [MCPB](https://github.com/modelcontextprotocol/mcpb), la cui estensione è `.mcpb` o la più vecchia `.dxt`. Punta la chiave al file, come percorso all'interno del plugin o un URL `https://`:

859 

860```json .claude-plugin/plugin.json theme={null}

861{

862 "name": "my-plugin",

863 "mcpServers": "./servers/db.mcpb"

864}

865```

866 

867Il server prende il suo nome da `name` nel manifest del bundle.

868 

869Per trasporti e autenticazione, vedere [MCP](/docs/it/mcp#plugin-provided-mcp-servers).

870 

871<h3 id="lsp-servers">

872 Server LSP

873</h3>

874 

875Un server LSP fornisce a Claude diagnostica e navigazione del codice per un linguaggio. Se un [plugin ufficiale di code intelligence](/docs/it/plugins/code-intelligence) copre già il tuo linguaggio, installa quello invece di scriverne uno. Altrimenti dichiara il server in `.lsp.json` alla radice del plugin:

876 

877```json .lsp.json theme={null}

878{

879 "gopls": {

880 "command": "gopls",

881 "args": ["serve"],

882 "extensionToLanguage": {

883 ".go": "go"

884 }

885 }

886}

887```

888 

889Il file mappa ogni nome di server direttamente alla sua configurazione, senza oggetto wrapper attorno alla mappa. `command` è il nome del binario, con i suoi argomenti in `args`. `extensionToLanguage` ha bisogno di almeno un'estensione, ognuna che inizia con `.`.

890 

891`claude plugin validate` non legge questo file. Quando una voce è non valida, l'intero file viene saltato al caricamento e `Invalid LSP server config for ".lsp.json"` appare nella scheda **Errors** di `/plugin`.

892 

893Il tuo plugin configura la connessione ma non installa il binario del server, e ogni estensione di file ottiene un server:

894 

895* **Binario mancante**: Claude Code avvia `command` per nome dal `PATH` dell'utente. Quando il binario non è lì, il server non si avvia e `claude --debug` registra `LSP server <name> failed to start`

896* **Conflitti di estensione**: quando due server abilitati rivendicano la stessa estensione, il primo registrato gestisce quei file e l'altro non viene utilizzato per loro, che i server provengano da un plugin o da due. La scheda **Errors** di `/plugin` mostra l'avviso `LSP server "<name>" is not used for <ext> files`

897 

898La chiave manifest `lspServers` accetta la stessa mappa inline, un percorso a un file JSON, o un array di quelli, e i suoi server si aggiungono a quelli in `.lsp.json`. Quando un server manifest ha lo stesso nome di uno in `.lsp.json`, il server manifest lo sostituisce.

899 

900Per `transport`, timeout, riavvii e gli altri campi, vedere [`lspServers`](/docs/it/plugins/manifest-reference#lspservers).

901 

902Invia l'output del log a stderr, non a stdout. Claude Code legge stdout di un server solo come messaggi di protocollo, e accetta intestazioni di messaggi fino a 64 KiB e un corpo di messaggio fino a 32 MiB.

903 

904Claude Code disconnette un server che supera uno dei due limiti o scrive output non-protocollo a stdout, e conta la disconnessione come un crash per `restartOnCrash` e `maxRestarts`. Quando esegui con `--debug`, Claude Code scrive un errore che nomina la causa al log di debug.

905 

906<h3 id="executables">

907 Eseguibili

908</h3>

909 

910I file in `bin/` alla radice del plugin sono su `PATH` della shell dello strumento Bash mentre il plugin è abilitato, quindi Claude può eseguirli come comandi nudi. Aggiungi uno script eseguibile:

911 

912```bash bin/hello-plugin theme={null}

913#!/bin/bash

914echo "hello from my-plugin"

915```

916 

917Rendilo eseguibile con `chmod +x bin/hello-plugin` e carica il plugin. Quando chiedi a Claude di eseguire `hello-plugin`, il risultato dello strumento Bash mostra l'output dello script.

918 

919Le directory `bin/` del plugin vengono dopo le voci `PATH` dell'utente, quindi un plugin non può oscurare `git`, `ls`, o un altro comando di sistema.

920 

921claude.ai e Cowork non installano un plugin che ha una directory `bin/` di livello superiore, incluso uno che [distribuisci attraverso le impostazioni dell'organizzazione claude.ai](/docs/it/plugins/host-marketplace#distribute-through-organization-settings).

922 

923<h3 id="default-settings">

924 Impostazioni predefinite

925</h3>

926 

927Per impostare i valori predefiniti che si applicano mentre il plugin è abilitato, aggiungi un `settings.json` alla radice del plugin, o metti lo stesso oggetto inline nella chiave manifest `settings`. Due chiavi hanno effetto, `agent` e `subagentStatusLine`, e ogni altra chiave viene eliminata.

928 

929Imposta `agent` per eseguire uno dei propri agenti del plugin come thread principale:

930 

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

932{

933 "agent": "security-reviewer"

934}

935```

936 

937Carica il plugin e avvia una sessione. Claude quindi risponde nella conversazione principale con il prompt di sistema e il modello dell'agente `security-reviewer`.

938 

939Per tutto quello che la chiave controlla, vedere l'[impostazione `agent`](/docs/it/settings-reference#agent).

940 

941Quando la stessa chiave è impostata in più di un posto, queste regole decidono quale valore si applica:

942 

943* **File su manifest**: quando entrambi esistono e `settings.json` imposta almeno una chiave supportata, `settings.json` si applica e il `settings` del manifest viene ignorato

944* **Impostazioni utente su valori predefiniti del plugin**: tra le fonti di impostazioni, i valori predefiniti del plugin sono il livello più basso, quindi un `agent` proprio dell'utente in `~/.claude/settings.json` sostituisce il tuo

945* **Due plugin impostano la stessa chiave**: il valore dal plugin caricato per ultimo si applica, e `claude --debug` registra `overrides setting`

946 

947Per la forma `subagentStatusLine`, vedere [linee di stato del subagente](/docs/it/statusline#subagent-status-lines).

948 

949<h3 id="themes-and-output-styles">

950 Temi e stili di output

951</h3>

952 

953Un plugin può includere temi di colore e stili di output. Entrambi appaiono negli stessi picker dei propri dell'utente. Per uno qualsiasi, impostare la chiave manifest sostituisce la scansione della cartella.

954 

955| Componente | Salva come | Formato | Appare in | Chiave manifest |

956| :-------------- | :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------- | :-------------------- |

957| Tema | `themes/<slug>.json` | Il formato [file tema personalizzato](/docs/it/terminal-config#create-a-custom-theme) che gli utenti scrivono in `~/.claude/themes/` | `/theme`, sotto il `name` del file | `experimental.themes` |

958| Stile di output | `output-styles/<name>.md` | Il formato [stile di output personalizzato](/docs/it/output-styles#create-a-custom-output-style), con frontmatter `name` e `description` | `/output-style`, come `<plugin>:<name>` | `outputStyles` |

959 

960I temi del plugin sono di sola lettura, quindi quando un utente ne modifica uno in `/theme`, la modifica viene salvata come copia nella sua directory di temi.

961 

962Questo tema ricolora il prompt di accento e il testo di errore sul preset scuro:

963 

964```json themes/dracula.json theme={null}

965{

966 "name": "Dracula",

967 "base": "dark",

968 "overrides": {

969 "claude": "#bd93f9",

970 "error": "#ff5555"

971 }

972}

973```

974 

975<h3 id="channels">

976 Canali

977</h3>

978 

979Un [canale](/docs/it/channels) consente a un sistema esterno come un'app di chat di inviare messaggi in una sessione. In un plugin, un canale è uno dei server MCP più una voce `channels` che si lega ad esso e può richiedere la sua configurazione. Questo manifest lega un canale a un server `telegram` e chiede un token bot:

980 

981```json .claude-plugin/plugin.json theme={null}

982{

983 "name": "my-plugin",

984 "mcpServers": {

985 "telegram": {

986 "command": "node",

987 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

988 "env": { "BOT_TOKEN": "${user_config.bot_token}" }

989 }

990 },

991 "channels": [

992 {

993 "server": "telegram",

994 "userConfig": {

995 "bot_token": {

996 "type": "string",

997 "title": "Bot token",

998 "description": "Telegram bot token",

999 "sensitive": true

1000 }

1001 }

1002 }

1003 ]

1004}

1005```

1006 

1007`server` deve corrispondere a una chiave in `mcpServers`. Il `userConfig` per canale accetta la stessa forma della chiave [`userConfig`](#user-configuration) di livello superiore.

1008 

1009Per quello che il server deve implementare e come gli utenti abilitano un plugin di canale, vedere [Pacchetto come plugin](/docs/it/channels-reference#package-as-a-plugin) nel riferimento dei canali. Per la tabella dei campi, vedere [`channels`](/docs/it/plugins/manifest-reference#channels).

1010 

1011<h3 id="monitors">

1012 Monitor

1013</h3>

1014 

1015Un monitor è un comando shell che viene eseguito in background per l'intera sessione. Quello che stampa raggiunge Claude come notifiche, quindi Claude può reagire a un log o a un cambio di stato senza essere chiesto di guardarlo. Salvare le voci in `monitors/monitors.json`:

1016 

1017```json monitors/monitors.json theme={null}

1018[

1019 {

1020 "name": "error-log",

1021 "command": "tail -F ./logs/error.log",

1022 "description": "Application error log"

1023 }

1024]

1025```

1026 

1027Il comando viene eseguito in una shell, nella directory di lavoro in cui la sessione è stata avviata.

1028 

1029Il comando di un monitor è limitato in dove inizia e cosa può fare riferimento:

1030 

1031* **Solo sessioni interattive**: i monitor del plugin si avviano in una sessione interattiva e mai in modalità non interattiva con il flag `-p`. Si avviano anche solo dove lo [strumento Monitor](/docs/it/tools-reference#monitor-tool) è disponibile

1032* **Nessuna configurazione utente**: `command` ottiene le [variabili di percorso](#path-variables-and-persistent-data) e `${ENV_VAR}` dall'ambiente, ma mai `${user_config.*}`. Un monitor che fa riferimento a uno non si avvia, e i processi monitor non ricevono nemmeno `CLAUDE_PLUGIN_OPTION_<KEY>`

1033* **Disabilitazione a metà sessione**: se disabiliti un plugin a metà sessione, Claude Code non ferma i monitor che sono già in esecuzione. Si fermano quando la sessione finisce

1034 

1035La chiave manifest `experimental.monitors` accetta lo stesso array inline o un percorso a un file JSON, e viene letta invece di `monitors/monitors.json`.

1036 

1037Per il trigger `when` e gli altri campi, vedere [`monitors`](/docs/it/plugins/manifest-reference#monitors).

1038 

1039<h2 id="user-configuration">

1040 Chiedi all'utente i valori di configurazione

1041</h2>

1042 

1043Dichiara i valori di cui il tuo plugin ha bisogno dall'utente nella chiave manifest `userConfig`, in modo che gli utenti non modifichino `settings.json` da soli. Ogni opzione appare in una finestra di dialogo con il suo `title` come etichetta e la sua `description` sotto.

1044 

1045Imposta `"sensitive": true` per un token o una password. La finestra di dialogo quindi maschera l'input, e il valore viene archiviato in archiviazione sicura piuttosto che in `settings.json`.

1046 

1047Questo manifest chiede un endpoint e un token:

1048 

1049```json .claude-plugin/plugin.json theme={null}

1050{

1051 "name": "my-plugin",

1052 "userConfig": {

1053 "api_url": {

1054 "type": "string",

1055 "title": "API URL",

1056 "description": "Base URL of your team's API"

1057 },

1058 "api_token": {

1059 "type": "string",

1060 "title": "API token",

1061 "description": "Token for your team's API",

1062 "sensitive": true

1063 }

1064 }

1065}

1066```

1067 

1068<h3 id="when-the-configuration-dialog-appears">

1069 Quando appare la finestra di dialogo di configurazione

1070</h3>

1071 

1072La finestra di dialogo appare solo nell'interfaccia interattiva `/plugin`. Si apre per qualsiasi opzione che non è ancora impostata quando l'utente fa uno dei seguenti:

1073 

1074* Installa il plugin in `/plugin`

1075* Esegui `/plugin install <plugin>@<marketplace>` all'interno di una sessione

1076* Abilita il plugin dalla scheda **Installed** in `/plugin`

1077 

1078Per aprire la stessa finestra di dialogo in qualsiasi momento, l'utente esegue `/plugin configure <plugin>@<marketplace>`.

1079 

1080Il comando shell `claude plugin install` non richiede mai i valori `userConfig`. Per impostare i valori dalla shell, passa ognuno come `--config KEY=VALUE`. Quando le opzioni rimangono non impostate, il comando stampa una riga `userConfig options not yet set` che nomina entrambi i modi per impostarli. [La finestra di dialogo `userConfig` non appare mai](/docs/it/plugins/troubleshooting#the-userconfig-dialog-never-appears) cita la riga.

1081 

1082Per i campi dell'opzione, dove ogni valore viene archiviato, come un componente fa riferimento a un valore salvato, e quali campi rifiutano `${user_config.*}`, vedere [Configurazione utente](/docs/it/plugins/manifest-reference#user-configuration).

1083 

1084<h2 id="path-variables-and-persistent-data">

1085 Fai riferimento ai percorsi del plugin e archivia i dati

1086</h2>

1087 

1088Non sai dove il tuo plugin verrà installato, quindi fai riferimento ai suoi file e dati attraverso queste variabili piuttosto che percorsi fissi. Vengono sostituite nel contenuto di skill, comando e agente, nei comandi di hook e monitor, e nelle configurazioni di server MCP e LSP. Vengono anche esportate ai processi hook, MCP e LSP:

1089 

1090* **`${CLAUDE_PLUGIN_ROOT}`**: la directory di installazione del plugin. Ogni versione ha la sua [directory cache](/docs/it/plugins/loading#find-plugins-on-disk), quindi il percorso cambia quando il plugin si aggiorna. Non scrivere stato lì

1091* **`${CLAUDE_PLUGIN_DATA}`**: una directory che sopravvive agli aggiornamenti, per `node_modules`, ambienti virtuali e cache. Si risolve in `~/.claude/plugins/data/<id>/` e viene creata quando viene referenziata per la prima volta

1092* **`${CLAUDE_PROJECT_DIR}`**: la radice del progetto, lo stesso valore che gli hook ricevono

1093 

1094Nel percorso della directory dei dati, `<id>` è l'identificatore del plugin con ogni carattere diverso da lettere, cifre, `_`, e `-` sostituito da `-`, quindi `my-plugin@my-marketplace` diventa `my-plugin-my-marketplace`.

1095 

1096Su Windows, i percorsi sostituiti utilizzano barre in avanti in modo che una shell non legga le barre rovesciate come escape.

1097 

1098<h3 id="install-dependencies-into-the-data-directory">

1099 Installa le dipendenze nella directory dei dati

1100</h3>

1101 

1102Per un plugin installato dal marketplace, Claude Code installa automaticamente le [dipendenze di pacchetti Node.js](/docs/it/plugins/loading#node-js-package-dependencies) idonee quando memorizza il plugin nella cache, quindi potresti non aver bisogno di installarle tu stesso. Quando lo fai, questo hook `SessionStart` installa `node_modules` in `${CLAUDE_PLUGIN_DATA}` alla prima esecuzione e di nuovo dopo che un aggiornamento cambia `package.json`:

1103 

1104```json hooks/hooks.json theme={null}

1105{

1106 "hooks": {

1107 "SessionStart": [

1108 {

1109 "hooks": [

1110 {

1111 "type": "command",

1112 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""

1113 }

1114 ]

1115 }

1116 ]

1117 }

1118}

1119```

1120 

1121Dopo la prima sessione, `~/.claude/plugins/data/<id>/node_modules` esiste. Un server MCP può quindi impostare `NODE_PATH` a `${CLAUDE_PLUGIN_DATA}/node_modules` nel suo `env`. Per quali campi sostituiscono quale variabile, vedere [Variabili di ambiente](/docs/it/plugins/manifest-reference#environment-variables).

1122 

1123<h2 id="next-steps">

1124 Passaggi successivi

1125</h2>

1126 

1127* [Riferimento manifest del plugin](/docs/it/plugins/manifest-reference): campi `plugin.json`, regole di percorso e layout standard

1128* [Testa i plugin con evals](/docs/it/plugin-evals): controlla che i componenti che hai aggiunto cambino il comportamento di Claude nel modo che intendi

1129* [Pubblica e distribuisci un plugin](/docs/it/plugins/publish): versiona il plugin e mettilo in un marketplace

1130* [Risolvi i problemi dei plugin](/docs/it/plugins/troubleshooting): cosa fare quando un componente non carica o un hook non si attiva

plugins/create.md +424 −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# Creare un plugin Claude Code

6 

7> Crea il tuo primo plugin Claude Code da una directory vuota, testalo senza un marketplace e converti una configurazione .claude/ esistente.

8 

9Un plugin è una directory di skills, agents, hooks e server MCP, più un file `plugin.json`, chiamato manifest, che nomina il plugin. Claude Code carica la directory come un'unità, quindi puoi condividerla con i colleghi, installarla in diversi progetti o pubblicarla in un marketplace.

10 

11Questa pagina è per le persone che scrivono i propri plugin.

12 

13<Note>

14 Questi casi sono coperti su altre pagine:

15 

16 * **Installare il plugin di qualcun altro**: vedi [Installare plugin](/docs/it/plugins/install)

17 * **Non sei sicuro di aver bisogno di un plugin**: vedi [Decidere se hai bisogno di un plugin](/docs/it/plugins/overview#decide-whether-you-need-a-plugin) nella panoramica

18 * **Gli utenti del tuo plugin sono su claude.ai o in Cowork**: la stessa cartella si installa lì con un sottoinsieme diverso di componenti. Vedi [Plugin su claude.ai e in Cowork](https://claude.com/docs/plugins/overview)

19</Note>

20 

21Inizia dalla sezione che corrisponde a quello che hai già:

22 

23* **Niente ancora**: segui [Creare il tuo primo plugin](#create-your-first-plugin), quindi [Sviluppare senza un marketplace](#develop-without-a-marketplace) e [Testare e debuggare](#test-and-debug).

24* **File già sotto `.claude/`**: fai la procedura del primo plugin una volta per imparare il layout, quindi segui [Convertire una configurazione `.claude/` esistente](#convert-an-existing-claude-setup).

25 

26<h2 id="decide-when-to-use-a-plugin">

27 Decidere quando usare un plugin

28</h2>

29 

30Skills, agents, hooks e server MCP funzionano tutti in modo autonomo nel tuo progetto o nella directory home. Mantieni quella configurazione autonoma mentre serve un solo progetto o solo te. Crea un plugin quando vuoi condividere la configurazione con i colleghi, installarla in diversi progetti o pubblicare versioni rilasciate.

31 

32Quando sposti skills, agents, hooks e configurazione MCP autonomi in un plugin, la loro posizione e i loro nomi cambiano:

33 

34* **Dove vanno i file**: sotto la directory del plugin, chiamata radice del plugin, come `skills/`, `agents/`, `hooks/hooks.json` e `.mcp.json`.

35* **Come sono nominati**: le skills e gli agents del plugin ottengono il nome del plugin come prefisso, come `/my-plugin:hello`, quindi due plugin possono ciascuno fornire una skill `hello` senza collisioni.

36 

37Per spostare una configurazione esistente in un plugin, vedi [Convertire una configurazione `.claude/` esistente](#convert-an-existing-claude-setup).

38 

39<h2 id="create-your-first-plugin">

40 Creare il tuo primo plugin

41</h2>

42 

43In questa procedura, crei un plugin il cui unico componente è una skill, un saluto, e lo esegui con `--plugin-dir`, che carica un plugin per una sessione senza installarlo. Un plugin può contenere qualsiasi mix di [componenti](/docs/it/plugins/components), come skills, agents, hooks e server MCP, e nessuno è obbligatorio; una skill è l'esempio più piccolo che mostra il layout.

44 

45Hai bisogno di Claude Code [installato e connesso](/docs/it/quickstart#step-1-install-claude-code).

46 

47Apri un terminale nella directory in cui vuoi mantenere il plugin, come `~/projects`, ed esegui i comandi in questi passaggi da lì. Puoi mantenere un plugin ovunque, perché passi il suo percorso a Claude Code quando avvii una sessione.

48 

49<Steps>

50 <Step title="Creare la directory del plugin">

51 Crea la directory del plugin, con una cartella `.claude-plugin/` dentro per contenere il manifest:

52 

53 ```bash theme={null}

54 mkdir -p my-first-plugin/.claude-plugin

55 ```

56 </Step>

57 

58 <Step title="Scrivere il manifest">

59 Il [manifest](/docs/it/plugins/manifest-reference) è un file JSON denominato `plugin.json` che dice a Claude Code il nome del plugin e lo descrive. Salva questo come `my-first-plugin/.claude-plugin/plugin.json`:

60 

61 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}

62 {

63 "name": "my-first-plugin",

64 "description": "A greeting plugin to learn the basics",

65 "version": "1.0.0",

66 "author": {

67 "name": "Your Name"

68 }

69 }

70 ```

71 

72 I quattro campi fanno questo:

73 

74 * **`name`**: obbligatorio. Identifica il plugin e diventa il prefisso su ogni skill e agent che il plugin fornisce. Non mettere spazi in esso.

75 * **`description`**: il testo che gli utenti vedono per il plugin in `/plugin`.

76 * **`version`**: opzionale. Impostarlo mantiene gli utenti su quella versione finché non la cambi; [Rilasciare una nuova versione](/docs/it/plugins/host-marketplace#release-a-new-version) dice quando impostarla o ometterla.

77 * **`author`**: a chi attribuire il merito. `name` è obbligatorio al suo interno; `email` e `url` sono opzionali.

78 

79 Ogni altro campo è nel [riferimento del manifest](/docs/it/plugins/manifest-reference#fields).

80 

81 Solo `plugin.json` va dentro `.claude-plugin/`. La skill che aggiungi dopo va direttamente sotto `my-first-plugin/`, accanto a quella cartella.

82 </Step>

83 

84 <Step title="Aggiungere una skill">

85 L'unico componente di questo plugin è una skill. Ogni skill è una directory sotto `skills/` che contiene un file `SKILL.md`. Crea la directory della skill:

86 

87 ```bash theme={null}

88 mkdir -p my-first-plugin/skills/hello

89 ```

90 

91 Quindi crea `my-first-plugin/skills/hello/SKILL.md` con questo contenuto:

92 

93 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}

94 ---

95 name: hello

96 description: Greet the user with a friendly message

97 disable-model-invocation: true

98 ---

99 

100 Greet the user warmly and ask how you can help them today.

101 ```

102 

103 La riga `disable-model-invocation: true` significa che Claude non esegue la skill da solo, quindi solo tu la attivi. Rimuovi quella riga da una skill che vuoi che Claude esegua da solo. Il comando della skill combina il nome del plugin e il nome della skill, quindi esegui questo come `/my-first-plugin:hello`. Per gli altri campi del frontmatter, vedi il [riferimento del frontmatter della skill](/docs/it/skills#frontmatter-reference).

104 </Step>

105 

106 <Step title="Convalidare il plugin">

107 Controlla il manifest e il frontmatter della skill prima di eseguire qualsiasi cosa:

108 

109 ```bash theme={null}

110 claude plugin validate ./my-first-plugin

111 ```

112 

113 Il comando stampa il percorso del manifest che ha controllato e `✔ Validation passed`. Se stampa `✘ Validation failed` invece, ogni riga sopra quella riga di risultato nomina il campo da correggere. Cerca ogni messaggio sotto [`claude plugin validate` segnala errori](/docs/it/plugins/troubleshooting#claude-plugin-validate-reports-errors).

114 </Step>

115 

116 <Step title="Eseguire Claude Code con il plugin">

117 Avvia una sessione con il plugin caricato:

118 

119 ```bash theme={null}

120 claude --plugin-dir ./my-first-plugin

121 ```

122 

123 Una volta che Claude Code si avvia, esegui la skill:

124 

125 ```text theme={null}

126 /my-first-plugin:hello

127 ```

128 

129 Claude risponde con un saluto.

130 </Step>

131</Steps>

132 

133Il plugin carica solo nelle sessioni che avvii con `--plugin-dir`. Per continuare a lavorarci senza il flag, o per testare una build `.zip`, vedi [Sviluppare senza un marketplace](#develop-without-a-marketplace).

134 

135<h3 id="share-the-plugin">

136 Condividere il tuo plugin

137</h3>

138 

139Un plugin che hai costruito con [Creare il tuo primo plugin](#create-your-first-plugin) esiste solo sulla tua macchina. Quando è pronto per altre persone, ci sono tre modi per farlo arrivare a loro:

140 

141* **Inviarlo a poche persone direttamente**: dai loro la directory del plugin o un `.zip` di esso, e niente deve essere pubblicato. Vedi [Condividere un plugin senza un marketplace](/docs/it/plugins/publish#share-a-plugin-without-a-marketplace).

142* **Elencarlo nel tuo marketplace**: i colleghi aggiungono il tuo marketplace una volta e installano il plugin per nome, e ricevono i tuoi aggiornamenti. Vedi [Pubblicare attraverso il tuo marketplace](/docs/it/plugins/publish#publish-through-your-own-marketplace).

143* **Inviarlo al marketplace della comunità di Anthropic**: una volta elencato, chiunque aggiunga quel marketplace può installarlo. Vedi [Inviare al marketplace della comunità](/docs/it/plugins/publish#submit-to-the-community-marketplace).

144 

145<h3 id="plugin-layout">

146 Layout del plugin

147</h3>

148 

149Ogni tipo di [componente](/docs/it/plugins/components), come skills, agents, hooks e server MCP, va in una directory fissa sotto la radice del plugin, che è la directory che passi a `--plugin-dir`. Aggiungi solo le directory che usi. Per fare clic attraverso una directory di plugin completa e leggere cosa fa ogni file, apri l'[esploratore di plugin](/docs/it/plugins/components#explore-the-plugin-directory).

150 

151La tabella elenca le directory con cui la maggior parte dei plugin inizia, e il [layout completo](/docs/it/plugins/manifest-reference#standard-layout) elenca il resto.

152 

153| Posizione | Contenuti |

154| :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------ |

155| `.claude-plugin/plugin.json` | Il manifest. Quando carichi un plugin con `--plugin-dir` e non ha un manifest, Claude Code nomina il plugin dopo la sua directory |

156| `skills/` | Una directory `<name>/SKILL.md` per skill |

157| `commands/` | File Markdown piatti, la forma più vecchia di skills. Usa `skills/` per i nuovi plugin |

158| `agents/` | Un file Markdown per subagent |

159| `hooks/hooks.json` | Configurazione hook: una chiave `"hooks"` di livello superiore il cui valore ha la stessa forma di `hooks` in un file di impostazioni |

160| `.mcp.json` | Definizioni del server MCP |

161 

162<Warning>

163 Solo `plugin.json` va dentro `.claude-plugin/`. I componenti salvati lì non caricano.

164 

165 La radice del plugin è la directory del plugin stesso, non `~/.claude/` stesso. Un `.mcp.json` salvato in `~/.claude/.mcp.json` non carica.

166</Warning>

167 

168<h2 id="develop-without-a-marketplace">

169 Sviluppare senza un marketplace

170</h2>

171 

172Non hai bisogno di un [marketplace](/docs/it/plugins/overview#get-plugins-from-a-marketplace) per eseguire un plugin che stai scrivendo. Caricalo direttamente dal disco o da un URL invece:

173 

174* [`--plugin-dir`](#load-a-directory-or-archive-for-one-session): carica una directory o un archivio `.zip` per una sessione.

175* [`--plugin-url`](#fetch-an-archive-from-a-url-for-one-session): recupera un archivio `.zip` da un URL per una sessione.

176* [`claude plugin init`](#scaffold-a-plugin-that-loads-every-session): scaffolda un plugin sotto `~/.claude/skills/` che carica ogni sessione.

177 

178Se due plugin caricati in modi diversi condividono un nome, vedi [Conflitti di nomi](/docs/it/plugins/loading#name-conflicts) per quale Claude Code mantiene.

179 

180<h3 id="load-a-directory-or-archive-for-one-session">

181 Caricare un plugin per una sessione

182</h3>

183 

184Puoi caricare un plugin per una singola sessione in tre modi: da una directory o un archivio `.zip` sul disco con `--plugin-dir`, da un URL con `--plugin-url`, o da una variabile di ambiente quando non puoi aggiungere un flag. Ogni plugin carica solo per quella sessione, e niente viene scritto nelle tue impostazioni per esso. Quando modifichi i file del plugin durante la sessione, esegui `/reload-plugins` per caricare le modifiche.

185 

186<h4 id="from-a-directory-or-zip">

187 Da una directory o `.zip`

188</h4>

189 

190Quando avvii `claude` dalla tua shell, passa `--plugin-dir` con la directory radice del plugin o un archivio `.zip` di esso. Ripeti il flag per caricare diversi plugin:

191 

192```bash theme={null}

193claude --plugin-dir ./my-first-plugin --plugin-dir ./other-plugin.zip

194```

195 

196<h4 id="load-a-folder-of-plugins">

197 Da una cartella di plugin

198</h4>

199 

200Per caricare diversi plugin da un posto, passa una cartella che li contiene, come `--plugin-dir ./plugins`. Caricare una cartella di plugin richiede Claude Code v2.1.265 o successivo.

201 

202Se la cartella non ha una directory `.claude-plugin/` e nessun componente di plugin al suo livello superiore, Claude Code la tratta come una cartella di plugin. Ogni sottocartella immediata che ha un manifest `.claude-plugin/plugin.json` quindi carica come un plugin separato. Tutto il resto nella cartella viene saltato senza un errore, inclusa una sottocartella che non ha un manifest. Se un plugin nella cartella non carica, controlla che la sua sottocartella abbia un `.claude-plugin/plugin.json`.

203 

204In una sessione interattiva, puoi anche aggiungere e rimuovere plugin nella cartella dopo l'avvio:

205 

206* Una sottocartella che aggiungi carica come un nuovo plugin una volta che il suo manifest esiste.

207* Quando rimuovi una sottocartella, il suo plugin scarica.

208 

209Un messaggio appare nella sessione per ciascuno di questi cambiamenti. Se caricare o scaricare un plugin a metà conversazione [invaliderebbe la cache del prompt](/docs/it/prompt-caching#enabling-or-disabling-a-plugin), il cambiamento viene mantenuto invece, e il messaggio ti dice di eseguire `/reload-plugins` per applicarlo.

210 

211<h4 id="fetch-an-archive-from-a-url-for-one-session">

212 Da un URL

213</h4>

214 

215Quando avvii `claude` dalla tua shell, passa `--plugin-url` con l'indirizzo di un archivio `.zip`, come un artefatto di build che il tuo CI pubblica:

216 

217```bash theme={null}

218claude --plugin-url https://example.com/my-first-plugin.zip

219```

220 

221Claude Code scarica l'archivio all'avvio. Per caricare diversi, ripeti il flag o passa gli URL separati da spazi in un argomento tra virgolette.

222 

223Punta il flag solo agli archivi che controlli o di cui ti fidi.

224 

225Se Claude Code non riesce a recuperare l'archivio, o l'archivio non è valido, si avvia senza il plugin e registra un errore di caricamento del plugin che puoi rivedere nella scheda **Errori** del gestore `/plugin`.

226 

227<h4 id="from-an-environment-variable">

228 Da una variabile di ambiente

229</h4>

230 

231Per caricare plugin in una sessione in cui non puoi aggiungere il flag `--plugin-dir`, elenca i loro percorsi assoluti nella variabile di ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/it/env-vars#variables) invece. Claude Code carica ogni percorso come carica un percorso `--plugin-dir`. Questi plugin caricano in aggiunta a quelli che passi con `--plugin-dir`. [Le impostazioni di progetto e locali non possono impostare questa variabile](/docs/it/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` richiede Claude Code v2.1.280 o successivo.

232 

233Le impostazioni gestite possono disattivare `--plugin-dir` e `CLAUDE_CODE_PLUGIN_DIRS`. Vedi [Flag che caricano un plugin per una sessione](/docs/it/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Per testare un plugin insieme a un plugin da cui dipende, vedi [Testare un plugin e la sua dipendenza localmente](/docs/it/plugins/dependencies#test-a-plugin-and-its-dependency-locally).

234 

235<h3 id="scaffold-a-plugin-that-loads-every-session">

236 Fare in modo che un plugin carichi in ogni sessione

237</h3>

238 

239La tua directory di skills personale è `~/.claude/skills/`. Claude Code carica qualsiasi cartella lì che contiene un `.claude-plugin/plugin.json` come un plugin in ogni sessione, senza flag e senza passaggio di installazione. `claude plugin init` scaffolda uno di questi plugin per te.

240 

241<h4 id="scaffold-the-plugin-with-claude-plugin-init">

242 Scaffoldare il plugin con `claude plugin init`

243</h4>

244 

245`claude plugin init` scrive un plugin iniziale sotto `~/.claude/skills/`. Richiede Claude Code v2.1.157 o successivo. Scaffolda uno dalla tua shell:

246 

247```bash theme={null}

248claude plugin init my-tool

249```

250 

251Il comando crea `~/.claude/skills/my-tool/` con un `.claude-plugin/plugin.json` e un `SKILL.md` radice. Stampa `✔ Created plugin "my-tool" at ~/.claude/skills/my-tool` seguito da `It will auto-load next session as my-tool@skills-dir. Run /reload-plugins to load it now.`

252 

253Passa `--with skills` per avere `claude plugin init` scaffolda una skill sotto `skills/` per te. Gli altri valori `--with` sono nel [riferimento dei comandi del plugin](/docs/it/plugins/cli-reference#plugin-init).

254 

255<h4 id="skill-names-in-a-scaffolded-plugin">

256 Nominare le skills del plugin

257</h4>

258 

259La skill radice in `~/.claude/skills/my-tool/SKILL.md` è anche una skill personale, quindi la invochi come `/my-tool`, non `/my-tool:my-tool`. Le skills che aggiungi sotto `skills/` dentro il plugin ottengono il prefisso del nome del plugin, come `/my-tool:example`.

260 

261<h4 id="stop-loading-the-plugin">

262 Smettere di caricare il plugin

263</h4>

264 

265Per smettere di caricare un plugin scaffoldato, elimina la sua directory, o esegui `claude plugin disable my-tool@skills-dir` nella tua shell con il nome `my-tool@skills-dir` che `claude plugin init` ha stampato. Nell'ID `my-tool@skills-dir`, `skills-dir` sta al posto di un nome di marketplace, perché il plugin carica dalla tua directory di skills piuttosto che da un marketplace.

266 

267<h4 id="load-a-plugin-for-everyone-in-one-repository">

268 Condividere il plugin attraverso un repository

269</h4>

270 

271`claude plugin init` scrive il plugin nella tua directory di skills personale in `~/.claude/skills/`, quindi carica per te in ogni progetto. Per fare in modo che un plugin carichi per tutti in un repository, crea lo stesso layout tu stesso in `<project>/.claude/skills/<name>/`, incluso il suo `.claude-plugin/plugin.json`. Vedi [Plugin condivisi attraverso un repository](/docs/it/plugins/loading#plugins-shared-through-a-repository) per le condizioni in cui Claude Code lo carica.

272 

273<h2 id="test-and-debug">

274 Testare e debuggare

275</h2>

276 

277Quando una modifica al tuo plugin non viene visualizzata, lavora attraverso questi controlli in ordine. Ognuno ti dice cosa Claude Code ha fatto con il plugin:

278 

2791. Nella tua shell, esegui `claude plugin validate <path>`. Controlla il manifest e il frontmatter di ogni file di skill, agent e command, ed esce con `0` su `Validation passed`. Aggiungi `--strict` per fallire anche su avvisi. I codici di uscita e la gestione delle directory sono nel [riferimento dei comandi del plugin](/docs/it/plugins/cli-reference#plugin-validate).

2802. Nella sessione in esecuzione, esegui `/reload-plugins` per applicare le modifiche che hai fatto sul disco. Stampa una riga `Reloaded:` con i conteggi. Quindi conferma che una skill ha caricato digitando il suo comando `/plugin-name:skill`, o trovando il plugin nella scheda **Installati** di `/plugin`.

2813. Nella stessa sessione, esegui `/plugin`. La scheda **Installati** elenca il tuo plugin e, nei dettagli del plugin, i componenti che Claude Code ha trovato. La scheda **Errori** elenca cosa non ha caricato e perché, come un percorso nel tuo manifest che non esiste.

2824. Di nuovo nella tua shell, esegui `claude plugin list`. Stampa plugin solo per sessione e della directory di skills nelle loro sezioni proprie con `Status: ✔ loaded` o l'errore di caricamento. Per includere il plugin che stai sviluppando, passa `--plugin-dir` con il suo percorso prima di `plugin list`.

283 

284Per controllare un server MCP, esegui `/mcp` nella sessione per vedere lo stato del server. Quando il server è sano, `/mcp` lo elenca come connesso. Se non lo è, vedi [Server MCP che non si avviano](/docs/it/plugins/troubleshooting#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start).

285 

286Per controllare un hook, attiva l'evento che corrisponde. Ad esempio, chiedi a Claude di modificare un file per attivare un hook `PostToolUse`. Quindi leggi il [log di debug](/docs/it/hooks#debug-hooks), che mostra quali hook hanno corrisposto, i loro codici di uscita e il loro output.

287 

288Le sezioni successive coprono i fallimenti che è più probabile che tu colpisca durante lo sviluppo, e la [pagina di troubleshooting](/docs/it/plugins/troubleshooting#build-a-plugin) ha la voce completa per ognuno.

289 

290<h3 id="a-component-path-isn’t-found">

291 Un percorso di componente non viene trovato

292</h3>

293 

294La scheda **Errori** di `/plugin` mostra `<component> path not found: <path>`, ad esempio `commands path not found`. Un percorso di componente nel tuo manifest, come `commands`, `skills`, `agents` o `hooks`, punta a niente. Correggi il percorso o crea la directory, quindi esegui `/reload-plugins` nella sessione. Vedi [`commands path not found`](/docs/it/plugins/troubleshooting#commands-path-not-found).

295 

296<h3 id="plugin-dir-at-a-marketplace-root-doesn’t-load-the-plugins-under-plugins/">

297 `--plugin-dir` alla radice di un marketplace non carica i plugin sotto `plugins/`

298</h3>

299 

300`--plugin-dir` prende la directory radice del plugin, quella che contiene `.claude-plugin/plugin.json` e le directory dei componenti come `skills/`. Se lo punti alla radice di un marketplace invece, Claude Code non legge `marketplace.json`, quindi un plugin sotto `plugins/` non carica, e non vedi alcun errore. Punta il flag alla cartella di un plugin, o aggiungi il marketplace. Vedi [la voce di troubleshooting](/docs/it/plugins/troubleshooting#plugin-dir-loads-a-plugin-with-no-components).

301 

302<h3 id="the-plugin-loads-but-its-skills-are-missing">

303 Il plugin carica ma le sue skills sono mancanti

304</h3>

305 

306La directory `skills/` è dentro `.claude-plugin/`, o una voce `skills` nel manifest punta a un file. Sposta `skills/` alla radice del plugin, punta ogni voce `skills` a una directory che contiene `SKILL.md`, e esegui `/reload-plugins` nella sessione. Vedi [Plugin carica ma le sue skills sono mancanti](/docs/it/plugins/troubleshooting#plugin-loads-but-its-skills-are-missing).

307 

308<h3 id="the-userconfig-dialog-never-appears">

309 La finestra di dialogo `userConfig` non appare mai

310</h3>

311 

312La finestra di dialogo per le opzioni [`userConfig`](/docs/it/plugins/components#user-configuration) del tuo plugin fa parte dell'installazione attraverso `/plugin` in una sessione. Caricare con `--plugin-dir` non la mostra, e nemmeno `claude plugin install` nella shell. Con il plugin caricato, esegui `/plugin configure <plugin-name>` nella sessione per aprirla. Vedi [La finestra di dialogo `userConfig` non appare mai](/docs/it/plugins/troubleshooting#the-userconfig-dialog-never-appears).

313 

314<h3 id="check-that-the-plugin-changes-claude’s-behavior">

315 Controllare che il plugin cambi il comportamento di Claude

316</h3>

317 

318Un plugin che carica senza errori può comunque non riuscire a guidare Claude nel modo che intendi. `claude plugin eval`, che esegui nella tua shell, esegue i tuoi casi di test con e senza il plugin e valuta la differenza. Vedi [Testare plugin con evals](/docs/it/plugin-evals), iniziando con [Creare il tuo primo eval suite](/docs/it/plugin-evals#create-your-first-eval-suite).

319 

320<h2 id="convert-an-existing-claude-setup">

321 Convertire una configurazione `.claude/` esistente

322</h2>

323 

324Se hai già skills, agents o hooks sotto una directory `.claude/` di un progetto, puoi spostarli in un plugin senza riscriverli.

325 

326Esegui i comandi in questi passaggi dalla radice del progetto, che è la directory che contiene `.claude/`, perché i percorsi `cp` sono relativi ad esso.

327 

328<Steps>

329 <Step title="Creare la struttura del plugin">

330 Crea la directory del plugin e la sua cartella `.claude-plugin/` accanto a `.claude/`. Puoi spostare il plugin ovunque in seguito.

331 

332 ```bash theme={null}

333 mkdir -p my-plugin/.claude-plugin

334 ```

335 

336 Crea `my-plugin/.claude-plugin/plugin.json`:

337 

338 ```json my-plugin/.claude-plugin/plugin.json theme={null}

339 {

340 "name": "my-plugin",

341 "description": "Migrated from standalone configuration",

342 "version": "1.0.0"

343 }

344 ```

345 </Step>

346 

347 <Step title="Copiare i tuoi file esistenti">

348 Copia ogni directory di configurazione che hai alla radice del plugin, e salta il comando per qualsiasi directory che non hai.

349 

350 ```bash theme={null}

351 cp -r .claude/commands my-plugin/

352 ```

353 

354 ```bash theme={null}

355 cp -r .claude/agents my-plugin/

356 ```

357 

358 ```bash theme={null}

359 cp -r .claude/skills my-plugin/

360 ```

361 

362 Esegui `ls -a my-plugin` per confermare che ogni directory che hai copiato appare accanto a `.claude-plugin`.

363 </Step>

364 

365 <Step title="Spostare i tuoi hook">

366 Se hai hook in `.claude/settings.json` o `.claude/settings.local.json`, crea una directory di hook:

367 

368 ```bash theme={null}

369 mkdir -p my-plugin/hooks

370 ```

371 

372 Crea `my-plugin/hooks/hooks.json` e copia l'oggetto `hooks` dal tuo file di impostazioni in esso. Il formato è lo stesso.

373 

374 Questo esempio mostra la forma con un hook che esegue un linter su ogni file che Claude scrive o modifica. Sostituisci l'esempio con il tuo oggetto `hooks`.

375 

376 ```json my-plugin/hooks/hooks.json theme={null}

377 {

378 "hooks": {

379 "PostToolUse": [

380 {

381 "matcher": "Write|Edit",

382 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]

383 }

384 ]

385 }

386 }

387 ```

388 </Step>

389 

390 <Step title="Testare il plugin migrato">

391 Carica il plugin per una sessione:

392 

393 ```bash theme={null}

394 claude --plugin-dir ./my-plugin

395 ```

396 

397 Controlla ogni componente sotto il suo nuovo nome:

398 

399 * **Skills**: esegui `/my-plugin:deploy` per una skill che era `/deploy`.

400 * **Subagent**: chiedi a Claude di usare l'agent `my-plugin:reviewer` per un agent che era `reviewer`.

401 * **Hook**: attiva l'evento che ogni hook corrisponde.

402 

403 Se qualcosa è mancante, lavora attraverso [Testare e debuggare](#test-and-debug).

404 </Step>

405</Steps>

406 

407Mentre gli originali sono ancora sotto `.claude/`, rimangono caricati insieme alle copie del plugin:

408 

409* **Skills e agents**: i due set non si scontrano, perché le skills e gli agents del plugin portano il prefisso `my-plugin:`. `/deploy` e `/my-plugin:deploy` funzionano entrambi, e Claude vede `reviewer` e `my-plugin:reviewer` come due subagent.

410* **Hook**: gli hook non hanno prefisso, quindi un hook che è sia nel tuo file di impostazioni che in `hooks/hooks.json` viene eseguito due volte ogni volta che il suo evento si attiva.

411 

412Dopo aver confermato che il plugin funziona, elimina gli originali da `.claude/` e rimuovi l'oggetto `hooks` dal tuo file di impostazioni.

413 

414<h2 id="next-steps">

415 Passaggi successivi

416</h2>

417 

418* [Componenti del plugin](/docs/it/plugins/components): aggiungi agents, hook, server MCP, server LSP e configurazione utente al tuo plugin

419* [Testare plugin con evals](/docs/it/plugin-evals): scrivi casi di eval ed eseguili con `claude plugin eval` per controllare quanto affidabilmente il plugin guida il comportamento di Claude

420* [Pubblicare un plugin](/docs/it/plugins/publish): versiona, mettilo in un marketplace e invialo al marketplace della comunità

421* [Plugin su claude.ai e in Cowork](https://claude.com/docs/plugins/overview): la stessa cartella di plugin si installa su claude.ai e in Cowork. Alcuni componenti sono solo Claude Code

422* [Riferimento del manifest del plugin](/docs/it/plugins/manifest-reference): ogni campo `plugin.json`, regola di percorso e directory

423* [Skills](/docs/it/skills): scrivi le skills che il tuo plugin fornisce

424* [Plugin di Anthropic nel repository claude-code](https://github.com/anthropics/claude-code/tree/main/plugins): esempi completi e funzionanti del layout su questa pagina, come `feature-dev` e `code-review`

plugins/create-marketplace.md +251 −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# Creare un marketplace

6 

7> Crea un marketplace di plugin da un file marketplace.json e testalo localmente prima di ospitarlo.

8 

9Un marketplace di plugin è una directory o un repository con un file `.claude-plugin/marketplace.json` che elenca i tuoi plugin e da dove recuperare ognuno di essi. Spingi la directory su un host git, e chiunque abbia accesso la registra in Claude Code con un comando e installa i tuoi plugin da essa.

10 

11Crea il tuo marketplace quando desideri che un gruppo che scegli, come il tuo team o la tua organizzazione, installi i tuoi plugin e continui a ricevere i tuoi aggiornamenti da un catalogo che controlli. Il repository può essere privato, può elencare quanti plugin desideri, e un amministratore può [richiederlo su ogni macchina](/docs/it/plugins/org).

12 

13<Note>

14 Questi casi sono coperti su altre pagine:

15 

16 * **Condividere un plugin con poche persone**: invia loro la directory del plugin o un `.zip` di essa. Vedi [Condividere un plugin senza un marketplace](/docs/it/plugins/publish#share-a-plugin-without-a-marketplace).

17 * **Offrire un plugin a tutti**: invialo al marketplace della comunità di Anthropic. Vedi [Inviare al marketplace della comunità](/docs/it/plugins/publish#submit-to-the-community-marketplace).

18 * **Utilizzare un plugin tu stesso**: caricalo con `--plugin-dir` o salvalo nella tua directory skills. Vedi [Sviluppare senza un marketplace](/docs/it/plugins/create#develop-without-a-marketplace).

19</Note>

20 

21Inizia con [Creare un marketplace](#create-a-marketplace) per costruirne uno sulla tua macchina e installare un plugin da esso, quindi [aggiungi più voci di plugin](#add-plugin-entries).

22 

23<h2 id="create-a-marketplace">

24 Creare un marketplace

25</h2>

26 

27I seguenti passaggi creano un marketplace sulla tua macchina, aggiungono un plugin ad esso, lo registrano in Claude Code e installano il plugin da esso. Questo è l'intero ciclo, ed è lo stesso ciclo che i tuoi utenti attraverseranno una volta che ospiterai il marketplace da qualche parte che possono raggiungere. Esegui ogni comando nella tua shell, dalla directory in cui desideri che `my-marketplace/` sia creato.

28 

29Hai bisogno di un plugin da elencare. L'esempio utilizza `my-first-plugin` da [Creare il tuo primo plugin](/docs/it/plugins/create#create-your-first-plugin), un plugin con una skill che esegui come `/my-first-plugin:hello`; costruiscilo prima se non hai ancora un plugin. Per utilizzare un plugin tuo, sostituisci la sua directory e il suo `name` ovunque i passaggi dicano `my-first-plugin`. Per ciò che una directory di plugin può contenere, vedi l'[esploratore della directory del plugin](/docs/it/plugins/components#explore-the-plugin-directory).

30 

31<Steps>

32 <Step title="Configurare la directory del marketplace">

33 Un marketplace è una directory con un file `.claude-plugin/marketplace.json`, più i plugin che elenca. Crea la directory del marketplace e la sua cartella `.claude-plugin/`, quindi copia il tuo plugin sotto `plugins/`:

34 

35 ```bash theme={null}

36 mkdir -p my-marketplace/.claude-plugin my-marketplace/plugins

37 cp -r my-first-plugin my-marketplace/plugins/

38 ```

39 

40 Verifica che il plugin sia valido dove ora si trova, in modo che qualsiasi errore successivo riguardi il marketplace e non il plugin:

41 

42 ```bash theme={null}

43 claude plugin validate ./my-marketplace/plugins/my-first-plugin

44 ```

45 

46 L'ultima riga dell'output legge `✔ Validation passed`.

47 </Step>

48 

49 <Step title="Creare il file del marketplace">

50 Salva `marketplace.json` in `my-marketplace/.claude-plugin/marketplace.json`. Il file richiede un `name`, un `owner` e un array `plugins`.

51 

52 Ogni oggetto in `plugins` è una voce di plugin e ha bisogno di un `name` e di una `source`. Scrivi la `source` della voce come un percorso dalla radice del marketplace. La radice è `my-marketplace/`, la directory che contiene `.claude-plugin/`.

53 

54 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}

55 {

56 "name": "my-marketplace",

57 "description": "Plugins for my team",

58 "owner": {

59 "name": "Your Name"

60 },

61 "plugins": [

62 {

63 "name": "my-first-plugin",

64 "source": "./plugins/my-first-plugin",

65 "description": "A greeting plugin to learn the basics"

66 }

67 ]

68 }

69 ```

70 </Step>

71 

72 <Step title="Convalidare il marketplace">

73 Esegui `claude plugin validate` sulla directory del marketplace per controllare la sintassi JSON, i campi obbligatori e ogni voce di plugin nel suo `.claude-plugin/marketplace.json`.

74 

75 ```bash theme={null}

76 claude plugin validate ./my-marketplace

77 ```

78 

79 Per il file come scritto nel passaggio 2, l'ultima riga dell'output legge `✔ Validation passed`.

80 </Step>

81 

82 <Step title="Aggiungere il marketplace e installare il plugin">

83 Registra la directory come marketplace.

84 

85 ```bash theme={null}

86 claude plugin marketplace add ./my-marketplace

87 ```

88 

89 Il comando stampa `✔ Successfully added marketplace: my-marketplace (declared in user settings)`, il che significa che il marketplace è registrato nel tuo file di impostazioni utente.

90 

91 Installa il plugin. L'id di installazione è il `name` della voce, un `@` e il `name` del marketplace.

92 

93 ```bash theme={null}

94 claude plugin install my-first-plugin@my-marketplace

95 ```

96 

97 Il comando stampa `✔ Successfully installed plugin: my-first-plugin@my-marketplace (scope: user)`.

98 

99 All'interno di una sessione, `/plugin marketplace add ./my-marketplace` registra il marketplace allo stesso modo. `/plugin install my-first-plugin@my-marketplace` apre i dettagli del plugin nel pannello `/plugin`, dove lo installi. Per quel flusso, vedi [Installare e gestire i plugin](/docs/it/plugins/install).

100 </Step>

101 

102 <Step title="Confermare che il plugin è stato caricato">

103 Elenca i plugin installati.

104 

105 ```bash theme={null}

106 claude plugin list

107 ```

108 

109 L'output elenca `my-first-plugin@my-marketplace` con `Status: ✔ enabled`.

110 

111 Per vedere cosa ha caricato il plugin, mostra i suoi dettagli.

112 

113 ```bash theme={null}

114 claude plugin details my-first-plugin

115 ```

116 

117 La sezione `Component inventory` legge `Skills (1) hello`.

118 

119 Per eseguire la skill, avvia una sessione e inserisci `/my-first-plugin:hello`. Claude ti saluta. Il comando ha il nome del plugin come prefisso, come fa il nome di ogni skill del plugin.

120 </Step>

121</Steps>

122 

123<h2 id="add-plugin-entries">

124 Aggiungere voci di plugin

125</h2>

126 

127Ogni plugin che distribuisci è un oggetto nell'array `plugins` di `marketplace.json`. Per aggiungere un secondo plugin, aggiungi un secondo oggetto. Questi campi coprono la maggior parte delle voci:

128 

129* `name`: l'identificatore che le persone digitano prima di `@` quando installano. Non può contenere spazi.

130* `source`: da dove Claude Code recupera il plugin. Scrivi una stringa di percorso relativo per un plugin all'interno della directory del marketplace, come nella [procedura dettagliata](#create-a-marketplace), o un oggetto source per un plugin al di fuori di essa. Vedi [Scegliere una fonte di plugin](#choose-a-plugin-source).

131* `description`: la riga che le persone vedono accanto al plugin quando sfogliano il tuo marketplace in `/plugin`.

132 

133Per l'elenco completo dei campi, vedi [Voci di plugin](/docs/it/plugins/marketplace-reference#plugin-entries).

134 

135Una voce può anche impostare qualsiasi campo [`plugin.json`](/docs/it/plugins/manifest-reference). Per quando i campi `plugin.json` di una voce si applicano a un plugin che ha il suo `plugin.json`, vedi [Voce e plugin.json](/docs/it/plugins/marketplace-reference#entry-and-plugin-json).

136 

137<h2 id="rules-for-plugin-entries">

138 Regole per le voci di plugin

139</h2>

140 

141La maggior parte degli errori di installazione da un nuovo marketplace provengono da un percorso relativo scritto dalla directory sbagliata, o da un nome di voce che differisce dal `name` nel `plugin.json` del plugin.

142 

143<h3 id="write-relative-paths-from-the-marketplace-root">

144 Scrivi percorsi relativi dalla radice del marketplace

145</h3>

146 

147La radice del marketplace è la directory che contiene `.claude-plugin/`. Nella [procedura dettagliata](#create-a-marketplace), è `my-marketplace/`, quindi la `source` della voce è `"./plugins/my-first-plugin"`. Il percorso non inizia all'interno di `.claude-plugin/`, quindi non usare `..` per lasciarlo.

148 

149Un percorso con `..` e un percorso a una directory mancante falliscono in comandi diversi:

150 

151* **Un percorso con `..`**: `claude plugin validate` segnala la voce come non valida. Il messaggio inizia con `Path contains "..": ./../plugins/my-first-plugin`.

152* **Un percorso a una directory che non esiste**: `claude plugin validate` passa. `claude plugin install` fallisce con `Source path does not exist: <path>`, e `<path>` è la posizione assoluta che Claude Code ha controllato.

153 

154<h3 id="keep-the-entry-name-and-the-manifest-name-the-same">

155 Mantieni il nome della voce e il nome del manifest uguali

156</h3>

157 

158Un plugin del marketplace ha un `name` della voce in `marketplace.json` e un `name` nel suo `plugin.json`, chiamato nome del manifest. Ogni nome appare in posti diversi:

159 

160* **Nome della voce**: l'id di installazione, `<entry-name>@<marketplace>`. È quello che le persone digitano per installare, quello che `claude plugin list` mostra, e la chiave che Claude Code scrive sotto [`enabledPlugins`](/docs/it/settings-reference#enabledplugins) nel loro file di impostazioni.

161* **Nome del manifest**: il prefisso sulle skill del plugin, e il nome che `claude plugin details` accetta.

162 

163Quando i due nomi differiscono e qualcuno installa per nome del manifest, Claude Code segnala `Plugin "<manifest-name>" not found in marketplace "<marketplace>"`. Mantieni i due nomi uguali. Per ulteriori informazioni su come Claude Code utilizza i due nomi, vedi [Riferimento al caricamento dei plugin](/docs/it/plugins/loading#find-where-a-plugin-came-from).

164 

165<h2 id="choose-a-plugin-source">

166 Scegliere una fonte di plugin

167</h2>

168 

169Ogni voce di plugin in `marketplace.json` ha una `source` che dice a Claude Code da dove recuperare quel plugin. Scegli la fonte in base a dove sono archiviati i file del plugin. La tabella elenca le fonti che la maggior parte dei proprietari di marketplace utilizza.

170 

171| Source | Usalo quando | Valore minimo di `source` |

172| :---------------- | :------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------- |

173| Percorso relativo | I file del plugin si trovano all'interno della directory del marketplace stessa | `"./plugins/my-first-plugin"` |

174| `github` | Il plugin è un repository GitHub a sé stante | `{ "source": "github", "repo": "your-org/my-first-plugin" }` |

175| `git-subdir` | Il plugin è una sottodirectory di un altro repository, come un monorepo | `{ "source": "git-subdir", "url": "your-org/monorepo", "path": "tools/my-first-plugin" }` |

176 

177In una fonte `git-subdir`, `url` accetta un URL git o una scorciatoia GitHub `owner/repo`.

178 

179Un plugin può anche provenire da uno di questi tipi di fonte:

180 

181* `url`: un repository git per URL, su qualsiasi host

182* `archive`: un file zip scaricato su HTTPS

183* `npm`: un pacchetto npm

184* `command`: una directory prodotta eseguendo un comando sulla macchina in cui il plugin è installato

185 

186Per i campi di ogni tipo di fonte, e per fissare una fonte basata su git a un `ref` o `sha`, vedi [Fonti di plugin](/docs/it/plugins/marketplace-reference#plugin-sources).

187 

188<h2 id="validate-and-test">

189 Convalidare e testare

190</h2>

191 

192Mentre aggiungi plugin, esegui `claude plugin validate ./my-marketplace` nella tua shell dopo ogni modifica, e installa dal marketplace sulla tua macchina prima di condividerlo. La convalidazione e l'installazione catturano problemi diversi.

193 

194<h3 id="problems-that-validation-reports">

195 Problemi che la convalidazione segnala

196</h3>

197 

198`claude plugin validate` legge solo i file all'interno della directory del marketplace. Segnala:

199 

200* Errori di sintassi JSON, come `json: Invalid JSON syntax: <reason>`

201* Campi obbligatori mancanti, come `owner: Invalid input`

202* Un nome di marketplace con spazi, caratteri non ASCII, o una forma che imita un marketplace ufficiale di Anthropic, come `claude-official`

203* Una `source` relativa che contiene `..`

204* Campi sconosciuti al livello superiore o in una voce di plugin, come avvisi

205* Problemi nel `plugin.json` di ogni plugin con percorso relativo, come `plugins[N] plugin.json → <field>: <message>`

206 

207Per ogni messaggio che `validate` può stampare, vedi [Messaggi di convalidazione](/docs/it/plugins/marketplace-reference#validation-messages). Per i suoi flag e codici di uscita, vedi [`plugin validate`](/docs/it/plugins/cli-reference#plugin-validate).

208 

209<h3 id="problems-that-surface-when-you-add-or-install">

210 Problemi che emergono quando aggiungi o installi

211</h3>

212 

213I problemi che `claude plugin validate` non segnala appaiono quando aggiungi il marketplace o installi da esso:

214 

215* **Quando aggiungi il marketplace**: i [nomi ufficiali del marketplace](/docs/it/plugins/marketplace-reference#reserved-names) esatti, come `claude-plugins-official`, passano la convalidazione. Quando aggiungi un marketplace con uno di questi nomi, Claude Code lo rifiuta con un messaggio che inizia con `The name '<name>' is reserved for official Anthropic marketplaces`.

216* **Quando installi un plugin**:

217 * Claude Code recupera prima una fonte `github`, `git-subdir` o un'altra fonte remota quando installi il plugin, quindi un `repo` o `path` sbagliato appare allora.

218 * Una `source` relativa la cui directory non esiste fallisce anche all'installazione, con `Source path does not exist: <path>`.

219 

220<h3 id="test-an-edit-to-a-plugin">

221 Testare una modifica a un plugin

222</h3>

223 

224Nella [procedura dettagliata](#create-a-marketplace), hai aggiunto `my-marketplace` da una directory locale con una `source` con percorso relativo. Con quella configurazione, Claude Code legge i file del plugin direttamente da `my-marketplace/plugins/`. Le tue modifiche hanno effetto all'avvio della sessione successiva o quando esegui `/reload-plugins` in una sessione, senza alcun cambiamento alla `version` del plugin.

225 

226Le persone che installano dal tuo marketplace ospitato ottengono una copia nella cache del plugin. Per come ricevono una nuova versione, vedi [Mantenere gli utenti aggiornati](/docs/it/plugins/host-marketplace#keep-users-up-to-date).

227 

228<h3 id="remove-the-marketplace-to-start-over">

229 Rimuovere il marketplace per ricominciare

230</h3>

231 

232Per rimuovere tutto e ricominciare, esegui `claude plugin marketplace remove my-marketplace` nella tua shell. Il comando rimuove il marketplace e disinstalla i suoi plugin.

233 

234<h2 id="host-your-marketplace">

235 Ospitare il tuo marketplace

236</h2>

237 

238Una volta che puoi installare un plugin dal marketplace sulla tua macchina, come in [Creare un marketplace](#create-a-marketplace), spingi la directory del marketplace su un host git.

239 

240I tuoi colleghi quindi eseguono `claude plugin marketplace add <owner>/<repo>` nella loro shell per un repository GitHub, o lo stesso comando con l'URL del repository. Quindi installano un plugin per nome come nella [procedura dettagliata](#create-a-marketplace).

241 

242Per l'accesso ai repository privati, gli aggiornamenti, il versionamento e la ridenominazione o la rimozione di voci, vedi [Ospitare e mantenere un marketplace](/docs/it/plugins/host-marketplace).

243 

244<h2 id="next-steps">

245 Passaggi successivi

246</h2>

247 

248* [Ospitare e mantenere un marketplace](/docs/it/plugins/host-marketplace): scegli un host, mantieni gli utenti aggiornati e rinomina o rimuovi i plugin in modo sicuro

249* [Riferimento del marketplace](/docs/it/plugins/marketplace-reference): campi `marketplace.json` e tipi di fonte

250* [Gestire i plugin per la tua organizzazione](/docs/it/plugins/org): richiedi il tuo marketplace e i suoi plugin su ogni macchina

251* [Suggerire i plugin per rilevanza](/docs/it/plugins/relevance): fai in modo che Claude Code suggerisca un plugin dal tuo marketplace quando una sessione corrisponde

plugins/dependencies.md +245 −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# Dipendenze dei plugin

6 

7> Dichiara i plugin da cui il tuo plugin dipende, con intervalli di versione come ^1.2, e scopri come Claude Code installa, risolve e elimina le dipendenze.

8 

9Una dipendenza di plugin è un altro plugin su cui il tuo plugin si basa, ad esempio uno il cui server MCP o skill chiami. Ogni dipendenza traccia l'ultima versione fornita dal suo marketplace a meno che tu non dichiari un vincolo di versione, un intervallo di versione semantica come `^2.0` o `~2.1.0` che hai testato.

10 

11Questa pagina è per gli autori di plugin che dichiarano dipendenze in `plugin.json` e per i manutentori del marketplace che taggano i rilasci.

12 

13<Note>

14 Questi casi sono coperti su altre pagine:

15 

16 * **Installazione di un plugin che ha dipendenze**: vedi [Gestisci plugin installati](/docs/it/plugins/install#manage-installed-plugins)

17 * **Lettura di un errore di dipendenza**: vedi [Errori di dipendenza](/docs/it/plugins/troubleshooting#dependency-errors)

18 * **Dichiarazione dei pacchetti npm e Bun di cui il codice del tuo plugin ha bisogno**: vedi [Dipendenze dei pacchetti Node.js](/docs/it/plugins/loading#node-js-package-dependencies)

19</Note>

20 

21Per aggiungere un vincolo, inizia da [Dichiara una dipendenza con un vincolo di versione](#declare-a-dependency-with-a-version-constraint). Se mantieni un plugin da cui altri dipendono, [tagga i tuoi rilasci](#tag-plugin-releases-for-version-resolution) in modo che i loro vincoli possano risolversi.

22 

23<h2 id="declare-dependencies">

24 Dichiara dipendenze

25</h2>

26 

27<span id="decide-whether-to-constrain-dependency-versions" />Senza un vincolo di versione, una dipendenza si sposta a ogni nuovo rilascio che il suo marketplace pubblica la prossima volta che gli utenti aggiornano. Se quel rilascio rinomina uno strumento MCP che il tuo plugin chiama, il tuo plugin si interrompe per tutti coloro che aggiornano.

28 

29Con un vincolo come `~2.1.0` su una dipendenza da una fonte supportata da git, gli utenti che hanno il tuo plugin installato continuano a ricevere patch `2.1.x` della dipendenza e non si spostano mai a `2.2`. Per aggiornare secondo il tuo programma, testa una versione più recente e quindi pubblica una nuova versione del tuo plugin con un vincolo più ampio.

30 

31<h3 id="declare-a-dependency-with-a-version-constraint">

32 Dichiara una dipendenza con un vincolo di versione

33</h3>

34 

35Elenca le dipendenze nell'array `dependencies` del file `.claude-plugin/plugin.json` del tuo plugin. Il seguente manifest dichiara una dipendenza senza versione e una dipendenza vincolata:

36 

37```json .claude-plugin/plugin.json theme={null}

38{

39 "name": "deploy-kit",

40 "version": "3.1.0",

41 "dependencies": [

42 "audit-logger",

43 { "name": "secrets-vault", "version": "~2.1.0" }

44 ]

45}

46```

47 

48Una voce può essere una stringa: il nome del plugin da solo, come `"audit-logger"` in questo manifest, o `"name@marketplace"` per risolverlo in un altro marketplace. Con una stringa semplice, il tuo plugin dipende da qualsiasi versione fornita dal marketplace di quel plugin.

49 

50Per impostare un vincolo di versione, usa un oggetto con questi campi, ognuno una stringa:

51 

52| Campo | Descrizione |

53| :------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

54| `name` | Il nome del plugin della dipendenza, come appare nella sua voce del marketplace. Claude Code lo cerca nello stesso marketplace del plugin dichiarante a meno che tu non imposti `marketplace`. Obbligatorio. |

55| `version` | Un [intervallo di versione semantica](https://github.com/npm/node-semver#ranges) come `~2.1.0`, `^2.0`, `>=1.4`, o `=2.1.0`. La dipendenza si installa al tag git più alto che soddisfa questo intervallo, quindi il manutentore della dipendenza deve [taggare i rilasci](#tag-plugin-releases-for-version-resolution). |

56| `marketplace` | Un marketplace diverso in cui risolvere `name`. Una lista di autorizzazione controlla le dipendenze tra marketplace, descritte in [Dipendi da un plugin di un altro marketplace](#depend-on-a-plugin-from-another-marketplace). |

57 

58Un intervallo non corrisponde a versioni pre-release come `2.0.0-beta.1` a meno che tu non accetti con un suffisso pre-release come `^2.0.0-0`.

59 

60<h3 id="bundle-plugins-for-a-team">

61 Raggruppa plugin per un team

62</h3>

63 

64Per consentire agli ingegneri di installare un set curato di plugin con un comando, pubblica un plugin il cui manifest contiene un `name` e un array `dependencies`. Un manifest di plugin ha bisogno solo di `name`, quindi questo è un plugin valido, e installarlo installa ogni dipendenza.

65 

66Ad esempio, un team di piattaforma può pubblicare bundle specifici per ruolo in un marketplace interno in modo che gli ingegneri eseguano un `claude plugin install` invece di installare ogni plugin separatamente:

67 

68```json .claude-plugin/plugin.json theme={null}

69{

70 "name": "backend-standard",

71 "version": "1.0.0",

72 "description": "Standard plugin set for backend engineers",

73 "dependencies": [

74 "secrets-vault",

75 "deploy-kit",

76 { "name": "db-migrate", "version": "^3.0" },

77 "oncall-runbook"

78 ]

79}

80```

81 

82Per aggiungere un plugin al set standard in seguito, pubblica una nuova versione di `backend-standard` con la dipendenza aggiuntiva. Quando il marketplace non [auto-aggiorna per impostazione predefinita](/docs/it/plugins/loading#which-marketplaces-and-plugins-auto-update), gli ingegneri attivano l'auto-aggiornamento per il marketplace o aggiornano manualmente:

83 

84* **Attiva l'auto-aggiornamento per il marketplace**: il prossimo auto-aggiornamento sposta il bundle alla nuova versione e installa tutte le dipendenze che aggiunge.

85* **Aggiorna manualmente**: esegui `claude plugin update backend-standard` in una shell, quindi `/reload-plugins` in una sessione aperta per installare le dipendenze appena aggiunte.

86 

87Per i passaggi lato ingegnere, vedi [Mantieni i plugin aggiornati](/docs/it/plugins/install#keep-plugins-updated).

88 

89Per distribuire un bundle a tutti in un'organizzazione, un amministratore lo aggiunge a `enabledPlugins` nelle impostazioni gestite. Vedi [Pre-installa e richiedi plugin](/docs/it/plugins/org#pre-install-and-require-plugins).

90 

91<h3 id="depend-on-a-plugin-from-another-marketplace">

92 Dipendi da un plugin di un altro marketplace

93</h3>

94 

95Per impostazione predefinita, Claude Code non installa una dipendenza da un marketplace diverso da quello del plugin dichiarante, a meno che l'utente non abbia già quella dipendenza installata e abilitata nello stesso ambito. Questo valore predefinito impedisce a un marketplace di installare silenziosamente plugin da una fonte che l'utente non ha revisionato.

96 

97Per consentire l'installazione, aggiungi il nome del marketplace di destinazione a `allowCrossMarketplaceDependenciesOn` nel file `marketplace.json` del marketplace root. Il marketplace root è quello che ospita il plugin che l'utente sta installando. Si applica solo la lista di autorizzazione del marketplace root.

98 

99Il seguente `marketplace.json` consente a `deploy-kit` di dipendere da un plugin di `your-shared-marketplace`:

100 

101```json .claude-plugin/marketplace.json theme={null}

102{

103 "name": "your-marketplace",

104 "owner": { "name": "Your Org" },

105 "allowCrossMarketplaceDependenciesOn": ["your-shared-marketplace"],

106 "plugins": [

107 {

108 "name": "deploy-kit",

109 "source": "./deploy-kit",

110 "dependencies": [

111 { "name": "audit-logger", "marketplace": "your-shared-marketplace" }

112 ]

113 }

114 ]

115}

116```

117 

118Se `allowCrossMarketplaceDependenciesOn` manca o non include il marketplace di destinazione, Claude Code non installa la dipendenza. Quando la dipendenza è dichiarata nella voce del marketplace, l'installazione stessa viene rifiutata con un messaggio che inizia con `Dependency "audit-logger@your-shared-marketplace" (required by deploy-kit@your-marketplace) is in marketplace "your-shared-marketplace", which is not in the allowlist` e nomina il campo da impostare. Quando è dichiarata in `plugin.json`, l'installazione si completa senza la dipendenza e il tuo plugin non riesce a caricarsi.

119 

120Il controllo della lista di autorizzazione non si applica a una dipendenza che è già abilitata. Se un utente installa `audit-logger` da `your-shared-marketplace` da solo per primo, nello stesso ambito, `deploy-kit` si installa quindi senza alcun cambiamento alla lista di autorizzazione.

121 

122<h3 id="test-a-plugin-and-its-dependency-locally">

123 Testa un plugin e la sua dipendenza localmente

124</h3>

125 

126Se stai sviluppando un plugin e il plugin da cui dipende allo stesso tempo, avvia Claude Code dalla tua shell e carica entrambi con [`--plugin-dir`](/docs/it/plugins/cli-reference#flags-that-load-a-plugin-for-one-session):

127 

128```bash theme={null}

129claude --plugin-dir ./my-dependency --plugin-dir ./my-plugin

130```

131 

132La copia locale della dipendenza soddisfa la voce di dipendenza del tuo plugin, quindi non hai bisogno di installare la dipendenza dal suo marketplace.

133 

134* **Nessun `version` necessario**: il `plugin.json` locale non ha bisogno di un `version` neanche, perché un [vincolo di versione](#declare-a-dependency-with-a-version-constraint) non viene controllato rispetto a una copia locale.

135* **Voci che nominano un marketplace**: una voce che nomina un marketplace corrisponde anche alla copia locale su Claude Code v2.1.242 o successivo.

136 

137Fino a quando non installi la dipendenza dal suo marketplace, il tuo plugin smette di caricarsi ogni volta che la copia locale è disabilitata o assente:

138 

139* **Hai disabilitato la copia locale**: il tuo plugin è disabilitato al prossimo caricamento del plugin, con un errore che termina con `is disabled — enable it or remove the dependency`. Quando l'errore nomina la dipendenza come `<name>@inline`, quell'identificatore si riferisce alla copia `--plugin-dir`.

140* **Hai avviato una sessione senza il flag `--plugin-dir` della dipendenza**: l'errore segnala che la dipendenza non è installata. Passa il flag di nuovo, o installa la dipendenza dal suo marketplace.

141 

142Quando entrambi i plugin sono in una cartella padre, puoi passare quella cartella a `--plugin-dir` una volta. Se la cartella non è essa stessa un plugin, Claude Code carica ogni cartella figlio che ha un `.claude-plugin/plugin.json`. Richiede Claude Code v2.1.265 o successivo.

143 

144<h2 id="tag-plugin-releases-for-version-resolution">

145 Rilascia un plugin da cui altri dipendono

146</h2>

147 

148Se mantieni un plugin da cui altri plugin dipendono con un vincolo di versione, tagga i suoi rilasci in modo che quei vincoli possano risolversi. Un vincolo si risolve rispetto ai tag git nel repository che ospita il plugin. Tagga il repository a cui la [sorgente del plugin](/docs/it/plugins/marketplace-reference#plugin-sources) del plugin in `marketplace.json` punta:

149 

150* **Sorgente `github`, `url`, o `git-subdir`**: il repository del plugin stesso, quindi l'autore del plugin crea i tag

151* **Percorso relativo come `./plugins/secrets-vault`**: il repository del marketplace, quindi il manutentore del marketplace crea i tag

152 

153<h3 id="create-a-release-tag">

154 Crea un tag di rilascio

155</h3>

156 

157Tagga ogni rilascio come `<plugin-name>--v<version>`, dove `<version>` corrisponde al campo `version` nel `plugin.json` di quel commit. Il prefisso plugin-name consente a un repository del marketplace di ospitare più plugin con cronologie di versione indipendenti.

158 

159Crea il tag dalla directory del plugin, con un remote `origin` configurato per ricevere il tag spinto, usando [`claude plugin tag`](/docs/it/plugins/cli-reference#plugin-tag):

160 

161```bash theme={null}

162claude plugin tag --push

163```

164 

165Il comando costruisce il nome del tag dal manifest del plugin. Prima di creare il tag, esegue questi controlli:

166 

167* Convalida il plugin

168* Controlla che `plugin.json` e la voce del marketplace concordino sulla versione, quando la directory del plugin si trova all'interno di un checkout del marketplace

169* Richiede un albero di lavoro pulito sotto la directory del plugin

170* Rifiuta se il tag esiste già

171 

172Un'esecuzione riuscita stampa `Created tag secrets-vault--v2.1.0`. Con `--push`, stampa anche `Pushed to origin`. Senza `--push`, stampa il comando `git push` da eseguire tu stesso.

173 

174Passa `--dry-run` per vedere il piano senza creare nulla.

175 

176Il [riferimento `claude plugin tag`](/docs/it/plugins/cli-reference#plugin-tag) elenca i flag rimanenti.

177 

178Puoi anche eseguire `git tag secrets-vault--v2.1.0` direttamente, purché mantieni la `version` in `plugin.json` e nella voce del marketplace sincronizzate tu stesso.

179 

180<h3 id="constrain-a-dependency-that-has-a-non-git-source">

181 Vincola una dipendenza che ha una sorgente non-git

182</h3>

183 

184La risoluzione basata su tag si applica solo alle sorgenti supportate da git. Per una dipendenza con una sorgente di plugin `npm`, `archive`, o `command` [plugin source](/docs/it/plugins/marketplace-reference#plugin-sources), il vincolo non controlla quale versione viene recuperata. Viene comunque controllato quando il plugin si carica, e il plugin dipendente è disabilitato se la versione installata non lo soddisfa.

185 

186Per le sorgenti `npm`, `archive`, e `command`, la versione controllata è la `version` nel `plugin.json` della dipendenza. Impostane una lì prima di vincolare quella dipendenza, perché un `plugin.json` che non imposta alcuna versione non soddisfa alcun vincolo.

187 

188Claude Code non installa mai una dipendenza con una sorgente `command` da sola, quindi gli utenti [la installano per primi](/docs/it/plugins/marketplace-reference#command-plugin-source). Non esegue mai neanche il [`headersHelper`](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) di una dipendenza, quindi gli utenti installano anche una dipendenza la cui voce del marketplace ne imposta una prima di installare il tuo plugin.

189 

190Oltre a `claude plugin install`, queste operazioni installano anche qualsiasi dipendenza dichiarata mancante, e i limiti `command` e `headersHelper` si applicano anche a loro:

191 

192* `/reload-plugins`

193* Auto-aggiornamento del marketplace del plugin dipendente

194* Ri-esecuzione di `claude plugin install` sul plugin dipendente

195* `claude plugin marketplace add`

196 

197<h2 id="how-dependencies-behave-for-your-users">

198 Come le dipendenze si comportano per i vostri utenti

199</h2>

200 

201Queste sezioni descrivono come Claude Code risolve, controlla e combina i vincoli che dichiarate una volta che il vostro plugin è installato insieme ad altri.

202 

203<h3 id="how-a-constraint-resolves-against-tags">

204 Come un vincolo si risolve rispetto ai tag

205</h3>

206 

207Quando un utente installa un plugin che dichiara `{ "name": "secrets-vault", "version": "~2.1.0" }`, la dipendenza si installa dal tag `secrets-vault--v` più alto che soddisfa `~2.1.0` nel repository che ospita `secrets-vault`. Quando nessun tag soddisfa l'intervallo, l'installazione fallisce o utilizza la copia attuale del marketplace:

208 

209* **Plugin con il proprio repository**: l'installazione fallisce con un messaggio contenente `Dependency "secrets-vault@your-marketplace" has no git tag satisfying`.

210* **Plugin referenziato da un percorso relativo**: l'installazione utilizza invece la copia attuale del marketplace, e il vincolo viene controllato quando il plugin si carica. Se quella copia è al di fuori dell'intervallo, il plugin dipendente rimane disabilitato e `claude plugin list` mostra `Requires "secrets-vault@your-marketplace" ~2.1.0, installed 3.0.0`.

211 

212Per un plugin che il marketplace referenzia tramite un percorso relativo, un marketplace che avete aggiunto come percorso di cartella locale risolve anche i vincoli rispetto ai tag git di quella cartella, quando la cartella è un repository git. Questo richiede Claude Code v2.1.196 o successivo. Una cartella locale che non è un repository git non ha tag, quindi Claude Code installa la dipendenza dal contenuto attuale della cartella.

213 

214<h3 id="confirm-the-resolved-version">

215 Confermare la versione risolta

216</h3>

217 

218Per confermare quale versione un vincolo ha risolto, eseguite `claude plugin list` nella vostra shell. Una dipendenza risolta da tag mostra la sua versione con un suffisso di commit di 12 caratteri, come `2.1.0-8713c5b11005`.

219 

220I controlli dei vincoli utilizzano la versione del tag piuttosto che la `version` in `plugin.json`, anche se `plugin.json` a quel commit rimane indietro.

221 

222Se spostate forzatamente un tag a un commit diverso, l'installazione successiva recupera il contenuto di quel commit invece di riutilizzare una copia cache obsoleta. Consultate [Versions and updates](/docs/it/plugins/loading#versions-and-updates) per come la versione di un plugin diventa la sua chiave di cache.

223 

224<h3 id="combine-constraints-from-several-plugins">

225 Combinare vincoli da più plugin

226</h3>

227 

228Quando più plugin installati vincolano la stessa dipendenza, la dipendenza si risolve alla versione più alta che soddisfa tutti i loro intervalli. Le combinazioni comuni si risolvono così:

229 

230| Plugin A richiede | Plugin B richiede | Risultato |

231| :---------------- | :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------- |

232| `^2.0` | `>=2.1` | Un'installazione al tag `2.x` più alto a o sopra `2.1.0`. Entrambi i plugin si caricano. |

233| `~2.1` | `~3.0` | L'installazione del plugin B fallisce con un messaggio `has conflicting version requirements`. Il plugin A e la dipendenza rimangono come erano. |

234| `=2.1.0` | nessuno | La dipendenza rimane a `2.1.0`. L'aggiornamento automatico salta le versioni più recenti mentre il plugin A è installato. |

235 

236L'aggiornamento automatico recupera una dipendenza vincolata al tag git più alto che soddisfa l'intervallo di ogni plugin installato, piuttosto che alla versione più recente del marketplace. Se gli intervalli dei plugin installati non si sovrappongono, l'aggiornamento automatico lascia quella dipendenza alla sua versione attuale, e la scheda **Errors** di `/plugin` mostra una voce che nomina il plugin vincolante. Se si sovrappongono ma nessun tag rientra nell'intervallo, l'aggiornamento automatico recupera la copia attuale del marketplace e salta l'aggiornamento quando la `version` di quella copia cade al di fuori dell'intervallo di qualsiasi plugin installato.

237 

238Quando un utente disinstalla l'ultimo plugin che vincola una dipendenza, la dipendenza non è più vincolata a un intervallo di versione e riprende a tracciare la sua voce del marketplace al prossimo aggiornamento.

239 

240<h2 id="see-also">

241 Vedi anche

242</h2>

243 

244* [`claude plugin prune`](/docs/it/plugins/cli-reference#plugin-prune): rimuovi le dipendenze auto-installate che nessun plugin ha più bisogno

245* [Ospita un marketplace](/docs/it/plugins/host-marketplace): canali di rilascio e raccomandazione di altri plugin

plugins/host-marketplace.md +458 −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# Ospitare e mantenere un marketplace

6 

7> Pubblica un marketplace di plugin dove gli utenti possono raggiungerlo, concedi accesso a uno privato e rilascia aggiornamenti e ridenominazioni senza interrompere le installazioni.

8 

9Ospitare un marketplace significa mettere il tuo catalogo `marketplace.json` dove altre persone possono aggiungerlo con `/plugin marketplace add`, installare i suoi plugin e continuare a ricevere i tuoi cambiamenti dopo che li hai pubblicati.

10 

11Questa pagina è per la persona che gestisce un marketplace.

12 

13<Note>

14 Questi casi sono trattati su altre pagine:

15 

16 * **Non hai ancora scritto il file di catalogo**: inizia con [Crea un marketplace](/docs/it/plugins/create-marketplace)

17 * **Sei un amministratore che richiede, limita o pre-installa marketplace su tutte le macchine della tua organizzazione**: leggi [Gestisci i plugin per la tua organizzazione](/docs/it/plugins/org)

18</Note>

19 

20Inizia con [Ospita il tuo marketplace](#host-your-marketplace) per scegliere un host e il comando che i tuoi utenti eseguono. Leggi [Mantieni gli utenti aggiornati](#keep-users-up-to-date) prima della tua prima versione. Leggi [Rinomina o rimuovi un plugin](#rename-or-remove-a-plugin) prima di modificare il `name` di un plugin.

21 

22<h2 id="host-your-marketplace">

23 Host your marketplace

24</h2>

25 

26Puoi ospitare il marketplace su GitHub, su un altro host git, come URL `marketplace.json` ospitato, o in una directory su un filesystem condiviso. Invia ai tuoi utenti il comando add per il tuo host e comunica loro cosa serve sulla loro macchina:

27 

28| Host | Gli utenti eseguono, in una sessione Claude Code | Cosa serve agli utenti |

29| :--------------------------------------------------------------- | :--------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------- |

30| GitHub | `/plugin marketplace add your-org/your-marketplace` | `git`, e per un repository privato l'accesso descritto in [Grant access to a private marketplace](#grant-access-to-a-private-marketplace) |

31| GitLab, Bitbucket, GitHub Enterprise Server, o un altro host git | `/plugin marketplace add https://gitlab.example.com/team/plugins.git` | `git`, e accesso all'host dalla loro macchina. Invia l'URL completo, perché la scorciatoia `owner/repo` significa sempre github.com |

32| Un URL `marketplace.json` ospitato | `/plugin marketplace add https://plugins.example.com/marketplace.json` | Accesso HTTPS all'URL. Gli utenti non hanno bisogno di `git` per il catalogo stesso |

33| Una directory su un filesystem condiviso | `/plugin marketplace add /Volumes/shared/claude-plugins` | Accesso in lettura al percorso |

34 

35Per fissare un branch o un tag di un marketplace GitHub o git-URL, comunica agli utenti di aggiungere `#<ref>`, come in `your-org/your-marketplace#stable`. Il [plugin commands reference](/docs/it/plugins/cli-reference#plugin-marketplace-add) elenca ogni forma che il comando accetta.

36 

37Un add riuscito stampa `Successfully added marketplace: your-marketplace`. Claude Code prende quel nome dal campo `name` nel tuo `marketplace.json`, non dal nome del repository.

38 

39Gli utenti quindi installano un plugin per il `name` della voce e il `name` del marketplace, come in `/plugin install code-formatter@your-marketplace`.

40 

41<h3 id="register-the-marketplace-for-everyone-in-a-repository">

42 Register the marketplace for everyone in a repository

43</h3>

44 

45Per condividere il marketplace con tutti coloro che lavorano in un repository, esegui `claude plugin marketplace add your-org/your-marketplace --scope project` lì una volta dalla tua shell e committa il `.claude/settings.json` che scrive. Claude Code quindi registra il marketplace per ogni collega che [trusts the folder](/docs/it/plugins/org#require-plugins-per-repository).

46 

47<h3 id="avoid-relative-path-entries-in-a-url-hosted-marketplace">

48 Avoid relative-path entries in a URL-hosted marketplace

49</h3>

50 

51Quando gli utenti aggiungono il tuo marketplace come URL `marketplace.json` nudo, Claude Code scarica solo quel file. Una voce nel tuo array `plugins` il cui `source` è un percorso relativo come `./plugins/formatter` fallisce quindi all'installazione con [`its marketplace entry path does not stay inside the marketplace directory`](/docs/it/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Dai a ogni voce un source che può essere recuperato da solo, come un repository `github` o un URL `archive`, oppure ospita il marketplace in un repository git in modo che Claude Code cloni l'intero albero.

52 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 Edit plugins in place on a shared directory

55</h3>

56 

57Quando gli utenti aggiungono il tuo marketplace da una directory condivisa, Claude Code legge i plugin con source a percorso relativo direttamente da quella directory invece di copiarli. Gli utenti vedono i tuoi modifiche quando avviano la prossima sessione o eseguono `/reload-plugins`, senza un passaggio di aggiornamento o un bump di versione.

58 

59<h3 id="keep-plugin-files-out-of-git-lfs">

60 Keep plugin files out of Git LFS

61</h3>

62 

63Mantieni i file di cui i tuoi plugin hanno bisogno fuori da [Git LFS](https://git-lfs.com). Quando gli utenti aggiungono un marketplace ospitato in un repository git, o installano un plugin basato su git che elenca, Claude Code clona quel marketplace o repository di plugin sulla loro macchina. Il clone non scarica mai il contenuto LFS, quindi i file tracciati da LFS arrivano come file puntatore.

64 

65<h3 id="share-files-within-a-marketplace-with-symlinks">

66 Share files within a marketplace with symlinks

67</h3>

68 

69Per condividere file tra il tuo plugin e altre parti dello stesso marketplace, crea link simbolici all'interno della directory del tuo plugin. Quando Claude Code copia il plugin nella sua cache, gestisce ogni symlink per dove il target si risolve:

70 

71* **All'interno della directory del plugin stesso**: il symlink viene preservato come symlink relativo nella cache, quindi continua a risolvere il target copiato al runtime.

72* **Altrove all'interno dello stesso marketplace**: il symlink viene dereferenziato. Il contenuto del target viene copiato nella cache al suo posto. Questo consente alla directory `skills/` di un meta-plugin di collegarsi a skill definite da altri plugin nel marketplace.

73* **Fuori dal marketplace**: il symlink viene saltato per motivi di sicurezza.

74 

75Per i plugin installati da un percorso locale, o da una [`command` source](/docs/it/plugins/marketplace-reference#command-plugin-source) il cui `mode` è il default `copy`, Claude Code preserva solo i symlink che si risolvono all'interno della directory del plugin stesso e salta tutti gli altri.

76 

77Il seguente comando crea un link dall'interno di un plugin marketplace a una skill condivisa definita da un plugin fratello. Su Windows, usa `mklink /D` da un Command Prompt elevato o abilita Developer Mode:

78 

79```bash theme={null}

80ln -s ../../shared-plugin/skills/foo ./skills/foo

81```

82 

83<h2 id="distribute-through-organization-settings">

84 Distribute through organization settings

85</h2>

86 

87Su un piano Team o Enterprise, puoi anche distribuire il marketplace attraverso [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) su claude.ai invece di ospitarlo dove gli utenti lo aggiungono da soli. Organization sync legge il repository attraverso la connessione GitHub o GitLab della tua organizzazione su claude.ai, quindi le credenziali git dei tuoi utenti non sono coinvolte.

88 

89Organization sync è più rigoroso riguardo al repository rispetto a `/plugin marketplace add`:

90 

91* **Repository marketplace**: su github.com e gitlab.com, deve essere privato o interno

92* **Plugin sources**: ogni plugin source deve essere di tipo `github`, `url`, o `git-subdir`, o un [relative path](/docs/it/plugins/marketplace-reference#relative-path-plugin-source) che inizia con `./`

93* **Directory `bin/` di primo livello**: claude.ai rifiuta un plugin che ne ha una e sincronizza il resto del marketplace. Il messaggio di errore inizia con `Plugin contains a top-level bin/ directory`. Mantieni gli eseguibili in un'altra directory, come `scripts/`, e fai riferimento ad essi come `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` dai tuoi hooks o dalle configurazioni del server MCP

94 

95Vedi [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) per il flusso di lavoro dell'amministratore.

96 

97<h2 id="grant-access-to-a-private-marketplace">

98 Grant access to a private marketplace

99</h2>

100 

101Quando un utente aggiunge, installa da, o aggiorna il tuo marketplace, Claude Code esegue `git` sulla loro macchina con i prompt interattivi disattivati e si affida a qualsiasi credenziale quella macchina già possiede. Claude Code non ha un token git proprio, e `marketplace.json` non ha un campo per uno.

102 

103Scegli se il clone viene eseguito su SSH o HTTPS dalla forma del comando add che invii agli utenti:

104 

105* **GitHub `owner/repo`**: Claude Code verifica `ssh -T git@github.com` e clona su SSH quando la verifica ha successo. Se la verifica fallisce, o il clone SSH stesso fallisce, clona su HTTPS. Gli utenti su macchine senza una chiave SSH GitHub possono impostare `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1` per saltare la verifica e clonare su HTTPS.

106* **`git@host:path.git`**: SSH.

107* **`https://example.com/repo.git`**: HTTPS.

108 

109Comunica agli utenti cosa serve per ogni protocollo sulla loro macchina:

110 

111* **SSH**: la chiave deve funzionare senza un prompt di passphrase, ad esempio perché è caricata in `ssh-agent`. L'host deve già essere in `known_hosts`.

112* **HTTPS**: Claude Code lascia abilitato l'helper di credenziali git dell'utente ma gli vieta di chiedere. Una credenziale che l'helper già memorizza funziona; una che dovrebbe chiedere fallisce. Su GitHub, `gh auth login` seguito da `gh auth setup-git` ne memorizza una.

113 

114Per un host GitHub Enterprise Server, gli utenti hanno bisogno dell'accesso git a quell'host dalla loro macchina. Vedi [Plugin marketplaces on GHES](/docs/it/github-enterprise-server#plugin-marketplaces-on-ghes) per cosa serve a ogni superficie Claude Code per raggiungere un marketplace ospitato su GHES.

115 

116Se distribuisci attraverso **Organization settings > Plugins & skills** su claude.ai invece, le credenziali git dei tuoi utenti non sono coinvolte. Vedi [Distribute through organization settings](#distribute-through-organization-settings) per quali plugin sources possono essere privati lì.

117 

118<h3 id="serve-users-who-have-no-git-host-account">

119 Serve users who have no git-host account

120</h3>

121 

122Gli utenti senza un account su un host git possono aggiungere un marketplace che servi come URL `marketplace.json` o da una directory condivisa, ma possono installare solo i plugin le cui voci source possono anche raggiungere. Una voce che punta a un repository `github` privato fallisce comunque all'installazione per loro, perché Claude Code lo recupera con lo stesso `git` non interattivo che usa per un marketplace ospitato su git.

123 

124Queste entry sources non hanno bisogno di un account git:

125 

126* **`archive`**: uno zip scaricato su HTTPS. Gli utenti non hanno bisogno né di `git` né di un account, solo accesso di rete all'URL. Richiede Claude Code v2.1.224 o successivo. Fissa ogni archive con `sha256` in modo che Claude Code rifiuti un download modificato. Per inviare credenziali con il download, vedi [Authenticate archive downloads](#authenticate-archive-downloads).

127* **Un repository git pubblico**: Claude Code clona una source `url` o `git-subdir` pubblica su HTTPS senza credenziali quando la voce fornisce un URL `https://`. Per una source `github`, o una source `git-subdir` scritta come `owner/repo`, gli utenti senza una chiave SSH GitHub impostano `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`.

128 

129Per un team su una rete, un marketplace `directory` su un filesystem condiviso funziona anche senza account git. Gli utenti hanno bisogno solo dell'accesso in lettura al percorso.

130 

131<h3 id="what-background-auto-update-does-with-credentials">

132 What background auto-update does with credentials

133</h3>

134 

135Background auto-update è l'aggiornamento automatico e incustodito di Claude Code dei marketplace e dei plugin installati dopo l'avvio di una sessione. È disattivato per il tuo marketplace finché un utente o un amministratore non lo attiva, come coperto in [Keep users up to date](#keep-users-up-to-date).

136 

137Quando è attivato per un marketplace privato, il controllo di background per i nuovi commit utilizza gli helper di credenziali git configurati dall'utente e non chiede mai. Ogni tipo di remote e helper dà un risultato diverso:

138 

139* **SSH remotes**: una chiave caricata in `ssh-agent` autentica il controllo.

140* **HTTPS remotes con una credenziale memorizzata**: un helper che può fornire una credenziale memorizzata senza chiedere autentica il controllo. Git Credential Manager, l'helper Keychain di macOS, e `git-credential-store` funzionano in questo modo una volta che detengono una credenziale per l'host.

141* **HTTPS remotes con un helper che ha bisogno di chiedere**: l'helper non può rispondere in background. L'aggiornamento fallisce silenziosamente e il checkout esistente rimane in posizione, quindi i plugin dell'utente continuano a funzionare dallo stato sincronizzato per ultimo.

142 

143Dopo il controllo, Claude Code fa uno dei seguenti:

144 

145* **Il checkout è aggiornato**: Claude Code lo lascia come è.

146* **Il controllo trova nuovi commit, o fallisce perché non può raggiungere o autenticarsi al remote**: Claude Code clona il marketplace di nuovo e sostituisce il checkout esistente con il nuovo clone. Se quel clone fallisce, il checkout esistente rimane in posizione. Il re-clone può [time out on large repositories](/docs/it/plugins/troubleshooting#git-clone-timed-out-after-120s).

147 

148Per mantenere un marketplace privato aggiornato, un utente può fare uno dei seguenti:

149 

150* **Memorizzare una credenziale**: accedi all'helper di credenziali per primo in modo che memorizzi una credenziale per l'host. Per GitHub, esegui `gh auth login`, quindi `gh auth setup-git`.

151* **Mantenere il checkout al fallimento**: se l'utente imposta `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1`, Claude Code mantiene il checkout esistente senza tentare il re-clone quando il controllo di background non può raggiungere o autenticarsi al remote. I plugin continuano a funzionare dallo stato sincronizzato per ultimo.

152 

153Se un utente imposta `GITHUB_TOKEN` o un altro token del provider nell'ambiente, questo da solo non autentica il controllo di background. Un token ha effetto attraverso un helper di credenziali, come l'helper della CLI `gh`, che legge `GH_TOKEN` e `GITHUB_TOKEN`.

154 

155<h2 id="roll-out-to-a-whole-company">

156 Roll out to a whole company

157</h2>

158 

159Distribuire un plugin a un'intera azienda coinvolge te come proprietario del marketplace, un amministratore che controlla le impostazioni gestite, e ogni persona che usa Claude Code. Puoi eseguire il rollout senza l'amministratore, nel qual caso ogni persona aggiunge il marketplace e installa il plugin da sola.

160 

161| Chi | Cosa fa | Dove è coperto |

162| :---------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------ |

163| Tu, il proprietario del marketplace | Mantieni il catalogo in un repository che solo l'azienda può leggere, invia il comando add per il tuo host, e comunica cosa serve a ogni persona sulla loro macchina | [Host your marketplace](#host-your-marketplace) e [Grant access to a private marketplace](#grant-access-to-a-private-marketplace) |

164| Un amministratore | Registra il marketplace e attiva i suoi plugin per tutti con `extraKnownMarketplaces` e `enabledPlugins` nelle impostazioni gestite, e imposta `autoUpdate` lì | [Require a marketplace and its plugins](/docs/it/plugins/org#require-a-marketplace-and-its-plugins) e [Set update policy](/docs/it/plugins/org#set-update-policy) |

165| Ogni persona | Ha bisogno dell'accesso in lettura a un repository git privato, con credenziali già memorizzate sulla loro macchina. Senza un amministratore, eseguono anche i comandi add e install | [Add a private marketplace](/docs/it/plugins/install#add-a-private-marketplace) |

166 

167Per le persone che non hanno un account su un host git, queste sezioni coprono ciascuna un modo per raggiungerle:

168 

169* **Entry sources che non hanno bisogno di un account git**: [Serve users who have no git-host account](#serve-users-who-have-no-git-host-account)

170* **Una directory di plugin pre-popolata**: [Seed containers and CI](/docs/it/plugins/org#seed-containers-and-ci), che serve anche gli utenti che non hanno un account su un host git

171* **Impostazioni dell'organizzazione claude.ai**: [Distribute through organization settings](#distribute-through-organization-settings), dove le credenziali git dei tuoi utenti non sono coinvolte

172 

173<h2 id="keep-users-up-to-date">

174 Keep users up to date

175</h2>

176 

177I tuoi cambiamenti raggiungono gli utenti attraverso background auto-update, una volta che è attivato per il tuo marketplace, o quando gli utenti aggiornano il plugin da soli. In entrambi i casi un utente ottiene una nuova copia di un plugin solo quando la sua versione calcolata cambia, come descritto in [Release a new version](#release-a-new-version).

178 

179<h3 id="turn-on-auto-update">

180 Turn on auto-update

181</h3>

182 

183Background auto-update è disattivato per il tuo marketplace per impostazione predefinita, e `marketplace.json` non ha un campo per attivarlo. Un utente o un amministratore lo attiva:

184 

185* **Comunica agli utenti di attivarlo**: ogni utente va a **Marketplaces** in `/plugin`, seleziona il tuo marketplace, e seleziona **Enable auto-update**.

186* **Chiedi a un amministratore di impostarlo**: se un amministratore imposta `"autoUpdate": true` sulla voce `extraKnownMarketplaces` del tuo marketplace nelle impostazioni gestite, è attivato per tutti coloro che ricevono quelle impostazioni. Vedi [Set update policy](/docs/it/plugins/org#set-update-policy).

187 

188Senza auto-update, gli utenti ricevono i tuoi cambiamenti quando eseguono `/plugin marketplace update <name>` in una sessione o `claude plugin update <plugin>@<name>` nella shell.

189 

190Per cosa vedono gli utenti quando un aggiornamento li raggiunge, vedi [When auto-update runs](/docs/it/plugins/loading#when-auto-update-runs).

191 

192<h3 id="release-a-new-version">

193 Release a new version

194</h3>

195 

196Per rilasciare una nuova versione agli utenti, cambia il `version` del plugin. Gli utenti ottengono una nuova copia solo quando la versione calcolata del plugin differisce da quella che hanno. Quella versione viene da `plugin.json` per primo, poi dalla voce del marketplace, per [Versions and updates](/docs/it/plugins/loading#versions-and-updates).

197 

198Un plugin che gli utenti [load in place](/docs/it/plugins/loading#find-plugins-on-disk) da un marketplace che hanno aggiunto come directory locale non è controllato da `version`. Carica i tuoi file attuali a ogni avvio di sessione, qualunque sia la sua stringa di versione.

199 

200Per ogni installazione diversa da un caricamento in place o uno da una source `command`, aumenta `version` a ogni rilascio o omettilo:

201 

202* **Bump `version` a ogni rilascio**: gli utenti rimangono sulla loro copia in cache finché la stringa non cambia. Se imposti `"version": "1.0.0"` e spingi nuovi commit senza cambiarlo, gli utenti non li ricevono.

203* **Ometti `version`**: gli utenti tracceranno i tuoi commit invece. Lascia `version` fuori sia da `plugin.json` che dalla voce del marketplace.

204 

205Non impostare `version` sia in `plugin.json` che nella voce del marketplace. Se lo fai, Claude Code usa il valore `plugin.json` senza avvertimento, e `claude plugin validate` segnala la mancata corrispondenza come `Entry declares version "<a>" but <path>/plugin.json says "<b>"`.

206 

207<h3 id="hold-users-on-one-version">

208 Hold users on one version

209</h3>

210 

211Un marketplace serve una versione di ogni plugin alla volta, quindi tieni gli utenti su una versione scegliendo cosa ogni voce punta:

212 

213* **`ref` e `sha` sulla voce del plugin**: `ref` nomina un branch o un tag e `sha` nomina un commit per una source `github`, `url`, o `git-subdir`. Vedi [Plugin sources](/docs/it/plugins/marketplace-reference#plugin-sources).

214* **`#<ref>` sul comando add**: gli utenti che aggiungono `your-org/your-marketplace#stable` ottengono quel branch o tag del catalogo. Per due linee di rilascio contemporaneamente, vedi [Run release channels](#run-release-channels).

215* **Tag `<plugin>--v<version>`**: un intervallo di versione di una dipendenza si risolve rispetto a questi tag. Vedi [Release a plugin that others depend on](/docs/it/plugins/dependencies#tag-plugin-releases-for-version-resolution).

216 

217[Release a new version](#release-a-new-version) dice quando una voce modificata raggiunge gli utenti.

218 

219<h3 id="change-the-command-of-a-command-source">

220 Change the command of a command source

221</h3>

222 

223Se cambi il `command` di una [`command` source](/docs/it/plugins/marketplace-reference#command-plugin-source), o cambi il suo `mode`, ogni utente deve accettare il nuovo comando prima che Claude Code lo esegua. Claude Code esegue solo il comando esatto che un utente ha accettato quando ha installato o aggiornato per ultimo il plugin.

224 

225Dopo che la copia del marketplace di un utente raccoglie il cambiamento, quell'utente vede uno dei seguenti:

226 

227* **Nessuna più esecuzione di background**: l'[esecuzione una volta per sessione](/docs/it/plugins/loading#when-a-command-source-re-runs) del comando si ferma per quell'utente, quindi l'output nuovo dello strumento non li raggiunge.

228* **Una voce nella scheda `/plugin` Errors**: la voce mostra il nuovo comando e il comando `claude plugin update` da eseguire.

229 

230Comunica agli utenti di eseguire il comando `claude plugin update` che quella voce mostra, in un terminale. Claude Code mostra loro il nuovo comando e chiede loro di accettarlo.

231 

232<h2 id="run-release-channels">

233 Run release channels

234</h2>

235 

236Per offrire tracce stabili e ad accesso anticipato, ospita due marketplace le cui voci puntano a ref diversi dello stesso plugin, e lascia che ogni utente aggiunga quello che vuole. Claude Code non ha un concetto di canale di rilascio, e un marketplace serve una versione di ogni plugin alla volta.

237 

238Dai ai due file `marketplace.json` valori `name` diversi. Claude Code identifica un marketplace per il suo `name`, quindi un utente non può avere due marketplace con lo stesso nome registrati contemporaneamente.

239 

240Con questi due cataloghi, gli utenti che aggiungono `stable-tools` installano `code-formatter` dal branch `stable`, e gli utenti che aggiungono `latest-tools` lo installano da `latest`:

241 

242```json theme={null}

243{

244 "name": "stable-tools",

245 "owner": { "name": "Your Org" },

246 "plugins": [

247 { "name": "code-formatter", "source": { "source": "github", "repo": "your-org/code-formatter", "ref": "stable" } }

248 ]

249}

250```

251 

252```json theme={null}

253{

254 "name": "latest-tools",

255 "owner": { "name": "Your Org" },

256 "plugins": [

257 { "name": "code-formatter", "source": { "source": "github", "repo": "your-org/code-formatter", "ref": "latest" } }

258 ]

259}

260```

261 

262Dai ai due ref versioni `plugin.json` diverse, o ometti `version` in modo che lo SHA del commit li distingua. Gli aggiornamenti vengono rilevati confrontando le versioni, quindi un ref che si muove senza un cambio di versione lascia gli utenti sulla copia in cache.

263 

264Per assegnare i canali ai gruppi di utenti invece di lasciare che gli utenti scelgano, un amministratore dà a ogni gruppo la voce `extraKnownMarketplaces` corrispondente, come descritto in [Set update policy](/docs/it/plugins/org#set-update-policy).

265 

266<h2 id="rename-or-remove-a-plugin">

267 Rename or remove a plugin

268</h2>

269 

270Il `name` di un plugin è il suo identificatore. Gli utenti lo referenziano nelle chiavi di impostazione `enabledPlugins` e `pluginConfigs` e in `/plugin install`, quindi cambiarlo interrompe ogni installazione esistente.

271 

272Per cambiare l'etichetta che gli utenti vedono in `/plugin` senza interrompere nulla, imposta `displayName` in `plugin.json` e mantieni `name` invariato.

273 

274<h3 id="migrate-users-with-a-renames-map">

275 Migrate users with a renames map

276</h3>

277 

278Quando devi cambiare un `name`, aggiungi una mappa `renames` di primo livello a `marketplace.json` in modo che Claude Code migri gli utenti esistenti invece di segnalare [`Plugin "<name>" not found in marketplace`](/docs/it/plugins/troubleshooting#plugin-not-found-in-marketplace). Fai lo stesso quando rimuovi una voce da `plugins`. La migrazione automatica richiede Claude Code v2.1.193 o successivo.

279 

280Mappa ogni nome precedente al suo nome attuale, o a `null` quando il plugin è scomparso. Questo marketplace rinomina `formatter` a `code-formatter` e registra che `legacy-linter` è stato rimosso:

281 

282```json theme={null}

283{

284 "name": "your-marketplace",

285 "owner": { "name": "Your Org" },

286 "plugins": [

287 { "name": "code-formatter", "source": "./plugins/code-formatter" }

288 ],

289 "renames": {

290 "formatter": "code-formatter",

291 "legacy-linter": null

292 }

293}

294```

295 

296Dopo che spingi, un utente che ha ancora il vecchio nome abilitato vede uno di questi risultati:

297 

298* **Voce rinominata**: il plugin carica con il suo nuovo nome. `claude plugin list` e i dettagli del plugin in `/plugin` mostrano `Renamed to "code-formatter" in the "your-marketplace" marketplace` una volta, e Claude Code riscrive la vecchia chiave a quella nuova in `enabledPlugins` e `pluginConfigs` negli ambiti di impostazioni utente, progetto e locale.

299* **Voce `null`**: la vecchia chiave viene eliminata da quegli ambiti e l'utente vede `Removed from the "your-marketplace" marketplace`.

300* **Abilitato nelle impostazioni gestite**: il plugin continua a caricare con il suo nuovo nome, ma Claude Code non può riscrivere le impostazioni gestite, quindi l'avviso ricorre finché un amministratore non aggiorna `enabledPlugins` lì.

301 

302Per un marketplace che gli utenti hanno aggiunto da un repository git o URL, un plugin rinominato segnala [`Plugin "<name>" not cached at <path>`](/docs/it/plugins/troubleshooting#plugin-not-cached-at) finché l'utente non esegue `/plugin install code-formatter@your-marketplace` una volta in una sessione.

303 

304Tratta `renames` come storia di sola aggiunta. Mantieni le voci vecchie dopo che tutti hanno migrato. Quando rinomini di nuovo, aggiungi una seconda voce piuttosto che modificare la prima, perché Claude Code segue la catena dal nome più vecchio.

305 

306Nella tua shell, esegui `claude plugin validate .` dopo aver modificato la mappa. Rifiuta una catena che cicla o che termina da qualsiasi parte diversa da `null` o un nome in `plugins`, con `renames.<name>: chain does not resolve`.

307 

308<h3 id="uninstall-removed-plugins-from-users’-machines">

309 Uninstall removed plugins from users' machines

310</h3>

311 

312Per disinstallare un plugin rimosso dalle macchine degli utenti piuttosto che lasciare una copia dietro, imposta `"forceRemoveDeletedPlugins": true` al primo livello di `marketplace.json`. Senza il campo, un plugin rimosso rimane installato e segnala `Plugin "<name>" not found in marketplace` quando una sessione lo carica. Con esso, Claude Code fa quanto segue a ogni avvio di sessione:

313 

3141. Confronta cosa gli utenti hanno installato dal tuo marketplace rispetto alle voci e alla mappa `renames`, e tratta qualsiasi plugin che non è né elencato né rinominato come rimosso.

3152. Disinstalla ogni plugin rimosso dagli ambiti utente, progetto e locale. I plugin che solo le impostazioni gestite hanno installato rimangono in posizione.

3163. Elenca ogni plugin rimosso sotto un'intestazione **Flagged** in `/plugin` con lo stato `Removed from marketplace`.

317 

318<h2 id="authenticate-archive-downloads">

319 Authenticate archive downloads

320</h2>

321 

322Per autenticare un download [`archive`](/docs/it/plugins/marketplace-reference#archive-plugin-source), come un download da un registro privato, imposta le intestazioni HTTP che Claude Code invia con esso. Puoi impostare `headers` in uno di questi posti:

323 

324* **La source `url` del marketplace**: la source `url` da cui hai registrato il marketplace, come una voce [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces).

325* **La voce del plugin**: su Claude Code v2.1.238 o successivo, puoi impostarla sulla voce `marketplace.json` del plugin invece, accanto a `source`.

326 

327In uno di questi posti, imposta un comando `headersHelper` invece di `headers` quando il valore è di breve durata, come un token che il tuo registro genera su richiesta. Claude Code esegue il comando e invia l'oggetto JSON che stampa come intestazioni di quel posto. Richiede Claude Code v2.1.238 o successivo.

328 

329Il [marketplace reference](/docs/it/plugins/marketplace-reference#plugin-entries) elenca i campi di voce `headers` e `headersHelper`.

330 

331Il posto che scegli decide quali download ottengono le intestazioni e quando Claude Code esegue il comando:

332 

333| Posto | Download che ottengono le intestazioni | Quando Claude Code esegue un `headersHelper` impostato lì |

334| :--------------------------- | :----------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

335| Source `url` del marketplace | Download di archive sull'origine dell'URL del marketplace, significando lo stesso schema, host e porta | Prima di ogni fetch del `marketplace.json` del marketplace e prima di ogni download di archive su quell'origine. Claude Code riusa l'output di un'esecuzione per fino a 60 secondi |

336| Voce del plugin | Solo il download di quella voce | Solo quando un utente installa o aggiorna quel singolo plugin da solo e [accetta il comando](#how-users-accept-a-headershelper-command) |

337 

338Dove entrambi i posti impostano un'intestazione dello stesso nome, Claude Code invia il valore della voce. All'interno di un posto, un'intestazione che il comando stampa sostituisce un'intestazione dello stesso nome elencata in `headers`.

339 

340<h3 id="add-a-headershelper-to-a-plugin-entry">

341 Add a headersHelper to a plugin entry

342</h3>

343 

344Questa voce imposta `headersHelper` accanto a `source`. Imposta anche [`"strict": false`](/docs/it/plugins/marketplace-reference#strict-mode), che Claude Code richiede di una voce `marketplace.json` che imposta `headersHelper`:

345 

346```json theme={null}

347{

348 "name": "my-plugin",

349 "description": "Formatting commands for internal services",

350 "strict": false,

351 "source": {

352 "source": "archive",

353 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"

354 },

355 "headersHelper": "/opt/bin/mint-registry-token.sh"

356}

357```

358 

359Per controllare la voce, esegui `claude plugin install my-plugin@your-marketplace` nella tua shell. Claude Code ti mostra il comando e l'URL dell'archive, e scarica lo zip dopo che accetti.

360 

361<h3 id="write-the-headershelper-command">

362 Write the headersHelper command

363</h3>

364 

365Che tu imposti `headersHelper` su una source `url` del marketplace o su una voce del plugin, scrivi il comando per soddisfare questi requisiti:

366 

367* **Testo del comando**: al massimo 500 caratteri di ASCII stampabile, senza una sequenza di quattro o più spazi.

368* **Output**: stampa un oggetto JSON di nomi di intestazione e valori di stringa su stdout, quindi esci 0 entro 10 secondi.

369* **Shell e directory di lavoro**: Claude Code esegue il comando attraverso `sh`, o attraverso `cmd.exe` su Windows. La directory di lavoro è la directory di configurazione, che è `~/.claude` o [`CLAUDE_CONFIG_DIR`](/docs/it/env-vars#variables). Dai un percorso assoluto o un comando su `PATH`, perché un percorso relativo si risolve rispetto a quella directory, non al progetto dell'utente.

370* **Variabili che Claude Code rimuove**: quando il comando è impostato in una voce `marketplace.json`, o nel `.claude/settings.json` o `.claude/settings.local.json` di un progetto, Claude Code rimuove dall'ambiente ogni variabile il cui nome sembra una credenziale, per la [stessa regola che applica a un MCP `headersHelper`](/docs/it/mcp#which-variables-a-helper-can-read). `ANTHROPIC_API_KEY` e `MY_REGISTRY_TOKEN` sono entrambi rimossi, quindi fai leggere la credenziale al comando da un file o da un archivio di credenziali. Questa rimozione non si applica a un comando impostato nelle impostazioni utente, un file `--settings`, o impostazioni gestite.

371* **Variabili che Claude Code imposta**: `CLAUDE_CODE_MARKETPLACE_URL` e `CLAUDE_CODE_MARKETPLACE_NAME` per il comando di una source `url`, e `CLAUDE_CODE_PLUGIN_NAME` e `CLAUDE_CODE_PLUGIN_ARCHIVE_URL` per il comando di una voce. `CLAUDE_CODE_MARKETPLACE_NAME` non è impostato al primo fetch dopo che un utente aggiunge un marketplace per URL, perché quel fetch è quello che fornisce il nome.

372 

373Un comando che conia un token bearer stampa un oggetto come questo:

374 

375```json theme={null}

376{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}

377```

378 

379<h3 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">

380 When Claude Code skips a headersHelper command or drops its output

381</h3>

382 

383Un comando `headersHelper` non viene eseguito, o le intestazioni da `headers` o dall'output del comando vengono eliminate, quando uno dei seguenti si applica:

384 

385* **Il comando fallisce**: se il comando esce non-zero, viene eseguito oltre 10 secondi, o stampa qualcosa di diverso da un oggetto JSON di valori di stringa, il fetch o il download per il quale il comando è stato eseguito non accade.

386* **L'URL del marketplace non inizia con `https://`**: il comando di quella source `url` non viene eseguito, e le richieste portano solo le intestazioni elencate nel suo campo `headers`.

387* **Il reindirizzamento lascia l'origine**: quando un download viene reindirizzato fuori dall'origine dell'URL dell'archive, la richiesta reindirizzata non porta valori `headers` o output del comando da nessuno della source `url` del marketplace o della voce del plugin.

388* **La voce imposta un'intestazione di routing o identità**: Claude Code elimina i nomi di routing di richiesta e identità del client come `Host`, `Cookie`, e `X-Forwarded-*` da `headers` e dall'output del comando di una voce, e mantiene i nomi di autenticazione come `Authorization`. Ogni voce `marketplace.json` viene filtrata in questo modo. Per una voce di plugin inline nelle impostazioni, vedi [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces).

389* **Il comando è impostato nelle impostazioni di una directory `--add-dir`**: il comando viene ignorato, su una source `url` e su una [voce di plugin inline](/docs/it/settings-reference#extraknownmarketplaces) allo stesso modo, e solo le `headers` di quel file vengono inviate.

390* **Le impostazioni gestite bloccano il comando**: impostare [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources) a `true` blocca i comandi `headersHelper`, e [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly) li blocca anche a meno che `disableCommandPluginSources` non sia esplicitamente `false`. Sotto uno di questi blocchi, Claude Code continua a eseguire il comando per un marketplace che le impostazioni gestite stesse dichiarano.

391 

392<h3 id="how-users-accept-a-headershelper-command">

393 How users accept a headersHelper command

394</h3>

395 

396Un utente accetta il comando di una voce del plugin ogni volta che installa o aggiorna quel singolo plugin da solo. Lo fanno dalla vista propria del plugin in `/plugin`, o con `claude plugin install` o `claude plugin update`. Claude Code mostra il comando e l'URL dell'archive, ed esegue il comando solo dopo che l'utente accetta.

397 

398In una shell non interattiva, passa [`--yes`](/docs/it/plugins/cli-reference#plugin-install) per accettare il comando. Per accettare solo il comando che un'esecuzione `--json` precedente ha visualizzato, passa [`--accept-command`](/docs/it/plugins/cli-reference#plugin-install) con lo `sha256` che l'esecuzione ha segnalato.

399 

400Claude Code esegue solo il comando che ha mostrato, per l'URL dell'archive che ha mostrato. Se il comando della voce o l'URL dell'archive sono cambiati nel frattempo, Claude Code rifiuta l'installazione o l'aggiornamento. Un cambiamento nella stringa di query da solo non conta.

401 

402<h3 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

403 Installs and updates that refuse a command instead of asking

404</h3>

405 

406Su qualsiasi operazione diversa da un'installazione o aggiornamento di un singolo plugin, Claude Code non esegue il comando di una voce né scarica il suo archive. Il plugin rimane alla sua versione installata o rimane disinstallato, e l'utente vede uno di questi risultati:

407 

408* **Installazione di diversi plugin contemporaneamente, da un suggerimento di plugin, o come dipendenza di un altro plugin**: Claude Code rifiuta il plugin che ha il comando e indirizza l'utente alla vista propria di quel plugin in `/plugin`. Gli altri plugin in un'installazione in blocco continuano a installare. Un plugin che dipende dal plugin rifiutato non riesce a installare finché l'utente non installa il plugin rifiutato da solo.

409* **Background auto-update, o avvio della sessione per un plugin il cui archive non è mai stato scaricato**: Claude Code elenca il plugin nella scheda `/plugin` Errors in modo che l'utente sappia di installarlo o aggiornarlo da solo.

410 

411<h3 id="when-a-marketplace-url-sources-command-runs">

412 When a marketplace `url` source's command runs

413</h3>

414 

415Dichiari il `headersHelper` di una source `url` del marketplace in un file di impostazioni, come una voce [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces), piuttosto che nel catalogo che il marketplace pubblica. Claude Code quindi non chiede all'utente di accettarlo a ogni installazione o aggiornamento. Invece, il file di impostazioni che lo dichiara decide quando Claude Code lo esegue:

416 

417| File di impostazioni | Quando Claude Code esegue il comando |

418| :------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

419| Impostazioni utente, un file `--settings`, o un file di impostazioni gestite sulla macchina | Senza chiedere, incluso durante un aggiornamento di marketplace di background |

420| Il `.claude/settings.json` o `.claude/settings.local.json` di un progetto | Solo dopo che l'utente accetta il [workspace trust dialog](/docs/it/permissions#what-runs-before-you-trust-a-folder) per quella cartella stessa. Una sessione `-p` o SDK non conta come accettarla, e nemmeno la fiducia concessa a una cartella genitore |

421| Impostazioni gestite dal server | In una sessione interattiva, solo dopo che l'utente approva le impostazioni consegnate nel [security approval dialog](/docs/it/server-managed-settings#security-approval-dialogs) |

422 

423Per una [voce di plugin inline](/docs/it/settings-reference#extraknownmarketplaces) in uno di questi file, Claude Code richiede la stessa fiducia di cartella o approvazione di impostazioni come per un comando a livello di marketplace in quel file, e l'utente accetta anche il comando della voce a ogni installazione o aggiornamento.

424 

425<h2 id="depend-on-and-recommend-other-plugins">

426 Depend on and recommend other plugins

427</h2>

428 

429Una voce può dichiarare dipendenze da altri plugin.

430 

431* **Intervalli di versione**: una dipendenza può portare un intervallo semver.

432* **Dipendenze cross-marketplace**: una dipendenza da un altro marketplace installa solo quando il tuo marketplace elenca quel marketplace in `allowCrossMarketplaceDependenciesOn`.

433 

434Per gli intervalli di versione, la convenzione di tag git `<plugin>--v<version>` su cui si risolvono, e la fiducia cross-marketplace, vedi [Plugin dependencies](/docs/it/plugins/dependencies).

435 

436Per fare in modo che Claude Code suggerisca un plugin quando un progetto lo corrisponde, aggiungi un blocco `relevance` alla voce con i segnali che identificano il progetto. Gli utenti vedono suggerimenti dal tuo marketplace solo quando un amministratore lo elenca in `pluginSuggestionMarketplaces`. Per i segnali e il passaggio di abilitazione, vedi [Plugin relevance](/docs/it/plugins/relevance).

437 

438<h2 id="work-around-what-a-marketplace-can’t-do">

439 Work around what a marketplace can't do

440</h2>

441 

442Alcune cose che i proprietari chiedono non hanno un campo in `marketplace.json`. Ecco l'opzione più vicina per ciascuna:

443 

444* **Limitare cosa altro gli utenti installano**: l'allowlist del marketplace è un'impostazione gestita, `strictKnownMarketplaces`. Vedi [Restrict what users can install](/docs/it/plugins/org#restrict-what-users-can-install).

445* **Installare o abilitare un plugin senza che l'utente chieda**: nessun campo di voce installa un plugin. `enabledPlugins` gestito lo fa per una flotta; vedi [Pre-install and require plugins](/docs/it/plugins/org#pre-install-and-require-plugins).

446* **Mostrare voci diverse a utenti diversi**: le voci non portano un campo di audience, e ogni utente che aggiunge il marketplace vede l'intero catalogo. Ospita marketplace separati per audience separate.

447* **Contrassegnare un plugin come deprecato**: non c'è uno stato di deprecazione. L'opzione è rimuovere la voce, mappare il suo nome a `null` in `renames`, e opzionalmente impostare `forceRemoveDeletedPlugins`.

448* **Attivare auto-update per i tuoi utenti**: ogni utente lo attiva in **Marketplaces** in `/plugin`, o un amministratore imposta `autoUpdate` nelle impostazioni gestite. Vedi [Turn on auto-update](#turn-on-auto-update).

449* **Portare credenziali git**: nessun campo di marketplace contiene un token git. L'accesso a un marketplace o plugin ospitato su git segue la configurazione git dell'utente, per [Grant access to a private marketplace](#grant-access-to-a-private-marketplace). Per le source `archive`, una voce può impostare [`headers` o `headersHelper`](#authenticate-archive-downloads) invece.

450 

451<h2 id="next-steps">

452 Next steps

453</h2>

454 

455* [Marketplace reference](/docs/it/plugins/marketplace-reference): campi `marketplace.json`, tipi di source, e messaggi di convalida

456* [Manage plugins for your organization](/docs/it/plugins/org): richiedi, limita, o semina il tuo marketplace su tutte le macchine della tua organizzazione

457* [Plugin dependencies](/docs/it/plugins/dependencies): etichetta i rilasci in modo che i plugin che dipendono dal tuo possano risolvere le versioni

458* [Troubleshoot plugins](/docs/it/plugins/troubleshooting): gli errori che i tuoi utenti vedono quando aggiungono o aggiornano dal tuo marketplace

plugins/install.md +418 −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# Installare e gestire i plugin

6 

7> Installare i plugin di Claude Code da un marketplace su qualsiasi superficie che utilizzi, scegliere un ambito di installazione e aggiornarli o rimuoverli in seguito.

8 

9L'installazione di un plugin aggiunge le sue skills, agents, hooks e server MCP a Claude Code sulla tua macchina.

10 

11Questa pagina è per chiunque utilizzi i plugin sulla propria macchina o account, sia nel terminale, nell'app desktop, in un IDE o in una sessione cloud: copre l'installazione, la scelta di un ambito, l'aggiunta di marketplace e il mantenimento dei plugin aggiornati.

12 

13<Note>

14 Questi casi sono coperti su altre pagine:

15 

16 * **Utilizzi claude.ai chat o Cowork, non Claude Code**: vedi [Plugin su claude.ai e in Cowork](https://claude.com/docs/plugins/overview)

17 * **Claude Code ha stampato un errore**: trovalo in [Troubleshoot plugins](/docs/it/plugins/troubleshooting)

18</Note>

19 

20Inizia con [Installare un plugin](#install-a-plugin). Se qualcuno ti ha inviato un comando di installazione il cui nome `@` non è `claude-plugins-official`, [aggiungi prima quel marketplace](#add-a-marketplace).

21 

22<h2 id="install-a-plugin">

23 Installare un plugin

24</h2>

25 

26Come esempio, questa sezione installa [`commit-commands`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/commit-commands) dal [marketplace ufficiale di Anthropic](/docs/it/plugins/anthropic-marketplaces), che aggiunge comandi per il commit, il push e l'apertura di pull request.

27 

28Gli stessi passaggi installano qualsiasi altro plugin: sostituisci il suo nome e il nome del suo marketplace ovunque compaiano `commit-commands` e `claude-plugins-official`. Se quel plugin proviene da un marketplace diverso, [aggiungi prima il marketplace](#add-a-marketplace).

29 

30Scegli la scheda per il luogo in cui esegui Claude Code.

31 

32<Tabs>

33 <Tab title="Terminal">

34 Avvia Claude Code con `claude` nel tuo progetto, quindi:

35 

36 <Steps>

37 <Step title="Apri i dettagli del plugin con il comando di installazione">

38 Esegui `/plugin install` con il nome del plugin e il marketplace. In una sessione, questo comando non installa subito: apre il pannello `/plugin` sui dettagli di quel plugin in modo che tu possa rivederlo e scegliere prima un ambito.

39 

40 ```text theme={null}

41 /plugin install commit-commands@claude-plugins-official

42 ```

43 

44 Per sfogliare invece, esegui `/plugin` senza un nome di plugin: il pannello si apre sulla scheda **Discover**, che elenca i plugin da ogni marketplace che hai aggiunto, e puoi digitare per cercare, quindi premere **Enter** su un plugin per aprire i suoi dettagli.

45 </Step>

46 

47 <Step title="Rivedi cosa aggiunge il plugin">

48 Il riquadro dei dettagli mostra la descrizione del plugin. Può anche mostrare:

49 

50 * **Will install**: i comandi, gli agents, le skills, gli hooks e i server MCP e LSP che il plugin aggiunge.

51 * **Last updated**: mostrato per un plugin nel marketplace ufficiale di Anthropic.

52 * **Context cost**: per un plugin nel marketplace ufficiale di Anthropic, due stime di token. **Every turn** è quello che il plugin aggiunge a ogni messaggio che invii, e **When invoked** è quello che le sue skills e agents aggiungono una volta che Claude le carica. Le stime appaiono quando apri il plugin nominando il suo marketplace, come fa il comando del passaggio 1, o dalla scheda **Marketplaces**. Il riquadro dei dettagli che raggiungi dall'elenco **Discover** non le mostra.

53 

54 I plugin da un marketplace locale o personalizzato possono mostrare `Components will be discovered at installation` invece.

55 

56 Un plugin può eseguire hooks e server MCP, quindi leggi il riquadro prima di installare. Vedi [Plugin security and trust](/docs/it/plugins/security).

57 </Step>

58 

59 <Step title="Scegli un ambito">

60 Seleziona una delle tre opzioni di installazione:

61 

62 * **Install for you (user scope)**: ottieni il plugin in ogni progetto su questa macchina

63 * **Install for all collaborators on this repository (project scope)**: è abilitato per tutti coloro che lavorano in questo repository

64 * **Install for you, in this repo only (local scope)**: lo ottieni solo in questo repository

65 

66 [Scegli un ambito di installazione](#choose-an-install-scope) dice quale file di impostazioni ogni uno scrive e quale si applica quando lo stesso plugin è impostato in più di uno.

67 

68 Dopo aver selezionato un ambito, Claude Code installa il plugin insieme a tutte le dipendenze che dichiara, quindi stampa un riepilogo dell'installazione.

69 </Step>

70 

71 <Step title="Leggi il riepilogo dell'installazione">

72 L'ultima frase del riepilogo ti dice se il plugin è utilizzabile in questa sessione:

73 

74 * **Active now**: `Plugin is now active.` Non è necessario ricaricare.

75 * **Reload needed**: `Run /reload-plugins to activate.` Il pannello si chiude e Claude Code esegue quel ricaricamento per te. Se il ricaricamento [invaliderebbe la prompt cache](/docs/it/prompt-caching#enabling-or-disabling-a-plugin), avverte e lascia il plugin in sospeso invece. Esegui `/reload-plugins --force` per attivarlo comunque, il che costa una richiesta non memorizzata nella cache.

76 * **Load failed**: `The plugin couldn't be loaded`. Apri la scheda **Errors** in `/plugin` per il motivo, quindi vedi [After install: plugin not working](/docs/it/plugins/troubleshooting#plugin-installed-but-not-working).

77 </Step>

78 

79 <Step title="Conferma che il plugin funziona">

80 Digita `/` e cerca le skills del plugin sotto il suo nome, nella forma `/<plugin>:<skill>`. Per `commit-commands`, appare `/commit-commands:commit`. Due altri posti elencano il plugin:

81 

82 * Apri la scheda **Installed** in `/plugin`, che elenca il plugin con il suo ambito.

83 * Nel tuo shell, esegui `claude plugin list`, che stampa lo stesso elenco con le righe `Version`, `Scope` e `Status`.

84 

85 Se `/commit-commands:commit` non appare, vedi [After install: plugin not working](/docs/it/plugins/troubleshooting#plugin-installed-but-not-working).

86 </Step>

87 </Steps>

88 

89 L'installazione da qualsiasi altro marketplace richiede un passaggio extra prima: [aggiungi il marketplace](#add-a-marketplace). Claude Code aggiunge il marketplace ufficiale di Anthropic per te la prima volta che avvii una sessione di terminale interattiva, motivo per cui l'esempio salta quel passaggio. Se hai trovato un plugin su [claude.com/marketplace](https://claude.com/marketplace), il suo pulsante **Claude Code** copia il comando di installazione nella sua [forma shell](#install-from-your-shell), `claude plugin install <name>@claude-plugins-official`.

90 </Tab>

91 

92 <Tab title="Desktop app">

93 In una sessione locale o SSH nella scheda **Code** dell'app desktop:

94 

95 <Steps>

96 <Step title="Apri il browser dei plugin">

97 Fai clic sul pulsante **+** accanto alla casella del prompt e seleziona **Plugins**, quindi **Add plugin**. Il browser dei plugin si apre con i plugin dai tuoi marketplace.

98 </Step>

99 

100 <Step title="Seleziona il plugin">

101 Trova `commit-commands` e selezionalo.

102 </Step>

103 

104 <Step title="Scegli un ambito">

105 Scegli un [ambito](#choose-an-install-scope): il tuo account utente, questo progetto o solo locale.

106 </Step>

107 </Steps>

108 

109 Per abilitare, disabilitare o disinstallare in seguito, usa **+ > Plugins > Manage plugins**. Il browser dei plugin non è disponibile nelle sessioni cloud dell'app desktop. Vedi [Install plugins in the desktop app](/docs/it/desktop#install-plugins).

110 </Tab>

111 

112 <Tab title="VS Code">

113 Nel pannello Claude Code in VS Code:

114 

115 <Steps>

116 <Step title="Apri Manage plugins">

117 Digita `/plugins` nella casella del prompt per aprire **Manage plugins**.

118 </Step>

119 

120 <Step title="Installa il plugin">

121 Sulla scheda **Plugins**, cerca `commit-commands` e fai clic su **Install**. Se la scheda non elenca alcun plugin, aggiungi prima `anthropics/claude-plugins-official` sulla scheda **Marketplaces**.

122 </Step>

123 

124 <Step title="Scegli un ambito">

125 Scegli un [ambito](#choose-an-install-scope): **Install for you**, **Install for this project** o **Install locally**.

126 </Step>

127 </Steps>

128 

129 Le tue modifiche si applicano alle sessioni aperte senza un riavvio. Vedi [Manage plugins in VS Code](/docs/it/vs-code#manage-plugins).

130 </Tab>

131 

132 <Tab title="Cloud session">

133 Una [sessione cloud](/docs/it/cloud-environments), incluso [il browser su claude.ai/code](/docs/it/claude-code-on-the-web), non ha un browser dei plugin e non carica i plugin che hai installato sulla tua macchina o quelli che il `.claude/settings.json` del tuo repository attiva. Per i plugin che la tua organizzazione distribuisce attraverso le impostazioni gestite, vedi [Manage plugins for your organization](/docs/it/plugins/org).

134 

135 Vedi [quali parti della tua configurazione sono disponibili anche in una sessione cloud](/docs/it/cloud-environments#what-carries-over-from-your-setup) per il resto della tua configurazione.

136 </Tab>

137</Tabs>

138 

139<h3 id="choose-an-install-scope">

140 Scegli un ambito di installazione

141</h3>

142 

143L'ambito di installazione di un plugin decide chi ottiene il plugin e quale file di impostazioni lo registra come abilitato:

144 

145* **User scope**: il plugin è abilitato per te in ogni progetto su questa macchina. La voce va in `enabledPlugins` in `~/.claude/settings.json`.

146* **Project scope**: il plugin è abilitato per tutti coloro che lavorano in questo repository. La voce va in `.claude/settings.json`, che esegui il commit.

147* **Local scope**: il plugin è abilitato per te solo in questo repository. La voce va in `.claude/settings.local.json`.

148 

149Alcuni plugin sono impostati dal loro autore per iniziare disattivati, attraverso il campo [`defaultEnabled`](/docs/it/plugins/manifest-reference#defaultenabled). Tale plugin è installato ma rimane disattivato finché non lo attivi con `claude plugin enable <name>` nel tuo shell, o dalla scheda **Installed** di `/plugin` in una sessione.

150 

151Quando lo stesso plugin è impostato in più ambiti, l'impostazione locale sostituisce l'impostazione del progetto e l'impostazione del progetto sostituisce l'impostazione dell'utente. Vedi [Find where a plugin is enabled](/docs/it/plugins/loading#find-where-a-plugin-is-enabled) per la regola completa.

152 

153Il terminale, le sessioni locali dell'app desktop e l'estensione VS Code su un computer leggono gli stessi file di impostazioni, quindi un plugin che installi a livello di utente in uno di essi è disponibile negli altri due.

154 

155<h3 id="other-places-you-run-claude-code">

156 JetBrains, esecuzioni non interattive e Agent SDK

157</h3>

158 

159Alcuni posti in cui esegui Claude Code non hanno un browser dei plugin proprio:

160 

161* **JetBrains IDEs**: il plugin JetBrains esegue Claude Code nel terminale dell'IDE, quindi usa i passaggi della scheda **Terminal**.

162* **`claude -p` e altre esecuzioni non interattive**: `/plugin` non viene eseguito e Claude risponde `/plugin isn't available in this environment.` I plugin che hai già installato si caricano. Installali e gestiscili dal tuo shell con i [comandi `claude plugin`](#install-from-your-shell).

163* **Agent SDK**: carica i plugin attraverso l'opzione plugin dell'SDK. Vedi [Load plugins in the Agent SDK](/docs/it/agent-sdk/plugins).

164 

165Se Claude Code segnala che un plugin abilitato nel `.claude/settings.json` del repository non è installato, vedi [Enabled in project settings but not installed](/docs/it/plugins/loading#enabled-in-project-settings-but-not-installed).

166 

167<Tip>

168 Se sei un autore di plugin che testa una copia del tuo plugin su disco, avvia Claude Code dal tuo shell con `--plugin-dir` per caricarlo per una sessione invece di installarlo. Vedi [Flags that load a plugin for one session](/docs/it/plugins/cli-reference#flags-that-load-a-plugin-for-one-session).

169</Tip>

170 

171<h3 id="plugins-from-your-claude-ai-account">

172 Plugin dal tuo account claude.ai

173</h3>

174 

175Il tuo account claude.ai è una fonte separata di plugin, insieme ai marketplace da cui installi:

176 

177* **Cosa arriva**: ogni plugin che attivi per il tuo account claude.ai e ogni plugin che la tua organizzazione attiva per i suoi membri. In una sessione di terminale si sincronizzano in background ogni volta che avvii Claude Code mentre sei connesso con quell'account; nelle sessioni Cowork si scaricano quando la sessione inizia.

178* **Dove li vedi**: in `/plugin` e `claude plugin list` sotto l'ID `<name>@synced`. Puoi disattivarne uno al tuo ambito a meno che la tua organizzazione non lo richieda.

179* **Cosa non va dall'altra parte**: i plugin che installi con `/plugin` o `claude plugin install` rimangono su questa macchina e non vengono aggiunti al tuo account claude.ai.

180 

181Per i tempi di sincronizzazione, i requisiti di accesso e la disattivazione della sincronizzazione, vedi [Plugins synced from claude.ai](/docs/it/plugins/loading#synced-plugins).

182 

183<h3 id="install-from-your-shell">

184 Installa dal tuo shell

185</h3>

186 

187Esegui `claude plugin install` nel tuo shell per installare un plugin senza avviare una sessione Claude Code, ad esempio da uno script di configurazione.

188 

189* **Scope**: ambito utente per impostazione predefinita. Passa `--scope project` o `--scope local` per cambiarlo.

190* **Quando i plugin si caricano**: i plugin che installa si caricano la prossima volta che avvii Claude Code, o quando esegui `/reload-plugins` in una sessione già aperta.

191* **Il marketplace deve essere aggiunto prima**: su una macchina in cui nessuno ha ancora aperto una sessione Claude Code interattiva, il marketplace ufficiale non è registrato, quindi uno script che installa da esso esegue `claude plugin marketplace add anthropics/claude-plugins-official` prima dell'installazione.

192 

193```bash theme={null}

194claude plugin install formatter@your-org --scope project

195```

196 

197Il comando stampa `Successfully installed plugin: formatter@your-org (scope: project)` quando finisce.

198 

199Alcuni plugin si installano eseguendo un comando che il loro marketplace nomina, chiamato una [`command` source](/docs/it/plugins/marketplace-reference#command-plugin-source). Claude Code ti mostra quel comando e ti chiede di accettarlo prima che venga eseguito. Uno script non ha nessuno per rispondere a quel prompt, quindi passa `--yes` lì per accettarlo.

200 

201Per ogni flag `claude plugin install`, vedi [plugin install](/docs/it/plugins/cli-reference#plugin-install).

202 

203<h2 id="add-a-marketplace">

204 Aggiungi un marketplace

205</h2>

206 

207Hai bisogno di questa sezione solo quando il plugin che desideri non è nel marketplace ufficiale di Anthropic, ad esempio uno che un collega ha pubblicato o uno dal marketplace della comunità di Anthropic.

208 

209Un marketplace è un catalogo di plugin e Claude Code deve conoscere un marketplace prima di poter installare da esso. Aggiungi un marketplace una volta. Dopo di che, i suoi plugin appaiono sulla scheda **Discover** e si installano con `/plugin install <plugin>@<marketplace>` in una sessione o `claude plugin install <plugin>@<marketplace>` nel tuo shell, dove `<marketplace>` è il nome con cui il marketplace si è registrato. Per fare entrambi in un passaggio, vedi [Aggiungi un marketplace e installa in un comando](#add-a-marketplace-and-install-in-one-command).

210 

211In una sessione Claude Code, esegui `/plugin marketplace add` seguito dalla fonte del marketplace: un repository GitHub, un repository git su qualsiasi host, una directory o file locale, o un `marketplace.json` ospitato.

212 

213| Fonte | Cosa digiti | Esempio |

214| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- |

215| Repository GitHub | `owner/repo`. Aggiungi `#ref` per fissare un ramo o un tag. | `/plugin marketplace add anthropics/claude-code`, o `/plugin marketplace add your-org/plugins#v1.2.0` per fissare il tag `v1.2.0` |

216| Repository Git su qualsiasi host | L'URL di clonazione completo. Aggiungi `#ref` per fissare un ramo o un tag. | `/plugin marketplace add https://gitlab.example.com/your-group/your-marketplace.git#v1.0.0` |

217| Directory o file locale | Un percorso relativo o assoluto a una directory che contiene `.claude-plugin/marketplace.json`, o al file JSON stesso. Inizia un percorso relativo con `./` o `../`, perché Claude Code legge un `name/name` nudo come un repository GitHub. | `/plugin marketplace add ./my-marketplace` |

218| `marketplace.json` ospitato | Il suo URL `https://` | `/plugin marketplace add https://example.com/marketplace.json` |

219 

220Dal tuo shell, `claude plugin marketplace add` accetta le stesse fonti.

221 

222<Tip>

223 `/plugin market` funziona anche come forma più breve di `/plugin marketplace`.

224</Tip>

225 

226Includi il prefisso `https://` su ogni URL, o usa la forma `git@host:path` per SSH. Se digiti un `gitlab.example.com/your-group/your-marketplace.git` nudo, Claude Code lo legge come scorciatoia GitHub `owner/repo` e lo rifiuta.

227 

228Quando il comando ha successo, stampa `Successfully added marketplace: <name>`, e i plugin del marketplace appaiono sulla scheda **Discover** la prossima volta che apri `/plugin`, senza necessità di ricaricamento. Se fallisce, abbina il messaggio di errore in [Troubleshoot plugins](/docs/it/plugins/troubleshooting#add-a-marketplace).

229 

230<h3 id="add-a-marketplace-and-install-in-one-command">

231 Aggiungi un marketplace e installa in un comando

232</h3>

233 

234Per installare un plugin da un marketplace che non hai ancora aggiunto, esegui `/plugin install` in una sessione Claude Code e nomina la fonte del marketplace con `--marketplace`. Richiede Claude Code v2.1.275 o successivo.

235 

236```text theme={null}

237/plugin install deploy-helper --marketplace your-org/plugins

238```

239 

240La fonte accetta [le stesse forme di `/plugin marketplace add`](#add-a-marketplace), come GitHub `owner/repo`, un URL git o un percorso locale, tranne che non può contenere spazi. Dai il nome del plugin da solo, senza un suffisso `@marketplace`.

241 

242Se non hai ancora aggiunto quel marketplace, Claude Code mostra la fonte che ha risolto e ti chiede di confermare prima di aggiungerla. Una volta aggiunto il marketplace, i dettagli del plugin si aprono e scegli un [ambito di installazione](#install-a-plugin). Se la fonte corrisponde a un marketplace che hai già aggiunto, Claude Code salta la conferma e apre i dettagli del plugin in quel marketplace.

243 

244<h3 id="add-a-private-marketplace">

245 Aggiungi un marketplace privato

246</h3>

247 

248Un marketplace privato è uno in un repository a cui hai bisogno di credenziali per clonare, su GitHub o su qualsiasi altro host git. Lo aggiungi con lo stesso comando `/plugin marketplace add` o `claude plugin marketplace add` di uno pubblico. Claude Code lo clona con le credenziali git già sulla tua macchina e non chiede mai, quindi ogni modo di connettersi ha un requisito:

249 

250* **HTTPS**: i tuoi helper di credenziali git si applicano, quindi l'accesso che hai configurato con `gh auth login`, il Portachiavi macOS o `git-credential-store` funziona. I prompt interattivi sono soppressi, quindi un host a cui non ti sei mai autenticato fallisce invece di chiedere una password.

251* **SSH**: l'host deve già essere nel tuo file `known_hosts` e la chiave deve funzionare senza un prompt di passphrase, perché i prompt di impronta digitale dell'host e di passphrase sono soppressi anche loro.

252* **Scorciatoia GitHub `owner/repo`**: Claude Code controlla se la tua chiave SSH si autentica a `github.com`, quindi clona su SSH se lo fa e su HTTPS se non lo fa. Imposta [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/it/env-vars#variables) per saltare quel controllo e clonare sempre su HTTPS.

253 

254Le stesse credenziali si applicano quando esegui `/plugin install`, `/plugin marketplace update` e `claude plugin update`.

255 

256Su un host GitHub Enterprise Server, vedi [Plugin marketplaces on GHES](/docs/it/github-enterprise-server#plugin-marketplaces-on-ghes) per le credenziali che ogni operazione richiede.

257 

258Se la tua organizzazione registra il marketplace per te attraverso le impostazioni gestite, non lo aggiungi tu stesso. Vedi [Pre-install and require plugins](/docs/it/plugins/org#pre-install-and-require-plugins).

259 

260<h3 id="add-from-claude-ai">

261 Aggiungi un marketplace da claude.ai

262</h3>

263 

264Nelle sessioni di terminale in cui [i plugin si sincronizzano dal tuo account claude.ai](/docs/it/plugins/loading#synced-plugins), claude.ai può anche elencare i marketplace dei plugin per te, come la libreria dei plugin della tua organizzazione e i tuoi caricamenti su claude.ai. Aggiungi uno di questi per nome piuttosto che per fonte. L'aggiunta di un marketplace da claude.ai richiede Claude Code v2.1.273 o successivo.

265 

266Aggiungi un marketplace claude.ai dal pannello `/plugin` o dal tuo shell:

267 

268* **All'interno di una sessione**: esegui `/plugin` e vai alla scheda **Marketplaces**, che elenca i marketplace da claude.ai. Selezionane uno lì per aggiungerlo.

269* **Dal tuo shell**: esegui `claude plugin marketplace list`, che li stampa in una sezione `From claude.ai:`. Quindi esegui `claude plugin marketplace add` con il flag `--claudeai` e il nome mostrato nell'elenco.

270 

271Ad esempio, questo comando aggiunge un marketplace denominato `claudeai-organization-library`:

272 

273```bash theme={null}

274claude plugin marketplace add --claudeai claudeai-organization-library

275```

276 

277Claude Code registra il marketplace con un nome locale che inizia con `claudeai-`, derivato dal nome che claude.ai lo elenca. Ad esempio, un marketplace elencato come "Organization library" diventa `claudeai-organization-library`. Installa i suoi plugin per quel nome, ad esempio con `claude plugin install <plugin>@claudeai-organization-library`.

278 

279Se esci, o accedi a un'organizzazione claude.ai diversa, il marketplace rimane configurato ma non mostra alcun plugin, e i plugin che hai già installato da esso continuano a caricarsi.

280 

281La sezione `From claude.ai:` può anche elencare marketplace basati su git condivisi attraverso claude.ai, e stampa una fonte per ognuno di quelli. Aggiungili per quella fonte come in [Aggiungi un marketplace](#add-a-marketplace), non con `--claudeai`.

282 

283<h2 id="manage-installed-plugins">

284 Gestisci i plugin installati

285</h2>

286 

287La scheda **Installed** in `/plugin` elenca i tuoi plugin con azioni per abilitare, disabilitare, aggiornare o disinstallare ognuno. In una sessione Claude Code, esegui `/plugin` e premi **Tab** per raggiungerla, o esegui `/plugin enable`, `/plugin disable` o `/plugin uninstall` per aprire il pannello e fare quel cambiamento lì. I plugin disabilitati sono raggruppati sotto un'intestazione compressa in fondo all'elenco. Usa questi tasti sull'elenco:

288 

289* Digita per filtrare per nome o descrizione.

290* Premi **Space** per abilitare o disabilitare il plugin selezionato, e **f** per contrassegnarlo come preferito.

291* Premi **Enter** per aprire i dettagli di un plugin. Il menu lì offre **Disable plugin** o **Enable plugin**, **Update now** e **Uninstall**. I plugin che accettano impostazioni offrono anche **Configure options**.

292 

293La scheda può anche mostrare plugin a livello **Managed**. La tua organizzazione li ha installati attraverso [impostazioni gestite](/docs/it/settings#settings-files), e non puoi abilitarli, disabilitarli o disinstallarli qui.

294 

295Per un plugin sincronizzato che la tua organizzazione richiede su claude.ai, vedi [Gestisci i plugin sincronizzati da claude.ai](#manage-plugins-synced-from-claude-ai).

296 

297Quando chiudi il pannello `/plugin` con modifiche in sospeso che hai fatto in esso, Claude Code esegue `/reload-plugins` per te per applicarle. Se il ricaricamento [invaliderebbe la prompt cache](/docs/it/prompt-caching#enabling-or-disabling-a-plugin), avverte e lascia le modifiche in sospeso invece. Esegui `/reload-plugins --force` per applicarle comunque.

298 

299<h3 id="manage-plugins-synced-from-claude-ai">

300 Gestisci i plugin sincronizzati da claude.ai

301</h3>

302 

303La scheda **Installed** in `/plugin` elenca anche i [plugin sincronizzati dal tuo account claude.ai](/docs/it/plugins/loading#synced-plugins), con `synced` come loro fonte. I plugin sincronizzati appaiono nelle sessioni di terminale su Claude Code v2.1.273 o successivo.

304 

305* **Abilita o disabilita**: usa la scheda **Installed**, a meno che la tua organizzazione non abbia contrassegnato il plugin come richiesto.

306* **Rimuovi**: disattiva il plugin su claude.ai.

307 

308Quando Claude Code sincronizza un plugin aggiunto, aggiornato o rimosso in una sessione interattiva, vedi `Plugins changed. Run /reload-plugins to activate.` Esegui `/reload-plugins` per caricare il cambiamento in quella sessione, o lascialo per la prossima volta che avvii Claude Code.

309 

310<h3 id="uninstall-a-plugin-the-project-enables">

311 Disinstalla un plugin che il progetto abilita

312</h3>

313 

314Quando scegli **Uninstall** per un plugin che il `.claude/settings.json` di questo repository abilita, sia dalla scheda **Installed** che con `/plugin uninstall`, Claude Code ti chiede se disabilitarlo per te o disinstallarlo per tutti:

315 

316* **Disable for me**: premi **y**. Claude Code scrive `false` per il plugin nel tuo `.claude/settings.local.json` e lo lascia installato per il progetto.

317* **Uninstall for everyone**: premi **u**. Claude Code rimuove il plugin dal `.claude/settings.json` condiviso.

318 

319<h3 id="see-what-an-installed-plugin-adds-to-your-sessions">

320 Vedi cosa aggiunge un plugin installato alle tue sessioni

321</h3>

322 

323Nel tuo shell, esegui `claude plugin details <name>` per un plugin installato. La riga `Always-on` è il numero di token che il plugin aggiunge a ogni sessione in cui è abilitato, e le righe per componente mostrano quale skill o agent contribuisce di più. Per l'output completo e cosa significa ogni figura, vedi [Measure what a plugin costs](/docs/it/plugins/measure#measure-what-a-plugin-costs).

324 

325<h3 id="find-plugins-you-no-longer-use">

326 Trova i plugin che non usi più

327</h3>

328 

329Sulla scheda **Installed** in `/plugin`, i plugin che hai installato tu stesso e che non hai usato di recente appaiono sotto un'intestazione **Not used recently**, e i dettagli di ogni plugin mostrano una riga **Last used**. Usa quell'intestazione e quella riga per trovare i plugin che ancora aggiungono costo di avvio e contesto, quindi disabilitali o disinstallali.

330 

331<h3 id="plugins-with-dependencies">

332 Plugin con dipendenze

333</h3>

334 

335Un plugin può dichiarare altri plugin da cui dipende. Quando installi, disabiliti o disinstalli tale plugin da un marketplace, Claude Code agisce anche su quelle dipendenze:

336 

337* **Install**: Claude Code installa anche e abilita le dipendenze dichiarate del plugin allo stesso ambito. Il messaggio di successo le elenca.

338* **Enable**: Claude Code abilita anche le dipendenze del plugin che sono installate ma disabilitate. Se una dipendenza dichiarata non è installata, l'abilitazione fallisce e il messaggio ti dice di installarla prima.

339* **Disable**: quando un altro plugin abilitato ha ancora bisogno di quello che hai nominato, Claude Code rifiuta e stampa un comando concatenato che disabilita entrambi nell'ordine giusto.

340* **Uninstall**: le dipendenze auto-installate rimangono fino a quando non esegui `claude plugin prune` nel tuo shell; vedi [plugin prune](/docs/it/plugins/cli-reference#plugin-prune).

341 

342Se hai caricato il plugin con `--plugin-dir` invece, vedi [Test a plugin and its dependency locally](/docs/it/plugins/dependencies#test-a-plugin-and-its-dependency-locally).

343 

344<h3 id="manage-plugins-from-your-shell">

345 Gestisci i plugin dal tuo shell

346</h3>

347 

348Puoi anche gestire i plugin senza avviare una sessione Claude Code. Nel tuo shell, esegui `claude plugin install`, `enable`, `disable` o `uninstall` come comandi di terminale ordinari; cambiano le stesse impostazioni che il pannello `/plugin` fa. Ognuno accetta `--scope` per mirare a un ambito, e usa un ambito predefinito quando lo ometti:

349 

350* `enable` e `disable` agiscono sull'ambito più specifico le cui impostazioni già elencano il plugin.

351* `install` e `uninstall` agiscono sull'ambito utente.

352 

353Ad esempio, questi comandi disabilitano e riabilitano un plugin, quindi lo disinstallano a livello di progetto:

354 

355```bash theme={null}

356claude plugin disable formatter@your-org

357claude plugin enable formatter@your-org

358claude plugin uninstall formatter@your-org --scope project

359```

360 

361<h2 id="keep-plugins-updated">

362 Mantieni i plugin aggiornati

363</h2>

364 

365I plugin si aggiornano automaticamente quando il marketplace da cui provengono ha l'auto-update attivato. Dopo l'avvio di una sessione, Claude Code aggiorna quei marketplace e aggiorna le copie su disco dei plugin che hai installato da essi.

366 

367La sessione in esecuzione mantiene le versioni che ha già caricato. Dopo un aggiornamento, vedi `Plugin updated: <name> · Run /reload-plugins to apply`, e la sessione successiva carica automaticamente le nuove versioni.

368 

369Questi sono i valori predefiniti di auto-update per ogni tipo di marketplace:

370 

371* **On by default**: `claude-plugins-official` e gli altri [nomi di marketplace ufficiali](/docs/it/plugins/security#official-marketplace-names) tranne `knowledge-work-plugins` e `first-party-plugins`, più [marketplace aggiunti da claude.ai](#add-from-claude-ai).

372* **Off by default**: ogni altro marketplace, incluso il marketplace della comunità, i marketplace di terze parti e i marketplace di sviluppo locale.

373 

374Per quando viene eseguito l'auto-update, quali plugin salta e le variabili di ambiente che lo disattivano, vedi [When auto-update runs](/docs/it/plugins/loading#when-auto-update-runs).

375 

376<h3 id="turn-auto-update-on-or-off-for-a-marketplace">

377 Attiva o disattiva l'auto-update per un marketplace

378</h3>

379 

380In una sessione Claude Code, esegui `/plugin` e vai alla scheda **Marketplaces**. Seleziona il marketplace, quindi seleziona **Enable auto-update** o **Disable auto-update**.

381 

382<h3 id="update-one-plugin-now">

383 Aggiorna un plugin ora

384</h3>

385 

386In una sessione, apri il plugin sulla scheda **Installed** in `/plugin` e seleziona **Update now**, o nel tuo shell esegui `claude plugin update <plugin>@<marketplace>`.

387 

388<h3 id="auto-update-from-a-private-marketplace">

389 Auto-update da un marketplace privato

390</h3>

391 

392Per un marketplace privato, vedi [What background auto-update does with credentials](/docs/it/plugins/host-marketplace#what-background-auto-update-does-with-credentials) per come gli auto-update in background si autenticano su SSH e HTTPS, e [Troubleshoot plugins](/docs/it/plugins/troubleshooting#add-a-marketplace) per i messaggi che vedi quando falliscono.

393 

394<h2 id="manage-marketplaces">

395 Gestisci i marketplace

396</h2>

397 

398La scheda **Marketplaces** in `/plugin` elenca ogni marketplace che hai registrato, insieme alla sua fonte. Selezionane uno per sfogliare i suoi plugin, aggiornare il suo elenco, attivare o disattivare l'auto-update, o rimuoverlo.

399 

400Puoi anche elencare, aggiornare e rimuovere i marketplace con comandi, dal tuo shell o all'interno di una sessione:

401 

402| Azione | Nel tuo shell | All'interno di una sessione |

403| :---------------------------------- | :---------------------------------------- | :---------------------------------- |

404| Elenca i marketplace | `claude plugin marketplace list` | `/plugin marketplace list` |

405| Aggiorna l'elenco di un marketplace | `claude plugin marketplace update <name>` | `/plugin marketplace update <name>` |

406| Rimuovi un marketplace | `claude plugin marketplace remove <name>` | `/plugin marketplace remove <name>` |

407 

408Quando rimuovi un marketplace, Claude Code disinstalla ogni plugin che hai installato da esso e rimuove le loro voci `enabledPlugins` dai tuoi file di impostazioni. La scheda **Marketplaces** nomina quei plugin prima di chiederti di confermare.

409 

410<h2 id="next-steps">

411 Passaggi successivi

412</h2>

413 

414* [Marketplace di Anthropic](/docs/it/plugins/anthropic-marketplaces): come differiscono i marketplace ufficiale, della comunità e demo e dove sfogliare ognuno

415* [Plugin loading reference](/docs/it/plugins/loading): perché un plugin si è caricato, non si è caricato o non è cambiato dopo un aggiornamento

416* [Plugin security and trust](/docs/it/plugins/security): cosa rivedere prima di installare un plugin da un marketplace che non conosci

417* [Troubleshoot plugins](/docs/it/plugins/troubleshooting): messaggi di errore di installazione e marketplace con le loro correzioni

418* [Create a plugin](/docs/it/plugins/create): costruisci il tuo

plugins/loading.md +424 −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# Riferimento al caricamento dei plugin

6 

7> Traccia da dove Claude Code carica ogni plugin, quale file di impostazioni decide se caricarlo e perché un aggiornamento non ha cambiato nulla.

8 

9Usa questa pagina quando un plugin non si è caricato, ha caricato una copia diversa da quella prevista, o non ha raccolto un aggiornamento, e vuoi vedere quale fonte, ambito di impostazioni o file su disco ha deciso questo. Fornisce le regole che Claude Code applica quando una sessione inizia e ogni volta che esegui `/reload-plugins`. Puoi anche chiedere a Claude di leggere questa pagina e diagnosticare la tua configurazione.

10 

11<Note>

12 Questi casi sono coperti su altre pagine:

13 

14 * **Passaggi di installazione, abilitazione, disabilitazione e aggiornamento**: vedi [Installa e gestisci i plugin](/docs/it/plugins/install)

15 * **Hai un messaggio di errore specifico**: vedi [Risolvi i problemi dei plugin](/docs/it/plugins/troubleshooting)

16</Note>

17 

18Inizia con [Controlla quale fase ha raggiunto un plugin](#check-which-stage-a-plugin-reached) per le tre fasi che un plugin installato attraversa, oppure vai alla sezione che corrisponde a quello che stai vedendo:

19 

20* Un plugin che hai disattivato continua a caricarsi: [Trova dove un plugin è abilitato](#find-where-a-plugin-is-enabled)

21* Un aggiornamento non ha cambiato nulla: [Versioni e aggiornamenti](#versions-and-updates)

22* Stai guardando i file sotto `~/.claude/plugins/`: [Trova i plugin su disco](#find-plugins-on-disk)

23* Un plugin `--plugin-dir` non si è caricato, o un plugin con lo stesso nome si è caricato invece: [Conflitti di nomi](#name-conflicts)

24 

25<h2 id="check-which-stage-a-plugin-reached">

26 Controlla quale fase ha raggiunto un plugin

27</h2>

28 

29Una voce `enabledPlugins` diventa un plugin che puoi usare in fasi: le tue impostazioni lo dichiarano, Claude Code lo recupera su disco, e la sessione in esecuzione lo carica. Quando un plugin non si comporta come un file di impostazioni suggerisce, controlla quale fase ha raggiunto:

30 

31* **Dichiarato, nelle impostazioni**: `enabledPlugins` dice quali plugin dovrebbero essere attivi, e `extraKnownMarketplaces` dice quali marketplace dovrebbero esistere. Quando esegui `claude plugin marketplace add`, Claude Code scrive il marketplace in `extraKnownMarketplaces` nelle tue impostazioni utente così come su disco

32* **Recuperato, su disco sotto `~/.claude/plugins/`**: i record di quello che Claude Code ha recuperato, e i file recuperati stessi:

33 * `known_marketplaces.json` registra ogni marketplace che Claude Code ha recuperato, con la sua `source`, `installLocation`, `lastUpdated` e `autoUpdate`. C'è un `known_marketplaces.json` per utente, quindi un marketplace che aggiungi in un progetto è disponibile in ogni progetto

34 * `installed_plugins.json` registra ogni installazione con il suo `scope`, `installPath` e `version`

35 * `cache/` contiene i file del plugin

36* **Caricato, nella sessione in esecuzione**: l'insieme di plugin che Claude Code ha caricato all'avvio o all'ultimo `/reload-plugins`. Le modifiche alle impostazioni o al disco non raggiungono questo livello fino a quando non esegui `/reload-plugins` o non avvii una nuova sessione. Questo è il motivo per cui `claude plugin update` termina con `Restart to apply changes.` e gli aggiornamenti in background ti richiedono con `Run /reload-plugins to apply`

37 

38<h3 id="plugins-and-marketplaces-that-aren’t-on-disk-at-session-start">

39 Plugin e marketplace che non sono su disco all'avvio della sessione

40</h3>

41 

42I plugin si caricano all'avvio della sessione da `installed_plugins.json` e dalla cache senza usare la rete. Dopo l'avvio della sessione, Claude Code controlla i marketplace dichiarati in background:

43 

44* **Un marketplace che le impostazioni dichiarano ma che `known_marketplaces.json` non ha**: Claude Code lo clona, quindi ricarica i plugin e scarica i plugin abilitati che non sono ancora in cache

45* **Un marketplace dichiarato la cui fonte è cambiata nelle impostazioni**: Claude Code lo recupera di nuovo dalla nuova fonte e mostra `Plugins changed. Run /reload-plugins to activate.`

46 

47Un plugin abilitato che nessuno dei due percorsi ha recuperato e che non ha una directory cache utilizzabile mostra `Plugin "<name>" not cached at <path>` nella scheda **Errors** di `/plugin`, e `claude plugin list` aggiunge `— run /plugin to refresh` alla stessa riga. Per la correzione, vedi [`Plugin "<name>" not cached at <path>`](/docs/it/plugins/troubleshooting#plugin-not-cached-at).

48 

49<h2 id="find-where-a-plugin-came-from">

50 Trova da dove è venuto un plugin

51</h2>

52 

53Ogni plugin ha un id della forma `<name>@<origin>`, che è quello che vedi nei file di impostazioni e in `claude plugin list --json`. La parte dopo `@` ti dice dove Claude Code ha trovato il plugin:

54 

55| L'ID termina con | Come il plugin è arrivato lì | Come lo attivi o disattivi |

56| :--------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

57| `@<marketplace>` | L'hai installato da un marketplace che hai aggiunto | `"<name>@<marketplace>": true` o `false` sotto `enabledPlugins` in un file di impostazioni |

58| `@inline` | Hai avviato Claude Code con `--plugin-dir` o `--plugin-url`, impostato [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/it/env-vars#variables), o un'app Agent SDK ha passato l'opzione `plugins`. Si carica solo per quella sessione | Attivo per la sessione a meno che il manifest non imposti `defaultEnabled: false` o un file di impostazioni non imposti `"<name>@inline": false` |

59| `@skills-dir` | Hai salvato una directory di plugin che ha un `.claude-plugin/plugin.json` sotto `~/.claude/skills/` o il `.claude/skills/` del progetto | Il `defaultEnabled` del manifest, a meno che un file di impostazioni non imposti `"<name>@skills-dir"` su `true` o `false` |

60| `@synced` | Tu o la tua organizzazione l'hai attivato per il tuo account claude.ai, e Claude Code l'ha [scaricato](#synced-plugins) | Attivo a meno che il manifest non imposti `defaultEnabled: false` o un file di impostazioni non imposti `"<name>@synced": false`. Un plugin che la tua organizzazione contrassegna come richiesto si carica comunque |

61 

62Per un plugin marketplace, `<name>` è il nome della voce in `marketplace.json`; per `@inline` e `@skills-dir` è il `name` nel manifest del plugin.

63 

64I nomi di origine in questa tabella sono riservati, quindi nessun marketplace può essere denominato `inline`, `skills-dir` o `synced`.

65 

66<h3 id="entry-name-and-manifest-name">

67 Nome della voce e nome del manifest

68</h3>

69 

70Un plugin marketplace ha due nomi, e possono differire:

71 

72* **Il nome della voce in `marketplace.json`**: la chiave di installazione e abilitazione. È quello che scrivi in `enabledPlugins`, quello da cui è denominata la directory della cache, e quello che `claude plugin list` mostra

73* **Il `name` nel manifest**: quello sotto cui i componenti del plugin sono namespacati, e quello che i [conflitti di nomi](#name-conflicts) confrontano

74 

75<h3 id="plugins-shared-through-a-repository">

76 Plugin condivisi attraverso un repository

77</h3>

78 

79Per condividere un plugin attraverso un repository, elencalo sotto `enabledPlugins` in `.claude/settings.json` o posizionalo sotto `.claude/skills/`. Claude Code non scansiona la directory `.claude/plugins/` di un progetto.

80 

81Una sessione cloud non aggiunge i marketplace che un repository elenca sotto [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces), perché ciò richiede la finestra di dialogo di fiducia dell'area di lavoro, che una sessione cloud non mostra mai.

82 

83Un plugin della directory di competenze con ambito di progetto si carica solo da `.claude/skills/` della [directory di lavoro primaria](/docs/it/permissions#working-directories) della sessione, e solo dopo che accetti la [finestra di dialogo di fiducia dell'area di lavoro](/docs/it/permissions#what-runs-before-you-trust-a-folder) per quella cartella. Non [cerca le directory padre fino alla radice del repository](/docs/it/skills#discovery-from-parent-and-nested-directories) come fanno le competenze e i comandi semplici. Se avvii da una sottodirectory, un plugin alla radice del repository non si carica. Avvia dalla radice del repository invece, o [sposta la sessione lì con `/cd`](/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successivo.

84 

85Un plugin con ambito di progetto è archiviato nel repository e raggiunge ogni collaboratore che lo clona. Poiché quel contenuto proviene dal repository piuttosto che da te, si carica solo dopo lo stesso controllo di fiducia che si applica alle regole di autorizzazione del progetto in `.claude/settings.json`. Fidarsi di una cartella padre o eseguire con `-p` non è sufficiente. I componenti che eseguono codice sono ulteriormente limitati:

86 

87* I server MCP che dichiara passano attraverso la [stessa approvazione per server](/docs/it/mcp) di un `.mcp.json` del progetto

88* I server MCP che dichiara come un [bundle MCP](/docs/it/plugins/manifest-reference#mcpservers), un file `.mcpb` o `.dxt`, o da un file al di fuori della directory del plugin vengono saltati. Dichiarali inline o in un `.mcp.json` dentro la directory del plugin

89* I [monitor in background](/docs/it/plugins/components#monitors) non si caricano

90 

91I plugin con ambito personale non hanno nessuna di queste restrizioni.

92 

93Per come scrivere plugin `--plugin-dir` e della directory di competenze, vedi [Crea plugin](/docs/it/plugins/create).

94 

95<h3 id="synced-plugins">

96 Plugin sincronizzati da claude.ai

97</h3>

98 

99Un plugin che attivi per il tuo account claude.ai si carica anche in Claude Code, insieme ai plugin che installi dai marketplace. Questo include i plugin che la tua organizzazione attiva per i suoi membri. Ognuno di questi plugin si carica come `<name>@synced`, senza marketplace e senza [record di installazione](#check-which-stage-a-plugin-reached).

100 

101Nelle sessioni di terminale, le competenze, gli agenti, gli hook, i server MCP e i server LSP di un plugin sincronizzato si caricano tutti, con la stessa fiducia di un plugin marketplace che hai installato.

102 

103Per i componenti che Cowork carica, vedi [Plugin su claude.ai e in Cowork](https://claude.com/docs/plugins/overview) su claude.com.

104 

105I plugin sincronizzati si caricano nelle sessioni Cowork e nelle sessioni di terminale dove accedi con il tuo account claude.ai:

106 

107* **[Cowork](https://claude.com/product/cowork)**: Claude Code li scarica nell'ambiente della sessione quando la sessione inizia

108* **Sessioni di terminale**: ogni volta che avvii Claude Code, si sincronizza una volta in background, scaricando i plugin nuovi e aggiornati e rimuovendo quelli che tu o la tua organizzazione avete disattivato. La sincronizzazione nelle sessioni di terminale richiede Claude Code v2.1.273 o successivo

109 

110<h4 id="sync-timing-in-terminal-sessions">

111 Tempistica di sincronizzazione nelle sessioni di terminale

112</h4>

113 

114Poiché la sincronizzazione del terminale viene eseguita in background, può terminare dopo l'avvio della sessione. Quando aggiunge, aggiorna o rimuove un plugin sincronizzato in una sessione interattiva, vedi `Plugins changed. Run /reload-plugins to activate.` Esegui `/reload-plugins` per caricare la modifica in quella sessione, o lasciala per la prossima volta che avvii Claude Code.

115 

116Se abiliti un plugin su claude.ai mentre una sessione è in esecuzione, il plugin scarica la prossima volta che avvii Claude Code.

117 

118<h4 id="sign-in-requirements-for-terminal-sync">

119 Requisiti di accesso per la sincronizzazione del terminale

120</h4>

121 

122Nel tuo terminale, i plugin si sincronizzano solo nelle sessioni dove accedi con il tuo account claude.ai.

123 

124Se hai effettuato l'accesso su una versione precedente di Claude Code, quell'accesso non copre i plugin fino a quando Claude Code non lo rinnova in background. Per ottenere l'accesso prima, esegui di nuovo `/login`. La sincronizzazione dei plugin inizia quindi la prossima volta che avvii Claude Code.

125 

126<h4 id="control-which-synced-plugins-load">

127 Controlla quali plugin sincronizzati si caricano

128</h4>

129 

130Puoi disattivare i plugin sincronizzati uno alla volta, tranne un plugin che la tua organizzazione richiede, o disattivare ogni plugin sincronizzato sulla macchina:

131 

132* **Un plugin**: `claude plugin disable <name>@synced` nella tua shell e la scheda **Installed** di `/plugin` in una sessione salvano entrambi `"<name>@synced": false` nel tuo [`enabledPlugins`](/docs/it/settings-reference#enabledplugins) a livello di utente. Per mantenere il plugin fuori da un progetto in ogni ambiente, imposta la stessa chiave nel `.claude/settings.json` del progetto impegnato

133* **Ogni plugin sincronizzato su una macchina**: imposta [`syncClaudeAiPlugins`](/docs/it/settings-reference#syncclaudeaiplugins) su `false` nelle tue impostazioni utente, o la tua organizzazione lo imposta nelle [impostazioni gestite](/docs/it/managed-settings). Claude Code smette di scaricare, e la prossima volta che lo avvii, sposta i plugin che ha già sincronizzato in `~/.claude/plugins/.trash/` e non li carica più. Se la tua organizzazione disattiva le competenze su claude.ai, i plugin smettono di sincronizzarsi anche

134* **Un plugin che la tua organizzazione richiede**: un plugin che la tua organizzazione contrassegna come richiesto su claude.ai si carica anche se l'hai disabilitato in precedenza. `claude plugin disable` lo rifiuta con `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.`, e `claude plugin list` lo contrassegna `required by your org`

135 

136Per rimuovere un plugin su claude.ai, vedi [Gestisci i plugin installati](/docs/it/plugins/install#manage-installed-plugins).

137 

138<h2 id="find-where-a-plugin-is-enabled">

139 Trova dove un plugin è abilitato

140</h2>

141 

142Puoi impostare una voce `enabledPlugins` in una qualsiasi di sei fonti. La tabella le elenca dalla precedenza più bassa a quella più alta, e chi ognuna si applica. Per i file di impostazioni stessi, vedi [File di impostazioni e chi influenzano](/docs/it/settings#where-settings-live).

143 

144| Fonte | Dove lo imposti | Raggiunge |

145| :---------- | :------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |

146| `--add-dir` | `.claude/settings.json` o `.claude/settings.local.json` in una directory che passi con `--add-dir` | Solo questa sessione. Solo un valore `true` ha effetto, e ogni altra fonte lo sostituisce |

147| `user` | `~/.claude/settings.json` | Te, in ogni progetto |

148| `project` | `.claude/settings.json` | Chiunque cloni il repository |

149| `local` | `.claude/settings.local.json` | Te, solo in questo repository |

150| `flag` | Il valore `--settings` che passi all'avvio | Solo questa sessione |

151| `managed` | [Impostazioni gestite](/docs/it/managed-settings) | Ogni utente che la politica copre. `true` forza l'abilitazione e `false` blocca, e nessun'altra fonte le sostituisce |

152 

153Queste fonti si uniscono chiave per chiave. Per ogni id di plugin, il valore che si applica è quello dalla fonte con precedenza più alta che menziona l'id. Una fonte che non menziona l'id lascia il valore dalla fonte con precedenza più bassa in vigore.

154 

155<h3 id="disabled-in-user-settings-but-still-loads">

156 Disabilitato nelle impostazioni utente ma continua a caricarsi

157</h3>

158 

159Se imposti un plugin su `false` in `~/.claude/settings.json` e continua a caricarsi, un `true` in una fonte con precedenza più alta lo sta sostituendo. La riga del plugin in `claude plugin list` e in `/plugin` mostra `Disabled in ~/.claude/settings.json but still loads — project settings enable it, which overrides your user setting`. Il messaggio nomina la fonte che ti ha sostituito: `project`, `project, gitignored` per `.claude/settings.local.json`, `cli flag` o `managed`.

160 

161Per rinunciare a un plugin abilitato dal progetto sulla tua macchina, imposta l'id su `false` in `.claude/settings.local.json`, che ha precedenza più alta del file del progetto.

162 

163<h3 id="enabled-in-project-settings-but-not-installed">

164 Abilitato nelle impostazioni del progetto ma non installato

165</h3>

166 

167Quando l'unico `true` di un plugin è nel `.claude/settings.json` del progetto, Claude Code non lo recupera su una macchina dove non è installato, a meno che la sua voce marketplace non abbia una [fonte con percorso relativo](/docs/it/plugins/marketplace-reference#plugin-sources) o una [directory seed](/docs/it/plugins/org#seed-containers-and-ci) non lo contenga già. Invece, la scheda **Errors** di `/plugin` mostra `Plugin "<name>" is enabled in project settings but isn't installed here`.

168 

169Un plugin con percorso relativo non ha bisogno di un record di installazione perché si carica dal marketplace stesso.

170 

171Claude Code recupera un plugin con una fonte esterna solo quando una di queste fonti lo imposta su `true`:

172 

173* Le tue impostazioni utente

174* Un `.claude/settings.local.json` che git non traccia

175* Il flag `--settings`

176* Impostazioni gestite

177 

178<h2 id="find-plugins-on-disk">

179 Trova i plugin su disco

180</h2>

181 

182Claude Code mantiene i file del plugin e i record di stato sotto una radice di plugin, che è `~/.claude/plugins` a meno che tu non imposti [`CLAUDE_CODE_PLUGIN_CACHE_DIR`](/docs/it/env-vars). Ogni percorso nella tabella è relativo a quella radice.

183 

184| Percorso | Cosa contiene |

185| :--------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

186| `cache/<marketplace>/<plugin>/<version>/` | Una directory per ogni versione installata di un plugin marketplace. `<plugin>` è il nome della voce marketplace e `<version>` è la [versione risolta](#versions-and-updates). `${CLAUDE_PLUGIN_ROOT}` punta a questa directory |

187| `data/<plugin-id>/` | La directory persistente del plugin, esposta come `${CLAUDE_PLUGIN_DATA}`. Per come `<plugin-id>` è formato, vedi [Variabili di percorso e dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data). Claude Code la crea quando un componente del plugin la usa per la prima volta e la mantiene attraverso gli aggiornamenti. Claude Code la elimina quando disinstalli il plugin dal suo ultimo ambito, a meno che tu non passi `--keep-data` |

188| `marketplaces/<name>/` | Il clone o il download di un marketplace aggiunto da GitHub, un altro host Git, o un URL. Un marketplace aggiunto da una fonte `file` o `directory` locale non ha una copia qui, e il suo `installLocation` in `known_marketplaces.json` è il percorso che hai fornito |

189| `synced/` | I plugin che Claude Code ha [sincronizzato dal tuo account claude.ai](#synced-plugins) |

190| `.trash/` | I plugin che la sincronizzazione di claude.ai ha rimosso, come dopo che ne hai disattivato uno su claude.ai o hai smesso di sincronizzare |

191| `installed_plugins.json` e `known_marketplaces.json` | I record di quello che Claude Code ha installato e quali marketplace ha recuperato, descritti sotto [Controlla quale fase ha raggiunto un plugin](#check-which-stage-a-plugin-reached). Un [marketplace ospitato su claude.ai](/docs/it/plugins/install#add-from-claude-ai) è registrato in `known_marketplaces_claudeai.json` invece |

192| `flagged-plugins.json` | I plugin che Claude Code ha disinstallato perché il loro marketplace li ha rimossi dall'elenco. Appaiono nella sezione **Flagged** di `/plugin`; vedi [Ospita un marketplace](/docs/it/plugins/host-marketplace) |

193 

194Poiché `${CLAUDE_PLUGIN_ROOT}` punta a una directory di versione, il percorso radice di un plugin cambia con ogni versione. Mantieni i file durevoli di un plugin in `${CLAUDE_PLUGIN_DATA}` invece.

195 

196<h3 id="in-place-and-copied-plugins">

197 Plugin in-place e copiati

198</h3>

199 

200Claude Code carica alcuni plugin in-place da dove li mantieni e copia il resto nella cache, secondo la loro origine:

201 

202* **Plugin `--plugin-dir` e della directory di competenze**: la directory si carica in-place e non viene mai copiata. Un archivio `--plugin-url` o un `.zip` di `--plugin-dir` viene estratto in una directory temporanea della sessione prima

203* **Plugin con percorso relativo in un marketplace che hai aggiunto da una directory locale**: il plugin si carica in-place dal suo percorso dentro la cartella del marketplace. Le tue modifiche alla directory di origine hanno effetto al prossimo avvio della sessione o `/reload-plugins`, e non hai bisogno di aumentare la versione. I processi hook del plugin e i server MCP e LSP ricevono un `CLAUDE_PLUGIN_ROOT` che punta alla directory di origine. Per le sue dipendenze del pacchetto Node.js, vedi [Quando viene eseguita l'installazione della dipendenza](#when-the-dependency-install-runs)

204* **Plugin con origine `command` in [modalità link](/docs/it/plugins/marketplace-reference#command-plugin-source)**: la directory che il comando ha stampato si carica in-place, attraverso i link nella voce della cache

205* **Ogni altro plugin marketplace**: Claude Code copia il plugin in `cache/<marketplace>/<plugin>/<version>/` all'installazione e carica quella copia. I file al di fuori della directory del plugin non vengono copiati, quindi quando uno script dentro un plugin copiato legge un percorso sopra la radice del plugin, come `../shared`, non li trova

206 

207<h3 id="paths-that-escape-the-plugin-directory">

208 Percorsi che sfuggono alla directory del plugin

209</h3>

210 

211Che un plugin si carichi in-place o da una copia in cache, Claude Code non gli permette di dichiarare componenti al di fuori della sua stessa directory. Rifiuta un percorso di componente che si risolve al di fuori della radice del plugin, che il percorso sia dichiarato in `plugin.json` o in una voce marketplace:

212 

213* **Un percorso che punta al di fuori del plugin come scritto**, come `../shared-utils`

214* **Un symlink che porta al di fuori del plugin**, diverso dai [link tra plugin all'interno di un marketplace](/docs/it/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)

215* **Su macOS e Linux, un percorso che contiene una barra rovesciata da qualche parte**, anche quando il percorso rimane dentro il plugin. I componenti dichiarati con percorsi con barra rovesciata si caricano quindi solo su Windows, quindi scrivi i percorsi dei componenti con barre in avanti, come `./commands/deploy.md`

216 

217Un percorso rifiutato appare come un errore [`path escapes plugin directory`](/docs/it/errors#path-escapes-plugin-directory), e il plugin si carica senza quel componente.

218 

219<h3 id="cleanup-of-previous-versions">

220 Pulizia delle versioni precedenti

221</h3>

222 

223Quando aggiorni o disinstalli un plugin, Claude Code scrive un marcatore `.orphaned_at` nella directory della versione precedente. La rimuove in una pulizia in background 14 giorni dopo, quindi una sessione che ha già caricato la vecchia versione continua a funzionare.

224 

225La scansione viene eseguita solo mentre `installed_plugins.json` registra almeno un'installazione. Dopo aver disinstallato l'ultimo plugin, le directory orfane rimangono fino a quando non installi un altro.

226 

227<h3 id="node-js-package-dependencies">

228 Dipendenze del pacchetto Node.js

229</h3>

230 

231Quando Claude Code copia un plugin nella cache, installa anche le dipendenze del pacchetto Node.js del plugin lì, quindi gli hook e i server MCP del plugin possono caricarli.

232 

233Questa sezione copre i pacchetti npm e Bun che un plugin dichiara nel suo `package.json`. Per i plugin che dipendono da altri plugin, vedi [versioni delle dipendenze del plugin](/docs/it/plugins/dependencies).

234 

235<h4 id="when-the-dependency-install-runs">

236 Quando viene eseguita l'installazione della dipendenza

237</h4>

238 

239Claude Code esegue l'installazione dentro la directory della versione copiata ogni volta che ne crea una:

240 

241* Quando installi un plugin

242* Quando Claude Code aggiorna un plugin a una nuova versione

243* All'avvio della sessione quando un plugin abilitato non è ancora in cache, come su una nuova macchina

244 

245Per un plugin con percorso relativo [caricato in-place](#in-place-and-copied-plugins) da un marketplace di directory locale, Claude Code non installa le dipendenze nella directory di origine. Installale lì tu stesso, o da un hook in [`${CLAUDE_PLUGIN_DATA}`](/docs/it/plugins/components#path-variables-and-persistent-data).

246 

247L'installazione viene eseguita solo quando la directory radice del plugin contiene sia un `package.json` che un lockfile supportato. Il lockfile decide quale comando Claude Code esegue:

248 

249| Lockfile | Comando |

250| :------------------------------------------ | :----------------------------------------------- |

251| `bun.lock` o `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |

252| `npm-shrinkwrap.json` o `package-lock.json` | `npm ci --ignore-scripts` |

253 

254Se un plugin contiene più di uno di questi lockfile, Claude Code usa la prima corrispondenza, controllando in ordine: `bun.lock`, `bun.lockb`, `npm-shrinkwrap.json`, `package-lock.json`.

255 

256Claude Code salta l'installazione per i lockfile Yarn e pnpm e per un `bunfig.toml` accanto al lockfile Bun:

257 

258* Se il tuo plugin ha solo un `yarn.lock` o `pnpm-lock.yaml`, sostituiscilo con un lockfile npm

259* Se un `bunfig.toml` è nella stessa directory del lockfile Bun, rimuovi il `bunfig.toml`, o sostituisci il lockfile Bun con un lockfile npm

260 

261Includi un lockfile npm per raggiungere la maggior parte degli utenti. Claude Code esegue il gestore di pacchetti del lockfile corrispondente dal PATH dell'utente e non prova l'altro lockfile se quel gestore di pacchetti manca.

262 

263Per un plugin distribuito attraverso una fonte npm, usa `npm-shrinkwrap.json`, perché npm esclude `package-lock.json` dai pacchetti pubblicati.

264 

265<h4 id="limits-on-the-dependency-install">

266 Limiti all'installazione della dipendenza

267</h4>

268 

269Claude Code vincola questa installazione della dipendenza in modo che nessun codice dal plugin o dai suoi pacchetti venga eseguito durante essa, e limita quanto tempo può durare:

270 

271* **Risoluzione congelata**: Bun e npm installano esattamente quello che il lockfile fissa, e falliscono piuttosto che ri-risolvere le versioni quando `package.json` e il lockfile non concordano

272* **Nessuno script del ciclo di vita**: `--ignore-scripts` impedisce ai script `preinstall`, `install` e `postinstall` di funzionare, quindi le dipendenze che costruiscono moduli nativi in quegli script scaricano ma non compilano durante questa installazione

273* **Timeout di 60 secondi**: Claude Code interrompe un'installazione che dura più a lungo e la tratta come fallita

274 

275Claude Code recupera un plugin con origine npm prima di questa installazione della dipendenza, e nessuno degli script di installazione del pacchetto viene eseguito durante il recupero. Vedi [origine del plugin npm](/docs/it/plugins/marketplace-reference#npm-plugin-source).

276 

277Non puoi disattivare l'installazione automatica. Nessuna impostazione o variabile di ambiente la disabilita.

278 

279Nelle reti ristrette, vedi i [requisiti di accesso alla rete](/docs/it/network-config#network-access-requirements) per gli host da consentire.

280 

281<h4 id="when-the-dependency-install-fails-or-is-skipped">

282 Quando l'installazione della dipendenza fallisce o viene saltata

283</h4>

284 

285Un'installazione fallita o saltata non blocca mai il plugin, e ogni caso lascia un segno diverso:

286 

287* Un'installazione fallita, o una saltata a causa di un lockfile Yarn o pnpm o un `bunfig.toml`, appare come un avviso nell'output di `claude --debug`

288* Un plugin con un `package.json` e nessun lockfile viene saltato senza una voce di log

289* Un'installazione scaduta può lasciare un albero `node_modules` parziale nella copia in cache

290 

291Quando l'installazione automatica non può fornire una dipendenza, installala da un hook nella [directory dei dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data). Questo include i pacchetti che hanno bisogno dei loro script del ciclo di vita per costruire, le dipendenze Python, e i plugin bloccati con Yarn o pnpm.

292 

293<h2 id="versions-and-updates">

294 Versioni e aggiornamenti

295</h2>

296 

297Se l'autore di un plugin ha spinto nuovi commit e `claude plugin update` stampa `<name> is already at the latest version (<version>).`, la versione che Claude Code calcola per il plugin è invariata, quindi nulla cambia su disco.

298 

299Claude Code calcola una versione per ogni plugin che installa, e quella versione è come rileva un aggiornamento. `claude plugin update` e l'auto-aggiornamento in background calcolano di nuovo la versione e saltano il plugin quando corrisponde a quello che `installed_plugins.json` registra.

300 

301La versione nomina anche la directory della cache del plugin.

302 

303Un manifest che fissa `"version"` è un modo in cui la versione calcolata rimane la stessa attraverso i commit. Vedi [Come Claude Code calcola la versione](#how-claude-code-computes-the-version) per l'ordine di risoluzione.

304 

305Un plugin [caricato in-place](#in-place-and-copied-plugins) da un marketplace di directory locale carica i suoi file di origine attuali ad ogni avvio della sessione, qualunque cosa dica la sua stringa di versione. Per un plugin da un [marketplace ospitato su claude.ai](/docs/it/plugins/install#add-from-claude-ai), la versione che claude.ai registra per il plugin è la sua versione, e il `version` del manifest non viene letto.

306 

307<h3 id="how-claude-code-computes-the-version">

308 Come Claude Code calcola la versione

309</h3>

310 

311Per un marketplace che hai aggiunto per fonte, Claude Code sceglie la regola dal tipo `source` della voce marketplace del plugin. Il [riferimento marketplace](/docs/it/plugins/marketplace-reference#plugin-sources) elenca i tipi di fonte. Per ogni tipo di fonte in quell'elenco tranne `command`:

312 

3131. Il campo `version` nel manifest del plugin viene per primo

3142. Poi il campo `version` nella voce marketplace del plugin

3153. Quando nessuno è impostato, la versione viene dal tipo di fonte:

316 

317| Tipo di fonte | Versione quando nessun campo `version` è impostato |

318| :-------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------- |

319| `github`, `url` o `git-subdir` | Lo SHA del commit della fonte, abbreviato a 12 caratteri. Una versione `git-subdir` porta anche un hash del percorso della sottodirectory |

320| `archive` | Il digest SHA-256, abbreviato a 12 caratteri: il pin `sha256` nella voce marketplace, o il digest del file scaricato quando non c'è un pin |

321| Percorso relativo dentro un marketplace ospitato su Git | Lo SHA del commit della directory installata |

322| Directory locale, quando né la directory del plugin né il suo marketplace è un repository git | `unknown` |

323| `npm` | `unknown` |

324 

325Claude Code non prende la versione da un repository che racchiude il percorso di installazione, come un `~/.claude` gestito da git.

326 

327Per una fonte `command`, Claude Code deriva sempre la versione da quello che il comando ha prodotto: un hash di 12 caratteri da solo, o `<manifest version>-<hash>` quando il manifest ne imposta uno. La `version` della voce marketplace viene ignorata per le fonti command. Per cosa copre l'hash, vedi [Modalità copia e modalità link](/docs/it/plugins/marketplace-reference#copy-mode-and-link-mode).

328 

329Poiché il manifest viene per primo, un manifest che fissa `"version": "1.0.0"` mantiene ogni utente sulla copia in cache fino a quando il suo autore non cambia la stringa, per quanti commit spingano. Per lasciare che gli utenti tracciino i commit invece, lascia `version` fuori sia dal manifest che dalla voce. [Ospita un marketplace](/docs/it/plugins/host-marketplace) copre quale scelta si adatta a quale configurazione di rilascio.

330 

331<h3 id="when-claude-code-refreshes-a-marketplace-before-an-install">

332 Quando Claude Code aggiorna un marketplace prima di un'installazione

333</h3>

334 

335Quando installi un plugin, Claude Code lo cerca nella sua copia locale del catalogo marketplace. Puoi eseguire `/plugin install` in una sessione o `claude plugin install` nella tua shell, e nominare il plugin con o senza il suo marketplace. La tabella mostra quale di quelle combinazioni aggiorna la copia locale.

336 

337| Nome del plugin | Comando | Cosa Claude Code aggiorna |

338| :----------------- | :------------------------------------------ | :-------------------------------------------------------------------------------------------- |

339| `name@marketplace` | `/plugin install` o `claude plugin install` | Il marketplace denominato, prima della ricerca |

340| `name` solo | `/plugin install` | Solo i marketplace che hanno l'auto-aggiornamento attivo, e solo dopo che la ricerca fallisce |

341| `name` solo | `claude plugin install` | Nulla. Legge i cataloghi in cache senza aggiornare |

342 

343L'aggiornamento prima di un'installazione `name@marketplace` non dipende dall'impostazione di auto-aggiornamento del marketplace o da `DISABLE_AUTOUPDATER`.

344 

345Quando l'aggiornamento fallisce, l'installazione procede dal catalogo in cache e `claude plugin install` segnala `marketplace not refreshed`.

346 

347Claude Code salta l'aggiornamento prima di un'installazione `name@marketplace` quando:

348 

349* Il marketplace è stato aggiunto da una fonte `file` o `directory` locale, o è definito inline nelle impostazioni con una [fonte `settings`](/docs/it/settings-reference#extraknownmarketplaces)

350* Una [directory seed](/docs/it/env-vars) fornisce il marketplace

351* Claude Code ha aggiornato il marketplace negli ultimi 30 secondi

352* Hai impostato `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

353* [Impostazioni gestite](/docs/it/plugins/org#restrict-what-users-can-install) bloccano il marketplace, nel qual caso Claude Code rifiuta anche l'installazione

354 

355<h3 id="when-auto-update-runs">

356 Quando viene eseguito l'auto-aggiornamento

357</h3>

358 

359In una sessione interattiva, dopo che invii il tuo primo messaggio, Claude Code attende un ritardo casuale fino a dieci minuti. Quindi aggiorna ogni marketplace con auto-aggiornamento attivo e aggiorna i plugin installati da loro su disco.

360 

361La sessione in esecuzione mantiene le versioni che ha caricato, e vedi `Plugin updated: <name> · Run /reload-plugins to apply`. Che tu ricarichi o no, le nuove versioni si caricano al tuo prossimo avvio.

362 

363<h4 id="which-marketplaces-and-plugins-auto-update">

364 Quali marketplace e plugin si auto-aggiornano

365</h4>

366 

367Se un marketplace si auto-aggiorna segue il primo di questi che è impostato:

368 

3691. **`autoUpdate` sulla sua voce `extraKnownMarketplaces`** in un file di impostazioni

3702. **`autoUpdate` sulla sua voce `known_marketplaces.json`**, che l'interruttore **Enable auto-update** sotto `/plugin` **Marketplaces** scrive. Quando un file di impostazioni dichiara anche il marketplace sotto `extraKnownMarketplaces`, l'interruttore scrive `autoUpdate` anche a quella voce di impostazioni

3713. **L'impostazione predefinita**: attivo per i marketplace ufficiali di Anthropic come `claude-plugins-official`, disattivo per `knowledge-work-plugins` e `first-party-plugins`, attivo per i [marketplace aggiunti da claude.ai](/docs/it/plugins/install#add-from-claude-ai), e disattivo per ogni altro marketplace

372 

373Se imposti `DISABLE_UPDATES=1`, `DISABLE_AUTOUPDATER=1` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`, l'intero passaggio è disattivo e l'interruttore **Enable auto-update** è nascosto, a meno che tu non imposti anche `FORCE_AUTOUPDATE_PLUGINS=1`. Il [riferimento delle variabili di ambiente](/docs/it/env-vars) copre l'effetto più ampio di ogni variabile.

374 

375L'auto-aggiornamento salta anche un plugin la cui voce marketplace dichiara un `headersHelper`. [Installazioni e aggiornamenti che rifiutano un comando invece di chiedere](/docs/it/plugins/host-marketplace#installs-and-updates-that-refuse-the-command-instead-of-asking) spiega quando tale plugin appare nella scheda **Errors** di `/plugin` e come lo aggiorni da lì.

376 

377Quando un plugin copiato si aggiorna a metà sessione, i comandi hook, i monitor, i server MCP e i server LSP continuano a usare il percorso della versione precedente. Esegui `/reload-plugins` per passare gli hook, i server MCP e i server LSP al nuovo percorso. I monitor richiedono un riavvio della sessione.

378 

379<h3 id="when-a-command-source-re-runs">

380 Quando una fonte command viene rieseguita

381</h3>

382 

383I plugin con una fonte `command` non aspettano il [passaggio di auto-aggiornamento](#when-auto-update-runs). La directory stampata riflette lo stato dello strumento al momento dell'esecuzione del comando, quindi Claude Code esegue di nuovo il [comando che hai accettato](/docs/it/plugins/host-marketplace#change-the-command-of-a-command-source) in questi momenti:

384 

385* Ogni volta che installi o aggiorni il plugin

386* Una volta per sessione per ogni plugin con origine command abilitato, in background, poco dopo l'avvio della sessione. Questa esecuzione non dipende dall'impostazione di auto-aggiornamento del marketplace o da `DISABLE_AUTOUPDATER`

387* All'avvio o su `/reload-plugins`, quando la versione installata di un plugin abilitato manca dalla cache del plugin

388 

389Claude Code salta le due esecuzioni in background quando imposti [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/it/env-vars). Le installazioni e gli aggiornamenti espliciti eseguono comunque il comando con quella variabile impostata.

390 

391Quando l'output con hash del comando è cambiato, Claude Code installa il risultato come una nuova versione e lo ricarica nella sessione interattiva in esecuzione, passando [gli stessi componenti che `/reload-plugins` passa](/docs/it/plugins/cli-reference#reload-plugins). Vedi una notifica che il plugin è stato ricaricato.

392 

393Se ricaricare in-place invaliderebbe la cache del prompt della sessione, Claude Code invece ti richiede di eseguire `/reload-plugins`, che [avverte del costo della cache e si applica quando rieseguito con `--force`](/docs/it/prompt-caching#enabling-or-disabling-a-plugin).

394 

395<h2 id="name-conflicts">

396 Conflitti di nomi

397</h2>

398 

399Quando i plugin abilitati da origini diverse condividono un nome di manifest, questo ordine decide quale si carica, dalla precedenza più alta a quella più bassa:

400 

4011. Un plugin il cui id appare nelle impostazioni gestite `enabledPlugins`, come `true` o `false`. Una copia `--plugin-dir` il cui nome di manifest corrisponde alla parte del nome dell'id non viene caricata, e vedi `--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings`

4022. Un plugin `--plugin-dir`, `--plugin-url` o `CLAUDE_CODE_PLUGIN_DIRS` abilitato. Sostituisce un plugin marketplace installato o della directory di competenze con lo stesso nome:

403 * **Un plugin marketplace installato**: sostituito silenziosamente. `claude plugin list` mostra ancora la riga del marketplace come abilitata, perché quella riga riflette le tue impostazioni. Solo il log che Claude Code scrive sotto `~/.claude/debug/` quando avvii con `--debug` registra `Plugin "<name>" from --plugin-dir overrides installed version`

404 * **Un plugin della directory di competenze**: sostituito con una riga della scheda **Errors** di `/plugin` che legge `Not loaded — the name "<name>" is already taken by a session-only plugin (--plugin-dir / --plugin-url), which takes precedence`

4053. Un plugin marketplace installato. Un plugin della directory di competenze con lo stesso nome ottiene la stessa riga `Not loaded`, nominando il plugin installato

4064. Un plugin della directory di competenze. Tra due di questi, la copia sotto `~/.claude/skills/` si carica e la copia di `.claude/skills/` del progetto viene eliminata, con una riga che dice quale percorso l'ha oscurata

4075. Un plugin [sincronizzato da claude.ai](#synced-plugins). Quando un plugin abilitato da qualsiasi altra origine corrisponde al suo nome, Claude Code carica quel plugin e segnala la copia di claude.ai come non caricata. Per usare la copia di claude.ai invece, disabilita la tua copia

408 

409Poiché l'ordine confronta i nomi di manifest, un plugin `--plugin-dir` denominato `hello-plugin` sostituisce `hello@example-marketplace` quando il manifest di quel plugin dice anche `"name": "hello-plugin"`.

410 

411<h3 id="keep-a-session-only-plugin-from-loading">

412 Impedisci a un plugin solo per sessione di caricarsi

413</h3>

414 

415Per impedire a un plugin `--plugin-dir` di oscurare qualcosa, o per disattivarne uno quando un processo padre passa il flag per te, imposta il suo id su `false` in un file di impostazioni. Per un plugin il cui nome di manifest è `hello-plugin`, la voce è `"enabledPlugins": {"hello-plugin@inline": false}`. Un plugin solo per sessione disabilitato non oscura, quindi la copia marketplace o della directory di competenze si carica invece.

416 

417<h2 id="next-steps">

418 Passaggi successivi

419</h2>

420 

421* [Installa e gestisci i plugin](/docs/it/plugins/install): i passaggi di installazione, abilitazione, disabilitazione e aggiornamento stessi

422* [Risolvi i problemi dei plugin](/docs/it/plugins/troubleshooting): messaggi di errore per fase che li produce

423* [Riferimento ai comandi dei plugin](/docs/it/plugins/cli-reference): i flag e i comandi nominati su questa pagina

424* [Gestisci i plugin per la tua organizzazione](/docs/it/plugins/org): le impostazioni gestite che forzano l'abilitazione o bloccano i plugin

plugins/manifest-reference.md +710 −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# Riferimento del manifest del plugin

6 

7> Riferimento completo per plugin.json: ogni campo con il suo tipo e valore predefinito, forme di percorso accettate, e gli schemi userConfig e variabili di ambiente.

8 

9Un manifest del plugin è il file `plugin.json` nella directory `.claude-plugin/` di un plugin. Contiene i metadati del plugin e i valori [`userConfig`](#user-configuration) che Claude Code richiede all'utente. Dichiara inoltre qualsiasi componente che definite inline o mantenete al di fuori della sua [posizione predefinita](#standard-layout).

10 

11Questo riferimento è per i creatori di plugin e per i proprietari di marketplace che inseriscono campi di componenti in una voce di marketplace.

12 

13<Note>

14 Questi casi sono trattati in altre pagine:

15 

16 * **Imparare a costruire un plugin**: iniziate con [Create a plugin](/docs/it/plugins/create)

17 * **Cosa fa ogni componente al runtime**: vedere [Plugin components](/docs/it/plugins/components)

18</Note>

19 

20Iniziate dalla sezione che corrisponde a quello che state cercando:

21 

22* Un campo: la tabella [Fields](#fields) fornisce il tipo di ogni campo, se è obbligatorio, il valore predefinito e cosa accetta. [Path rules](#path-rules) copre il prefisso `./` e il contenimento per ogni percorso di componente

23* Un'opzione `userConfig` o una voce `channels`: gli schemi [User configuration](#user-configuration) e [Channels](#channels)

24* `${CLAUDE_PLUGIN_ROOT}` o un'altra variabile a cui un plugin può fare riferimento: [Environment variables](#environment-variables)

25* Dove vanno i file di ogni componente: [Standard layout](#standard-layout)

26* Un messaggio da `claude plugin validate`: la [pagina di troubleshooting](/docs/it/plugins/troubleshooting) elenca ogni messaggio con la sua correzione e i link alle sezioni rilevanti di questa pagina

27 

28<h2 id="manifest-file">

29 Manifest file

30</h2>

31 

32Il manifest è facoltativo. Senza di esso, Claude Code carica i componenti che trova nel [standard layout](#standard-layout). Il nome del plugin proviene quindi dalla voce di marketplace, o dal nome della directory quando caricate il plugin con `--plugin-dir`.

33 

34Scrivete un manifest quando volete metadati, un componente al di fuori della sua directory predefinita, `userConfig`, o una definizione di componente inline.

35 

36Salvate il manifest in `.claude-plugin/plugin.json` sotto la radice del plugin. Mettete ogni altro file del plugin alla radice del plugin, non dentro `.claude-plugin/`. Questo include `skills/`, `commands/` e `hooks/`.

37 

38L'esempio seguente imposta la maggior parte delle chiavi nella tabella [Fields](#fields). Passa la validazione in una directory di plugin che contiene ogni percorso referenziato.

39 

40```json theme={null}

41{

42 "name": "deploy-tools",

43 "displayName": "Deploy Tools",

44 "version": "1.2.0",

45 "description": "Deployment commands, a review agent, and a status monitor",

46 "author": {

47 "name": "Example Team",

48 "email": "dev@example.com",

49 "url": "https://example.com"

50 },

51 "homepage": "https://example.com/docs/deploy-tools",

52 "repository": "https://github.com/example/deploy-tools",

53 "license": "MIT",

54 "keywords": ["deployment", "ci"],

55 "defaultEnabled": true,

56 "dependencies": ["secrets-vault"],

57 "metadata": { "catalogId": "cat-123" },

58 "skills": ["./extra-skills/"],

59 "commands": {

60 "status": {

61 "source": "./commands/status.md",

62 "description": "Show the current deployment status"

63 },

64 "about": {

65 "content": "Explain what the deploy-tools plugin provides.",

66 "description": "Describe this plugin"

67 }

68 },

69 "agents": ["./agents/reviewer.md"],

70 "hooks": "./config/extra-hooks.json",

71 "mcpServers": {

72 "deploy-api": {

73 "command": "node",

74 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"]

75 }

76 },

77 "lspServers": "./.lsp.json",

78 "outputStyles": "./styles/",

79 "experimental": {

80 "themes": "./themes/",

81 "monitors": "./config/monitors.json"

82 },

83 "userConfig": {

84 "api_token": {

85 "type": "string",

86 "title": "API token",

87 "description": "Token for the deployment API",

88 "sensitive": true

89 }

90 }

91}

92```

93 

94<h3 id="unrecognized-fields">

95 Unrecognized fields

96</h3>

97 

98Una chiave di primo livello non riconosciuta viene rimossa, e una chiave non riconosciuta dentro un'opzione `userConfig`, una voce `channels`, una configurazione `lspServers`, o una voce `monitors` viene rifiutata:

99 

100* **Top-level fields**: il campo viene rimosso e il plugin si carica. `claude plugin validate` segnala ogni campo di primo livello non riconosciuto come un avviso

101* **Strict objects**: le opzioni `userConfig`, le voci `channels`, le configurazioni `lspServers` e le voci `monitors` sono rigorose. Una chiave sconosciuta dentro una di esse è un errore, e il plugin non si carica

102 

103<h3 id="validate-the-manifest">

104 Validate the manifest

105</h3>

106 

107`claude plugin validate` è il controllo autorevole per un manifest. Eseguitelo dalla vostra shell contro la directory del plugin:

108 

109```bash theme={null}

110claude plugin validate ./my-plugin

111```

112 

113Il comando segnala uno di questi risultati:

114 

115* **`Validation passed`**: il manifest si carica

116* **`Validation passed with warnings`**: il manifest si carica, ma il validatore ha trovato qualcosa da correggere, come un campo di primo livello sconosciuto che Claude Code rimuove, un `name` che non è in kebab-case, o un `version`, `description`, o `author` mancante. Passate `--strict` per trasformare gli avvisi in errori in CI

117* **`Validation failed`**: il manifest ha una mancata corrispondenza di tipo, un percorso mancante o che esce dalla radice del plugin, o una chiave sconosciuta dentro un'opzione `userConfig`, una voce `channels`, una configurazione `lspServers`, o una voce `monitors`. Claude Code segnala lo stesso problema quando carica il plugin

118 

119<h2 id="fields">

120 Fields

121</h2>

122 

123La tabella elenca le chiavi di primo livello in `plugin.json`. `name` è l'unica chiave obbligatoria. Dove un nome di campo è un link, la sezione collegata ha le sue regole complete.

124 

125Per le chiavi di componente come `commands` e `hooks`, [Component path forms](#component-path-forms) mostra ogni forma accettata con un esempio, e ogni percorso segue le [path rules](#path-rules) per il prefisso `./`, le estensioni e il contenimento.

126 

127| Field | Type | Description |

128| :----------------------------------- | :------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

129| `$schema` | String | URL dello schema JSON per l'autocompletamento dell'editor. Claude Code lo ignora al momento del caricamento |

130| [`name`](#name) | String | Identificatore del plugin, obbligatorio. Usate kebab-case. Ogni componente è namespacato sotto di esso |

131| [`displayName`](#displayname) | String | Nome mostrato nell'interfaccia utente al posto di `name` |

132| [`version`](#version) | String | Stringa di versione. Impostarla mantiene gli utenti su quella versione finché non la cambiate |

133| `description` | String | Breve spiegazione di cosa fornisce il plugin |

134| `author` | Object | `name`, che è obbligatorio, più `email` e `url` opzionali |

135| `homepage` | String | URL della documentazione. Deve essere analizzabile come URL, altrimenti il plugin non si carica |

136| `repository` | String | URL del repository di origine. Non convalidato |

137| `license` | String | Identificatore SPDX come `MIT` o `Apache-2.0` |

138| `keywords` | Array of strings | Tag di scoperta |

139| [`metadata`](#metadata) | Object | Oggetto in forma libera per i vostri dati. Claude Code non lo legge |

140| [`defaultEnabled`](#defaultenabled) | Boolean | Se il plugin inizia abilitato quando l'utente non lo ha impostato. Predefinito a `true` |

141| [`dependencies`](#dependencies) | Array of strings or objects | Plugin che devono essere abilitati affinché questo funzioni |

142| [`settings`](#settings) | Object | Impostazioni che Claude Code applica mentre il plugin è abilitato. Solo `agent` e `subagentStatusLine` hanno effetto |

143| [`userConfig`](#user-configuration) | Object | Valori che Claude Code richiede all'utente quando il plugin è abilitato |

144| [`channels`](#channels) | Array of objects | Canali di messaggi che il plugin fornisce, ciascuno associato a uno dei suoi server MCP |

145| `skills` | Path, or array of paths | Directory da scansionare per skills, ciascuna una directory di cartelle `<name>/SKILL.md` o una cartella che contiene `SKILL.md` direttamente. `"."` nomina la radice del plugin. Aggiunge alla scansione predefinita `skills/` |

146| [`commands`](#commands) | Path, array of paths, or object | File di comando `.md` piatti, directory di essi, o una mappa di oggetti del nome del comando a `source` o `content`. Sostituisce la scansione predefinita `commands/` |

147| `agents` | Path, or array of paths | File di agente `.md`. Le directory non sono accettate. Sostituisce la scansione predefinita `agents/` |

148| [`hooks`](#hooks) | Path, object, or array of either | File hook `.json` o configurazione hook inline. Caricati insieme a `hooks/hooks.json` |

149| [`mcpServers`](#mcpservers) | Path, object, or array of either | File di configurazione MCP `.json`, bundle `.mcpb` o `.dxt`, o configurazioni di server inline con chiave per nome. Caricati insieme a `.mcp.json`; un nome di server dichiarato successivamente sostituisce uno precedente |

150| [`lspServers`](#lspservers) | Path, object, or array of either | File di configurazione LSP `.json` o configurazioni di server inline con chiave per nome. Caricati insieme a `.lsp.json` |

151| `outputStyles` | Path, or array of paths | File di stile di output o directory. Sostituisce la scansione predefinita `output-styles/` |

152| `workflows` | Path, or array of paths | File [Workflow](/docs/it/workflows#distribute-a-workflow-in-a-plugin) `.js` o directory. Sostituisce la scansione predefinita `workflows/` |

153| `experimental` | Object | Contenitore per `themes`, `monitors` e `evals`, la cui forma di manifest potrebbe ancora cambiare |

154| `experimental.themes` | Path, or array of paths | File di tema o directory. Sostituisce la scansione predefinita `themes/`. Una chiave `themes` di primo livello si carica ancora, con un avviso `claude plugin validate` |

155| [`experimental.monitors`](#monitors) | Path, or inline array | Un file `.json` che contiene l'array monitors, o l'array stesso. Predefinito a `monitors/monitors.json`. Una chiave `monitors` di primo livello si carica ancora, con un avviso `claude plugin validate`. I monitor vengono eseguiti solo in sessioni interattive, e non su Amazon Bedrock, Google Cloud's Agent Platform, o Microsoft Foundry |

156| `experimental.evals` | Path, or array of paths | Directory che contiene i [casi di eval](/docs/it/plugin-evals#use-a-different-eval-directory) del plugin quando non è la directory predefinita `evals/`. `claude plugin eval --eval-dir` la sostituisce |

157 

158Nella colonna Type, un percorso è una stringa relativa alla radice del plugin, come `"./custom/commands"`.

159 

160<h3 id="name">

161 `name`

162</h3>

163 

164L'identificatore del plugin. Deve essere non vuoto, senza spazi, `@`, `:`, separatori di percorso, caratteri di controllo, o caratteri di formattazione bidirezionale; usate kebab-case.

165 

166Claude Code namespaccia ogni componente sotto di esso, quindi un agente `reviewer` nel plugin `deploy-tools` appare come `deploy-tools:reviewer`.

167 

168<h3 id="displayname">

169 `displayName`

170</h3>

171 

172Il nome mostrato nell'interfaccia utente al posto di `name`. Può contenere spazi e qualsiasi maiuscola/minuscola, e non viene utilizzato per il namespacing o la ricerca.

173 

174Per un plugin installato da marketplace, un `displayName` sulla [voce di marketplace](/docs/it/plugins/marketplace-reference#plugin-entries) ha la precedenza su questo valore.

175 

176<h3 id="version">

177 `version`

178</h3>

179 

180Una stringa di versione, non controllata rispetto a semver. Impostarla fissa il plugin a quella versione finché non la cambiate; vedere [Versions and updates](/docs/it/plugins/loading#versions-and-updates). Un plugin con una [`command` source](/docs/it/plugins/marketplace-reference), un plugin da un [marketplace ospitato su claude.ai](/docs/it/plugins/install#add-from-claude-ai), e un plugin [caricato in place](/docs/it/plugins/loading#find-plugins-on-disk) da un marketplace aggiunto come directory locale non sono fissati da questo campo.

181 

182<h3 id="metadata">

183 `metadata`

184</h3>

185 

186Un oggetto in forma libera per i vostri dati, come campi di catalogo o di diritto. Claude Code non lo legge. Richiede Claude Code v2.1.222 o successivo.

187 

188<h3 id="defaultenabled">

189 `defaultEnabled`

190</h3>

191 

192Se il plugin inizia abilitato quando l'utente non lo ha impostato in [`enabledPlugins`](/docs/it/settings-reference#enabledplugins). Predefinito a `true`. Un plugin da cui dipende un plugin abilitato inizia abilitato indipendentemente. Lo stesso campo nella voce di marketplace sostituisce questo.

193 

194Una volta che la voce `enabledPlugins` di un utente è scritta, persiste attraverso gli aggiornamenti del plugin, quindi cambiare `defaultEnabled` in una versione successiva non cambia l'impostazione per un utente esistente.

195 

196<h3 id="dependencies">

197 `dependencies`

198</h3>

199 

200Plugin che devono essere abilitati affinché questo funzioni. Ogni voce è `"name"`, `"name@marketplace"`, o `{ "name": "...", "marketplace": "...", "version": "..." }`. I nomi nudi si risolvono rispetto al proprio marketplace del plugin. Vedere [dependency constraints](/docs/it/plugins/dependencies).

201 

202<h3 id="settings">

203 `settings`

204</h3>

205 

206Impostazioni che Claude Code applica mentre il plugin è abilitato. Solo `agent` e `subagentStatusLine` hanno effetto; altre chiavi vengono eliminate al caricamento. Un `settings.json` alla radice del plugin ha la precedenza su questa chiave. Vedere [Default settings](/docs/it/plugins/components#default-settings).

207 

208<h2 id="component-path-forms">

209 Component path forms

210</h2>

211 

212Ogni chiave di componente accetta un percorso relativo alla radice del plugin. `hooks`, `mcpServers`, `lspServers` e `experimental.monitors` accettano anche configurazione inline, `commands` accetta anche una mappa di oggetti, e `mcpServers` accetta anche percorsi di bundle MCP e URL. Gli esempi che seguono mostrano ogni forma accettata una volta. Per cosa fa ogni componente al runtime, vedere [Plugin components](/docs/it/plugins/components).

213 

214<h3 id="path-only-fields">

215 Path-only fields

216</h3>

217 

218`agents`, `skills`, `outputStyles`, `workflows` e `experimental.themes` accettano un percorso o un array di percorsi. Le voci `agents` devono essere file `.md`, e le voci `skills` devono essere directory. Gli altri tre accettano una directory o un file.

219 

220```json theme={null}

221{

222 "agents": ["./custom-agents/reviewer.md", "./custom-agents/tester.md"],

223 "skills": ["./extra-skills/", "."],

224 "outputStyles": "./styles/"

225}

226```

227 

228<h3 id="commands">

229 `commands`

230</h3>

231 

232`commands` accetta un percorso, un array di percorsi, o una mappa di oggetti. Un percorso nomina un file di comando `.md` piatto o una directory. Nella mappa di oggetti, ogni chiave diventa il nome del comando dopo il prefisso del plugin. Ad esempio, `"about"` nel plugin `deploy-tools` viene eseguito come `/deploy-tools:about`.

233 

234Ogni valore imposta esattamente uno di `source` o `content`, e una voce che imposta entrambi o nessuno dei due non passa la validazione. Gli altri campi in questa tabella sono opzionali:

235 

236| Field | Type | Description |

237| :------------- | :--------------- | :------------------------------------------------------------------------- |

238| `source` | string | Percorso al file Markdown del comando, relativo alla radice del plugin |

239| `content` | string | Markdown inline per il corpo del comando, invece di `source` |

240| `description` | string | Descrizione mostrata per il comando |

241| `argumentHint` | string | Suggerimento di argomento mostrato dopo il nome del comando, come `[file]` |

242| `model` | string | Modello predefinito per il comando |

243| `allowedTools` | array of strings | Strumenti che il comando può utilizzare senza chiedere |

244 

245Questa mappa dichiara un comando da un file e uno da contenuto inline:

246 

247```json theme={null}

248{

249 "commands": {

250 "status": { "source": "./commands/status.md", "argumentHint": "[env]" },

251 "about": { "content": "Explain what this plugin provides." }

252 }

253}

254```

255 

256<h3 id="hooks">

257 `hooks`

258</h3>

259 

260`hooks` accetta un percorso di file `.json`, un oggetto hooks inline nella stessa forma di [`hooks` in `settings.json`](/docs/it/hooks#configuration), o un array che mescola entrambi. Per gli eventi hook e i campi del gestore, vedere il [riferimento hooks](/docs/it/hooks#hook-events).

261 

262Claude Code unisce tutto ciò che dichiarate con `hooks/hooks.json` quando quel file esiste.

263 

264```json theme={null}

265{

266 "hooks": [

267 "./config/extra-hooks.json",

268 {

269 "PostToolUse": [

270 {

271 "matcher": "Write|Edit",

272 "hooks": [

273 { "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format.sh" }

274 ]

275 }

276 ]

277 }

278 ]

279}

280```

281 

282<h3 id="mcpservers">

283 `mcpServers`

284</h3>

285 

286`mcpServers` accetta un percorso di file `.json`, un percorso di bundle MCP o URL, una mappa inline, o un array che mescola loro. Per i campi di configurazione del server, vedere [plugin-provided MCP servers](/docs/it/mcp#plugin-provided-mcp-servers).

287 

288Claude Code carica `.mcp.json` alla radice del plugin per primo, poi ogni forma dichiarata in ordine. Un nome di server dichiarato successivamente sostituisce uno precedente.

289 

290Un valore `mcpServers` assume una di queste forme:

291 

292| Shape | Example value | What Claude Code does |

293| :---------------- | :------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |

294| `.json` file path | `"./mcp/servers.json"` | Legge il file come una mappa `mcpServers` |

295| MCP bundle path | `"./bundle.mcpb"` | Estrae il bundle `.mcpb` o `.dxt` in `.mcpb-cache/` sotto la radice del plugin e legge la sua configurazione del server |

296| MCP bundle URL | `"https://example.com/server.mcpb"` | Scarica il bundle in `.mcpb-cache/`, poi lo legge |

297| Inline map | `{ "deploy-api": { "command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"] } }` | Usa la mappa come configurazioni del server con chiave per nome |

298 

299Un percorso di bundle o URL deve terminare in `.mcpb` o `.dxt`. Qualsiasi altra estensione non passa la validazione.

300 

301<h3 id="lspservers">

302 `lspServers`

303</h3>

304 

305`lspServers` accetta un percorso di file `.json`, una mappa inline di nome del server a configurazione, o un array di uno qualsiasi.

306 

307Claude Code carica `.lsp.json` alla radice del plugin per primo, poi ogni configurazione dichiarata in ordine. Un nome di server dichiarato successivamente sostituisce uno precedente.

308 

309Ogni configurazione del server è un oggetto rigoroso con questi campi. Una chiave sconosciuta non passa la validazione.

310 

311| Field | Required | Description |

312| :---------------------- | :------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

313| `command` | Yes | Binario del language server. Nessuno spazio a meno che il valore non inizi con `/`; mettete gli argomenti in `args` |

314| `extensionToLanguage` | Yes | Mappa dell'estensione di file all'ID di linguaggio LSP, almeno una voce. Le chiavi iniziano con un punto, come `".go"` |

315| `args` | No | Argomenti passati al server |

316| `transport` | No | Trasporto di comunicazione: `stdio` (predefinito) o `socket`. Claude Code accetta `socket` ma esegue ogni server su stdio, quindi le regole del protocollo stdout si applicano a tutti i server |

317| `env` | No | Variabili di ambiente per il processo del server |

318| `initializationOptions` | No | Opzioni inviate nella richiesta di inizializzazione |

319| `settings` | No | Impostazioni inviate da `workspace/didChangeConfiguration` |

320| `workspaceFolder` | No | Percorso della cartella di lavoro per il server |

321| `startupTimeout` | No | Millisecondi da attendere per l'avvio, un intero positivo |

322| `shutdownTimeout` | No | Millisecondi da attendere per un arresto elegante, un intero positivo. Quando il timeout scade, Claude Code termina il processo del server. Quando non impostato, non si applica alcun timeout |

323| `restartOnCrash` | No | Se riavviare il server dopo che si arresta in modo anomalo. Predefinito a `true`. Impostate a `false` per lasciare un server arrestato in modo anomalo fermo invece di riavviarlo |

324| `maxRestarts` | No | Tentativi di riavvio prima di rinunciare, zero o più |

325| `diagnostics` | No | Se spingere la diagnostica nel contesto dopo le modifiche. Predefinito a `true` |

326 

327Questa configurazione inline esegue `gopls` per i file `.go`:

328 

329```json theme={null}

330{

331 "lspServers": {

332 "go": {

333 "command": "gopls",

334 "args": ["serve"],

335 "extensionToLanguage": { ".go": "go" }

336 }

337 }

338}

339```

340 

341Per i language server che Anthropic pubblica come plugin e come i server si comportano al runtime, vedere [Code intelligence](/docs/it/plugins/code-intelligence).

342 

343<h3 id="monitors">

344 `monitors`

345</h3>

346 

347`experimental.monitors` accetta un percorso di file `.json` o l'array inline. Quando omettete la chiave, Claude Code carica `monitors/monitors.json` se esiste.

348 

349Ogni voce è un oggetto rigoroso con questi campi.

350 

351| Field | Required | Description |

352| :------------ | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

353| `name` | Yes | Identificatore unico all'interno del plugin |

354| `command` | Yes | Comando shell che Claude Code esegue come processo di background persistente nella directory di lavoro della sessione |

355| `description` | Yes | Breve riepilogo mostrato nel pannello dei task e nei riepiloghi delle notifiche |

356| `when` | No | Con `"always"`, il predefinito, il monitor inizia all'avvio della sessione e al ricaricamento del plugin. Con `"on-skill-invoke:<skill>"`, inizia la prima volta che quella skill viene eseguita |

357 

358Questo array inline dichiara un monitor che inizia la prima volta che la skill `deploy` viene eseguita:

359 

360```json theme={null}

361{

362 "experimental": {

363 "monitors": [

364 {

365 "name": "deploy-status",

366 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",

367 "description": "Deployment status changes",

368 "when": "on-skill-invoke:deploy"

369 }

370 ]

371 }

372}

373```

374 

375Un `command` di monitor non può fare riferimento a `${user_config.*}`. Vedere [Fields that run through a shell](#fields-that-run-through-a-shell).

376 

377<h2 id="path-rules">

378 Regole dei percorsi

379</h2>

380 

381Ogni percorso di componente in un manifest è relativo alla radice del plugin e deve iniziare con `./`. Un percorso come `commands/foo.md` non supera la convalida. `skills` e `mcpServers` accettano ciascuno una forma al di fuori di questa regola:

382 

383* **`skills`**: accetta anche `"."`. Sia `"."` che `"./"` indicano la radice del plugin. Prima della v2.1.221, `"."` non superava la convalida del manifest, quindi utilizzare `"./"` quando il plugin deve caricarsi su versioni precedenti

384* **`mcpServers`**: accetta anche un URL di bundle `https://`

385 

386<h3 id="containment-and-existence">

387 Contenimento ed esistenza

388</h3>

389 

390Ogni percorso di componente deve risolversi all'interno della radice del plugin e deve esistere. `claude plugin validate` non controlla i percorsi `outputStyles`, `lspServers`, `monitors` o `themes`, quindi un percorso errato in questi campi non riesce solo quando il plugin si carica:

391 

392* **Contenimento**: un percorso che si risolve al di fuori della radice del plugin non si carica e la scheda **Errors** di `/plugin` mostra `<component> path escapes plugin directory: <path>`. Un percorso contenente `..` è il caso più comune e `claude plugin validate` lo segnala come `Path contains ".." which could be a path traversal attempt`

393* **Esistenza**: un percorso che non esiste non si carica e la scheda **Errors** di `/plugin` mostra `<component> path not found: <path>`. `claude plugin validate` lo segnala come `Path not found`

394 

395<h3 id="how-each-key-combines-with-its-default-location">

396 Come ogni chiave si combina con la sua posizione predefinita

397</h3>

398 

399Ogni chiave di componente sostituisce la sua posizione predefinita, si aggiunge ad essa o si unisce ad essa:

400 

401* **Sostituisce il valore predefinito**: `commands`, `agents`, `outputStyles`, `workflows`, `experimental.themes`, `experimental.monitors`. Quando si imposta `commands`, la directory predefinita `commands/` non viene scansionata. Per mantenere il valore predefinito e aggiungerne altri, elencarli esplicitamente: `"commands": ["./commands/", "./extras/"]`

402* **Si aggiunge al valore predefinito**: `skills`. La directory `skills/` viene ancora scansionata e le directory elencate si caricano insieme ad essa

403* **Si unisce**: `hooks`, `mcpServers`, `lspServers`. Il file predefinito si carica per primo e ciò che il manifest dichiara si unisce ad esso, come descritto in [Component path forms](#component-path-forms)

404 

405Se un plugin ha una cartella predefinita come `commands/` e imposta anche la chiave del manifest che la sostituisce, Claude Code carica i percorsi del manifest e non la cartella. `claude plugin list` e l'interfaccia `/plugin` mostrano quindi l'avviso `Default <folder>/ folder is ignored because the manifest sets "<key>"`.

406 

407Per evitare l'avviso, impostare la chiave su un percorso all'interno di quella cartella: `"commands": ["./commands/deploy.md"]` nomina un file nella cartella predefinita e non produce alcun avviso.

408 

409<h2 id="user-configuration">

410 Configurazione utente

411</h2>

412 

413`userConfig` dichiara i valori che Claude Code richiede all'utente quando il plugin è abilitato, in modo che gli utenti non debbano modificare `settings.json` direttamente.

414 

415Le chiavi sono identificatori composti da lettere, cifre e caratteri di sottolineatura, e non possono iniziare con una cifra.

416 

417Ogni valore è un oggetto rigoroso con questi campi. Una chiave sconosciuta non supera la convalida.

418 

419| Campo | Obbligatorio | Descrizione |

420| :------------ | :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

421| `type` | Sì | Uno di `string`, `number`, `boolean`, `directory`, o `file` |

422| `title` | Sì | Etichetta mostrata nella finestra di dialogo di configurazione |

423| `description` | Sì | Testo di aiuto mostrato sotto il campo |

424| `required` | No | Se `true`, la finestra di dialogo di configurazione non accetta un valore vuoto |

425| `default` | No | Valore utilizzato quando l'utente non fornisce nulla: una stringa, un numero, un booleano, o un array di stringhe |

426| `options` | No | Per `string`, i valori che il campo accetta, mostrati come un selettore in `/config`. Vedi [Limitare un campo a opzioni fisse](#limit-a-field-to-fixed-options). Richiede Claude Code v2.1.271 o successivo |

427| `multiple` | No | Per `string`, consente un array di stringhe |

428| `sensitive` | No | Se `true`, maschera l'input e memorizza il valore nell'archiviazione sicura invece di `settings.json` |

429| `min` / `max` | No | Limiti per `number` |

430 

431Ogni opzione di ogni plugin abilitato appare anche come una riga nel pannello `/config`, ad eccezione delle opzioni `sensitive` e degli elenchi `multiple`. Le righe `/config` richiedono Claude Code v2.1.269 o successivo.

432 

433Questo `userConfig` dichiara un endpoint e un token mascherato:

434 

435```json theme={null}

436{

437 "userConfig": {

438 "api_endpoint": {

439 "type": "string",

440 "title": "API endpoint",

441 "description": "Your team's API endpoint"

442 },

443 "api_token": {

444 "type": "string",

445 "title": "API token",

446 "description": "API authentication token",

447 "sensitive": true

448 }

449 }

450}

451```

452 

453<h3 id="limit-a-field-to-fixed-options">

454 Limitare un campo a opzioni fisse

455</h3>

456 

457Impostare `options` su un campo `userConfig` per fare in modo che gli utenti scelgano il suo valore da un elenco fisso.

458 

459Per limitare un campo `tone` a tre opzioni, elencarle in `options` e impostare `default` su una di esse:

460 

461```json theme={null}

462{

463 "userConfig": {

464 "tone": {

465 "type": "string",

466 "title": "Tone",

467 "description": "Voice for generated replies",

468 "options": ["neutral", "warm", "formal"],

469 "default": "neutral"

470 }

471 }

472}

473```

474 

475Se si dichiara `options` su qualsiasi campo, gli utenti su versioni di Claude Code precedenti a v2.1.271 non possono caricare il plugin.

476 

477`options` si applica a un campo `string` che non è `multiple` o `sensitive`. Impostare `default` su uno dei valori elencati, oppure impostare `required: true` in modo che l'utente debba sceglierne uno. Ogni opzione è un'etichetta semplice di 1 a 64 caratteri, e `claude plugin validate`, che si esegue nella shell, segnala tutto il resto che rifiuta. Un plugin le cui `options` violano queste regole non riesce a caricarsi.

478 

479<h3 id="where-values-are-stored">

480 Dove vengono memorizzati i valori

481</h3>

482 

483I valori non sensibili vengono salvati sotto [`pluginConfigs`](/docs/it/settings-reference#pluginconfigs) nel `settings.json` dell'utente. I valori sensibili vanno invece nell'archivio di credenziali sicure della piattaforma. La [pagina delle impostazioni](/docs/it/settings-reference#pluginconfigs) elenca da quali file di impostazioni viene letto `pluginConfigs`.

484 

485<h3 id="reference-a-saved-value">

486 Fare riferimento a un valore salvato

487</h3>

488 

489Fare riferimento a un valore salvato dove il plugin ne ha bisogno, in una di due forme:

490 

491* **`${user_config.KEY}`**: sostituito nella configurazione del server MCP, nella configurazione del server LSP, negli `args` dell'hook in [forma exec](/docs/it/hooks#exec-form-and-shell-form), e nel contenuto di skill e agent. Nel contenuto di skill e agent, solo i valori non sensibili vengono sostituiti, e un valore sensibile lì diventa un segnaposto

492* **`CLAUDE_PLUGIN_OPTION_<KEY>`**: esportato ai processi hook per ogni opzione, con `<KEY>` in maiuscolo. Un hook in forma shell legge `$CLAUDE_PLUGIN_OPTION_API_TOKEN` per `api_token`

493 

494<h3 id="fields-that-run-through-a-shell">

495 Campi che passano attraverso una shell

496</h3>

497 

498I comandi hook in forma shell, i comandi di monitoraggio, e l'MCP [`headersHelper`](/docs/it/mcp#use-dynamic-headers-for-custom-authentication) rifiutano `${user_config.*}`. Un componente che lo riferisce in uno di questi campi non riesce con un [errore](/docs/it/errors#plugin-command-references-user-config) invece di eseguirsi, perché il valore del campo viene passato a una shell che riparsificherebbe il valore sostituito.

499 

500La tabella mostra come il valore può raggiungerlo per ciascuno di questi campi.

501 

502| Campo | Come il valore può raggiungerlo |

503| :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

504| Comandi hook in forma shell | Utilizzare la [forma exec](/docs/it/hooks#exec-form-and-shell-form) con `args`, oppure leggere `CLAUDE_PLUGIN_OPTION_<KEY>` dall'ambiente dell'hook |

505| Comandi di monitoraggio | Non attraverso Claude Code. I processi di monitoraggio non ricevono `CLAUDE_PLUGIN_OPTION_<KEY>`, quindi lo script di monitoraggio deve ottenere il valore autonomamente |

506| MCP `headersHelper` | Non attraverso Claude Code. L'ambiente dell'helper contiene `CLAUDE_PLUGIN_ROOT`, `CLAUDE_CODE_MCP_SERVER_NAME`, e `CLAUDE_CODE_MCP_SERVER_URL` ma nessun valore di opzione, quindi lo script helper deve ottenere il valore autonomamente |

507 

508<h2 id="channels">

509 Channels

510</h2>

511 

512`channels` dichiara i canali di messaggi che un plugin fornisce, come un ponte a un'app di chat. Quando ne dichiarate uno, Claude Code può chiedere la configurazione del canale quando il plugin è abilitato. Per come il server inietta i messaggi, vedere il [riferimento channels](/docs/it/channels-reference#package-as-a-plugin).

513 

514Ogni voce è un oggetto rigoroso associato a uno dei server MCP del plugin, con questi campi:

515 

516| Field | Required | Description |

517| :------------ | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

518| `server` | Yes | Chiave del server MCP nel `mcpServers` di questo plugin a cui il canale si associa |

519| `displayName` | No | Nome mostrato nel titolo della finestra di dialogo di configurazione. Predefinito al nome del server |

520| `userConfig` | No | Opzioni da chiedere, nella stessa forma di [`userConfig` di primo livello](#user-configuration). I valori salvati si sostituiscono nei riferimenti `${user_config.KEY}` nell'`env` del server |

521 

522Questo manifest associa un canale al server MCP `telegram` del plugin e chiede un token bot che si sostituisce nell'`env` del server:

523 

524```json theme={null}

525{

526 "mcpServers": {

527 "telegram": {

528 "command": "node",

529 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],

530 "env": { "BOT_TOKEN": "${user_config.bot_token}" }

531 }

532 },

533 "channels": [

534 {

535 "server": "telegram",

536 "displayName": "Telegram",

537 "userConfig": {

538 "bot_token": {

539 "type": "string",

540 "title": "Bot token",

541 "description": "Telegram bot token",

542 "sensitive": true

543 }

544 }

545 }

546 ]

547}

548```

549 

550<h2 id="environment-variables">

551 Environment variables

552</h2>

553 

554Claude Code fornisce tre variabili di percorso ai componenti del plugin. Fate loro riferimento come `${NAME}` nei campi elencati sotto [Where each variable resolves](#where-each-variable-resolves), e leggetele come variabili di ambiente nei processi che le ricevono.

555 

556| Variable | Resolves to | Use it for |

557| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------- |

558| `${CLAUDE_PLUGIN_ROOT}` | Percorso assoluto della versione installata del plugin | Script, binari e file di configurazione forniti con il plugin |

559| `${CLAUDE_PLUGIN_DATA}` | `~/.claude/plugins/data/<id>/`, creato al primo riferimento e mantenuto attraverso gli aggiornamenti del plugin. `<id>` è l'identificatore del plugin con ogni carattere diverso da una lettera, cifra, `_`, o `-` sostituito da `-` | Dipendenze installate come `node_modules`, codice generato e cache |

560| `${CLAUDE_PROJECT_DIR}` | La radice del progetto | Script e file di configurazione locali del progetto |

561 

562`${CLAUDE_PLUGIN_ROOT}` cambia quando il plugin si aggiorna, quindi non scrivete lo stato lì. Per dove si sposta la radice e quando la directory vecchia viene pulita, vedere la [pagina di caricamento](/docs/it/plugins/loading).

563 

564Quando disinstallate il plugin dall'ultimo posto in cui è installato, la directory `${CLAUDE_PLUGIN_DATA}` viene eliminata a meno che non passiate [`--keep-data`](/docs/it/plugins/cli-reference).

565 

566<h3 id="where-each-variable-resolves">

567 Where each variable resolves

568</h3>

569 

570In ogni componente del plugin, i riferimenti `${...}` si risolvono inline in campi specifici, e alcuni componenti ricevono anche le variabili nel loro ambiente di processo:

571 

572| Plugin component | Fields where `${...}` resolves | Exported to the process |

573| :-------------------------------- | :------------------------------------------ | :---------------------------------------------------------------------------------------------- |

574| Hook commands | Ovunque in `command` e `args` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA`, `CLAUDE_PROJECT_DIR` e `CLAUDE_PLUGIN_OPTION_<KEY>` |

575| Monitor commands | Ovunque in `command` | Non esportato |

576| MCP `stdio` servers | `command`, `args`, `env` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA` |

577| MCP `http`, `sse`, `ws` servers | `url`, `headers`, `headersHelper` | Non applicabile |

578| LSP servers | `command`, `args`, `env`, `workspaceFolder` | `CLAUDE_PLUGIN_ROOT`, `CLAUDE_PLUGIN_DATA`, `CLAUDE_PROJECT_DIR` |

579| Skill, command, and agent content | Ovunque nel corpo Markdown | Non applicabile |

580 

581Le variabili non sono presenti nell'ambiente dei comandi che Claude esegue attraverso lo strumento Bash, nella sessione principale o in un subagent. Nel contenuto di skill, comando e agente, scrivete il riferimento `${...}` nel corpo Markdown invece, e Claude Code sostituisce il percorso inline quando carica il contenuto.

582 

583<h3 id="quoting-and-path-separators">

584 Quoting and path separators

585</h3>

586 

587Mantenete ogni percorso sostituito un singolo argomento:

588 

589* **Hook commands**: usate [exec form](/docs/it/hooks#exec-form-and-shell-form) con `args` in modo che ogni percorso sia un argomento senza virgolette

590* **Shell-form hooks and monitor commands**: avvolgete la variabile tra virgolette doppie in modo che un percorso con spazi rimanga una parola

591 

592Questo hook in forma shell esegue uno script fornito con il plugin:

593 

594```json theme={null}

595{

596 "hooks": {

597 "PostToolUse": [

598 {

599 "hooks": [

600 {

601 "type": "command",

602 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"

603 }

604 ]

605 }

606 ]

607 }

608}

609```

610 

611Su Windows, i percorsi sostituiti usano barre in avanti in modo che una shell non legga le barre rovesciate come escape.

612 

613<h2 id="standard-layout">

614 Standard layout

615</h2>

616 

617Ogni tipo di componente ha una posizione predefinita sotto la radice del plugin, utilizzata quando il manifest non punta altrove.

618 

619| Component | Default location | Contents |

620| :------------ | :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

621| Manifest | `.claude-plugin/plugin.json` | Metadati e configurazione del plugin. Facoltativo |

622| Skills | `skills/` | Un `<name>/SKILL.md` per skill. Un plugin con `SKILL.md` alla sua radice, nessun `skills/`, e nessuna chiave `skills` si carica come una singola skill |

623| Commands | `commands/` | File di comando Markdown piatti. Preferite `skills/` per i nuovi plugin |

624| Agents | `agents/` | File Markdown di agente. Le sottocartelle fanno parte del [nome dell'agente](/docs/it/plugins/components#agents) |

625| Hooks | `hooks/hooks.json` | Configurazione hook |

626| MCP servers | `.mcp.json` | Definizioni del server MCP |

627| LSP servers | `.lsp.json` | Configurazioni del server LSP |

628| Output styles | `output-styles/` | File di stile di output Markdown |

629| Workflows | `workflows/` | File Workflow `.js` |

630| Themes | `themes/` | File tema JSON |

631| Monitors | `monitors/monitors.json` | L'array monitors |

632| Executables | `bin/` | I file qui sono sul `PATH` dello strumento Bash mentre il plugin è abilitato, quindi Claude li esegue come comandi nudi. claude.ai e Cowork non installano un plugin che ha questa directory, incluso uno che [distribuite attraverso le impostazioni dell'organizzazione claude.ai](/docs/it/plugins/host-marketplace#distribute-through-organization-settings) |

633| Settings | `settings.json` | Impostazioni predefinite `agent` e `subagentStatusLine` applicate mentre il plugin è abilitato |

634 

635Un plugin che usa ogni posizione predefinita, più una cartella `scripts/` che i suoi hook chiamano, è disposto così:

636 

637```text theme={null}

638deploy-tools/

639├── .claude-plugin/

640│ └── plugin.json

641├── skills/

642│ └── deploy/

643│ └── SKILL.md

644├── commands/

645│ └── status.md

646├── agents/

647│ └── reviewer.md

648├── hooks/

649│ └── hooks.json

650├── monitors/

651│ └── monitors.json

652├── output-styles/

653│ └── terse.md

654├── themes/

655│ └── dracula.json

656├── workflows/

657│ └── release-audit.js

658├── bin/

659│ └── deploy-tool

660├── scripts/

661│ └── format.sh

662├── settings.json

663├── .mcp.json

664└── .lsp.json

665```

666 

667Per fare clic attraverso questo layout e leggere cosa fa ogni file, aprite l'[esplora plugin](/docs/it/plugins/components#explore-the-plugin-directory).

668 

669Un `CLAUDE.md` alla radice del plugin non viene caricato come contesto, e `claude plugin validate` avvisa quando ne trova uno. Per includere istruzioni che si caricano nel contesto di Claude, mettetele in una skill.

670 

671<h2 id="marketplace-entries-and-the-manifest">

672 Marketplace entries and the manifest

673</h2>

674 

675Una [voce di marketplace](/docs/it/plugins/marketplace-reference) accetta ogni campo su questa pagina insieme ai [suoi propri campi](/docs/it/plugins/marketplace-reference#plugin-entries), incluso `strict`.

676 

677Il campo `strict` decide se la voce può aggiungere componenti a un plugin che ha il suo `plugin.json`. Predefinito a `true`.

678 

679<h3 id="how-entry-fields-combine-with-plugin-json">

680 How entry fields combine with `plugin.json`

681</h3>

682 

683La voce serve come manifest, aggiunge componenti ad esso, o entra in conflitto con esso:

684 

685* **No `plugin.json`**: la voce è il manifest, indipendentemente da `strict`. L'`hooks` della voce si carica solo nella forma di oggetto inline. Per un percorso di file o array lì, la scheda `/plugin` **Errors** mostra un errore `not yet supported in a marketplace entry`

686* **`plugin.json` presente, `strict` non impostato o `true`**: Claude Code carica il manifest e aggiunge i `commands`, `agents`, `skills`, `outputStyles` e `themes` della voce ad esso. Per `hooks`, i matcher della voce per un evento sostituiscono i matcher del manifest per lo stesso evento, e gli eventi che solo il manifest dichiara mantengono i loro

687* **`plugin.json` presente, `strict: false`**: una voce che dichiara qualsiasi di `commands`, `agents`, `skills`, `hooks`, `outputStyles` o `themes` è un conflitto, e il plugin non si carica con `Plugin <name> has conflicting manifests`

688 

689Quando una [voce di marketplace la cui `source` è la radice del marketplace](/docs/it/plugins/marketplace-reference) elenca sottodirectory `skills` specifiche, solo quelle sottodirectory si caricano, e la directory predefinita `skills/` del plugin non viene scansionata. Una chiave `skills` nel manifest invece [aggiunge al predefinito](#how-each-key-combines-with-its-default-location).

690 

691<h3 id="metadata-precedence">

692 Metadata precedence

693</h3>

694 

695Alcuni campi di metadati hanno una precedenza fissa indipendentemente da `strict`:

696 

697* **`defaultEnabled` e campi di visualizzazione**: il `defaultEnabled` della voce e i suoi [campi di visualizzazione](/docs/it/plugins/marketplace-reference#entry-and-plugin-json) come `displayName` sostituiscono quelli del manifest

698* **`version`**: il `version` del manifest sostituisce quello della voce

699* **`name`**: quando la voce elenca il plugin sotto un `name` diverso da quello del manifest, `enabledPlugins` usa il nome della voce, e i componenti sono namespacciati sotto il nome del manifest

700 

701Per la tabella di precedenza completa, vedere [Strict mode](/docs/it/plugins/marketplace-reference).

702 

703<h2 id="next-steps">

704 Next steps

705</h2>

706 

707* [Add components to a plugin](/docs/it/plugins/components): cosa fa ogni componente al runtime, con un esempio che passa la validazione

708* [Marketplace reference](/docs/it/plugins/marketplace-reference): i campi della voce che un marketplace può impostare per il vostro plugin

709* [Plugin commands reference](/docs/it/plugins/cli-reference#plugin-validate): flag e output di `claude plugin validate`

710* [Troubleshoot plugins](/docs/it/plugins/troubleshooting#claude-plugin-validate-reports-errors): ogni messaggio di validazione con la sua correzione

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# Marketplace reference

6 

7> Riferimento completo per i campi marketplace.json, le voci dei plugin e gli oggetti sorgente del plugin e del marketplace, con indicazione di dove ciascuno è valido.

8 

9`marketplace.json` è il file che definisce un marketplace di plugin. Contiene il nome del marketplace, il suo proprietario e una voce per ogni plugin. La sorgente del plugin di ogni voce indica da dove Claude Code recupera quel plugin.

10 

11Una sorgente marketplace è un oggetto separato che indica da dove Claude Code recupera il file marketplace stesso. Si scrive nelle impostazioni, oppure Claude Code ne crea una quando si esegue `claude plugin marketplace add`.

12 

13Questo riferimento è per i manutentori di marketplace che hanno bisogno di un nome di campo o di un valore esatto, e per gli amministratori che hanno bisogno di sapere quali valori `source` sono validi in [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces), [`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/it/plugins/org#restrict-what-users-can-install).

14 

15<Note>

16 Questi casi sono trattati in altre pagine:

17 

18 * **Creazione o hosting di un marketplace**: vedere [Create a marketplace](/docs/it/plugins/create-marketplace) e [Host and maintain a marketplace](/docs/it/plugins/host-marketplace)

19 * **Ricette per allowlist e blocklist**: vedere [Manage plugins for your organization](/docs/it/plugins/org)

20</Note>

21 

22Trovare la sezione per quello che si sta scrivendo o leggendo:

23 

24* **Il file marketplace**: [Top-level fields](#top-level-fields) e [Plugin entries](#plugin-entries)

25* **La `source` di una voce**: [Plugin sources](#plugin-sources)

26* **Un oggetto `source` nelle impostazioni**: [Marketplace sources](#marketplace-sources)

27* **Output da [`claude plugin validate <path>`](/docs/it/plugins/cli-reference)**: [Validation messages](#validation-messages), che mappa ogni messaggio al campo che nomina

28 

29<h2 id="marketplace-file">

30 Marketplace file

31</h2>

32 

33Salvare il file marketplace in `.claude-plugin/marketplace.json` nella directory del marketplace. Se si mantiene il file altrove nel repository, gli utenti devono dichiarare il marketplace in [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces) con `path` impostato sulla sua sorgente, perché `claude plugin marketplace add` non ha un'opzione per questo.

34 

35La directory che contiene `.claude-plugin/` è chiamata marketplace root, e ogni sorgente di plugin relativa si risolve da essa, non da `.claude-plugin/`.

36 

37Ogni utente registra un marketplace per `name`, quindi un utente non può avere due marketplace con lo stesso nome registrati contemporaneamente.

38 

39Claude Code ignora una chiave di primo livello sconosciuta o una chiave di voce di plugin piuttosto che rifiutarla, quindi un errore di battitura si carica silenziosamente. `claude plugin validate` segnala ogni chiave sconosciuta come un avviso.

40 

41<h3 id="reserved-names">

42 Reserved names

43</h3>

44 

45Non è possibile assegnare al marketplace nessuno dei seguenti nomi:

46 

47* **Nomi ufficiali del marketplace**: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `life-sciences`, `knowledge-work-plugins`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins` e `claude-tag-plugins`. Riservati a meno che il marketplace non provenga da una [sorgente marketplace](#marketplace-sources) `github` o `git` sotto `github.com/anthropics/`.

48* **Nomi del marketplace della comunità**: `claude-community`, `claude-plugins-community` e `healthcare`. Riservati secondo la stessa regola dei nomi ufficiali.

49* **Nomi della directory dei plugin**: `anthropic-plugin-directory` e `claude-plugin-directory`. Riservati secondo la stessa regola dei nomi ufficiali.

50* **Nomi che impersonano un marketplace ufficiale**: nomi come `official-claude-plugins` o `claude-plugins-v2`, e qualsiasi nome contenente un carattere non ASCII. L'errore è `Marketplace name impersonates an official Anthropic/Claude marketplace`. Un carattere di controllo o di formattazione bidirezionale in un nome segnala anche `Marketplace name cannot contain control or bidirectional-formatting characters`.

51* <span id="reserved-name-spellings" />**Un'altra ortografia di un nome riservato**: un nome che differisce da un nome riservato solo per un punto finale, o per un simbolo diverso da un trattino al posto di un trattino, quindi `claude.code.plugins` conta come `claude-code-plugins`. `claude plugin validate` accetta tale nome; l'aggiunta del marketplace non riesce con [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/it/errors#marketplace-name-is-another-spelling-of-a-reserved-name), e un marketplace già registrato sotto uno smette di caricarsi. Questo controllo richiede Claude Code v2.1.280 o successivo.

52* **Nomi che Claude Code utilizza per i plugin che non provengono da un marketplace**: `inline` per i plugin caricati con [`--plugin-dir`](/docs/it/cli-reference), `builtin` per i plugin integrati, `skills-dir` per i plugin caricati automaticamente da [`.claude/skills/`](/docs/it/skills) e `synced` per i plugin sincronizzati dal proprio account claude.ai. Anche `claude-plugin-test` è riservato. `skills-dir` appare anche come `{"source": "skills-dir"}` in `strictKnownMarketplaces` e `blockedMarketplaces`, descritto in [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` e `gh`**: riservati in qualsiasi maiuscola. Questo controllo richiede Claude Code v2.1.275 o successivo.

54* **Nomi che iniziano con `claudeai-`**: riservati per i marketplace ospitati su claude.ai. `claude plugin marketplace add` rifiuta qualsiasi altro marketplace che ne utilizzi uno con `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.

55 

56<h2 id="top-level-fields">

57 Top-level fields

58</h2>

59 

60La tabella elenca ogni chiave che Claude Code legge da `marketplace.json`. `name`, `owner` e `plugins` sono obbligatori.

61 

62| Field | Type | Description |

63| :----------------------------------------- | :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

64| `name` | string | Identificatore del marketplace. Nessuno spazio, caratteri di controllo o caratteri di formattazione bidirezionale, nessun `/` o `\`, nessun `..` e non `.`. Vedere [Reserved names](#reserved-names). Gli utenti lo digitano dopo `@` quando installano un plugin |

65| `owner` | object | Informazioni del manutentore. `name` è obbligatorio; `email` e `url` sono facoltativi |

66| `plugins` | array | [Plugin entries](#plugin-entries). Ogni voce è convalidata da sola, quindi una voce non valida non fa fallire il marketplace |

67| `$schema` | string | URL dello schema JSON per l'autocompletamento dell'editor. Ignorato al momento del caricamento |

68| `description` | string | Descrizione del marketplace mostrata agli utenti. `claude plugin validate` avverte quando manca |

69| `version` | string | Versione del manifesto del marketplace |

70| `metadata.description`, `metadata.version` | string | Posizione alternativa per `description` e `version` |

71| `metadata.pluginRoot` | string | Directory in cui i nomi di sorgente di plugin bare si risolvono. Vedere [Relative path plugin source](#relative-path-plugin-source). Richiede Claude Code v2.1.239 o successivo |

72| `forceRemoveDeletedPlugins` | boolean | Quando `true`, un plugin che si rimuove da `plugins` viene disinstallato sulle macchine degli utenti. Vedere [Host and maintain a marketplace](/docs/it/plugins/host-marketplace) |

73| `allowCrossMarketplaceDependenciesOn` | array of strings | Nomi di marketplace i cui plugin possono essere installati come dipendenze dei plugin di questo marketplace. Quando si installa un plugin, si applica solo l'elenco nel marketplace del plugin stesso, per l'intera catena di dipendenze. Vedere [Plugin dependencies](/docs/it/plugins/dependencies) |

74| `renames` | object | Mappa da un precedente `name` del plugin al suo nome attuale, o a `null` per un plugin rimosso. Richiede Claude Code v2.1.193 o successivo. Vedere [Host and maintain a marketplace](/docs/it/plugins/host-marketplace) |

75 

76<h2 id="plugin-entries">

77 Plugin entries

78</h2>

79 

80Ogni oggetto nell'array `plugins` di primo livello di `marketplace.json` nomina un plugin e dice dove recuperarlo. `name` e `source` sono obbligatori.

81 

82Una voce accetta anche ogni campo [`plugin.json`](/docs/it/plugins/manifest-reference), come `description`, `version`, `author`, `commands` e `hooks`. Per quando questi campi si applicano, vedere [How an entry combines with plugin.json](#entry-and-plugin-json).

83 

84La tabella elenca i campi propri della voce e i campi del manifesto il cui significato cambia in una voce.

85 

86| Field | Type | Description |

87| :--------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

88| `name` | string | Identificatore del plugin, senza spazi, caratteri di controllo o caratteri di formattazione bidirezionale. Gli utenti lo digitano prima di `@` quando installano, anche quando il `plugin.json` del plugin stesso imposta un `name` diverso |

89| `source` | string or object | Dove recuperare il plugin. Vedere [Plugin sources](#plugin-sources) |

90| `description` | string | Mostrato negli elenchi e nei dettagli di [`/plugin`](/docs/it/plugins/install) |

91| `version` | string | Stringa di versione per il plugin. Quando `plugin.json` imposta anche `version`, `plugin.json` ha la precedenza e `claude plugin validate` avverte. Vedere [Plugin loading reference](/docs/it/plugins/loading) |

92| `category` | string | Categoria libera per organizzare il catalogo |

93| `tags` | array of strings | Tag liberi per la ricerca |

94| `strict` | boolean | Predefinito `true`. Se `plugin.json` è la fonte definitiva per i componenti del plugin. Vedere [Strict mode](#strict-mode) |

95| `relevance` | object | Segnali che dicono a Claude Code quando suggerire il plugin. Vedere [Recommend plugins for your org](/docs/it/plugins/relevance) |

96| `dependencies` | array | Plugin che devono essere abilitati affinché questo funzioni. Ogni elemento è `"name"`, `"name@marketplace"` o un oggetto. Vedere [Plugin dependencies](/docs/it/plugins/dependencies) |

97| `defaultEnabled` | boolean | Predefinito `true`. Se il plugin inizia abilitato quando l'utente non lo ha impostato in [`enabledPlugins`](/docs/it/settings-reference#enabledplugins). Il valore della voce ha la precedenza su `plugin.json` |

98| `displayName` | string | Nome leggibile mostrato nell'interfaccia utente. Quando né la voce né il `plugin.json` del plugin ne impostano uno, gli utenti vedono il `name` del plugin |

99| `metadata` | object | Oggetto libero per i propri campi. Claude Code non lo legge. Richiede Claude Code v2.1.222 o successivo |

100| `headers` | object | Intestazioni HTTP che Claude Code invia quando scarica l'[archivio](#archive-plugin-source) di questa voce. Un'intestazione impostata qui sostituisce un'intestazione con lo stesso nome dalla [`headers`](#fields-by-type) della sorgente del marketplace. Richiede Claude Code v2.1.238 o successivo |

101| `headersHelper` | string | Comando che stampa le intestazioni di download dell'archivio di questa voce come un oggetto JSON, per una credenziale che scade. La voce deve anche impostare [`"strict": false`](#strict-mode). Richiede Claude Code v2.1.238 o successivo. Vedere [Authenticate archive downloads](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) |

102 

103<h3 id="entry-and-plugin-json">

104 How an entry combines with plugin.json

105</h3>

106 

107I campi della voce si applicano diversamente a un plugin recuperato che ha il suo `.claude-plugin/plugin.json` e a uno che non lo ha:

108 

109* **No `plugin.json`**: la voce è il manifesto indipendentemente da `strict`. Ogni campo del manifesto nella voce si applica, inclusi [`mcpServers`, `lspServers`, `userConfig` e `channels`](/docs/it/plugins/manifest-reference).

110* **`plugin.json` presente**: `plugin.json` è il manifesto. [Strict mode](#strict-mode) decide se i sei campi componenti della voce, `commands`, `agents`, `skills`, `hooks`, `outputStyles` e `themes`, sono combinati con esso o rifiutati come conflitto. La voce `mcpServers`, `lspServers`, `userConfig` e `channels` non si applicano. Dichiararli in `plugin.json`.

111 

112<h4 id="hooks-in-an-entry">

113 Hooks in an entry

114</h4>

115 

116Scrivere `hooks` della voce come un oggetto inline che mappa i nomi degli eventi hook agli array di matcher. Se si scrive un percorso di file o un array, `claude plugin validate` lo passa. Questi hook non vengono mai eseguiti e Claude Code segnala un errore `not yet supported in a marketplace entry` per il plugin. Mettere gli hook basati su file nel [`hooks/hooks.json`](/docs/it/plugins/components) del plugin stesso o in `plugin.json`.

117 

118<h4 id="display-fields">

119 Display fields

120</h4>

121 

122Sia la voce che il `plugin.json` del plugin stesso possono impostare i campi di visualizzazione `displayName`, `description`, `author`, `homepage`, `repository`, `license` e `keywords`. Gli utenti vedono questi valori negli elenchi e nei dettagli dei plugin, prima e dopo l'installazione:

123 

124* Per un campo impostato sulla voce, gli utenti vedono il valore della voce, anche quando `plugin.json` ne imposta uno diverso.

125* Per un campo che la voce lascia non impostato, gli utenti vedono il valore di `plugin.json`.

126 

127Prima dell'installazione, Claude Code può leggere `plugin.json` solo per le voci con una [sorgente relativa](#relative-path-plugin-source), i cui file di plugin si trovano all'interno del marketplace stesso. Per una voce con qualsiasi altro tipo di sorgente, gli utenti vedono solo i campi propri della voce fino a quando non installano il plugin.

128 

129<h3 id="strict-mode">

130 Strict mode

131</h3>

132 

133`strict` decide cosa succede quando il plugin recuperato ha il suo `plugin.json` e la voce dichiara anche uno dei [campi componenti](#entry-and-plugin-json): `commands`, `agents`, `skills`, `hooks`, `outputStyles` o `themes`. Con `strict: true`, il predefinito, Claude Code aggiunge i campi componenti della voce a `plugin.json`, tranne `hooks`, i cui matcher sostituiscono quelli del manifesto per evento. Con `strict: false`, una voce che dichiara un campo componente è un conflitto e il plugin non riesce a caricarsi. La tabella mostra ogni combinazione di `strict`, `plugin.json` e i campi componenti della voce.

134 

135| `strict` | `plugin.json` | Entry component fields | Result |

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

137| any | absent | any | La voce è il manifesto |

138| `true`, il predefinito | present | any | `plugin.json` è l'autorità. Claude Code aggiunge i campi componenti della voce a esso, tranne `hooks`, i cui matcher [sostituiscono quelli del manifesto per evento](/docs/it/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |

139| `false` | present | none | `plugin.json` è il manifesto, come con `true` |

140| `false` | present | one or more | Conflitto. Il plugin non riesce a caricarsi con `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components` |

141 

142<h2 id="plugin-sources">

143 Plugin sources

144</h2>

145 

146La `source` di una voce di plugin dice da dove Claude Code recupera quel plugin. È una stringa di percorso relativo o un oggetto la cui chiave `source` nomina il tipo, quindi una voce assomiglia a `"source": { "source": "github", "repo": "your-org/formatter" }`.

147 

148La tabella elenca ogni tipo di sorgente di plugin e i suoi campi.

149 

150| Type | Fields | Notes |

151| :------------ | :------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

152| Relative path | the string itself | Una directory all'interno del marketplace, risolta dalla radice del marketplace. Deve iniziare con `./`, a meno che non si scriva un [nome bare sotto `metadata.pluginRoot`](#relative-path-plugin-source). `"."` da solo significa la radice stessa |

153| `github` | `repo`, `ref`, `sha` | Repository GitHub in forma `owner/repo` |

154| `url` | `url`, `ref`, `sha` | Qualsiasi repository git per URL |

155| `git-subdir` | `url`, `path`, `ref`, `sha` | Una sottodirectory di un repository git, recuperata con un clone parziale sparse |

156| `npm` | `package`, `version`, `registry` | Pacchetto npm, recuperato con il client npm e decompresso senza eseguire script di installazione |

157| `archive` | `url`, `sha256` | Archivio Zip su HTTPS. Richiede Claude Code v2.1.224 o successivo |

158| `command` | `command`, `timeout`, `mode` | Directory stampata da un comando che Claude Code esegue sulla macchina dell'utente. Richiede Claude Code v2.1.229 o successivo |

159 

160I nomi `url` e `github` sono anche tipi di [sorgente marketplace](#marketplace-sources), dove `url` significa un collegamento diretto a un file `marketplace.json` piuttosto che a un repository git. `git` esiste solo come sorgente marketplace e `npm` esiste come entrambi. `git-subdir`, `archive` e `command` esistono solo come sorgenti di plugin.

161 

162Utilizzare un percorso relativo per un plugin in una sottodirectory del repository del marketplace stesso. Utilizzare `git-subdir` per una sottodirectory di un altro repository.

163 

164Le sorgenti `github`, `url` e `git-subdir` condividono i campi `ref` e `sha`:

165 

166* **`ref`**: un ramo o un tag. Predefinito al ramo predefinito del repository.

167* **`sha`**: un SHA di commit completo di 40 caratteri in minuscolo. Quando si impostano sia `ref` che `sha`, Claude Code estrae `sha`. Sulla maggior parte degli host git, inclusi GitHub, GitLab e Bitbucket, ciò significa che l'installazione ha successo anche se il ramo o il tag denominato da `ref` è stato eliminato a monte, purché il commit sia ancora raggiungibile dal repository. Alcuni server, come AWS CodeCommit, non supportano il recupero di commit per SHA. Su questi server il `ref` deve ancora esistere e il commit bloccato deve essere raggiungibile da esso.

168 

169Per come ogni tipo viene recuperato, memorizzato nella cache e versionato, vedere [Plugin loading reference](/docs/it/plugins/loading).

170 

171<h3 id="relative-path-plugin-source">

172 Relative path plugin source

173</h3>

174 

175Il percorso si risolve dalla radice del marketplace. `./plugins/formatter` è `<root>/plugins/formatter` anche se il file marketplace è in `<root>/.claude-plugin/`.

176 

177Un percorso contenente `..` non supera la convalida. Su macOS e Linux, Claude Code rifiuta un percorso di voce che contiene una barra rovesciata in qualsiasi punto dopo il `./` iniziale, quindi scrivere il percorso con barre in avanti.

178 

179```json theme={null}

180{ "name": "formatter", "source": "./plugins/formatter" }

181```

182 

183Un percorso relativo si risolve solo quando Claude Code ha i file del marketplace, quindi controllare il tipo di [sorgente marketplace](#marketplace-sources):

184 

185* **`github`, `git`, `file` e `directory`**: Claude Code ha i file del marketplace.

186* **`url`**: Claude Code recupera solo `marketplace.json`, quindi i percorsi relativi non possono risolversi. Dare a ogni plugin una sorgente di oggetto, come `github` o `git-subdir`.

187* **`settings`**: i percorsi relativi sono rifiutati completamente.

188 

189<h4 id="bare-names-under-pluginroot">

190 Bare names under pluginRoot

191</h4>

192 

193Un nome bare è un singolo nome di directory senza `/`, come `"formatter"`. Per scrivere nomi bare invece di percorsi `./`, impostare [`metadata.pluginRoot`](#top-level-fields) sulla directory in cui si risolvono. Con `"pluginRoot": "./plugins"`, `"source": "formatter"` si risolve in `./plugins/formatter`. Richiede Claude Code v2.1.239 o successivo.

194 

195`metadata.pluginRoot` ha questi limiti:

196 

197* Deve essere esso stesso un percorso relativo all'interno del marketplace.

198* Non ha effetto su una sorgente che inizia già con `./`.

199* Una sorgente che contiene un `/`, come `team-a/formatter`, non è un nome bare e ha ancora bisogno del prefisso `./`, anche quando `metadata.pluginRoot` è impostato.

200 

201<h3 id="github-plugin-source">

202 github plugin source

203</h3>

204 

205`repo` accetta `owner/repo`. `ref` e `sha` sono facoltativi.

206 

207```json theme={null}

208{

209 "name": "formatter",

210 "source": {

211 "source": "github",

212 "repo": "your-org/formatter",

213 "ref": "v2.0.0",

214 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

215 }

216}

217```

218 

219<h3 id="url-plugin-source">

220 url plugin source

221</h3>

222 

223`url` è un URL git completo: `https://`, `http://`, `file://` o `git@`. Un suffisso `.git` non è obbligatorio, quindi gli URL di Azure DevOps e AWS CodeCommit funzionano come scritti. Questo tipo non accetta la scorciatoia `owner/repo`.

224 

225```json theme={null}

226{

227 "name": "formatter",

228 "source": {

229 "source": "url",

230 "url": "https://gitlab.example.com/your-group/formatter.git",

231 "ref": "main"

232 }

233}

234```

235 

236<h3 id="git-subdir-plugin-source">

237 git-subdir plugin source

238</h3>

239 

240`url` accetta un URL git completo o la scorciatoia GitHub `owner/repo`. `path` è la sottodirectory che contiene il plugin e Claude Code scarica solo quella sottodirectory.

241 

242```json theme={null}

243{

244 "name": "formatter",

245 "source": {

246 "source": "git-subdir",

247 "url": "https://github.com/your-org/monorepo.git",

248 "path": "tools/formatter"

249 }

250}

251```

252 

253<h3 id="npm-plugin-source">

254 npm plugin source

255</h3>

256 

257Una sorgente `npm` accetta questi campi:

258 

259* `package`: un nome di pacchetto, o un nome con scope come `@your-org/formatter`

260* `version`: una versione o un intervallo

261* `registry`: un URL di registro per un pacchetto che non è nel registro predefinito

262 

263Claude Code recupera il pacchetto con il client npm. Gli script di installazione del pacchetto, come `preinstall` o `postinstall`, non vengono mai eseguiti e le sue dipendenze non vengono installate durante il recupero. Se il pacchetto ha un lockfile supportato accanto al suo `package.json`, Claude Code installa quelle [dipendenze del pacchetto Node.js](/docs/it/plugins/loading#node-js-package-dependencies) in un passaggio separato, anche con script disabilitati.

264 

265```json theme={null}

266{

267 "name": "formatter",

268 "source": {

269 "source": "npm",

270 "package": "@your-org/formatter",

271 "version": "^2.0.0",

272 "registry": "https://npm.example.com"

273 }

274}

275```

276 

277<h3 id="archive-plugin-source">

278 archive plugin source

279</h3>

280 

281`url` deve utilizzare `https://` e non può puntare a un host loopback, link-local o cloud-metadata.

282 

283La radice del plugin può essere in cima al zip o una directory in basso.

284 

285`sha256` è il digest dell'archivio come 64 caratteri esadecimali, maiuscoli o minuscoli. Quando lo si imposta, Claude Code rifiuta un download che non corrisponde.

286 

287```json theme={null}

288{

289 "name": "formatter",

290 "source": {

291 "source": "archive",

292 "url": "https://artifacts.example.com/formatter-2.0.0.zip",

293 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

294 }

295}

296```

297 

298<h3 id="command-plugin-source">

299 command plugin source

300</h3>

301 

302Utilizzare una sorgente `command` quando uno strumento installato sulla macchina dell'utente produce la directory del plugin, come un IDE che renderizza il suo plugin per la toolchain che l'utente ha selezionato. Claude Code esegue il comando quando l'utente installa o aggiorna il plugin e [di nuovo una volta per sessione](/docs/it/plugins/loading#when-a-command-source-re-runs), quindi gli utenti ottengono l'output modificato dello strumento senza reinstallare.

303 

304Una sorgente `command` accetta questi campi:

305 

306* `command`: un comando shell che stampa il percorso assoluto della directory del plugin come una riga e esce 0. Claude Code mostra agli utenti l'intera stringa per la revisione prima di eseguirla. Scriverla come ASCII stampabile, al massimo 500 caratteri, senza una sequenza di quattro o più spazi.

307* `timeout`: un numero intero di secondi da 1 a 600. Predefinito a 60.

308* `mode`: `copy`, il predefinito, o `link`. Vedere [Copy mode and link mode](#copy-mode-and-link-mode).

309 

310```json theme={null}

311{

312 "name": "formatter",

313 "source": {

314 "source": "command",

315 "command": "my-tool claude-plugin-path",

316 "timeout": 120

317 }

318}

319```

320 

321Per come gli utenti accettano il comando, vedere [Install from your shell](/docs/it/plugins/install#install-from-your-shell). Per cosa vedono gli utenti dopo averlo modificato, vedere [Change the command of a command source](/docs/it/plugins/host-marketplace#change-the-command-of-a-command-source). Gli amministratori disattivano le sorgenti di comando con [`disableCommandPluginSources`](/docs/it/settings-reference#disablecommandpluginsources).

322 

323<h4 id="what-the-command-must-do">

324 What the command must do

325</h4>

326 

327Scrivere il comando per soddisfare questi requisiti:

328 

329* **Shell e directory di lavoro**: Claude Code esegue il comando attraverso `sh`, o attraverso `cmd.exe` su Windows, dalla directory home dell'utente. Fornire un percorso assoluto o un comando su `PATH`.

330* **Output**: stampare esattamente una riga su stdout, il percorso assoluto della directory del plugin, e uscire 0 entro `timeout` secondi.

331* **Contenuti della directory**: la directory contiene il plugin completo al momento dell'uscita del comando. Il percorso può differire da un'esecuzione all'altra.

332 

333<h4 id="output-that-fails-the-install-or-update">

334 Output that fails the install or update

335</h4>

336 

337L'installazione o l'aggiornamento non riesce quando il comando esce non-zero, viene eseguito più a lungo di `timeout`, o stampa qualcosa di diverso da un percorso assoluto. Fallisce anche quando la directory stampata è una di queste:

338 

339* **Nessun contenuto di plugin**: la directory stampata non ha contenuto di plugin al suo livello superiore, come una directory `.claude-plugin/` o una directory `skills/`, `commands/`, `agents/` o `hooks/`.

340* **La directory della sessione stessa**: la directory stampata è quella in cui Claude Code è stato avviato, o una dei suoi genitori.

341* **Un percorso di rete**: su Windows, il percorso stampato è un percorso UNC.

342* **Troppo grande da copiare**: in modalità copia, la directory è più grande di 256 MiB o ha più di 20.000 voci.

343 

344<h4 id="copy-mode-and-link-mode">

345 Copy mode and link mode

346</h4>

347 

348`mode` decide se Claude Code copia la directory stampata o la utilizza in posizione:

349 

350* **`copy`**: Claude Code copia la directory nella cache del plugin e deriva la [versione del plugin](/docs/it/plugins/loading#how-claude-code-computes-the-version) da un hash dei file copiati. Lo strumento può eliminare o riscrivere la directory dopo l'uscita del comando. Una ri-esecuzione che produce file identici conta come aggiornato.

351* **`link`**: Claude Code riempie la voce della cache del plugin con un collegamento a ogni voce di primo livello della directory stampata e carica i file in posizione. Nulla viene copiato, i contenuti dei file non vengono sottoposti a hash e i limiti di dimensione non si applicano. Utilizzarlo per una directory troppo grande da copiare, come un'esportazione SDK renderizzata.

352 

353Un plugin in modalità link ha questi requisiti:

354 

355* **Mantenere la directory in posizione**: Claude Code carica il plugin attraverso i link ad ogni avvio, quindi la directory stampata deve rimanere dove si trova finché il plugin rimane installato.

356* **Stampare un percorso diverso per segnalare nuovo contenuto**: la versione proviene dal percorso reale della directory stampata e dalle sue voci di primo livello, non dai file al loro interno.

357* **Mantenere i symlink di primo livello all'interno della directory**: l'installazione non riesce se una voce di primo livello è un symlink che punta al di fuori della directory stampata.

358* **Includere `node_modules`**: Claude Code salta l'[installazione della dipendenza del pacchetto Node.js](/docs/it/plugins/loading#node-js-package-dependencies) per un plugin in modalità link, quindi stampare una directory che contiene già i pacchetti di cui il plugin ha bisogno.

359* **Sessioni avviate all'interno della directory**: una sessione avviata nella directory stampata o in qualsiasi punto al di sotto di essa non carica il plugin.

360* **Non su Windows**: Claude Code rifiuta di installare un plugin in modalità link su Windows. Dichiarare `"mode": "copy"` lì.

361 

362<h2 id="marketplace-sources">

363 Marketplace sources

364</h2>

365 

366Una sorgente marketplace dice da dove Claude Code recupera un `marketplace.json`. La CLI ne crea una per voi quando aggiungete un marketplace, e ne scrivete una voi stessi nelle impostazioni:

367 

368* **[`claude plugin marketplace add`](/docs/it/plugins/cli-reference)**: Claude Code crea la sorgente dalla stringa che passate.

369* **[`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces)**: scrivete la sorgente voi stessi come oggetto `source`.

370* **[`strictKnownMarketplaces`](/docs/it/settings-reference#strictknownmarketplaces) e [`blockedMarketplaces`](/docs/it/plugins/org#restrict-what-users-can-install)**: gli amministratori scrivono le sorgenti in questi due elenchi di policy. `strictKnownMarketplaces` è l'allowlist e `blockedMarketplaces` è la blocklist.

371 

372I nomi di tipo `url`, `git` e `github` significano qualcosa di diverso in una sorgente marketplace rispetto a una [sorgente di plugin](#plugin-sources):

373 

374| Type name | As a marketplace source | As a plugin source |

375| :-------- | :------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |

376| `url` | Un collegamento diretto a un file `marketplace.json`, con campi `url`, `headers` e `headersHelper` | Un repository git da clonare, con campi `url`, `ref` e `sha` |

377| `git` | Un repository git da clonare, con campi `url`, `ref`, `path` e `sparsePaths` | Non esiste |

378| `github` | Un repository GitHub, con campi `repo`, `ref`, `path` e `sparsePaths` | Un repository GitHub, con campi `repo`, `ref` e `sha`, e nessun `path` |

379 

380La tabella elenca ogni tipo di sorgente marketplace con i suoi campi, l'input `claude plugin marketplace add` che lo produce e cosa fa in ciascuna delle tre chiavi di impostazioni.

381 

382| Type | Fields | `marketplace add` input | `extraKnownMarketplaces` | `strictKnownMarketplaces` | `blockedMarketplaces` |

383| :------------ | :----------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------- |

384| `url` | `url`, `headers`, `headersHelper` | Un URL `http://` o `https://` che non corrisponde a una forma git | Carica | Consente lo stesso URL | Blocca lo stesso URL |

385| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` o `owner/repo#ref` | Carica | Consente lo stesso `repo`, `ref` e `path`. `repo` può essere `owner/*` | Blocca lo stesso e un URL `git` allo stesso repository |

386| `git` | `url`, `ref`, `path`, `sparsePaths` | Un URL `user@host:path`, o un URL `https://` che termina in `.git`, contiene `/_git/` o nomina un repository github.com o gitlab.com. `#ref` fissa un ref | Carica | Consente lo stesso URL, `ref` e `path` | Blocca lo stesso e altre ortografie dello stesso repository github.com |

387| `npm` | `package` | Non prodotto | Non riesce a caricarsi: `NPM marketplace sources not yet implemented` | Analizza ma non corrisponde a nulla, perché nulla registra un marketplace `npm` | Analizza ma non corrisponde a nulla |

388| `file` | `path` | Un percorso a un file `.json` | Carica | Consente lo stesso percorso | Blocca lo stesso percorso |

389| `directory` | `path` | Un percorso a una directory | Carica | Consente lo stesso percorso | Blocca lo stesso percorso |

390| `settings` | `name`, `plugins`, `owner` | Non prodotto | Carica | Consente una voce con lo stesso `name` e `plugins` identici | Blocca lo stesso `name` |

391| `skills-dir` | none | Non prodotto | Non riesce a caricarsi: `Unsupported marketplace source type` | Mantiene il caricamento dei [plugin della directory delle competenze](/docs/it/plugins/org#keep-skills-directory-plugins-loading) mentre è impostata un'allowlist. Vedere [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists) | Interrompe il caricamento dei plugin della directory delle competenze |

392| `hostPattern` | `hostPattern` | Non prodotto | Non riesce a caricarsi: `Unsupported marketplace source type` | Consente sorgenti `github`, `git` e `url` il cui host corrisponde | Blocca quelle sorgenti |

393| `pathPattern` | `pathPattern` | Non prodotto | Non riesce a caricarsi: `Unsupported marketplace source type` | Consente sorgenti `file` e `directory` il cui `path` corrisponde | Blocca quelle sorgenti |

394 

395<h3 id="fields-by-type">

396 Fields by type

397</h3>

398 

399La tabella elenca ogni campo della sorgente marketplace che ha un predefinito, un vincolo o un significato specifico del tipo.

400 

401| Field | Types | Description |

402| :-------------- | :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

403| `url` | `url` | Collegamento al file `marketplace.json`. Claude Code scarica solo quel file, quindi i plugin del marketplace non possono utilizzare [sorgenti di percorso relativo](#relative-path-plugin-source) |

404| `url` | `git` | Il repository git da clonare |

405| `headers` | `url` | Mappa di intestazioni HTTP che Claude Code invia con il recupero, per host autenticati |

406| `headersHelper` | `url` | Comando che stampa intestazioni i cui valori sono troppo brevi per essere elencati in `headers`. Richiede Claude Code v2.1.238 o successivo. Vedere [Authenticate archive downloads](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) |

407| `repo` | `github` | In `marketplace add` e `extraKnownMarketplaces`, `repo` deve nominare un repository. `marketplace add` rifiuta `owner/*` come scorciatoia `owner/repo` non valida; in `extraKnownMarketplaces` Claude Code la prende letteralmente e il clone non riesce |

408| `ref` | `github`, `git` | Ramo o tag. Predefinito al ramo predefinito del repository |

409| `path` | `github`, `git` | Il percorso del file marketplace all'interno del repository. Predefinito a `.claude-plugin/marketplace.json` |

410| `path` | `file` | Il file marketplace stesso. Claude Code lo legge in posizione e prende la directory due livelli su come radice del marketplace, quindi mantenere il file in `<root>/.claude-plugin/marketplace.json` |

411| `path` | `directory` | La radice del marketplace, la directory che contiene `.claude-plugin/marketplace.json` |

412| `sparsePaths` | `github`, `git` | Array di directory per un checkout sparse, come `[".claude-plugin", "plugins"]`. `claude plugin marketplace add --sparse` lo imposta |

413| `skipLfs` | `github`, `git` | Accettato e non ha effetto. Vedere [Keep plugin files out of Git LFS](/docs/it/plugins/host-marketplace#keep-plugin-files-out-of-git-lfs) |

414| `name` | `settings` | Deve essere uguale alla chiave `extraKnownMarketplaces` e non può essere un [nome riservato](#reserved-names) |

415| `plugins` | `settings` | Il catalogo inline, senza file ospitato. Ogni elemento accetta `name`, `source`, `description`, `version`, `strict`, `headers` e `headersHelper`. Scrivere la `source` di ogni elemento come tipo di oggetto, perché un percorso relativo non ha repository da cui risolversi |

416 

417<h3 id="source-values-valid-only-in-policy-lists">

418 Source values valid only in policy lists

419</h3>

420 

421`hostPattern`, `pathPattern`, `skills-dir` e la forma `owner/*` di `repo` sono validi solo nei due elenchi di policy, `strictKnownMarketplaces` e `blockedMarketplaces`:

422 

423* **`hostPattern` e `pathPattern`**: espressioni regolari che Claude Code testa rispetto a una sorgente prima di recuperare da essa.

424* **`skills-dir`**: non una sorgente. Se si imposta `strictKnownMarketplaces` affatto, i [plugin della directory delle competenze](/docs/it/plugins/org#keep-skills-directory-plugins-loading) smettono di caricarsi fino a quando non si aggiunge `{"source": "skills-dir"}` a quell'elenco.

425* **`owner/*`**: come valore `repo` di `github`, corrisponde a ogni repository esattamente sotto quel proprietario GitHub. Richiede Claude Code v2.1.223 o successivo.

426 

427Per l'ordine di corrispondenza, la semantica esatta di `ref` e le ricette, vedere [Manage plugins for your organization](/docs/it/plugins/org).

428 

429<h3 id="source-objects-in-settings">

430 Source objects in settings

431</h3>

432 

433Un valore `extraKnownMarketplaces` è una mappa dal nome del marketplace a un oggetto con `source`. Questa voce registra un marketplace da un repository git al suo ramo `main`:

434 

435```json theme={null}

436{

437 "extraKnownMarketplaces": {

438 "your-marketplace": {

439 "source": {

440 "source": "git",

441 "url": "https://git.example.com/your-org/your-marketplace.git",

442 "ref": "main"

443 }

444 }

445 }

446}

447```

448 

449`strictKnownMarketplaces` e `blockedMarketplaces` sono array di oggetti sorgente. Questa allowlist ammette un proprietario GitHub e un host interno:

450 

451```json theme={null}

452{

453 "strictKnownMarketplaces": [

454 { "source": "github", "repo": "your-org/*" },

455 { "source": "hostPattern", "hostPattern": "^git\\.example\\.com$" }

456 ]

457}

458```

459 

460<h2 id="validation-messages">

461 Validation messages

462</h2>

463 

464`claude plugin validate <path>` accetta la radice del marketplace o il file marketplace stesso. Stampa errori e avvisi. Per i codici di uscita e `--strict`, vedere [plugin validate](/docs/it/plugins/cli-reference#plugin-validate).

465 

466Un messaggio nomina una voce di plugin per il suo indice, scritto come `plugins.1.source` o `plugins[1].source`.

467 

468Un messaggio con prefisso di un indice di voce e `plugin.json →`, come `plugins[2] plugin.json →`, riguarda i file propri di quel plugin. [`claude plugin validate` segnala errori](/docs/it/plugins/troubleshooting#claude-plugin-validate-reports-errors) elenca quei messaggi con le loro correzioni.

469 

470Gli avvisi che menzionano i nomi dei flag di Claude Desktop segnalano i nomi che Claude Code accetta ma Claude Desktop rifiuta, perché le regole dei nomi di Claude Desktop sono più rigorose.

471 

472La tabella mappa i messaggi a livello di marketplace al campo di cui ciascuno parla.

473 

474| Message | Level | Field |

475| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------- |

476| `Marketplace must have a name` | Error | `name` è vuoto |

477| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | Error | `name` |

478| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | Error | `name` |

479| `Marketplace name impersonates an official Anthropic/Claude marketplace` | Error | `name`. Vedere [Reserved names](#reserved-names) |

480| `Marketplace name cannot contain control or bidirectional-formatting characters` | Error | `name` contiene un carattere di controllo, come un escape o una nuova riga, o un carattere di formattazione bidirezionale Unicode |

481| `Marketplace name "inline" is reserved for --plugin-dir session plugins`, e le varianti `builtin`, `skills-dir`, `synced`, `claude-plugin-test`, `npm`, `pip`, `uv`, `cargo`, `github` e `gh` | Error | `name` |

482| `Author name cannot be empty` | Error | `owner.name` |

483| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Error | `plugins[i].name` |

484| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | `plugins[i].name` |

485| `Duplicate plugin name "x" found in marketplace` | Error | Due voci condividono un `name` |

486| `plugins.i.source: Invalid input` | Error | La `source` della voce non corrisponde a nessun tipo. Vedere [Invalid input on a source](#invalid-input-on-a-source) |

487| `plugins[i].source: Path contains "..": <path>` | Error | Una `source` relativa che sfugge dalla radice del marketplace |

488| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | Error | `plugins[i].source` |

489| `Plugin "x" sets headersHelper but is not "strict": false` | Error | `plugins[i].headersHelper`, su una voce `archive` |

490| `chain does not resolve (<reason>) — target must be a name in plugins[], a key in renames, or null` | Error | `renames.<old>` |

491| `target "x" is not a valid plugin name (PluginIdSchema)` | Error | `renames.<old>` |

492| `Unknown field 'x'. Claude Code ignores it at load time.` | Warning | La chiave denominata al livello superiore, sotto `metadata`, in una voce, o sotto la `relevance` di una voce |

493| `Marketplace has no plugins defined` | Warning | `plugins` è vuoto |

494| `Plugin "x" sets headers/headersHelper, which only apply to "archive" sources; they have no effect on this entry.` | Warning | `plugins[i].headers` o `plugins[i].headersHelper`, su una voce la cui `source` non è `archive` |

495| `Plugin "x" fetches its archive with a headersHelper but sets no sha256 pin` | Warning | `plugins[i].source.sha256` |

496| `Header "x" is a request-routing/identity header that catalog entries may not set; Claude Code drops it at download time.` | Warning | `plugins[i].headers.<name>` |

497| `Local source "x" is or traverses a symlink, so <path> was not read` | Warning | `plugins[i].source` |

498| `No marketplace description provided. Adding a description helps users understand what this marketplace offers` | Warning | `description` |

499| `Entry declares version "x" but <path>/plugin.json says "y". At install time, plugin.json wins` | Warning | `plugins[i].version`, su una voce di percorso relativo |

500| `'relevance' must be an object containing topic and signals; got <type>. It will be ignored at load time.` | Warning | `plugins[i].relevance` |

501| `'metadata' must be a free-form object; got <type>. It will be ignored at load time.` | Warning | `plugins[i].metadata` |

502| `'experimental' must be an object containing component declarations; got <type>. It will be ignored at load time.` | Warning | `plugins[i].experimental` |

503| `Marketplace name "x" is reserved in Claude Desktop` | Warning | `name` è `org`, `org-provisioned` o `unknown`. Claude Desktop rifiuta il marketplace |

504| `Marketplace name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | Warning | `name`. Claude Desktop rifiuta il marketplace |

505| `Plugin name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | Warning | `plugins[i].name`. Claude Desktop scarta la voce |

506 

507<h3 id="invalid-input-on-a-source">

508 Invalid input on a source

509</h3>

510 

511`Invalid input` su una `source` significa che l'oggetto non ha corrisposto a nessun tipo di sorgente. Controllare queste cause:

512 

513* Un percorso relativo che non inizia con `./`, diverso da `"."` o un [nome bare sotto `metadata.pluginRoot`](#relative-path-plugin-source)

514* Un `package` `npm` contenente `..`

515* Un tipo di `source` che non è uno delle [sorgenti di plugin](#plugin-sources)

516* Un tipo noto con un campo obbligatorio mancante o di tipo errato, come `github` senza `repo`

517 

518<h3 id="failures-that-validation-doesn’t-catch">

519 Failures that validation doesn't catch

520</h3>

521 

522`claude plugin validate` non segnala ogni fallimento. Una `hooks` di voce scritta come percorso di file o array passa la convalida e l'errore appare solo quando il plugin si carica, come [Hooks in an entry](#hooks-in-an-entry) descrive. Gli errori di recupero di una `source` appaiono anche solo dopo l'installazione, non nella convalida.

523 

524[`claude plugin list`](/docs/it/plugins/cli-reference) mostra un plugin che non è riuscito a caricarsi con il suo errore e [Troubleshoot plugins](/docs/it/plugins/troubleshooting) copre le stringhe di caricamento.

525 

526<h2 id="next-steps">

527 Next steps

528</h2>

529 

530* [Create a marketplace](/docs/it/plugins/create-marketplace): costruire un marketplace da questi campi e installare da esso localmente

531* [Host and maintain a marketplace](/docs/it/plugins/host-marketplace): dove mettere il file e come gli utenti ricevono i cambiamenti

532* [Plugin manifest reference](/docs/it/plugins/manifest-reference): i campi `plugin.json` che una voce può sovrascrivere

533* [Manage plugins for your organization](/docs/it/plugins/org): ricette di allowlist e blocklist che utilizzano questi valori di sorgente

plugins/measure.md +193 −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# Misurare il costo e l'utilizzo dei plugin

6 

7> Misurare il costo in token di un plugin Claude Code, scoprire se le persone lo usano ancora e scegliere gli eventi di telemetria per domande sui plugin a livello organizzativo.

8 

9Ogni sessione in cui un plugin è abilitato include i nomi e le descrizioni delle sue skills, agents e commands nel contesto di Claude, e questi token contano rispetto all'utilizzo dell'utente indipendentemente dal fatto che il plugin venga utilizzato o meno. Questa pagina mostra come visualizzare quel numero per un plugin, come ridurlo se mantieni il plugin, e dove viene visualizzato l'utilizzo in modo da poter determinare se un plugin è ancora utilizzato.

10 

11Questa pagina è per gli autori e i manutentori di plugin. Se amministri Claude Code per un'organizzazione, [Misurare su una flotta](#measure-across-a-fleet) copre le stesse domande su ogni macchina.

12 

13<Note>

14 Questi casi sono coperti su altre pagine:

15 

16 * **Testare l'affidabilità con cui il plugin cambia il comportamento di Claude**: vedi [Test plugins with evals](/docs/it/plugin-evals)

17 * **Ridurre il contesto della tua sessione**: vedi [Manage installed plugins](/docs/it/plugins/install#manage-installed-plugins) e la pagina [context window](/docs/it/context-window)

18</Note>

19 

20Inizia con [Misurare il costo di un plugin](#measure-what-a-plugin-costs).

21 

22<h2 id="measure-what-a-plugin-costs">

23 Misurare il costo di un plugin

24</h2>

25 

26Per vedere cosa aggiunge un plugin al contesto di Claude, esegui [`claude plugin details`](/docs/it/plugins/cli-reference#plugin-details) con il nome del plugin. Lo esegui nella tua shell, non al prompt di una sessione Claude Code in esecuzione. Il plugin deve essere caricato: installato, in una directory di skills, o passato con `--plugin-dir` nello stesso comando, come in `claude --plugin-dir ./formatter plugin details formatter`.

27 

28Questo esempio legge un plugin installato denominato `formatter` che ha due skills, un command, un agent, un hook e un server MCP:

29 

30```bash theme={null}

31claude plugin details formatter

32```

33 

34```text theme={null}

35formatter 1.0.0

36 Description: Formats and lints code on save

37 Source: formatter@my-marketplace

38 

39Component inventory

40 Skills (3) format-all, format-code, lint-fix

41 Agents (1) style-reviewer

42 Hooks (1) PostToolUse (harness-only — no model context cost)

43 MCP servers (1) formatter-tools (tool schemas resolved at runtime; not counted)

44 LSP servers (0)

45 

46Projected token cost

47 Always-on: ~146 tok added to every session

48 

49Per-component (rounded)

50 component always-on on-invoke

51 format-code ~40 ~30

52 lint-fix ~50 ~30

53 style-reviewer ~40 ~40

54 format-all < 20 ~30

55 

56 On-invoke cost is paid each time a skill or agent fires.

57 Token counts are estimates and may differ from actual usage.

58```

59 

60Ogni parte dell'output risponde a una domanda diversa:

61 

62* **Component inventory**: cosa Claude Code ha trovato nel plugin. I commands vengono conteggiati con le skills, quindi `format-all` appare sotto `Skills`. Gli hooks e i server MCP non ottengono una stima dei costi e nessuna riga per componente; per vedere cosa aggiungono gli strumenti MCP di un plugin, esegui `/context` in una sessione con il plugin abilitato e leggi la categoria `MCP tools`.

63* **Always-on**: i token che i nomi e le descrizioni delle skills, degli agents e dei commands del plugin aggiungono a ogni sessione in cui il plugin è abilitato, indipendentemente dal fatto che qualcosa venga eseguito. Questo è il numero che ogni utente porta con sé, e quello da ridurre.

64* **Per-component**: ogni riga divide una skill, un agent o un command nella sua quota always-on e nel suo costo on-invoke, che è il corpo che si carica solo quando quel componente viene eseguito. Usa la colonna always-on per trovare quale componente contribuisce di più.

65 

66<h3 id="lower-the-always-on-figure">

67 Ridurre il valore always-on

68</h3>

69 

70Se mantieni il plugin, questi cambiamenti riducono quello che aggiunge a ogni sessione. Se lo usi solo, le tue opzioni sono disabilitarlo o disinstallarlo; vedi [Manage installed plugins](/docs/it/plugins/install#manage-installed-plugins).

71 

72Il valore always-on conta il nome di ogni componente più la sua `description` e il frontmatter `when_to_use`. Per ridurlo:

73 

74* Accorcia le descrizioni di skills e agents.

75* Dividi un plugin grande in modo che gli utenti installino solo i componenti di cui hanno bisogno.

76 

77La descrizione di una skill è anche quella che Claude abbina a una richiesta, quindi una più breve può impedire che la skill si attivi. Dopo aver ridotto le descrizioni, controlla l'attivazione con un [grader `tool_used: Skill`](/docs/it/plugin-evals#create-your-first-eval-suite) nella tua suite di eval.

78 

79Per sapere cosa contribuisce ogni tipo di componente, vedi [plugin components](/docs/it/plugins/components).

80 

81<h3 id="cost-shown-to-users-before-install">

82 Costo mostrato agli utenti prima dell'installazione

83</h3>

84 

85I plugin nel marketplace ufficiale mostrano il loro costo agli utenti prima dell'installazione. In `/plugin`, quando un utente sfoglia l'elenco dei plugin di un marketplace e seleziona un plugin, il riquadro dei dettagli mostra una sezione **Context cost** con una riga `Every turn:` e una riga `When invoked:`. Quando il valore always-on è 2.000 token o più, la riga `Every turn:` appare evidenziata.

86 

87Un plugin nel tuo marketplace non ha una sezione **Context cost**.

88 

89<h2 id="check-whether-a-plugin-is-used">

90 Verificare se un plugin è utilizzato

91</h2>

92 

93Claude Code non segnala l'utilizzo di un plugin al suo autore. L'utilizzo viene registrato sulla macchina di ogni persona che ha installato il plugin, quindi quello che puoi imparare dipende dalla tua relazione con quelle persone:

94 

95* **Amministri Claude Code per la loro organizzazione**: gli eventi OpenTelemetry e l'Analytics API contano le installazioni e le attivazioni di skills su ogni macchina. Vedi [Misurare su una flotta](#measure-across-a-fleet).

96* **Sono colleghi che puoi chiedere**: il Claude Code di ogni utente mostra loro se usano ancora il plugin, in quattro posti: il pannello [`/plugin`](#not-used-recently-in-/plugin), [`/skill-doctor`](#find-skills-that-never-run), [`/doctor`](#unused-plugins-in-/doctor), e [`/usage`](#usage-share-in-/usage). Tutti e quattro sono comandi che l'utente esegue al prompt di Claude Code in una sessione sulla propria macchina.

97* **Nessuno dei due**: non hai alcun segnale di utilizzo da Claude Code per quel plugin.

98 

99<h3 id="not-used-recently-in-/plugin">

100 Non utilizzato di recente in `/plugin`

101</h3>

102 

103Nella scheda **Installed** di `/plugin`, un plugin che l'utente ha installato da un marketplace si sposta sotto un'intestazione **Not used recently** una volta che non è stato utilizzato per almeno 14 giorni e 10 sessioni. I dettagli del plugin mostrano anche una riga `Last used:`. Per sapere cosa fanno gli utenti con quell'intestazione e quella riga, vedi [Find plugins you no longer use](/docs/it/plugins/install#find-plugins-you-no-longer-use).

104 

105L'intestazione **Not used recently** non appare mai per:

106 

107* Plugin caricati con `--plugin-dir` o da una directory di skills

108* Plugin abilitati tramite impostazioni gestite, o montati da una [directory seed](/docs/it/plugins/org#seed-containers-and-ci)

109* Plugin che includono un tema, uno stile di output, un monitor o un workflow, perché questi sono in uso senza un'attivazione tracciata

110 

111Un [language server](/docs/it/plugins/components#lsp-servers) di un plugin conta come utilizzato quando fornisce diagnostica o risponde a una richiesta di navigazione del codice, quindi un plugin LSP il cui server è attivo nelle tue sessioni non è elencato come inutilizzato.

112 

113Quando l'organizzazione dell'utente imposta [`strictKnownMarketplaces`](/docs/it/plugins/org#restrict-what-users-can-install), né l'intestazione né la riga `Last used:` appare.

114 

115<h3 id="find-skills-that-never-run">

116 Trovare skills che non vengono mai eseguite

117</h3>

118 

119Esegui `/skill-doctor` per vedere il costo di ogni tua skill e quanto spesso viene utilizzata. Contrassegna le skills che sono nell'elenco di skills di Claude ma non sono mai state richiamate, incluse le skills dai plugin.

120 

121In una sessione interattiva, il report si apre nella scheda **Stats** del gestore `/plugin`. Vedi [Find unused skills](/docs/it/skills#find-unused-skills) per sapere cosa copre il report e dove è disponibile.

122 

123<h3 id="unused-plugins-in-/doctor">

124 Plugin inutilizzati in `/doctor`

125</h3>

126 

127Il checkup `/doctor` elenca ogni skill installata dall'utente, server MCP e plugin, e consiglia di disabilitare quelli che non sono stati utilizzati. Vedi [`/doctor` in the commands reference](/docs/it/commands#all-commands).

128 

129<h3 id="usage-share-in-/usage">

130 Condivisione dell'utilizzo in `/usage`

131</h3>

132 

133Su un piano Pro, Max, Team o Enterprise, la suddivisione `/usage` attribuisce l'utilizzo recente a skills, subagents, plugin e server MCP come quota del totale. Vedi [Using the `/usage` command](/docs/it/costs#using-the-/usage-command).

134 

135<h2 id="measure-across-a-fleet">

136 Misurare su una flotta

137</h2>

138 

139Se amministri Claude Code per un'organizzazione, puoi misurare il costo e l'utilizzo dei plugin su ogni macchina da una di queste fonti:

140 

141* **OpenTelemetry events**: Claude Code esporta questi al tuo backend una volta che [configuri un esportatore](/docs/it/monitoring-usage). Vedi [OpenTelemetry events for plugin installs and use](#pick-the-opentelemetry-event-for-each-question).

142* **Analytics API**: servita dai record di Anthropic, senza necessità di esportatore. Vedi [Query the Analytics API](#query-the-analytics-api).

143 

144<h3 id="pick-the-opentelemetry-event-for-each-question">

145 OpenTelemetry events for plugin installs and use

146</h3>

147 

148Questi eventi e attributi OpenTelemetry rispondono a ogni domanda sui plugin dal tuo backend:

149 

150| Question | OpenTelemetry event or attribute |

151| :------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------- |

152| Which plugins get installed, and from where | [`claude_code.plugin_installed`](/docs/it/monitoring-usage#plugin-installed-event), one per install |

153| Which plugins are active in how many sessions | [`claude_code.plugin_loaded`](/docs/it/monitoring-usage#plugin-loaded-event), one per enabled plugin at session start |

154| Which skills activate, and which plugin owns them | [`claude_code.skill_activated`](/docs/it/monitoring-usage#skill-activated-event), with `plugin.name` and `marketplace.name` for plugin skills |

155| What a plugin's hooks report | [`claude_code.hook_plugin_metrics`](/docs/it/monitoring-usage#hook-plugin-metrics-event), emitted only for hooks in official-marketplace plugins |

156| What a plugin costs in API spend | `plugin.name` and `marketplace.name` on the [cost counter](/docs/it/monitoring-usage#cost-counter), set when the active skill or subagent belongs to a plugin |

157 

158<h3 id="redacted-plugin-names-in-your-backend">

159 Nomi di plugin redatti nel tuo backend

160</h3>

161 

162I plugin dal marketplace ufficiale segnalano il loro nome di plugin e il nome del marketplace al tuo backend letteralmente. Il nome di ogni altro plugin è redatto o omesso per impostazione predefinita, incluso un plugin dal marketplace della tua organizzazione. Il [trust tier](/docs/it/plugins/security#find-plugins-in-telemetry) del plugin decide quale.

163 

164Per ottenere nomi reali su alcuni eventi, imposta la variabile di ambiente [`OTEL_LOG_TOOL_DETAILS`](/docs/it/monitoring-usage#common-configuration-variables) su `1` sulle macchine che esportano telemetria, ad esempio nel blocco `env` delle stesse [impostazioni gestite](/docs/it/monitoring-usage#administrator-configuration) che configurano l'esportatore:

165 

166| Event | Default | With `OTEL_LOG_TOOL_DETAILS=1` |

167| :------------------------------------ | :------------------------------------------------------------------------------------------------- | :-------------------------------------------------- |

168| `plugin_loaded` | `plugin.name` and `marketplace.name` are the literal string `third-party` | Real names |

169| `plugin_installed`, `skill_activated` | `plugin.name` and `marketplace.name` omitted; on `skill_activated`, `skill.name` is `custom_skill` | Real names |

170| Cost counter | `plugin.name` is `third-party`; `marketplace.name` absent | Real `plugin.name`; `marketplace.name` still absent |

171 

172Su `plugin_loaded`, `plugin_id_hash` identifica ancora ogni plugin per impostazione predefinita, quindi puoi contare i plugin di terze parti distinti.

173 

174<h3 id="query-the-analytics-api">

175 Query the Analytics API

176</h3>

177 

178Sul piano Enterprise, l'Analytics API risponde a "quali plugin installa e richiama la mia organizzazione" dai record di Anthropic, senza necessità di esportatore. [`GET /v1/organizations/analytics/plugins`](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) restituisce conteggi di installazione e attivazione per plugin, per giorno, su Claude Code e Cowork, che puoi raggruppare per utente, gruppo RBAC o prodotto.

179 

180L'attività del plugin che raggiunge Anthropic senza un nome di plugin appare in una riga aggregata `third-party`. [Find plugins in telemetry](/docs/it/plugins/security#find-plugins-in-telemetry) dice quali plugin Claude Code segnala per nome.

181 

182Autentica la richiesta con una chiave API che ha lo scope `read:analytics`, che un Primary Owner crea come descritto in [Access data programmatically](/docs/it/analytics#access-data-programmatically).

183 

184Vedi il [riferimento dell'endpoint](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) per i parametri e i campi di risposta.

185 

186<h2 id="next-steps">

187 Passaggi successivi

188</h2>

189 

190* [Test plugins with evals](/docs/it/plugin-evals): misurare l'affidabilità con cui il plugin guida Claude, non solo quello che costa

191* [Ridurre il valore always-on](#lower-the-always-on-figure): cosa cambiare nel plugin per ridurre il suo costo per turno

192* [Plugin security and trust](/docs/it/plugins/security#find-plugins-in-telemetry): quali campi di telemetria portano nomi di plugin e quando sono redatti

193* [Monitoring usage](/docs/it/monitoring-usage): il riferimento completo degli eventi OpenTelemetry

plugins/org.md +460 −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# Gestire i plugin Claude Code per la tua organizzazione

6 

7> Controlla quali plugin Claude Code installa e consente su ogni macchina della tua organizzazione attraverso impostazioni gestite.

8 

9Le impostazioni gestite ti permettono di decidere quali plugin Claude Code installa e consente su ogni macchina della tua organizzazione. Gli utenti non possono ignorarle. Le consegni come [impostazioni gestite dal server](/docs/it/server-managed-settings) dalla console di amministrazione di claude.ai o come impostazioni gestite dall'endpoint tramite MDM o un file `managed-settings.json`. La maggior parte dei controlli su questa pagina hanno effetto solo dalle impostazioni gestite.

10 

11Questa pagina è per gli amministratori e le impostazioni qui governano Claude Code.

12 

13<Note>

14 Questi casi sono coperti su altre pagine:

15 

16 * **Installare plugin per te stesso**: inizia da [Install plugins](/docs/it/plugins/install)

17 * **Controllare quali plugin i membri possono utilizzare in claude.ai e Cowork**: vedi [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) nel centro assistenza

18 * **La pagina dei plugin nelle impostazioni di amministrazione di claude.ai**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) attiva i plugin per gli account claude.ai dei membri, e questi raggiungono Claude Code come [synced plugins](/docs/it/plugins/loading#synced-plugins). Non imposta nessuna delle chiavi su questa pagina

19</Note>

20 

21Le sezioni seguono l'ordine che la maggior parte dei rollout seguono: [richiedere plugin](#pre-install-and-require-plugins) per tutti o per repository, [seed containers e CI](#seed-containers-and-ci), [limitare](#restrict-what-users-can-install) ciò che gli utenti possono aggiungere da soli, [impostare la politica di aggiornamento](#set-update-policy), quindi [controllare](#audit-and-review) ciò che è installato. Per rivedere ogni chiave di politica in un unico posto, vedi la [matrice di controllo](#control-matrix).

22 

23<h2 id="pre-install-and-require-plugins">

24 Pre-install and require plugins

25</h2>

26 

27Un marketplace è un catalogo di plugin che Claude Code recupera da un repository git, un URL o un percorso locale. Una volta registrato un marketplace su una macchina, Claude Code può installare plugin da esso.

28 

29Per installare plugin per una flotta, imposta due chiavi insieme nelle [impostazioni gestite](/docs/it/managed-settings), il file di politica o la politica consegnata dal server che ogni macchina della tua organizzazione legge: `extraKnownMarketplaces` registra un marketplace su ogni macchina, e `enabledPlugins` nomina i plugin da installare e abilitare da esso. [Choose a delivery mechanism](#choose-a-delivery-mechanism) copre come le impostazioni gestite raggiungono ogni macchina.

30 

31<h3 id="choose-a-delivery-mechanism">

32 Choose a delivery mechanism

33</h3>

34 

35Le impostazioni gestite raggiungono una macchina attraverso uno di tre meccanismi di consegna:

36 

37* **Server-managed settings**: imposta le chiavi del plugin come JSON in [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code). Richiede un [Owner role](/docs/it/server-managed-settings#access-control) nella tua organizzazione Claude. Una sessione cloud recupera queste impostazioni prima di installare i plugin.

38* **MDM policies**: su macOS, consegna un plist le cui chiavi di livello superiore sono le chiavi delle impostazioni. Su Windows, archivia l'intero documento JSON come stringa in un valore di registro. Il dominio plist e la chiave di registro sono in [Where each mechanism stores the policy](/docs/it/managed-settings#where-each-mechanism-stores-the-policy).

39* **Managed settings file**: posiziona un `managed-settings.json` nel percorso di sistema della piattaforma. Puoi anche aggiungere file alla directory drop-in `managed-settings.d/` accanto ad esso. I percorsi dei file per piattaforma sono in [Where each mechanism stores the policy](/docs/it/managed-settings#where-each-mechanism-stores-the-policy), e le regole di merge drop-in sono in [Split a file-based policy across teams](/docs/it/managed-settings#split-a-file-based-policy-across-teams).

40 

41Usa le impostazioni gestite dal server se hai un'organizzazione Claude for Teams o Enterprise su claude.ai e i tuoi dispositivi non sono tutti sotto MDM. Altrimenti usa una politica MDM o il file delle impostazioni gestite. Per il compromesso, vedi [Choose between server-managed and endpoint-managed settings](/docs/it/server-managed-settings#choose-between-server-managed-and-endpoint-managed-settings).

42 

43<h4 id="which-managed-source-applies-on-a-machine">

44 Which managed source applies on a machine

45</h4>

46 

47Per impostazione predefinita, solo una di queste tre fonti si applica su una macchina. Claude Code utilizza la prima che consegna una chiave di politica, controllando prima le impostazioni gestite dal server, poi le politiche MDM, quindi il file delle impostazioni gestite. Se le impostazioni gestite dal server consegnano anche una sola chiave non correlata, Claude Code ignora le chiavi del plugin in una politica MDM o nel file delle impostazioni gestite su quella macchina, a parte le [chiavi che legge da ogni fonte](/docs/it/managed-settings#keys-read-from-every-admin-source).

48 

49Per applicare ogni fonte invece, imposta [`managedSourcesBehavior`](/docs/it/managed-settings#compose-every-managed-source) a `"merge"`.

50 

51[How Claude Code combines managed sources](/docs/it/managed-settings#how-claude-code-combines-managed-sources) elenca anche le chiavi che Claude Code legge da ogni fonte in entrambi i modi.

52 

53<h3 id="require-a-marketplace-and-its-plugins">

54 Require a marketplace and its plugins

55</h3>

56 

57Aggiungi il marketplace sotto `extraKnownMarketplaces`, con chiave il `name` del marketplace dal suo `marketplace.json`. Quindi aggiungi ogni plugin sotto `enabledPlugins` come `plugin-name@marketplace-name`. Ogni voce di marketplace porta un oggetto `source` con un campo `source` che nomina il tipo, come `github`. Questo esempio di impostazioni gestite registra un marketplace dell'organizzazione e forza l'abilitazione di due plugin da esso:

58 

59```json theme={null}

60{

61 "extraKnownMarketplaces": {

62 "your-marketplace": {

63 "source": { "source": "github", "repo": "your-org/your-marketplace" },

64 "autoUpdate": true

65 }

66 },

67 "enabledPlugins": {

68 "code-formatter@your-marketplace": true,

69 "deploy-helper@your-marketplace": true

70 }

71}

72```

73 

74Dopo che le impostazioni raggiungono una macchina, Claude Code registra il marketplace e installa i due plugin all'inizio della sessione successiva dell'utente. Gli utenti li vedono in `/plugin`, e disabilitarne uno al loro ambito non lo impedisce di caricarsi, perché le impostazioni gestite hanno precedenza su ogni altro ambito.

75 

76Per bloccare un plugin a ogni ambito e nasconderlo dall'elenco del marketplace, impostalo a `false` nel `enabledPlugins` gestito invece.

77 

78Regola i campi `autoUpdate` e `source` per il tuo marketplace:

79 

80* **`autoUpdate`**: `true` mantiene il marketplace e i suoi plugin aggiornati in background, e `false` lo disattiva. Vedi [Set update policy](#set-update-policy).

81* **`source`**: `github` è uno di diversi tipi di fonte. Una fonte `git` accetta un `url` per GitLab o un host interno, e una fonte `url` accetta l'indirizzo di un `marketplace.json` ospitato. Ogni forma di fonte è nel [marketplace reference](/docs/it/plugins/marketplace-reference).

82 

83Se il marketplace è un repository git privato, ogni utente ha bisogno dell'accesso in lettura ad esso. Il clone di un marketplace basato su git viene eseguito con git sulla macchina dell'utente, utilizzando credenziali archiviate e nessun prompt. Per gli utenti senza account su host git, usa un [seed](#seed-containers-and-ci) invece.

84 

85Una voce gestita sostituisce anche una voce di marketplace con lo stesso nome o una copia `--plugin-dir` da un'altra fonte:

86 

87* **Marketplaces**: una voce di marketplace gestita sostituisce una voce di precedenza inferiore con lo stesso nome, e i campi delle due voci non si uniscono.

88* **Copie `--plugin-dir`**: `--plugin-dir` carica un plugin da una directory locale per una sessione. Per ciò che accade quando il nome di quella copia corrisponde a un plugin che il tuo `enabledPlugins` gestito nomina, vedi [Name conflicts](/docs/it/plugins/loading#name-conflicts).

89 

90Il marketplace ufficiale di Anthropic `claude-plugins-official` non ha bisogno di una voce `extraKnownMarketplaces` quando `enabledPlugins` imposta uno dei suoi plugin a `true`. Quella voce `name@claude-plugins-official` dichiara il marketplace da sola, ovunque si applichino queste chiavi. Se non abiliti nessuno dei suoi plugin e vuoi comunque che sia registrato su ogni macchina, dagli una voce esplicita, come [Allow the official marketplace and your own](#allow-the-official-marketplace-and-your-own) fa.

91 

92<h3 id="require-plugins-per-repository">

93 Require plugins per repository

94</h3>

95 

96Per coprire i contributori di un repository invece di tutta la tua flotta, imposta `extraKnownMarketplaces` e `enabledPlugins` nel `.claude/settings.json` di quel repository. Le voci `extraKnownMarketplaces` si applicano solo in una cartella che il contributore ha fiducia, e in una cartella non fidata Claude Code le ignora senza un messaggio:

97 

98* **Sessioni interattive**: Claude Code registra il marketplace solo dopo che il contributore accetta il [workspace trust dialog](/docs/it/permissions#what-runs-before-you-trust-a-folder) per quella cartella.

99* **[Esecuzioni non interattive `-p`](/docs/it/headless)**: le voci si applicano solo in una cartella la cui fiducia l'utente ha già accettato interattivamente, o il cui flag `hasTrustDialogAccepted` hai impostato in `~/.claude.json`.

100 

101Un plugin che il marketplace elenca per un percorso relativo si carica dalla copia del marketplace una volta che le voci `extraKnownMarketplaces` del repository si applicano. Un plugin il cui ingresso del marketplace punta a una fonte esterna invece, come il repository GitHub del plugin stesso, non si installa dalle impostazioni del repository da solo. Ogni contributore vede `Plugin "<name>" is enabled in project settings but isn't installed` finché non esegue `claude plugin install <name>@<marketplace> --scope project`, come [Install plugins](/docs/it/plugins/install) descrive.

102 

103Se usi una fonte `directory` o `file` locale con un percorso relativo, il percorso si risolve rispetto al checkout principale del tuo repository. Quando esegui Claude Code da un git worktree, il percorso punta ancora al checkout principale, quindi tutti i worktree condividono la stessa posizione del marketplace.

104 

105Per distribuire un bundle di plugin con dipendenze, metti il plugin bundle in `enabledPlugins`, come [Plugin dependencies](/docs/it/plugins/dependencies) descrive.

106 

107<h3 id="when-each-surface-applies-the-plugin-keys">

108 When each surface applies the plugin keys

109</h3>

110 

111La tabella mostra quando ogni tipo di sessione Claude Code applica `extraKnownMarketplaces` e `enabledPlugins`, dalle impostazioni gestite e dal `.claude/settings.json` di un repository. Per l'app Desktop e le estensioni IDE, vedi [Install a plugin](/docs/it/plugins/install#install-a-plugin).

112 

113| Surface | Managed `extraKnownMarketplaces` and `enabledPlugins` | Repository `.claude/settings.json` |

114| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------- |

115| Terminal, interactive | Applied at session start on every machine that receives the settings | `extraKnownMarketplaces` applied after trust; `enabledPlugins` applied at session start |

116| `-p` and CI | Applied at session start, with installs running in the background | `extraKnownMarketplaces` in trusted folders only; `enabledPlugins` applied |

117| Cloud sessions | In an Anthropic-hosted environment, only server-managed settings reach the session, which waits for them before it installs plugins. MDM policies and managed settings files stay on the user's machine. For a self-hosted environment, see [Where and when a policy applies](/docs/it/managed-settings#where-and-when-a-policy-applies) | See the **Cloud session** tab under [Install a plugin](/docs/it/plugins/install#install-a-plugin) |

118 

119In a `-p` or CI run, marketplaces and plugins install in the background, so a plugin can be missing from the first turn. Set `CLAUDE_CODE_SYNC_PLUGIN_INSTALL=1` to make the run wait for the install before its first query.

120 

121<h3 id="confirm-the-rollout">

122 Confirm the rollout

123</h3>

124 

125Check that the marketplace and plugins arrived on a machine or in a CI run:

126 

127* **On one machine**: start Claude Code and run `/plugin`. The marketplace and the plugins are listed.

128* **In CI**: run `claude -p` with `--output-format stream-json --verbose`. The `init` event lists the loaded plugins under `plugins`.

129 

130<h2 id="seed-containers-and-ci">

131 Contenitori seed e CI

132</h2>

133 

134Per le immagini di container e i runner CI che non possono clonare in fase di esecuzione, pre-popola una directory di plugin al momento della compilazione e punta `CLAUDE_CODE_PLUGIN_SEED_DIR` ad essa. Claude Code registra i marketplace del seed all'avvio e carica le cache dei plugin dal seed in posizione, senza clonare.

135 

136Un seed serve anche gli utenti che non hanno un account su un git-host.

137 

138<Note>

139 Negli ambienti CI/CD, configura un helper di credenziali git prima di installare plugin da repository privati. Su GitHub Actions, esporta un token con accesso in lettura al repository del marketplace come `GH_TOKEN`, quindi esegui `gh auth setup-git`. Il token di workflow predefinito può accedere solo al repository del workflow stesso, quindi un marketplace privato in un altro repository necessita di un token di accesso personale o un token dell'app.

140</Note>

141 

142<Steps>

143 <Step title="Installa nel seed al momento della compilazione">

144 Imposta `CLAUDE_CODE_PLUGIN_CACHE_DIR` al percorso del seed in modo che il marketplace e i plugin si installino lì invece di `~/.claude/plugins`:

145 

146 ```bash theme={null}

147 CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/your-marketplace

148 CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install code-formatter@your-marketplace

149 ```

150 

151 Il seed ha lo stesso layout di `~/.claude/plugins`: `known_marketplaces.json`, `marketplaces/<name>/`, e `cache/<marketplace>/<plugin>/<version>/`. Puoi montare il seed in un percorso diverso da quello in cui lo hai compilato.

152 </Step>

153 

154 <Step title="Punta il runtime al seed">

155 Imposta `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` nell'ambiente del container. Per utilizzare più seed, separa i loro percorsi con `:` su Unix o `;` su Windows. Claude Code utilizza il primo seed che contiene un determinato marketplace o cache di plugin.

156 </Step>

157 

158 <Step title="Abilita i plugin">

159 I plugin in un seed non sono abilitati automaticamente. Imposta `enabledPlugins` per ogni plugin del seed che desideri caricare, nelle impostazioni gestite o nel file `.claude/settings.json` del repository.

160 </Step>

161</Steps>

162 

163Per verificare un seed, esegui `claude -p` con `--output-format stream-json --verbose` nell'immagine. Nell'elenco `plugins` dell'evento `init`, il `path` di ogni plugin caricato si trova sotto il seed, ad esempio `/opt/claude-seed/cache/your-marketplace/code-formatter/1.0.0`.

164 

165I marketplace seed seguono queste regole:

166 

167* **Sola lettura**: Claude Code non scrive mai nel seed e forza `autoUpdate` disattivato per i marketplace seed.

168* **Le voci seed hanno la precedenza**: ad ogni avvio, un marketplace dichiarato nel seed sovrascrive la voce dell'utente con lo stesso nome. Gli utenti escludono un plugin seed con `claude plugin disable`, non rimuovendo il marketplace.

169* **L'aggiornamento e la rimozione non riescono**: `claude plugin marketplace update <name>` e `remove` senza `--scope` su un marketplace seed non riescono con un messaggio che nomina la directory del seed.

170* **La policy si applica comunque**: il [allowlist e blocklist](#restrict-what-users-can-install) controllano anche la fonte registrata di un marketplace seed. Consenti la fonte da cui hai compilato il seed.

171 

172Per flotte senza accesso git in uscita, combina un seed con fonti di marketplace `directory` o `file` su un mount condiviso. Imposta anche `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1`, che disattiva anche l'[auto-aggiornamento dei plugin](/docs/it/plugins/loading#when-auto-update-runs). Se è disponibile un proxy, consulta [Configurazione proxy](/docs/it/network-config#proxy-configuration) per le variabili da impostare.

173 

174<h2 id="restrict-what-users-can-install">

175 Limitare ciò che gli utenti possono installare

176</h2>

177 

178L'elenco consentito gestito `strictKnownMarketplaces` e l'elenco bloccato `blockedMarketplaces` decidono da quali fonti di marketplace i plugin possono provenire. La fonte di un marketplace è il repository git, l'URL o il percorso locale da cui Claude Code lo recupera. Entrambi gli elenchi corrispondono alla fonte del marketplace da cui proviene un plugin, non alla voce del plugin stesso all'interno di quel marketplace.

179 

180Per il blocco comune, che consente il marketplace ufficiale e il vostro, vedere [Consentire il marketplace ufficiale e il vostro](#allow-the-official-marketplace-and-your-own). Abbinarlo a [`disableSideloadFlags`](#control-matrix) in modo che gli utenti non possano caricare plugin da una directory locale o URL.

181 

182Entrambi gli elenchi si applicano prima di qualsiasi download e di nuovo all'avvio della sessione:

183 

184* **Prima di un download**: gli elenchi si applicano quando un utente aggiunge un marketplace e ad ogni installazione, aggiornamento, refresh e auto-aggiornamento.

185* **All'avvio della sessione**: gli elenchi si applicano di nuovo ai plugin già installati, quindi un plugin installato la cui fonte di marketplace non corrisponde più non si carica. `/plugin` lo elenca con `Marketplace "<name>" is not in the allowed marketplace list` o `Marketplace "<name>" is blocked by enterprise policy`.

186 

187Il punto in cui i due elenchi vengono applicati dipende da dove li impostate:

188 

189* **La console di amministrazione claude.ai**: Claude Code applica entrambi gli elenchi nelle sessioni che [leggono le impostazioni gestite dal server](/docs/it/managed-settings#where-and-when-a-policy-applies). claude.ai li controlla anche quando chiunque nella vostra organizzazione aggiunge un nuovo marketplace da un repository git su claude.ai, o da **Customize** nell'app Claude Desktop al di fuori della scheda Code. Questo copre un marketplace che un membro aggiunge per il proprio account e uno aggiunto per l'intera organizzazione in [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins). claude.ai rifiuta un repository che l'elenco consentito non ammette o che l'elenco bloccato nomina. Non ri-controlla un marketplace che è stato aggiunto in uno dei due posti prima di impostare gli elenchi, e non controlla i plugin caricati.

190* **Un file di impostazioni gestite, una policy a livello di sistema operativo o un'altra fonte gestita**: Claude Code applica entrambi gli elenchi dove legge quella fonte. claude.ai non la legge.

191 

192Mentre è impostato un elenco consentito, o un elenco bloccato nomina una fonte diversa da [`skills-dir`](#blocklist-with-blockedmarketplaces), un plugin il cui marketplace Claude Code non riesce a trovare non si carica. `/plugin` mostra l'errore di policy per esso piuttosto che un errore di non trovato. Il caso comune è una voce `enabledPlugins` obsoleta per un marketplace che nessuno ha registrato.

193 

194<h3 id="control-matrix">

195 Control matrix

196</h3>

197 

198La tabella elenca ogni chiave di policy dei plugin, cosa applica e cosa non può fare.

199 

200| Chiave | Cosa applica | Cosa non può fare |

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

202| `strictKnownMarketplaces` | Elenco consentito delle fonti di marketplace. `[]` blocca ogni fonte, incluso il marketplace ufficiale. Alias: `allowedMarketplaces` | Non registra un marketplace, non limita le voci all'interno di un marketplace consentito, o non blocca `--plugin-dir` |

203| `blockedMarketplaces` | Elenco bloccato delle fonti di marketplace, controllato prima dell'elenco consentito | Non blocca un marketplace già registrato da una fonte che non corrisponde |

204| `syncClaudeAiPlugins` | Impostare `false` per interrompere il download e il caricamento da parte di Claude Code dei plugin [sincronizzati da claude.ai](/docs/it/plugins/loading#synced-plugins) per l'account di ogni utente. Richiede Claude Code v2.1.273 o successivo | Non disattiva un plugin sincronizzato. Per questo, impostare `"<name>@synced": false` in [`enabledPlugins`](/docs/it/settings-reference#enabledplugins) |

205| `enabledPlugins` | `true` forza l'abilitazione, `false` blocca in ogni ambito e nasconde il plugin | Non installa un plugin il cui marketplace non è registrato o consentito |

206| `disableSideloadFlags` | Rifiuta `--plugin-dir`, `--plugin-url`, `--agents`, l'opzione `plugins` dell'Agent SDK, e non-SDK `--mcp-config` all'avvio, e rifiuta le cartelle nominate nella variabile [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/it/env-vars#variables) allo stesso modo | Non limita `.mcp.json`, `claude mcp add`, o server forniti da SDK. Abbinarlo a [`allowedMcpServers`](/docs/it/managed-mcp) |

207| `disableCommandPluginSources` | Blocca i plugin con una fonte `command` dall'installazione, aggiornamento o caricamento. Una fonte `command` è quella il cui directory di plugin è prodotto eseguendo un comando sulla macchina. Quando non impostato, assume il valore di `allowManagedHooksOnly` | Non influisce su altri tipi di fonte |

208| `allowManagedHooksOnly` | Limita quali hook vengono eseguiti. Vedere [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly) | Non si fida degli hook dai plugin che gli utenti abilitano da soli |

209| `strictPluginOnlyCustomization` | Blocca skills, agents, hooks e server MCP che non provengono da un plugin, impostazioni gestite o built-in di Claude Code. Impostare `true` per coprire tutti e quattro i tipi, o un array di valori `skills`, `agents`, `hooks` e `mcp` come `["skills", "hooks"]` per coprirne alcuni | Non limita quali plugin gli utenti installano. Abbinarlo a `strictKnownMarketplaces` |

210| `pluginSuggestionMarketplaces` | Marketplace i cui plugin possono apparire come suggerimenti di installazione. Vedere [Consigliare plugin](#recommend-plugins) | Non influisce sui suggerimenti incorporati |

211| `pluginTrustMessage` | Aggiunge il vostro testo all'avviso di fiducia che `/plugin` mostra prima che un plugin si installi | Non cambia il testo dell'avviso stesso |

212| `allowedChannelPlugins` | Sostituisce l'elenco predefinito di plugin autorizzati a inviare messaggi di canale. Richiede `channelsEnabled: true` | Vedere [Limitare quali plugin di canale possono essere eseguiti](/docs/it/channels#restrict-which-channel-plugins-can-run) |

213| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](/docs/it/env-vars) | Interrompe le sessioni di terminale interattive dal registrare automaticamente il marketplace ufficiale | Non rimuove un marketplace già registrato. L'elenco consentito e l'elenco bloccato controllano la stessa registrazione automatica senza di esso. Una macchina che ha iniziato una volta con esso impostato non riprende la registrazione automatica dopo averlo disimpostato |

214 

215Ogni chiave nella tabella è un'impostazione gestita, a parte `enabledPlugins`, `syncClaudeAiPlugins` e `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`:

216 

217* **`enabledPlugins`**: potete impostarla in qualsiasi ambito, e le impostazioni gestite la bloccano.

218* **`syncClaudeAiPlugins`**: ogni utente può anche impostarla nelle proprie impostazioni utente o locali. Vedere il suo [ambito nel riferimento delle impostazioni](/docs/it/settings-reference#syncclaudeaiplugins).

219* **`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`**: questa è una variabile di ambiente che consegnate attraverso il blocco `env` gestito mostrato in [Disattivare gli aggiornamenti per l'intera flotta](#turn-updates-off-for-the-whole-fleet).

220 

221Ogni chiave di impostazioni qui ha una voce nel [riferimento delle impostazioni](/docs/it/settings-reference).

222 

223<h4 id="aliases-for-the-marketplace-keys">

224 Alias per le chiavi di marketplace

225</h4>

226 

227`strictKnownMarketplaces` può anche essere scritto `allowedMarketplaces`, e `extraKnownMarketplaces` può anche essere scritto `additionalMarketplaces`.

228 

229* **Versione**: gli alias richiedono Claude Code v2.1.232 o successivo, e i client più vecchi li ignorano. In un file che una flotta mista legge, mantenete i nomi canonici.

230* **Entrambe le ortografie impostate**: quando un file imposta entrambe le ortografie, il valore della chiave canonica si applica.

231 

232<h3 id="allowlist-with-strictknownmarketplaces">

233 Allowlist con `strictKnownMarketplaces`

234</h3>

235 

236Impostate l'elenco consentito a un elenco di questi oggetti fonte. La maggior parte delle voci corrisponde esattamente, le voci `hostPattern` e `pathPattern` corrispondono come espressioni regolari, e i wildcard del proprietario `github` corrispondono per proprietario:

237 

238* **`github`**: `{ "source": "github", "repo": "your-org/approved-plugins" }`, con `ref` e `path` opzionali.

239* **Wildcard del proprietario `github`**: `{ "source": "github", "repo": "your-org/*" }` corrisponde a ogni repository sotto quel proprietario. L'`*` deve rappresentare l'intero nome del repository. Claude Code ignora voci come `*/plugins` e `your-org/tools-*` come non valide, quindi non corrispondono a nulla. Richiede Claude Code v2.1.223 o successivo.

240* **`git`**: `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git" }`, con `ref` e `path` opzionali.

241* **`url`**: `{ "source": "url", "url": "https://plugins.example.com/marketplace.json" }`, con `headers` opzionali.

242* **`file` e `directory`**: `{ "source": "file", "path": "/opt/marketplace/marketplace.json" }` o `{ "source": "directory", "path": "/opt/marketplace/plugins" }`, con percorsi assoluti.

243* **`hostPattern`**: `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }`, confrontato con l'host delle fonti `github`, `git` e `url`. Il pattern corrisponde ovunque nel nome host, quindi ancoratelo con `^` e `$` come mostrato per corrispondere all'intero host. Una fonte `github` conta sempre come `github.com`. Usate una voce `hostPattern` per un host GitHub Enterprise Server o GitLab dove gli sviluppatori creano i propri marketplace. La [pagina GHES](/docs/it/github-enterprise-server#allowlist-ghes-marketplaces-in-managed-settings) ha l'esempio elaborato.

244* **`pathPattern`**: `{ "source": "pathPattern", "pathPattern": "^/opt/approved/" }`, confrontato con il `path` delle fonti `file` e `directory`. Il pattern corrisponde ovunque nel percorso, quindi iniziatelo con `^` per fissare un prefisso di directory. `".*"` consente ogni percorso locale.

245* **`skills-dir`**: `{ "source": "skills-dir" }` mantiene il caricamento dei [plugin skills-directory](#keep-skills-directory-plugins-loading) mentre è impostato un elenco consentito, e non corrisponde a nessun marketplace.

246 

247<h4 id="how-entries-match">

248 Come le voci corrispondono

249</h4>

250 

251Una voce `url` corrisponde sul suo valore `url`; `headers` non vengono confrontati. Per le voci `github` e `git`, il `repo` o `url`, il `ref` e il `path` devono tutti corrispondere, o essere assenti su entrambi i lati:

252 

253* Una voce senza `ref` non copre una fonte con `ref: "main"`.

254* Una voce per `your-org/your-marketplace` non copre un URL `git` che clona lo stesso repository.

255* Una barra finale, un suffisso `.git` o `ssh://` al posto di `https://` è un valore diverso. Quando un marketplace può essere clonato da più di un URL, preferite una voce `hostPattern`.

256 

257Le voci con wildcard del proprietario seguono le regole esatte per `ref` e corrispondono a qualsiasi `path` all'interno del repository a meno che la voce non ne fissi uno. La corrispondenza con wildcard è sensibile alle maiuscole nell'elenco consentito.

258 

259<h4 id="keep-skills-directory-plugins-loading">

260 Mantenere il caricamento dei plugin skills-directory

261</h4>

262 

263I plugin skills-directory sono i plugin che gli utenti mantengono in `~/.claude/skills/` o in `.claude/skills/` di un progetto in cartelle che portano un `.claude-plugin/plugin.json`. Se impostate un elenco consentito senza una voce `{ "source": "skills-dir" }`, smettono di caricarsi. Le [skills](/docs/it/skills) semplici, cioè un `SKILL.md` senza quel manifest, continuano a caricarsi.

264 

265<h4 id="marketplaces-hosted-on-claude-ai">

266 Marketplace ospitati su claude.ai

267</h4>

268 

269L'elenco consentito e l'elenco bloccato corrispondono a un [marketplace ospitato su claude.ai](/docs/it/plugins/install#add-from-claude-ai) dal suo host. Per consentirne o bloccarne uno, aggiungete una voce `hostPattern` che corrisponde a `claude.ai` a `strictKnownMarketplaces` o `blockedMarketplaces`. Nell'elenco consentito, tale voce ammette i marketplace claude.ai della vostra organizzazione e i marketplace predefiniti di claude.ai, ma non un marketplace composto dai caricamenti claude.ai di un membro o uno il cui ambito claude.ai non ha dichiarato. Richiede Claude Code v2.1.273 o successivo.

270 

271<h4 id="lock-every-source-out">

272 Bloccare ogni fonte

273</h4>

274 

275Un elenco consentito vuoto, `[]`, blocca ogni fonte di marketplace, incluso il marketplace ufficiale.

276 

277Questo blocco non copre i plugin [sincronizzati da claude.ai](/docs/it/plugins/loading#synced-plugins), che Claude Code scarica dall'account di ogni utente piuttosto che da un marketplace. Per interromperli anche, impostate [`syncClaudeAiPlugins`](/docs/it/settings-reference#syncclaudeaiplugins) a `false` nelle impostazioni gestite, o disattivate Skills per la vostra organizzazione su claude.ai.

278 

279<h3 id="blocklist-with-blockedmarketplaces">

280 Blocklist con `blockedMarketplaces`

281</h3>

282 

283`blockedMarketplaces` accetta gli stessi oggetti fonte di [`strictKnownMarketplaces`](#allowlist-with-strictknownmarketplaces) ed è controllato per primo, quindi una fonte in entrambi gli elenchi è bloccata. La corrispondenza della blocklist è più ampia della corrispondenza dell'elenco consentito:

284 

285* Gli URL Git sono canonicizzati, quindi i moduli `git@` e `https://`, i suffissi `.git` e le barre finali di un repository `github.com` corrispondono tutti alla stessa voce.

286* Una voce `github` blocca anche l'URL `git` equivalente, e viceversa.

287* Per una voce `owner/*`, il confronto del proprietario è insensibile alle maiuscole.

288* Una voce senza `ref` o `path` blocca ogni ref e path dei repository che corrisponde.

289 

290Questa voce blocca ogni repository sotto un proprietario GitHub:

291 

292```json theme={null}

293{

294 "blockedMarketplaces": [

295 { "source": "github", "repo": "untrusted-org/*" }

296 ]

297}

298```

299 

300Le voci `url` in `blockedMarketplaces` si applicano anche quando un utente aggiunge un URL di repository `https://` che Claude Code [clona piuttosto che recupera](/docs/it/plugins/cli-reference#plugin-marketplace-add), come un URL di repository `github.com` o `gitlab.com` semplice. L'utente non può aggiungere quell'URL se una voce lo nomina. La corrispondenza ignora il suffisso `.git` e qualsiasi ref che l'utente aggiunge dopo `#`. Richiede Claude Code v2.1.232 o successivo.

301 

302Una voce `{ "source": "skills-dir" }` qui interrompe il caricamento dei [plugin skills-directory](#keep-skills-directory-plugins-loading), da entrambi `~/.claude/skills/` e da `.claude/skills/` di un progetto.

303 

304Una blocklist che nomina solo quella voce non conta come una restrizione attiva, quindi non [interrompe i plugin il cui marketplace Claude Code non riesce a trovare](#restrict-what-users-can-install) dal caricamento.

305 

306<h3 id="allow-the-official-marketplace-and-your-own">

307 Consentire il marketplace ufficiale e il vostro

308</h3>

309 

310La maggior parte delle organizzazioni consente il marketplace ufficiale e il loro, e registra entrambi in modo che ogni macchina li abbia. Questa policy di impostazioni gestite consente entrambi i marketplace, registra entrambi, forza l'abilitazione di due plugin e rifiuta `--plugin-dir`:

311 

312```json theme={null}

313{

314 "strictKnownMarketplaces": [

315 { "source": "github", "repo": "anthropics/claude-plugins-official" },

316 { "source": "github", "repo": "your-org/*" },

317 { "source": "skills-dir" }

318 ],

319 "extraKnownMarketplaces": {

320 "claude-plugins-official": {

321 "source": { "source": "github", "repo": "anthropics/claude-plugins-official" }

322 },

323 "your-marketplace": {

324 "source": { "source": "github", "repo": "your-org/your-marketplace" }

325 }

326 },

327 "enabledPlugins": {

328 "code-formatter@your-marketplace": true,

329 "deploy-helper@your-marketplace": true

330 },

331 "disableSideloadFlags": true

332}

333```

334 

335Su una macchina con questa policy, aggiungere qualsiasi fonte al di fuori dell'elenco, ad esempio `/plugin marketplace add https://example.com/other-marketplace.git`, fallisce con un messaggio contenente `is blocked by enterprise policy` seguito dalle fonti consentite. `claude --plugin-dir ./x` esce con un messaggio che nomina `disableSideloadFlags`.

336 

337La voce `{ "source": "skills-dir" }` mantiene il caricamento dei [plugin skills-directory](#keep-skills-directory-plugins-loading) sotto questo elenco consentito. Rimuovete quella voce e smettono di caricarsi.

338 

339Registrate entrambi i marketplace con voci esplicite `extraKnownMarketplaces`, come fa questa policy, piuttosto che affidarvi all'elenco consentito o al marketplace ufficiale che si registra da solo:

340 

341* **L'elenco consentito non registra nulla**: una voce `extraKnownMarketplaces` lo fa, e deve essa stessa passare l'elenco consentito. Claude Code rifiuta di registrare un marketplace gestito la cui fonte l'elenco consentito non corrisponde.

342* **Il marketplace ufficiale si registra solo in una sessione di terminale interattiva**: anche lì, si registra solo quando l'elenco consentito lo consente. Un'esecuzione `-p` o un terminale collegato a una sessione cloud non lo registra mai.

343* **Un tentativo bloccato viene ricordato**: se una macchina ha mai eseguito una policy che bloccava il marketplace ufficiale, Claude Code registra il tentativo bloccato e non ritenta dopo il cambio di policy. Un blocco `[]` è una tale policy. Quella macchina lo registra di nuovo solo attraverso una voce `extraKnownMarketplaces` come quella in questa policy, una voce `enabledPlugins` per uno dei suoi plugin, o un `/plugin marketplace add` manuale.

344 

345<h2 id="set-update-policy">

346 Impostare la politica di aggiornamento

347</h2>

348 

349È possibile impostare la politica di aggiornamento per ogni marketplace, per l'intera flotta o per ogni gruppo di utenti attraverso i canali di rilascio.

350 

351<h3 id="turn-auto-update-on-or-off-per-marketplace">

352 Attivare o disattivare l'aggiornamento automatico per marketplace

353</h3>

354 

355L'aggiornamento automatico dei plugin viene eseguito in background dopo l'avvio per i marketplace che lo hanno attivato. Per sapere quali marketplace lo hanno attivato per impostazione predefinita, consultare [Quando viene eseguito l'aggiornamento automatico](/docs/it/plugins/loading#when-auto-update-runs). Per decidere per la flotta, impostare `"autoUpdate": true` o `false` su una voce `extraKnownMarketplaces` gestita:

356 

357* Se la voce gestita imposta il campo, Claude Code rifiuta l'interruttore `/plugin` dell'utente con un errore che inizia con `Auto-update for '<name>' is set by`.

358* Se la voce gestita lascia il campo non impostato, l'interruttore dell'utente persiste.

359 

360<h3 id="turn-updates-off-for-the-whole-fleet">

361 Disattivare gli aggiornamenti per l'intera flotta

362</h3>

363 

364Per disattivare l'aggiornamento automatico dei plugin per ogni marketplace, impostare `DISABLE_AUTOUPDATER` nel blocco `env` gestito, come fa questo esempio. La stessa variabile interrompe anche gli aggiornamenti di Claude Code:

365 

366```json theme={null}

367{

368 "env": {

369 "DISABLE_AUTOUPDATER": "1"

370 }

371}

372```

373 

374Per interrompere gli aggiornamenti di Claude Code ma mantenere l'aggiornamento automatico dei plugin, aggiungere `"FORCE_AUTOUPDATE_PLUGINS": "1"` allo stesso blocco. Le altre [variabili di ambiente che interrompono l'aggiornamento automatico dei plugin](/docs/it/plugins/loading#when-auto-update-runs) funzionano allo stesso modo.

375 

376`DISABLE_AUTOUPDATER` non copre i plugin con un'[origine `command`](/docs/it/plugins/marketplace-reference#command-plugin-source). Claude Code riesegue il comando di ogni plugin abilitato ad ogni sessione e installa l'output quando è cambiato. Per sapere cosa interrompe queste esecuzioni, consultare [Quando un'origine command viene rieseguita](/docs/it/plugins/loading#when-a-command-source-re-runs).

377 

378<h3 id="assign-release-channels-to-user-groups">

379 Assegnare canali di rilascio ai gruppi di utenti

380</h3>

381 

382Per eseguire canali stabili e ad accesso anticipato, ospitare due marketplace che puntano a ref diversi degli stessi plugin. Quindi assegnare a ogni gruppo di utenti il proprio marketplace attraverso impostazioni gestite da endpoint separate o una politica gateway. Le impostazioni gestite dal server dalla console di amministrazione [si applicano a ogni utente della tua organizzazione](/docs/it/server-managed-settings#current-limitations), quindi non possono assegnare impostazioni diverse a gruppi diversi.

383 

384* Distribuire [impostazioni gestite da endpoint](/docs/it/managed-settings#delivery-mechanisms) separate, come un file di impostazioni gestite o un profilo MDM, ai dispositivi di ogni gruppo. Per verificare se il file o il profilo per gruppo si applica su un dispositivo che ha anche un'origine a livello di organizzazione, consultare [Come Claude Code combina le origini gestite](/docs/it/managed-settings#precedence-within-the-managed-tier).

385* Definire una [politica gateway delle app Claude](/docs/it/claude-apps-gateway-config#managed) per ogni gruppo. Il gateway applica la prima politica la cui regola di corrispondenza si adatta a un utente, quindi ordinare le politiche in modo che ogni utente raggiunga la politica del suo gruppo. La mappa `extraKnownMarketplaces` di quella politica non si unisce con quella di nessun'altra politica, quindi elencare ogni marketplace di cui il gruppo ha bisogno in essa, non solo il suo marketplace del canale.

386 

387Con uno dei due meccanismi, il gruppo stabile riceve questa configurazione:

388 

389```json theme={null}

390{

391 "extraKnownMarketplaces": {

392 "stable-tools": {

393 "source": { "source": "github", "repo": "your-org/stable-tools" }

394 }

395 }

396}

397```

398 

399Il gruppo ad accesso anticipato riceve invece `latest-tools`. Per configurare i due marketplace, consultare [Eseguire canali di rilascio](/docs/it/plugins/host-marketplace#run-release-channels).

400 

401<h2 id="recommend-plugins">

402 Consigliare plugin

403</h2>

404 

405I proprietari del marketplace possono allegare segnali di `relevance` alle voci in modo che Claude Code suggerisca il plugin quando un progetto corrisponde.

406 

407I suggerimenti da un marketplace vengono visualizzati solo quando è registrato sulla macchina dell'utente, si elenca il suo nome in `pluginSuggestionMarketplaces` nelle impostazioni gestite e si dichiara la sua origine nella stessa policy. Dichiarare l'origine come voce `extraKnownMarketplaces` del marketplace o come voce dell'elenco consentiti. Il marketplace ufficiale richiede solo il nome. Vedere [Abilitare i suggerimenti nelle impostazioni gestite](/docs/it/plugins/relevance#enable-suggestions-in-managed-settings).

408 

409<h2 id="audit-and-review">

410 Audit and review

411</h2>

412 

413OpenTelemetry events and the Analytics API tell you what your fleet installs and runs.

414 

415For what a plugin can run on a machine and what each trust tier permits, read [Plugin security](/docs/it/plugins/security) before you approve a marketplace.

416 

417<h3 id="opentelemetry-events">

418 OpenTelemetry events

419</h3>

420 

421`claude_code.plugin_installed` records each install, and `claude_code.plugin_loaded` records each enabled plugin at session start. Both events redact or omit third-party plugin and marketplace names unless you set `OTEL_LOG_TOOL_DETAILS=1`, as [Redacted plugin names in your backend](/docs/it/plugins/measure#redacted-plugin-names-in-your-backend) shows. Field lists are under [Plugin installed event](/docs/it/monitoring-usage#plugin-installed-event) and [Plugin loaded event](/docs/it/monitoring-usage#plugin-loaded-event).

422 

423<h3 id="analytics-api">

424 Analytics API

425</h3>

426 

427On the Enterprise plan, `GET /v1/organizations/analytics/plugins` returns per-plugin, per-day install and invocation counts across Claude Code and Cowork. You can group the counts by user or RBAC group. Plugin activity that reaches Anthropic without a plugin name appears in one aggregate `third-party` row. See the [endpoint reference](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list) and [Access data programmatically](/docs/it/analytics#access-data-programmatically) for the key it needs.

428 

429<h2 id="plan-for-what-managed-settings-can’t-enforce">

430 Piano per ciò che le impostazioni gestite non possono applicare

431</h2>

432 

433Queste richieste dalle revisioni di sicurezza non hanno una chiave dedicata nello schema delle impostazioni corrente. I controlli esistenti più vicini sono:

434 

435* **Targeting per utente o per gruppo**: ogni chiave plugin si applica a ogni utente che riceve le impostazioni. Le impostazioni gestite dal server forniscono una configurazione per organizzazione. Per la politica per gruppo, utilizzare impostazioni gestite da endpoint separate o politiche gateway, come in [Assegnare canali di rilascio ai gruppi di utenti](#assign-release-channels-to-user-groups).

436* **Limitazione delle voci all'interno di un marketplace consentito**: l'elenco consentito corrisponde alle fonti del marketplace. Per bloccare un plugin da un marketplace consentito, impostarlo su `false` in `enabledPlugins` gestito.

437* **Nascondere `/plugin`**: nessuna chiave disabilita il comando. L'equivalente più vicino combina un elenco consentito che nomina solo il vostro marketplace, voci `enabledPlugins` gestite per i plugin che fornite, e `disableSideloadFlags`.

438* **Controllare `--plugin-dir` attraverso l'elenco consentito**: l'elenco consentito non copre `--plugin-dir`. `disableSideloadFlags` lo fa.

439* **Applicare gli interruttori plugin claude.ai attraverso queste chiavi**: [**Impostazioni organizzazione > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) non imposta le chiavi su questa pagina. Ciò che i membri e la vostra organizzazione attivano lì raggiunge la CLI come [plugin sincronizzati](/docs/it/plugins/loading#synced-plugins), che hanno i loro propri controlli.

440 

441<h2 id="troubleshoot-policy">

442 Risoluzione dei problemi della policy

443</h2>

444 

445Se la policy del plugin non si comporta come previsto su una macchina, controllare prima questi sintomi:

446 

447* **Il file gestito non è stato analizzato**: quando un `managed-settings.json` non è un JSON valido, Claude Code rifiuta di avviarsi e stampa [un errore che nomina il file](/docs/it/errors#managed-settings-document-could-not-be-parsed). Un file che viene analizzato ma ha una voce non valida mantiene il resto della sua policy. Vedere [Voci non valide nelle impostazioni gestite](/docs/it/managed-settings#invalid-entries-in-managed-settings).

448* **La fonte gestita non è stata caricata**: eseguire `/status` e cercare `Enterprise managed settings` nella riga `Setting sources`. Se manca, la fonte non è stata caricata.

449* **Un utente segnala `blocked by enterprise policy`**: il messaggio nomina il marketplace o la sua fonte. Per un allowlist, elenca anche le fonti consentite. Le voci rivolte all'utente si trovano su [Risoluzione dei problemi dei plugin](/docs/it/plugins/troubleshooting).

450* **Un plugin che l'utente ha disabilitato in `~/.claude/settings.json` continua a caricarsi**: un'altra fonte di impostazioni lo ha riabilitato, ad esempio una voce `enabledPlugins` gestita che lo forza ad abilitarsi. `/plugin` e `claude plugin list` mostrano `Disabled in ~/.claude/settings.json but still loads` con quella fonte di impostazioni.

451 

452<h2 id="next-steps">

453 Next steps

454</h2>

455 

456* [Marketplace reference](/docs/it/plugins/marketplace-reference#marketplace-sources): the `source` values `extraKnownMarketplaces`, `strictKnownMarketplaces`, and `blockedMarketplaces` accept

457* [Host and maintain a marketplace](/docs/it/plugins/host-marketplace): run the marketplace your policy points at

458* [Plugin security and trust](/docs/it/plugins/security): what a plugin can do on a machine and how to review one before installing

459* [Server-managed settings](/docs/it/server-managed-settings): deliver these keys from the claude.ai admin console

460* [Troubleshoot plugins](/docs/it/plugins/troubleshooting#blocked-by-your-organization): the messages users see when policy blocks them

plugins/overview.md +142 −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# Panoramica dei plugin

6 

7> Comprendi cos'è un plugin Claude Code, quando ne hai bisogno invece di una skill autonoma o di un server MCP, e quale pagina leggere per installarne uno o crearne uno.

8 

9Un plugin Claude Code è una directory di skills, agenti, hooks, server MCP o altri componenti che Claude Code installa e carica come un'unica unità. La maggior parte dei plugin proviene da un marketplace, che è un catalogo che elenca i plugin e da dove recuperare ciascuno. Puoi anche caricare un plugin da una cartella che qualcuno ti fornisce, oppure [creare il tuo](/docs/it/plugins/create).

10 

11<Note>

12 Se utilizzi la chat claude.ai o Cowork e non Claude Code, consulta [Plugin su claude.ai e in Cowork](https://claude.com/docs/plugins/overview).

13</Note>

14 

15Per provare un plugin ora, esegui `/plugin` in una sessione di terminale Claude Code e installa uno dalla scheda **Discover**, che elenca i plugin dal marketplace ufficiale di Anthropic e da qualsiasi marketplace che hai aggiunto. Da lì:

16 

17* [Installa e gestisci i plugin](/docs/it/plugins/install): i passaggi di installazione completi, gli ambiti e altre superfici

18* [Crea un plugin](/docs/it/plugins/create): crea il tuo

19* [Decidi se hai bisogno di un plugin](#decide-whether-you-need-a-plugin): se un plugin è lo strumento giusto per quello che vuoi

20 

21<h2 id="understand-what-a-plugin-is">

22 Comprendi cos'è un plugin

23</h2>

24 

25Un plugin è una directory di componenti, solitamente con un manifest. Il manifest, un file JSON in `.claude-plugin/plugin.json`, assegna al plugin il suo nome e può aggiungere una versione, una descrizione e altri [metadati](/docs/it/plugins/manifest-reference). I componenti sono ciò che il plugin aggiunge a Claude Code, come:

26 

27* [**Skills**](/docs/it/plugins/components#skills): istruzioni `SKILL.md` che Claude carica quando rilevante, e che puoi anche eseguire come comando

28* [**Agenti**](/docs/it/plugins/components#agents): definizioni di subagenti a cui Claude può delegare

29* [**Hooks**](/docs/it/plugins/components#hooks): comandi che Claude Code esegue in punti del suo ciclo di vita, come dopo ogni modifica

30* [**Server MCP**](/docs/it/plugins/components#mcp-servers): server di strumenti a cui Claude Code si connette mentre il plugin è abilitato

31 

32Questo diagramma mostra un plugin denominato `my-plugin` che contiene uno di ciascuno di questi componenti, e cosa ottieni da ogni file una volta che il plugin si carica.

33 

34<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f623b64e82713b830e48174f0a922888" className="dark:hidden" alt="Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools." width="760" height="336" data-path="images/plugin-directory.svg" />

35 

36<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugin-directory-dark.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=17ee2bd45b63154fcc148ae1d1f736d8" className="hidden dark:block" alt="Diagram in two columns joined by five straight arrows. Left, the directory of a plugin named my-plugin, holding a manifest at .claude-plugin/plugin.json, skills/review/SKILL.md, agents/reviewer.md, hooks/hooks.json, .mcp.json, and other components. Right, what each file gives you in your session: the manifest sets the plugin name, my-plugin; the skill runs as /my-plugin:review; the agent file is a subagent Claude can delegate to; the hooks file holds hooks that run on lifecycle events; and .mcp.json adds an MCP server that gives Claude tools." width="760" height="336" data-path="images/plugin-directory-dark.svg" />

37 

38Per ogni tipo di componente che un plugin può contenere, con un esempio di ciascuno, consulta [Componenti del plugin](/docs/it/plugins/components). Per vedere dove si trova ogni pezzo nella directory di un plugin, utilizza l'[esploratore di plugin](/docs/it/plugins/components#explore-the-plugin-directory) su quella pagina.

39 

40<h3 id="decide-whether-you-need-a-plugin">

41 Decidi se hai bisogno di un plugin

42</h3>

43 

44Skills, subagenti, hooks e server MCP funzionano tutti da soli, senza un plugin. Una skill che salvi in `~/.claude/skills/`, ad esempio, è disponibile in ogni progetto sul tuo computer. Per configurarne una da sola, consulta [Skills](/docs/it/skills), [Subagenti](/docs/it/sub-agents), [Hooks](/docs/it/hooks-guide) o [MCP](/docs/it/mcp).

45 

46Utilizza un plugin quando vuoi che diverse skills, subagenti, hooks o server MCP siano confezionati come un'unica unità. Installa uno per ottenere una configurazione che qualcun altro ha costruito, con un comando e aggiornamenti dal suo marketplace. Creane uno per fornire la tua configurazione ai tuoi colleghi, installarlo in molti progetti o pubblicare versioni rilasciate.

47 

48<h3 id="what-an-enabled-plugin-adds-to-your-sessions">

49 Cosa un plugin abilitato aggiunge alle tue sessioni

50</h3>

51 

52Un plugin abilitato fa parte di ogni sessione, non solo delle sessioni in cui lo utilizzi. Questo ha alcune conseguenze che vale la pena conoscere prima di installarne uno:

53 

54* **Contesto e utilizzo**: per ogni skill, agente e comando che [Claude può invocare autonomamente](/docs/it/skills#control-who-invokes-a-skill), il nome e la descrizione sono nel contesto di Claude ad ogni turno in modo che Claude sappia che esiste. Questi token contano verso il tuo utilizzo e lasciano meno spazio nella [finestra di contesto](/docs/it/context-window) anche nelle sessioni in cui nulla dal plugin viene eseguito. Il testo completo di una skill o di un agente si carica solo quando viene utilizzato. Ciò che i server MCP del plugin aggiungono per turno segue la [ricerca di strumenti MCP](/docs/it/mcp#scale-with-mcp-tool-search).

55* **Processi**: i server MCP che il plugin definisce vengono eseguiti insieme a ogni sessione in cui è abilitato, e i suoi hook si attivano ai loro eventi.

56* **Autorizzazioni**: ciò che il plugin esegue, lo esegue come te. Consulta [Sicurezza e affidabilità dei plugin](/docs/it/plugins/security) per sapere cosa rivedere per primo.

57 

58Puoi controllare l'impronta di un plugin ad ogni fase:

59 

60* **Prima di installare**: apri il plugin dalla scheda **Marketplaces** in `/plugin`. I plugin nel marketplace ufficiale di Anthropic mostrano una stima di **Context cost** lì.

61* **Dopo l'installazione**: [Misura il costo di un plugin](/docs/it/plugins/measure#measure-what-a-plugin-costs) mostra come leggere l'impronta di un plugin, e il gruppo **Not used recently** della scheda **Installed** elenca i plugin che potresti disattivare.

62* **Per fermarlo senza disinstallarlo**: disabilita il plugin con `/plugin` o, nella tua shell, `claude plugin disable`. Consulta [Gestisci i plugin installati](/docs/it/plugins/install#manage-installed-plugins).

63 

64<h2 id="get-plugins-from-a-marketplace">

65 Ottieni plugin da un marketplace

66</h2>

67 

68Un marketplace è un repository o una directory con un file `.claude-plugin/marketplace.json` che elenca i plugin e da dove recuperare ciascuno. È un catalogo, non un negozio ospitato. Aggiungi un marketplace una volta, quindi installa i plugin da esso per nome, come `commit-commands@claude-plugins-official`.

69 

70<Note>

71 Un marketplace di plugin non è [Claude Marketplace](https://claude.com/marketplace). Claude Marketplace è il sito web su claude.com/marketplace dove puoi sfogliare plugin, connettori, prodotti partner e partner di servizi. Non è un marketplace che aggiungi con `/plugin marketplace add`.

72</Note>

73 

74Claude Code aggiunge il marketplace ufficiale di Anthropic la prima volta che avvii una sessione di terminale interattiva, a meno che una [politica gestita](/docs/it/plugins/org#allow-the-official-marketplace-and-your-own) non lo blocchi. Claude Code non aggiunge nessun altro marketplace da solo, inclusi i marketplace community e demo di Anthropic. Per distinguere i tre marketplace di Anthropic, leggi [Marketplace di Anthropic](/docs/it/plugins/anthropic-marketplaces). Per vedere cosa elenca quello ufficiale, apri la scheda **Discover** di `/plugin` in una sessione o sfoglia [Claude Marketplace](https://claude.com/marketplace/plugins).

75 

76Questo diagramma mostra il percorso da un marketplace alla tua sessione. Un marketplace elenca un plugin, installi quel plugin e Claude Code carica i suoi componenti.

77 

78<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugins-model.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=4196344954b7c2e27fc0bd6a9a1113a1" className="dark:hidden" alt="Diagram of the marketplace path in three boxes, left to right. A marketplace, a catalog of plugins, lists a plugin. The plugin is one directory installed as a unit, holding skills, agents, hooks, MCP servers, and other components. You install the plugin into Claude Code, which loads its components." width="760" height="252" data-path="images/plugins-model.svg" />

79 

80<img src="https://mintcdn.com/claude-code/2Q_GtOEovg5qaBem/images/plugins-model-dark.svg?fit=max&auto=format&n=2Q_GtOEovg5qaBem&q=85&s=f6cdefe1fc05daf3b253d26e9f3f70f6" className="hidden dark:block" alt="Diagram of the marketplace path in three boxes, left to right. A marketplace, a catalog of plugins, lists a plugin. The plugin is one directory installed as a unit, holding skills, agents, hooks, MCP servers, and other components. You install the plugin into Claude Code, which loads its components." width="760" height="252" data-path="images/plugins-model-dark.svg" />

81 

82[Installa e gestisci i plugin](/docs/it/plugins/install#install-a-plugin) contiene i passaggi di installazione per ogni luogo in cui esegui Claude Code. Mentre stai sviluppando un plugin, non hai bisogno di un marketplace: caricalo direttamente dalla sua cartella con `--plugin-dir`, come mostra [Sviluppa senza un marketplace](/docs/it/plugins/create#develop-without-a-marketplace).

83 

84<h3 id="make-an-installed-plugin-available-in-your-session">

85 Rendi disponibile un plugin installato nella tua sessione

86</h3>

87 

88Prima che un plugin che hai installato ti dia una skill che puoi eseguire, deve essere presente ad ognuno di questi livelli:

89 

90* **Impostazioni**: le tue impostazioni elencano i marketplace che hai aggiunto e i plugin che sono abilitati.

91* **Disco**: `~/.claude/plugins/` contiene ciò che Claude Code ha recuperato e installato.

92* **Sessione**: i plugin si caricano all'avvio, o quando [ricarichi i plugin](/docs/it/plugins/loading#check-which-stage-a-plugin-reached).

93 

94Leggi [Riferimento al caricamento dei plugin](/docs/it/plugins/loading) per le regole ad ogni livello, incluso quale file di impostazioni ha la precedenza e dove si trovano i file su disco.

95 

96<h2 id="tell-anthropic’s-marketplaces-from-third-party-ones">

97 Distingui i marketplace di Anthropic da quelli di terze parti

98</h2>

99 

100Il nome di un marketplace lo colloca in uno di tre livelli. Claude Code accetta i nomi ufficiali e community solo per i marketplace provenienti da repository `github.com/anthropics/`:

101 

102* **Ufficiale**: marketplace con uno dei [nomi ufficiali del marketplace](/docs/it/plugins/security#official-marketplace-names) di Anthropic, incluso `claude-plugins-official` e il marketplace demo `claude-code-plugins`.

103* **Community**: marketplace con uno dei nomi community di Anthropic, come `claude-community`. [Identifica i marketplace di Anthropic per nome](/docs/it/plugins/security#marketplace-tiers) li elenca.

104* **Terze parti**: ogni altro marketplace. Un marketplace che il tuo collega o la tua organizzazione pubblica è di terze parti.

105 

106Indipendentemente dal livello, un plugin che installi può eseguire codice con i tuoi privilegi utente. Leggi [Sicurezza e affidabilità dei plugin](/docs/it/plugins/security) per sapere come rivedere un plugin prima di installarlo.

107 

108Attraverso [impostazioni gestite](/docs/it/settings#settings-files), un'organizzazione può consentire o bloccare marketplace, forzare l'installazione di plugin e disattivare il caricamento solo per sessione. Leggi [Gestisci i plugin per la tua organizzazione](/docs/it/plugins/org) per questi controlli.

109 

110<h2 id="understand-install-scopes">

111 Comprendi gli ambiti di installazione

112</h2>

113 

114Quando installi un plugin, scegli un ambito, e l'ambito decide chi il plugin è abilitato per:

115 

116* **Ambito utente**: abilitato per te in ogni progetto su questo computer

117* **Ambito progetto**: abilitato per tutti coloro che lavorano in questo repository, attraverso il `.claude/settings.json` committato. Ogni collaboratore deve comunque [installarlo sulla propria macchina](/docs/it/plugins/loading#enabled-in-project-settings-but-not-installed)

118* **Ambito locale**: abilitato per te solo in questo repository

119 

120Un plugin che installi a livello di ambito utente nel terminale, nelle sessioni locali dell'app desktop o nell'estensione VS Code è disponibile negli altri due su quel computer, perché tutti e tre leggono gli stessi file di impostazioni. Consulta [Scegli un ambito di installazione](/docs/it/plugins/install#choose-an-install-scope) per sapere come sceglierne uno.

121 

122Una sessione cloud, inclusa una nel browser su claude.ai/code, non carica i plugin nelle tue impostazioni locali. Per i passaggi di installazione nel terminale, VS Code e l'app desktop, e per ciò che una sessione cloud carica, consulta [Installa un plugin](/docs/it/plugins/install#install-a-plugin).

123 

124<Note>

125 Lo stesso formato di plugin si installa anche su claude.ai e in Cowork, dove viene caricato un diverso set di componenti. Per quelle superfici, consulta [Plugin su claude.ai e in Cowork](https://claude.com/docs/plugins/overview) su claude.com.

126</Note>

127 

128<h2 id="next-steps">

129 Passaggi successivi

130</h2>

131 

132La maggior parte delle persone inizia installando un plugin dal marketplace ufficiale di Anthropic, che Claude Code aggiunge la prima volta che avvii una sessione di terminale interattiva. Esegui `/plugin` in una sessione di terminale per sfogliarlo, o segui [Installa e gestisci i plugin](/docs/it/plugins/install), che copre anche l'app desktop e VS Code. Per vedere cosa c'è in quel marketplace prima di aprire Claude Code, sfoglia [Claude Marketplace](https://claude.com/marketplace/plugins) sul web.

133 

134Per creare il tuo, [Crea un plugin](/docs/it/plugins/create) inizia con una directory vuota e termina con un plugin funzionante.

135 

136Una volta che hai installato o costruito un plugin, queste pagine coprono cosa viene dopo:

137 

138* **Condividi quello che hai costruito**: [Pubblica e distribuisci un plugin](/docs/it/plugins/publish)

139* **Verifica se funziona ed è utilizzato**: [Testa i plugin con evals](/docs/it/plugin-evals) e [Misura il costo e l'utilizzo dei plugin](/docs/it/plugins/measure)

140* **Esegui un marketplace per il tuo team**: [Crea un marketplace](/docs/it/plugins/create-marketplace), quindi [Ospita e mantieni un marketplace](/docs/it/plugins/host-marketplace)

141* **Imposta la politica dei plugin per un'organizzazione**: [Gestisci i plugin per la tua organizzazione](/docs/it/plugins/org)

142* **Risolvi un problema**: [Risolvi i problemi dei plugin](/docs/it/plugins/troubleshooting)

plugins/publish.md +210 −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# Pubblica e distribuisci un plugin

6 

7> Pubblica un plugin Claude Code attraverso il tuo marketplace personale o il marketplace della comunità di Anthropic, con una checklist di pre-rilascio e come gli utenti ricevono gli aggiornamenti.

8 

9Pubblicare un plugin Claude Code significa inserirlo in un marketplace, un catalogo JSON che elenca i plugin e dove recuperare ciascuno di essi, in modo che altre persone possano installarlo per nome e ricevere i tuoi aggiornamenti. Puoi gestire il tuo marketplace personale o inviare il tuo plugin al marketplace della comunità di Anthropic. Per condividere un plugin senza pubblicarlo, invia alle persone la directory del plugin o un `.zip` di esso da caricare da soli.

10 

11Questa pagina è per l'autore di un plugin funzionante che è pronto a condividerlo.

12 

13<Note>

14 Questi casi sono trattati su altre pagine:

15 

16 * **Il tuo plugin non è ancora finito**: inizia con [Crea un plugin](/docs/it/plugins/create)

17 * **Mantieni una CLI o SDK con un plugin in un marketplace ufficiale**: vedi [Consiglia il tuo plugin dalla tua CLI](/docs/it/plugins/cli-hints)

18</Note>

19 

20Inizia con [Scegli come distribuire](#choose-how-to-distribute) per confrontare le opzioni di distribuzione. Se conosci già il tuo percorso, vai a [Prepara il tuo plugin per il rilascio](#prepare-your-plugin-for-release), quindi segui la sezione del tuo percorso per sapere cosa dire ai tuoi utenti e come ricevono i tuoi aggiornamenti.

21 

22<h2 id="choose-how-to-distribute">

23 Scegli come distribuire

24</h2>

25 

26Scegli un'opzione di distribuzione in base a chi ha bisogno di installare il plugin:

27 

28| Percorso | Chi può installare | Cosa ti serve | Gli utenti ricevono i tuoi aggiornamenti automaticamente? |

29| :------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------- | :-------------------------------------------------------- |

30| [Nessun marketplace](#share-a-plugin-without-a-marketplace) | Le persone a cui invii la cartella del plugin o un `.zip` di esso | La cartella del plugin | Nessuno. Caricano la copia che hai inviato |

31| [Il tuo marketplace personale](#publish-through-your-own-marketplace) | Chiunque possa raggiungere il repository, che può essere uno privato che il tuo team può clonare | Un repository git o altro host con un `.claude-plugin/marketplace.json` che elenca il tuo plugin | Disattivato |

32| [Marketplace della comunità di Anthropic](#submit-to-the-community-marketplace) | Chiunque aggiunga `anthropics/claude-plugins-community` | Un invio attraverso il modulo di invio della directory dei plugin | Disattivato |

33 

34L'aggiornamento automatico è un'impostazione per marketplace sul lato dell'utente che recupera le nuove versioni in background.

35 

36<h2 id="prepare-your-plugin-for-release">

37 Prepara il tuo plugin per il rilascio

38</h2>

39 

40Il nome, la versione, la convalida e un'installazione da un marketplace decidono se un rilascio funziona per le persone che lo installano. Controllali prima del primo rilascio e di nuovo prima di ogni rilascio successivo.

41 

42<Steps>

43 <Step title="Scegli un nome permanente">

44 Gli utenti installano, abilitano e configurano il tuo plugin per `name@marketplace`, quindi un plugin rinominato è un plugin diverso per ogni installazione esistente. Scegli un nome in kebab-case come `deploy-helper`, perché `claude plugin validate` avverte su altre forme, e trattalo come permanente. Imposta `displayName` in `plugin.json` per l'etichetta che gli utenti vedono.

45 </Step>

46 

47 <Step title="Decidi come versione">

48 Se imposti `version` in `plugin.json` e successivamente esegui il push di commit senza modificarla, `claude plugin update` stampa `<name> is already at the latest version (1.0.0).` e gli utenti mantengono la copia precedente. Incrementa `version` ad ogni rilascio, oppure omettila in un marketplace ospitato su git in modo che Claude Code utilizzi invece lo SHA del commit. Vedi [Versioni e aggiornamenti](/docs/it/plugins/loading#versions-and-updates).

49 </Step>

50 

51 <Step title="Convalida">

52 Nel tuo shell, esegui `claude plugin validate --strict ./your-plugin`. Un'esecuzione pulita stampa `✔ Validation passed`.

53 

54 * **In CI**: mantieni `--strict`, che inoltre fa fallire l'esecuzione con codice di uscita 1 su avvisi come un campo manifest sconosciuto o una `version` mancante. Rimuovi `--strict` se hai scelto di omettere `version` nel passaggio precedente.

55 * **Percorsi**: la convalida segnala i percorsi dei componenti che non iniziano con `./`. All'interno dei comandi hook e delle configurazioni del server MCP, fai riferimento ai file come `${CLAUDE_PLUGIN_ROOT}/...`. Vedi [regole dei percorsi](/docs/it/plugins/manifest-reference#path-rules).

56 </Step>

57 

58 <Step title="Installalo da un marketplace locale">

59 Nel tuo shell, aggiungi un marketplace locale che elenca il plugin con `claude plugin marketplace add ./path-to-marketplace`, installa il plugin da esso e avvia una sessione per confermare che si carica.

60 

61 * Per il marketplace più piccolo che funziona, vedi [Crea un marketplace](/docs/it/plugins/create-marketplace).

62 * Per sapere se un'installazione carica la tua directory di origine o una copia in cache, vedi [Plugin in-place e copiati](/docs/it/plugins/loading#in-place-and-copied-plugins).

63 </Step>

64 

65 <Step title="Compila i metadati che gli utenti vedono">

66 Imposta `description`, `author`, `homepage` e `repository` in `plugin.json`, e aggiungi un `README.md` alla radice del plugin. `homepage` deve essere analizzato come un URL. Il [riferimento manifest](/docs/it/plugins/manifest-reference#fields) elenca ogni campo.

67 </Step>

68 

69 <Step title="Esegui la tua suite di eval">

70 Se hai una suite di eval, esegui `claude plugin eval` nel tuo shell. Esegue i casi di test del plugin e valuta i risultati, il che cattura le regressioni quando modifichi il plugin. Vedi [Testa i plugin con eval](/docs/it/plugin-evals).

71 </Step>

72</Steps>

73 

74<h2 id="share-a-plugin-without-a-marketplace">

75 Condividi un plugin senza un marketplace

76</h2>

77 

78Se il plugin è in un repository git, le persone possono clonarlo e caricare il checkout, oppure avviare Claude Code dal loro shell con `--plugin-url` puntato a un `.zip` che allega a un rilascio. Per ottenere la tua prossima versione, eseguono il pull o scaricano di nuovo. Se non è in un repository, invia loro la directory o un `.zip` di esso. Lo caricano in uno di due modi:

79 

80* **Per una sessione**: avviano Claude Code dal loro shell con `claude --plugin-dir ./deploy-helper`, dove il percorso è il clone, la cartella decompressa o il `.zip` stesso. Vedi [Flag che caricano un plugin per una sessione](/docs/it/plugins/cli-reference#flags-that-load-a-plugin-for-one-session).

81* **Per ogni sessione**: spostano la directory del plugin, con il suo `.claude-plugin/plugin.json`, sotto `~/.claude/skills/` in modo che Claude Code lo [carichi in ogni sessione](/docs/it/plugins/loading#find-where-a-plugin-came-from).

82 

83Aggiungere un `.claude-plugin/marketplace.json` allo stesso repository è ciò che consente alle persone di installare per nome e aggiornare con un comando; vedi [Pubblica attraverso il tuo marketplace personale](#publish-through-your-own-marketplace).

84 

85<h3 id="ship-a-plugin-with-your-own-tool">

86 Spedisci un plugin con il tuo strumento personale

87</h3>

88 

89Se mantieni una CLI o SDK, pubblica il plugin in un marketplace e fai in modo che il tuo programma di installazione o il messaggio post-installazione esegua o stampi i due comandi di cui un utente ha bisogno: `claude plugin marketplace add <source>`, quindi `claude plugin install <name>@<marketplace>`. Per la scoperta in-sessione quando qualcuno utilizza il tuo strumento, vedi [Consiglia il tuo plugin dalla tua CLI](/docs/it/plugins/cli-hints).

90 

91<h2 id="publish-through-your-own-marketplace">

92 Pubblica attraverso il tuo marketplace personale

93</h2>

94 

95Il tuo marketplace personale è un file `.claude-plugin/marketplace.json` che elenca il tuo plugin, aggiunto a un repository git. Una volta che il file è nel repository, il plugin è pubblicato, senza modulo di invio. Puoi mantenere il file nel repository del plugin stesso o in uno separato.

96 

97<h3 id="add-the-marketplace-file-to-your-repository">

98 Aggiungi il file marketplace al tuo repository

99</h3>

100 

101Per pubblicare dal repository del plugin stesso, salva il file marketplace accanto a `plugin.json` in `.claude-plugin/`, con una voce il cui `source` è `"./"`, la radice del repository. Dai alla voce lo stesso `name` di `plugin.json`, secondo [Mantieni il nome della voce e il nome del manifest uguali](/docs/it/plugins/create-marketplace#keep-the-entry-name-and-the-manifest-name-the-same):

102 

103```json .claude-plugin/marketplace.json theme={null}

104{

105 "name": "your-marketplace",

106 "owner": { "name": "Your Name" },

107 "plugins": [

108 { "name": "deploy-helper", "source": "./" }

109 ]

110}

111```

112 

113Nel tuo shell, esegui `claude plugin validate .` nel repository per controllare il file prima di eseguire il push.

114 

115[Crea un marketplace](/docs/it/plugins/create-marketplace) copre il layout con diversi plugin in un repository.

116 

117<h3 id="control-who-can-install">

118 Controlla chi può installare

119</h3>

120 

121Chiunque possa clonare il repository può installare da esso, quindi se il repository è privato, anche il marketplace è privato. Per host diversi da un repository git, vedi [Ospita un marketplace](/docs/it/plugins/host-marketplace). Per raggiungere tutti in un'azienda, incluse le persone che non usano git, vedi [Distribuisci a un'intera azienda](/docs/it/plugins/host-marketplace#roll-out-to-a-whole-company).

122 

123<h3 id="tell-users-how-to-install">

124 Comunica agli utenti come installare

125</h3>

126 

127Comunica ai tuoi utenti di aggiungere il marketplace e quindi installare il plugin dal loro shell, sostituendo la fonte e i nomi con i tuoi:

128 

129* Aggiungi il marketplace una volta: `claude plugin marketplace add your-org/your-marketplace`, dove l'argomento è una scorciatoia GitHub `owner/repo`, un URL o un percorso

130* Installa il plugin: `claude plugin install deploy-helper@your-marketplace`

131* Oppure fai entrambi da dentro una sessione: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Richiede Claude Code v2.1.275 o successivo. Vedi [Aggiungi un marketplace e installa in un comando](/docs/it/plugins/install#add-a-marketplace-and-install-in-one-command)

132 

133<h3 id="ship-updates-to-users">

134 Spedisci aggiornamenti agli utenti

135</h3>

136 

137Gli utenti ricevono un rilascio quando lo chiedono o quando l'aggiornamento automatico è attivato per il tuo marketplace:

138 

139* **Su richiesta**: `claude plugin update deploy-helper@your-marketplace` nel shell dell'utente aggiorna il marketplace e installa la nuova copia quando la versione del tuo plugin è cambiata

140* **Aggiornamento automatico**: disattivato per impostazione predefinita per il tuo marketplace. Vedi [Attiva l'aggiornamento automatico](/docs/it/plugins/host-marketplace#turn-on-auto-update). Una volta attivato, fa lo stesso di `claude plugin update` con un ritardo dopo l'avvio della sessione

141 

142[Installa plugin](/docs/it/plugins/install) copre i comandi lato utente, e [quando viene eseguito l'aggiornamento automatico](/docs/it/plugins/loading#when-auto-update-runs) copre i tempi.

143 

144<h2 id="submit-to-the-community-marketplace">

145 Invia al marketplace della comunità

146</h2>

147 

148Il marketplace della comunità di Anthropic, `claude-community`, è il marketplace pubblico che elenca i plugin inviati attraverso il modulo di invio della directory dei plugin.

149 

150Gli utenti aggiungono il marketplace della comunità in una sessione Claude Code con `/plugin marketplace add anthropics/claude-plugins-community` e installano da esso come `@claude-community`.

151 

152Per come il marketplace della comunità differisce dal marketplace ufficiale, vedi [Marketplace di Anthropic](/docs/it/plugins/anthropic-marketplaces).

153 

154Per inviare il tuo plugin al marketplace della comunità, utilizza uno dei moduli in-app:

155 

156* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)

157* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

158 

159Il modulo claude.ai richiede un'organizzazione Team o Enterprise e l'autorizzazione Directory, che i Proprietari detengono per impostazione predefinita. Gli autori individuali che non fanno parte di un'organizzazione Team o Enterprise possono utilizzare il modulo Console.

160 

161Nel tuo shell, esegui `claude plugin validate ./your-plugin` localmente prima di inviare, sostituendo `./your-plugin` con il percorso della tua directory plugin. Quando la convalida passa, Claude Code stampa `✔ Validation passed`, o `✔ Validation passed with warnings` se ci sono avvisi. Gli avvisi non fanno fallire la convalida; aggiungi `--strict` per trattarli come errori.

162 

163I plugin elencati appaiono nel catalogo [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), nella maggior parte dei casi fissati a uno SHA di commit specifico.

164 

165Può esserci un ritardo tra l'invio e la comparsa del tuo plugin in `marketplace.json`. Per verificare se il tuo plugin è già installabile, cerca il suo nome nel [catalogo della comunità](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).

166 

167Il marketplace ufficiale, `claude-plugins-official`, non accetta invii attraverso questi moduli. Se lavori con un contatto partner di Anthropic, chiedi loro informazioni su un'inserzione nel marketplace ufficiale.

168 

169<h2 id="ship-updates-renames-and-removals">

170 Spedisci aggiornamenti, ridenominazioni e rimozioni

171</h2>

172 

173<h3 id="release-a-new-version">

174 Rilascia una nuova versione

175</h3>

176 

177Se pubblichi attraverso il tuo marketplace personale e il tuo `plugin.json` imposta `version`, incrementala e esegui il push. Gli utenti che eseguono `claude plugin update` o hanno l'aggiornamento automatico attivato ricevono la nuova versione, come descritto in [Spedisci aggiornamenti agli utenti](#ship-updates-to-users).

178 

179<h3 id="tag-a-release">

180 Etichetta un rilascio

181</h3>

182 

183Etichetta il rilascio in git quando altri plugin dichiarano un intervallo di versione sul tuo, perché quegli intervalli si risolvono rispetto ai tag. Altrimenti non hai bisogno di un tag.

184 

185Per etichettare, esegui `claude plugin tag` nel tuo shell dalla directory del plugin. Crea un tag `{name}--v{version}`. Aggiungi `--push` per inviare il tag a `origin`. Il [riferimento `plugin tag`](/docs/it/plugins/cli-reference#plugin-tag) elenca i suoi flag.

186 

187<h3 id="rename-or-remove-a-plugin">

188 Rinomina o rimuovi un plugin

189</h3>

190 

191Non modificare mai il `name` di un plugin pubblicato. Dopo una ridenominazione, gli utenti che lo hanno già installato perdono il plugin, perché la loro installazione è registrata sotto il vecchio nome. Una voce `renames` nel tuo file marketplace li migra invece. Cambia `displayName` quando vuoi un'etichetta diversa.

192 

193Se una ridenominazione è inevitabile, utilizza la mappa `renames` del file marketplace in modo che le installazioni esistenti migrino invece di fallire con [`Plugin "<name>" not found in marketplace`](/docs/it/plugins/troubleshooting#plugin-not-found-in-marketplace). Per rimuovere un plugin dal marketplace, o per i dettagli completi di `renames`, vedi [Rinomina o rimuovi un plugin](/docs/it/plugins/host-marketplace#rename-or-remove-a-plugin) nella pagina di hosting. Il [riferimento marketplace](/docs/it/plugins/marketplace-reference#top-level-fields) ha il campo.

194 

195<h2 id="declare-dependencies">

196 Dichiara dipendenze

197</h2>

198 

199Se il tuo plugin ha bisogno di un altro plugin dello stesso marketplace per essere abilitato, elencalo nell'array `dependencies` di `plugin.json`. Ogni voce è un nome semplice o un oggetto con un intervallo di versione semver. Quando un utente installa il tuo plugin, Claude Code installa e abilita anche la dipendenza.

200 

201[Dipendenze dei plugin](/docs/it/plugins/dependencies) copre la sintassi dell'intervallo, le dipendenze tra marketplace e come gli utenti potano le dipendenze di cui non hanno più bisogno.

202 

203<h2 id="next-steps">

204 Passaggi successivi

205</h2>

206 

207* [Ospita e mantieni un marketplace](/docs/it/plugins/host-marketplace): rilascia nuove versioni e mantieni gli utenti aggiornati

208* [Dipendenze dei plugin](/docs/it/plugins/dependencies): dichiara e versiona i plugin su cui il tuo dipende

209* [Consiglia il tuo plugin dalla tua CLI](/docs/it/plugins/cli-hints): invita gli utenti Claude Code della tua CLI a installare il plugin

210* [Misura il costo e l'utilizzo del plugin](/docs/it/plugins/measure): vedi quanto costa il tuo plugin nel contesto e se le persone lo usano

plugins/relevance.md +247 −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# Consigliare plugin per la tua organizzazione

6 

7> Aggiungi un blocco di rilevanza alle voci dei plugin del marketplace in modo che Claude Code li suggerisca quando il lavoro di un utente corrisponde, e inserisci il marketplace nella whitelist nelle impostazioni gestite.

8 

9Claude Code può suggerire l'installazione di un plugin dal marketplace della tua organizzazione quando la sessione di un utente corrisponde ai segnali che definisci per quel plugin. I segnali includono la directory di lavoro, i file che Claude ha letto e i comandi che Claude ha eseguito. Li definisci aggiungendo un blocco `relevance` alla voce del plugin in `marketplace.json`.

10 

11Un operatore del marketplace scrive le voci `relevance`. Un amministratore quindi inserisce il marketplace nella whitelist nelle impostazioni gestite. Gli utenti non vedono alcun suggerimento da un marketplace finché non è inserito nella whitelist.

12 

13<Note>

14 Questi casi sono trattati in altre pagine:

15 

16 * **Vuoi installare plugin**: vedi [Installare e gestire plugin](/docs/it/plugins/install)

17 * **Vuoi disattivare i suggerimenti**: vedi [Comprendere come funziona la rilevanza dei plugin](#understand-how-plugin-relevance-works)

18</Note>

19 

20Inizia con le sezioni per il tuo ruolo:

21 

22* **Operatori del marketplace**: leggi [come funzionano i suggerimenti](#understand-how-plugin-relevance-works), quindi [aggiungi rilevanza a una voce di plugin](#add-relevance-to-a-plugin-entry) e [convalida il tuo marketplace](#validate-your-marketplace)

23* **Amministratori**: [abilita i suggerimenti nelle impostazioni gestite](#enable-suggestions-in-managed-settings)

24 

25<h2 id="understand-how-plugin-relevance-works">

26 Understand how plugin relevance works

27</h2>

28 

29Ogni voce di plugin in `marketplace.json` può includere un oggetto `relevance`. L'oggetto nomina un argomento e uno o più segnali. Un segnale è un pattern che Claude Code testa rispetto alla sessione corrente, come la directory di lavoro o i file che Claude ha letto.

30 

31La corrispondenza dei segnali avviene localmente sulla macchina dell'utente e non aggiunge traffico di rete. Claude Code non segnala quali segnali corrispondono o i loro valori ad Anthropic o all'operatore del marketplace.

32 

33Quando un segnale corrisponde e il plugin non è già installato, Claude Code suggerisce il plugin in questi luoghi:

34 

35* **Spinner tip**: un messaggio con il comando `/plugin install` appare sotto lo spinner mentre Claude sta rispondendo.

36* **Notifica all'avvio della sessione**: se un segnale `cwd` corrisponde alla directory di lavoro, una notifica di una riga appare prima che l'utente invii un primo messaggio.

37* **Scheda `/plugin` Discover**: il plugin è fissato in cima all'elenco Discover.

38 

39[Anteprima di ciò che l'utente vede](#preview-what-the-user-sees) mostra il testo esatto di ciascuno e con quale frequenza si ripetono.

40 

41Claude Code non installa mai il plugin automaticamente. L'utente conferma sempre.

42 

43Lo spinner tip e la notifica all'avvio della sessione smettono entrambi di apparire quando l'utente o il progetto imposta [`spinnerTipsEnabled`](/docs/it/settings-reference#spinnertipsenabled) su `false`, o quando un [`spinnerTipsOverride`](/docs/it/settings-reference#spinnertipsoverride) con `excludeDefault` sostituisce i suggerimenti incorporati. Il pin della scheda Discover non è interessato da nessuna delle due impostazioni.

44 

45<h2 id="add-relevance-to-a-plugin-entry">

46 Add relevance to a plugin entry

47</h2>

48 

49Aggiungi un oggetto `relevance` alla voce del plugin nel tuo `marketplace.json`. L'esempio seguente dichiara che il plugin `terraform-helpers` è rilevante quando Claude legge un file `.tf` o esegue `terraform`:

50 

51```json theme={null}

52{

53 "name": "your-marketplace",

54 "owner": { "name": "Your Org" },

55 "plugins": [

56 {

57 "name": "terraform-helpers",

58 "source": "./plugins/terraform-helpers",

59 "description": "Your organization's Terraform conventions and helpers",

60 "relevance": {

61 "topic": "Terraform",

62 "signals": {

63 "cli": ["terraform"],

64 "filesRead": ["**/*.tf"]

65 }

66 }

67 }

68 ]

69}

70```

71 

72Mentre nessuno dei suoi segnali corrisponde, il plugin mantiene la sua posizione normale nell'elenco Discover e non appare come uno spinner tip.

73 

74Per controllare il blocco prima della pubblicazione, [convalida il tuo marketplace](#validate-your-marketplace).

75 

76<h2 id="field-reference">

77 Field reference

78</h2>

79 

80L'oggetto `relevance` e il suo oggetto annidato `signals` accettano i campi nelle tabelle seguenti.

81 

82I client più vecchi caricano ancora un marketplace che utilizza campi `relevance` che non riconoscono, perché i campi sconosciuti sotto `relevance` e `relevance.signals` vengono ignorati al momento del caricamento. Un campo riconosciuto il cui valore supera il suo limite nel [riferimento ai campi](#field-reference) invalida l'intera voce del plugin, e gli utenti non possono installare quel plugin dal marketplace finché non lo correggi; `claude plugin validate` segnala gli stessi limiti.

83 

84<h3 id="relevance">

85 `relevance`

86</h3>

87 

88| Field | Type | Description |

89| :-------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

90| `topic` | string | Facoltativo. La frase che riempie "Lavori con *topic*?" nello spinner tip. Per impostazione predefinita, il nome del plugin con ogni segmento di trattino maiuscolo. Massimo 64 caratteri. |

91| `signals` | object | Matcher che determinano quando il plugin è rilevante. Claude Code suggerisce il plugin solo se è impostato almeno un segnale. Vedi [`relevance.signals`](#relevance-signals). |

92 

93Il `topic` è spesso il nome del prodotto, ad esempio `Terraform`. Usa un dominio come `design` quando il nome del plugin non suona naturale come argomento.

94 

95<h3 id="relevance-signals">

96 `relevance.signals`

97</h3>

98 

99L'oggetto `signals` accetta i seguenti campi.

100 

101| Field | Type | Description | Limit |

102| :------------- | :--------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------- |

103| `cwd` | array of strings | Pattern Glob abbinati alla directory di lavoro della sessione. Vedi [corrispondenza della directory di lavoro](#working-directory-matching). | 10 pattern di 256 caratteri ciascuno |

104| `cli` | array of strings | Nomi di comandi da comandi shell che Claude ha eseguito questa sessione, ad esempio `["terraform"]`. Corrispondenza esatta. Vedi [corrispondenza del nome del comando](#command-name-matching). | 10 voci di 64 caratteri ciascuna |

105| `hosts` | array of strings | Nomi host visti in URL `http://` o `https://` in comandi Bash questa sessione, ad esempio `["registry.terraform.io"]`. Solo nome host nudo in minuscolo: nessuno schema, porta o percorso. Corrispondenza esatta senza distinzione tra maiuscole e minuscole. | 20 voci di 128 caratteri ciascuna |

106| `filesRead` | array of strings | Pattern Glob abbinati ai percorsi dei file che Claude ha letto questa sessione, ad esempio `["**/*.tf"]`. Normalizzato con barra in avanti e senza distinzione tra maiuscole e minuscole. | 10 pattern di 256 caratteri ciascuno |

107| `manifestDeps` | array of objects | Dipendenze dichiarate nei manifesti di pacchetto che Claude ha letto questa sessione. Ogni voce è `{ "file": "...", "pattern": "..." }`, dove entrambi i valori sono espressioni regolari. Vedi [corrispondenza delle dipendenze del manifesto](#manifest-dependency-matching). | 10 voci, ogni valore al massimo 256 caratteri. I file manifesto più grandi di 512 KB vengono saltati |

108 

109I segnali `filesRead` e `manifestDeps` corrispondono anche ai file che Claude ha scritto o modificato questa sessione e ai file di memoria `CLAUDE.md` caricati automaticamente del progetto.

110 

111<h4 id="working-directory-matching">

112 Working directory matching

113</h4>

114 

115`cwd` è l'unico segnale che può corrispondere all'avvio della sessione, prima che l'utente invii un primo messaggio.

116 

117Claude Code abbina ogni pattern `cwd` come segue:

118 

119* Il pattern viene abbinato alla directory di lavoro come percorso assoluto. Quando la sessione è all'interno di un repository git, viene anche abbinata al percorso della directory di lavoro relativo alla radice del repository.

120* La corrispondenza è normalizzata con barra in avanti e senza distinzione tra maiuscole e minuscole.

121* Ogni pattern corrisponde alla directory stessa e a tutto ciò che contiene, quindi `infra`, `infra/` e `infra/**` si comportano in modo identico.

122 

123<h4 id="command-name-matching">

124 Command name matching

125</h4>

126 

127Claude Code registra un nome di comando per ogni comando shell che Claude esegue: il primo token dopo eventuali assegnazioni di variabili di ambiente iniziali e `sudo`. I comandi composti contribuiscono solo al loro comando iniziale, quindi `cd infra && terraform plan` registra `cd`, non `terraform`.

128 

129<h4 id="manifest-dependency-matching">

130 Manifest dependency matching

131</h4>

132 

133Ogni voce `manifestDeps` accoppia due stringhe di origine JavaScript `RegExp`:

134 

135* `file`: abbinato senza distinzione tra maiuscole e minuscole rispetto al percorso del file manifesto. Il percorso è in genere assoluto, quindi ancorare il pattern alla fine piuttosto che all'inizio. I percorsi non sono normalizzati per il separatore per questo segnale, quindi i percorsi Windows utilizzano barre rovesciate.

136* `pattern`: abbinato con distinzione tra maiuscole e minuscole rispetto al contenuto di quel file.

137 

138L'esempio seguente utilizza `manifestDeps` per suggerire il tuo plugin una volta che Claude ha letto un `package.json` che dipende dal pacchetto npm del tuo SDK, denominato `your-sdk` qui.

139 

140```json theme={null}

141{

142 "name": "your-plugin",

143 "source": "./plugins/your-plugin",

144 "relevance": {

145 "signals": {

146 "manifestDeps": [

147 {

148 "file": "[/\\\\]package\\.json$",

149 "pattern": "\"your-sdk\"\\s*:"

150 }

151 ]

152 }

153 }

154}

155```

156 

157In questo esempio, il pattern `file` utilizza `[/\\\\]` in modo che corrisponda sia ai separatori di percorso con barra in avanti che con barra rovesciata, e `\\.` in modo che il punto sia letterale. In JSON, ogni barra rovesciata nell'espressione regolare è scritta due volte.

158 

159<h2 id="validate-your-marketplace">

160 Validate your marketplace

161</h2>

162 

163Nella tua shell, esegui `claude plugin validate` rispetto alla directory del tuo marketplace per controllare il blocco `relevance` prima della pubblicazione:

164 

165```bash theme={null}

166claude plugin validate ./my-marketplace

167```

168 

169Il validatore segnala errori e avvisi sul blocco `relevance`, inclusi questi:

170 

171* Segnala chiavi sconosciute sotto `relevance` e `relevance.signals` come avvisi

172* Contrassegna un valore `relevance` che non è un oggetto

173* Rifiuta una voce `signals.hosts` che include uno schema, una porta o un percorso

174 

175Ogni risultato viene stampato con il percorso del campo che riguarda, e l'output termina con `Validation passed`, `Validation passed with warnings` o `Validation failed`.

176 

177<h2 id="enable-suggestions-in-managed-settings">

178 Enable suggestions in managed settings

179</h2>

180 

181Gli utenti non vedono alcun suggerimento da un marketplace finché un amministratore non lo inserisce nella whitelist nelle [impostazioni gestite](/docs/it/plugins/org), anche quando il suo `marketplace.json` dichiara `relevance`.

182 

183Per inserire un marketplace nella whitelist, modifica le tue impostazioni gestite come segue:

184 

185* Aggiungi il nome del marketplace a `pluginSuggestionMarketplaces`.

186* Per qualsiasi marketplace diverso dal marketplace ufficiale di Anthropic, dichiara anche l'origine del marketplace, come voce di quel nome in [`extraKnownMarketplaces`](/docs/it/plugins/org#require-a-marketplace-and-its-plugins) o come voce in [`strictKnownMarketplaces`](/docs/it/plugins/org#allowlist-with-strictknownmarketplaces).

187 

188Su una macchina in cui il marketplace non è registrato, o è registrato con il nome inserito nella whitelist da un'origine diversa, non appare alcun suggerimento da esso. Il controllo dell'origine impedisce a un'origine non correlata di registrarsi con un nome inserito nella whitelist per ottenere i suoi plugin suggeriti in tutta la tua organizzazione.

189 

190Il seguente `managed-settings.json` registra un marketplace dell'organizzazione da un repository GitHub e abilita i suoi suggerimenti:

191 

192```json theme={null}

193{

194 "extraKnownMarketplaces": {

195 "your-marketplace": {

196 "source": {

197 "source": "github",

198 "repo": "your-org/your-marketplace"

199 }

200 }

201 },

202 "pluginSuggestionMarketplaces": ["your-marketplace"]

203}

204```

205 

206Il nome del marketplace ufficiale può registrarsi solo dall'origine ufficiale di Anthropic, quindi non ha bisogno di una dichiarazione di origine. Per il marketplace ufficiale, inserisci nella whitelist solo il nome:

207 

208```json theme={null}

209{

210 "pluginSuggestionMarketplaces": ["claude-plugins-official"]

211}

212```

213 

214<h2 id="preview-what-the-user-sees">

215 Preview what the user sees

216</h2>

217 

218Quando il segnale `relevance` di un plugin corrisponde durante una sessione, il suggerimento sotto lo spinner legge:

219 

220```text theme={null}

221Working with Terraform? Install the terraform-helpers plugin:

222/plugin install terraform-helpers@your-marketplace

223```

224 

225Quando un segnale `cwd` corrisponde all'avvio della sessione, la notifica di una riga legge:

226 

227```text theme={null}

228plugin suggestion: terraform-helpers@your-marketplace · /plugin

229```

230 

231Nella scheda `/plugin` Discover, il plugin è fissato sopra gli altri risultati con un'annotazione che nomina il segnale corrispondente, come `suggested for this directory` o `suggested for terraform commands`.

232 

233Claude Code limita la frequenza con cui suggerisce un determinato plugin:

234 

235* Il suggerimento appare al massimo una volta ogni tre sessioni tra lo spinner tip e la notifica all'avvio della sessione combinati.

236* La notifica all'avvio della sessione smette di apparire una volta che lo spinner tip e la notifica hanno mostrato il plugin un totale combinato di due volte.

237* Né lo spinner tip né la notifica all'avvio della sessione si ripetono una volta che il plugin è installato.

238* La scheda Discover fissa il plugin la prima volta che l'utente apre la scheda mentre i segnali del plugin corrispondono. Claude Code lo registra in `~/.claude.json`, quindi ogni volta successiva che l'utente apre `/plugin` su quella macchina, il plugin appare in ordine normale.

239 

240<h2 id="see-also">

241 See also

242</h2>

243 

244* [Host a marketplace](/docs/it/plugins/host-marketplace): esegui il marketplace che ospita i tuoi plugin

245* [Marketplace reference](/docs/it/plugins/marketplace-reference#plugin-entries): ogni campo che una voce di plugin accetta

246* [Recommend your plugin from your CLI](/docs/it/plugins/cli-hints): richiedi agli utenti dalla tua CLI invece che dai segnali di sessione di Claude Code

247* [Manage plugins for your organization](/docs/it/plugins/org): `extraKnownMarketplaces`, `strictKnownMarketplaces` e il resto delle chiavi della politica dei plugin

plugins/security.md +186 −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# Sicurezza e affidabilità dei plugin

6 

7> Decidi se fidarti di un plugin prima di installarlo, da ciò che un plugin può fare sulla tua macchina a come esaminarlo e rimuoverlo.

8 

9Un plugin Claude Code che installi può eseguire codice arbitrario sulla tua macchina con i tuoi privilegi utente.

10 

11Installi un plugin da un marketplace, che è il catalogo da cui Claude Code lo recupera. Alcuni nomi di marketplace sono [riservati ai marketplace di Anthropic](#marketplace-tiers), e ogni altro marketplace è di terze parti. Il nome di un marketplace ti dice chi pubblica il catalogo, non cosa fa ogni plugin in esso, quindi [esamina un plugin prima di installarlo](#review-a-plugin-before-you-install) da qualsiasi marketplace provenga.

12 

13Leggi questa pagina se stai decidendo se installare un plugin, o se esamini gli strumenti prima che il tuo team possa usarli.

14 

15<Note>

16 Questi casi sono trattati su altre pagine:

17 

18 * **Modello di sicurezza di Claude Code**: vedi [Sicurezza](/docs/it/security)

19 * **Limitare o richiedere plugin per un'organizzazione**: vedi [Gestisci plugin per la tua organizzazione](/docs/it/plugins/org)

20 * **I plugin `security-guidance` o `claude-security`**: questa pagina non riguarda loro. Vedi [`security-guidance`](/docs/it/security-guidance) e [`claude-security`](/docs/it/claude-security)

21</Note>

22 

23Inizia con [cosa può fare un plugin](#understand-what-a-plugin-can-do) e [quali marketplace sono di Anthropic](#marketplace-tiers), quindi [esamina il plugin prima di installarlo](#review-a-plugin-before-you-install).

24 

25<h2 id="understand-what-a-plugin-can-do">

26 Comprendi cosa può fare un plugin

27</h2>

28 

29Un plugin può contenere contenuti che eseguono codice sulla tua macchina con i tuoi privilegi utente e contenuti che entrano nel contesto di Claude come istruzioni, quindi [esamina un plugin prima di installarlo](#review-a-plugin-before-you-install). Ecco cosa può fare un plugin installato:

30 

31* **Hooks**: gli [hooks](/docs/it/hooks) di un plugin vengono eseguiti come comandi shell in punti del ciclo di vita di Claude Code, come prima o dopo una chiamata a uno strumento.

32* **Server MCP e LSP**: Claude Code si connette ai [server MCP](/docs/it/mcp) che un plugin abilitato dichiara e fornisce a Claude i loro strumenti. Un server MCP stdio viene eseguito come un processo che Claude Code avvia sulla tua macchina. Claude Code avvia anche i language server che il plugin dichiara.

33* **Directory `bin/`**: Claude Code aggiunge la directory `bin/` di ogni plugin abilitato al `PATH` della shell dello strumento Bash, quindi i comandi Bash di Claude possono eseguire qualsiasi eseguibile lì.

34* **Skills, comandi e agenti**: questi entrano nel contesto di Claude come istruzioni, quindi influenzano ciò che Claude fa con gli strumenti che ha già.

35* **Aggiornamenti**: quando l'aggiornamento automatico è attivo per il marketplace da cui hai installato un plugin, Claude Code aggiorna quel plugin in background, quindi i file che hai esaminato possono cambiare su disco. [Quando viene eseguito l'aggiornamento automatico](/docs/it/plugins/loading#when-auto-update-runs) ha i tempi. Per attivare o disattivare l'aggiornamento automatico per marketplace, vedi [Keep plugins updated](/docs/it/plugins/install#keep-plugins-updated).

36 

37Le [regole di autorizzazione](/docs/it/permissions) e la [sandbox](/docs/it/sandboxing) di Claude Code coprono le chiamate agli strumenti che Claude fa, non il codice che un plugin esegue da solo:

38 

39* **Hooks e processi server**: gli hook dei comandi eseguono comandi shell con i tuoi permessi utente completi. Claude Code esegue hook e server MCP al di fuori della sandbox.

40* **Chiamate agli strumenti di Claude**: una chiamata a uno degli strumenti MCP del plugin e un comando Bash che esegue un eseguibile dalla `bin/` del plugin sono chiamate agli strumenti, quindi le tue regole di autorizzazione si applicano a loro.

41 

42L'installazione di un plugin lo abilita anche, a meno che il suo manifest o la voce del marketplace non imposti [`defaultEnabled: false`](/docs/it/plugins/install#choose-an-install-scope) e tu non l'abbia abilitato tu stesso.

43 

44Per rimuovere un plugin di cui non ti fidi più, vedi [Remove a plugin you no longer trust](#remove-a-plugin-you-no-longer-trust).

45 

46<h2 id="marketplace-tiers">

47 Identifica i marketplace di Anthropic per nome

48</h2>

49 

50Il nome di un marketplace lo colloca in uno di tre livelli: ufficiale, community o di terze parti. Claude Code accetta i nomi ufficiali e community solo per i marketplace provenienti da repository `github.com/anthropics/`, quindi un marketplace di terze parti non può presentarsi come uno di Anthropic. Un marketplace che un collega o la tua organizzazione pubblica è di terze parti.

51 

52La tabella elenca quali nomi rientrano in ogni livello:

53 

54| Livello | Quali marketplace |

55| :---------- | :---------------------------------------------------------------------------------------------- |

56| Ufficiale | I [nomi ufficiali del marketplace](#official-marketplace-names), come `claude-plugins-official` |

57| Community | `claude-community`, `claude-plugins-community` e `healthcare` |

58| Terze parti | Ogni altro marketplace |

59 

60Dove il catalogo `claude-community` fissa un plugin a un commit SHA, cosa che fa per quasi ogni voce, Claude Code rifiuta di installare un commit diverso.

61 

62<h3 id="official-marketplace-names">

63 Nomi ufficiali del marketplace

64</h3>

65 

66Questi nomi di marketplace compongono il livello ufficiale:

67 

68* `claude-plugins-official`

69* `claude-code-marketplace`

70* `claude-code-plugins`

71* `anthropic-marketplace`

72* `anthropic-plugins`

73* `agent-skills`

74* `anthropic-agent-skills`

75* `life-sciences`

76* `knowledge-work-plugins`

77* `claude-for-legal`

78* `claude-for-financial-services`

79* `financial-services-plugins`

80* `first-party-plugins`

81* `claude-tag-plugins`

82 

83Per come i marketplace ufficiali, community e demo differiscono e dove sfogliare cosa elenca ognuno, vedi [Anthropic's marketplaces](/docs/it/plugins/anthropic-marketplaces).

84 

85<h2 id="review-a-plugin-before-you-install">

86 Esamina un plugin prima di installarlo

87</h2>

88 

89Prima di installare un plugin, guarda cosa aggiunge e da dove viene.

90 

91<Steps>

92 <Step title="Controlla la fonte del marketplace">

93 Nella tua shell, esegui `claude plugin marketplace list` per stampare la fonte da cui è stato aggiunto ogni marketplace, come un repository GitHub o una directory.

94 </Step>

95 

96 <Step title="Leggi il riquadro dei dettagli">

97 In una sessione Claude Code, esegui `/plugin` e seleziona il plugin. Il riquadro dei dettagli mostra una sezione **Will install** che elenca i comandi, gli agenti, le skills, gli hooks e i server MCP e LSP del plugin. Per un plugin per il quale Anthropic non ha dati di componenti pubblicati, la sezione mostra ciò che la voce del marketplace dichiara, o una nota: `Components will be discovered at installation` per un plugin archiviato all'interno del marketplace, o `Component summary not available for remote plugin` per uno recuperato da altrove.

98 </Step>

99 

100 <Step title="Leggi la fonte del plugin">

101 Nel riquadro dei dettagli, seleziona **Open homepage** o **View on GitHub** sotto le opzioni di installazione. Se il riquadro non offre nessuno dei due, apri il repository del marketplace che hai trovato nel primo passaggio. Trova la directory del plugin lì. La sezione **Will install** mostra che esiste un hook ma non cosa esegue, quindi leggi questi file nella directory del plugin:

102 

103 * **`hooks/hooks.json`**: il comando che ogni hook esegue

104 * **`.mcp.json`**: il comando o l'URL di ogni server

105 * **`bin/`**: ogni file nella directory

106 </Step>

107 

108 <Step title="Elenca cosa contiene il plugin">

109 Clona il repository che contiene la directory del plugin, quindi esegui `claude --plugin-dir <plugin directory> plugin details <plugin name>` nella tua shell per vedere cosa Claude Code trova in esso. Il comando legge i file del plugin senza avviare una sessione e stampa un `Component inventory` che elenca le skills e i comandi del plugin, gli agenti, gli hook con l'evento di ogni hook, e i server MCP e LSP.

110 </Step>

111</Steps>

112 

113Dopo aver installato un plugin, esegui `claude plugin details <plugin name>` nella tua shell per stampare lo stesso `Component inventory` per la copia installata sotto `~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/`.

114 

115<h3 id="remove-a-plugin-you-no-longer-trust">

116 Rimuovi un plugin di cui non ti fidi più

117</h3>

118 

119Nella tua shell, esegui [`claude plugin uninstall <plugin>`](/docs/it/plugins/cli-reference#plugin-uninstall) con lo `--scope` in cui l'hai installato. Quindi controlla cosa ha rimosso la disinstallazione e cosa ha lasciato:

120 

121* **Dati persistenti**: quando era l'ultimo scope in cui il plugin era installato, la disinstallazione elimina anche la directory dei dati persistenti del plugin, a meno che non passi `--keep-data`.

122* **File memorizzati nella cache**: i file del plugin rimangono su disco sotto `~/.claude/plugins/cache/` per 14 giorni prima che una [scansione di background li rimuova](/docs/it/plugins/loading#cleanup-of-previous-versions). Dopo aver disinstallato l'ultimo plugin, le directory orfane rimangono fino a quando non installi un altro. Per eliminare i file ora, rimuovi tu stesso la directory del plugin sotto `~/.claude/plugins/cache/<marketplace>/<plugin>/`.

123* **Il marketplace**: se non ti fidi nemmeno del proprietario del marketplace, [rimuovi il marketplace](/docs/it/plugins/install#manage-marketplaces) anche, che disinstalla ogni plugin che hai installato da esso.

124 

125<h2 id="recognize-when-claude-code-refuses-or-warns">

126 Riconosci quando Claude Code rifiuta o avverte

127</h2>

128 

129Il riquadro dei dettagli che apri dalla scheda **Discover** o **Marketplaces** in `/plugin` mostra lo stesso avviso di fiducia per ogni plugin. Claude Code rifiuta invece di avvertire in casi come quelli sotto [Untrusted marketplace sources and failed integrity checks](#untrusted-marketplace-sources-and-failed-integrity-checks).

130 

131<h3 id="trust-warning-before-you-install">

132 Avviso di fiducia prima di installare

133</h3>

134 

135L'avviso legge lo stesso indipendentemente da quale marketplace provenga il plugin:

136 

137```text theme={null}

138Make sure you trust a plugin before installing, updating, or using it. Anthropic does not control what MCP servers, files, or other software are included in plugins and cannot verify that they will work as intended or that they won't change. See each plugin's homepage for more information.

139```

140 

141Se la tua organizzazione imposta `pluginTrustMessage` nelle [managed settings](/docs/it/plugins/org), Claude Code aggiunge quel testo all'avviso.

142 

143<h3 id="untrusted-marketplace-sources-and-failed-integrity-checks">

144 Fonti di marketplace non affidabili e controlli di integrità falliti

145</h3>

146 

147Claude Code rifiuta di caricare un marketplace o di installare un plugin in questi casi, ognuno con il suo messaggio di errore:

148 

149* **Fonte di marketplace non affidabile**: quando un marketplace utilizza un nome ufficiale o community ma la sua fonte è al di fuori di `github.com/anthropics/`, Claude Code smette di caricare il marketplace e i plugin che hai installato da esso. L'errore è [Marketplace is registered from an untrusted source](/docs/it/errors#marketplace-is-registered-from-an-untrusted-source).

150* **Integrità dell'archivio**: quando una voce del marketplace fissa un'[origine `archive`](/docs/it/plugins/marketplace-reference#archive-plugin-source) a un digest `sha256` e il digest del file scaricato non corrisponde, Claude Code rifiuta l'installazione. L'errore è [Plugin archive integrity check failed](/docs/it/errors#plugin-archive-integrity-check-failed).

151 

152Il pin `sha256` è separato dal pin del commit SHA del catalogo community, che seleziona il commit git da controllare.

153 

154<h2 id="enforce-plugin-controls-for-your-organization">

155 Applica i controlli dei plugin per la tua organizzazione

156</h2>

157 

158Con [managed settings](/docs/it/plugins/org), un amministratore può applicare questi controlli dei plugin:

159 

160* Allowlist o blocklist delle fonti del marketplace

161* Forzare l'abilitazione dei plugin

162* Disattivare i flag `--plugin-dir` e `--plugin-url` e la variabile `CLAUDE_CODE_PLUGIN_DIRS`

163* Limitare gli hook a quelli dalle managed settings e dai plugin forzati

164* Impedire ai plugin dagli account claude.ai dei membri di caricarsi in Claude Code, con [`syncClaudeAiPlugins`](/docs/it/plugins/org#control-matrix)

165 

166La [matrice di controllo](/docs/it/plugins/org#control-matrix) dice cosa fa e non copre ogni chiave.

167 

168<h2 id="find-plugins-in-telemetry">

169 Trova i plugin nella telemetria

170</h2>

171 

172Se la tua organizzazione esporta gli [eventi OpenTelemetry](/docs/it/monitoring-usage) di Claude Code al suo backend, i [livelli del marketplace](#marketplace-tiers) decidono quali nomi di plugin appaiono lì:

173 

174* **[Plugin loaded event](/docs/it/monitoring-usage#plugin-loaded-event)**: l'evento segnala i nomi ufficiali del plugin e del marketplace come sono. Per i livelli community e terze parti, `plugin.name` e `marketplace.name` sono la stringa letterale `third-party` a meno che non imposti `OTEL_LOG_TOOL_DETAILS=1`.

175* **Scope del plugin**: lo `plugin.scope` dell'evento caricato segnala ancora da dove proviene il plugin, come `org` per un plugin che le tue managed settings abilitano o `user-local` per qualsiasi altro plugin di terze parti. L'[evento plugin loaded](/docs/it/monitoring-usage#plugin-loaded-event) elenca ogni valore.

176* **[Plugin installed event](/docs/it/monitoring-usage#plugin-installed-event)**: a meno che non imposti `OTEL_LOG_TOOL_DETAILS=1`, l'evento omette i campi del nome per i plugin non ufficiali invece di segnalare `third-party`.

177* **[Claude Code Analytics API](https://platform.claude.com/docs/en/api/admin/analytics/plugins/list)**: Claude Code segnala i plugin dai livelli ufficiali e community per nome e segnala ogni altro plugin come `third-party`.

178 

179<h2 id="next-steps">

180 Passaggi successivi

181</h2>

182 

183* [Gestire i plugin per la vostra organizzazione](/docs/it/plugins/org): limitare da quali marketplace gli utenti possono installare e richiedere quelli di cui vi fidate

184* [Installare e gestire i plugin](/docs/it/plugins/install): esaminare il riquadro dei dettagli di un plugin prima di scegliere un ambito

185* [Marketplace di Anthropic](/docs/it/plugins/anthropic-marketplaces): quali nomi di marketplace sono di Anthropic

186* [Sicurezza](/docs/it/security): il modello di sicurezza proprio di Claude Code

plugins/troubleshooting.md +1064 −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# Risolvere i problemi dei plugin

6 

7> Correggi gli errori dei plugin in Claude Code. Trova il messaggio esatto che hai visto, raggruppato per fase da dove /plugin viene eseguito fino all'installazione e alla politica organizzativa.

8 

9Questa pagina elenca i messaggi di errore e i sintomi per i plugin di Claude Code e per i marketplace, i cataloghi da cui Claude Code installa i plugin. Ogni voce fornisce la causa, una soluzione e cosa vedi una volta che la soluzione funziona.

10 

11Dove un messaggio nomina un plugin o un marketplace, la voce mostra un segnaposto come `<name>` al suo posto.

12 

13Utilizza questa pagina che tu stia installando plugin, costruendoli, ospitando un marketplace o amministrando plugin per un'organizzazione.

14 

15<Note>

16 Questi casi sono trattati su altre pagine:

17 

18 * **Perché gli ambiti, la cache e la precedenza si comportano nel modo in cui lo fanno**: leggi [Plugin loading reference](/docs/it/plugins/loading)

19 * **Ricerca di un flag, un campo o un comando**: utilizza il [plugin commands reference](/docs/it/plugins/cli-reference), il [manifest reference](/docs/it/plugins/manifest-reference) o il [marketplace reference](/docs/it/plugins/marketplace-reference)

20</Note>

21 

22Cerca il messaggio esatto che hai visto. Ogni messaggio è elencato sotto la fase che lo produce, che non è sempre il comando che hai eseguito. Ad esempio, un'installazione può fallire perché manca un marketplace, quindi quel messaggio è sotto [Add a marketplace](#add-a-marketplace).

23 

24<h2 id="find-where-/plugin-runs">

25 Find where `/plugin` runs

26</h2>

27 

28`/plugin` è un comando che si digita all'interno di una sessione di terminale Claude Code in esecuzione e apre un pannello interattivo. Le voci in questa sezione coprono i luoghi in cui è possibile digitarlo ma non può essere eseguito e i comandi che non esistono.

29 

30<h3 id="plugin-isnt-available-in-this-environment">

31 `/plugin isn't available in this environment`

32</h3>

33 

34È stato digitato `/plugin` da qualche parte diversa da una sessione di terminale Claude Code e Claude ha risposto con questa riga invece di aprire qualcosa.

35 

36Si riceve questa risposta in una sessione che non ha un terminale per disegnare il pannello `/plugin` in: [non-interactive mode](/docs/it/headless) con `claude -p`, l'Agent SDK, la scheda Code dell'app desktop Claude, il pannello dell'estensione VS Code e il browser su claude.ai/code.

37 

38Nel pannello dell'estensione VS Code, solo una riga `/plugin` con qualcosa dopo di essa, come `/plugin install <plugin>@<marketplace>`, riceve questa risposta. `/plugin` o `/plugins` digitati da soli aprono la finestra di dialogo **Manage plugins**.

39 

40Installare il plugin dalla superficie su cui ci si trova:

41 

42* **App desktop Claude, sessione locale o SSH**: fare clic sul pulsante **+** accanto al prompt, quindi **Plugins**, quindi **Add plugin** per aprire il [plugin browser](/docs/it/desktop#install-plugins)

43* **Estensione VS Code**: utilizzare la scheda **VS Code** sotto [Install a plugin](/docs/it/plugins/install#install-a-plugin)

44* **Claude Code sul web o una sessione cloud desktop**: una sessione cloud non ha un browser di plugin. Vedere la scheda **Cloud session** sotto [Install a plugin](/docs/it/plugins/install#install-a-plugin) per ciò che una sessione cloud carica

45* **Un terminale a cui si ha accesso**: eseguire `claude` e digitare `/plugin` lì, oppure eseguire `claude plugin install <plugin>@<marketplace>` nella shell senza avviare una sessione

46 

47Quando un'installazione da terminale funziona, `/plugin` stampa un riepilogo di installazione che inizia con `✓ Installed <plugin>.` e `claude plugin install` stampa `Successfully installed plugin: <plugin>@<marketplace>`.

48 

49<h3 id="zsh-no-such-file-or-directory-plugin">

50 `zsh: no such file or directory: /plugin`

51</h3>

52 

53È stato digitato `/plugin ...` al prompt della shell e la shell ha segnalato che non esiste alcun file denominato `/plugin`. Bash segnala `bash: /plugin: No such file or directory`.

54 

55`/plugin` è un comando che si digita all'interno di una sessione Claude Code, non al prompt della shell. Avviare una sessione e digitare lo stesso comando lì:

56 

57```shell theme={null}

58claude

59```

60 

61Quindi, al prompt di Claude Code:

62 

63```text theme={null}

64/plugin install <plugin>@<marketplace>

65```

66 

67Un'installazione riuscita stampa un riepilogo che inizia con `✓ Installed <plugin>.` Se l'installazione stessa fallisce, il suo messaggio è sotto [Add a marketplace](#add-a-marketplace) o [Install a plugin](#install-a-plugin).

68 

69Per installare dalla shell senza avviare una sessione, eseguire `claude plugin install <plugin>@<marketplace>` al suo posto.

70 

71<h3 id="the-term-plugin-is-not-recognized-as-the-name-of-a-cmdlet">

72 `The term '/plugin' is not recognized as the name of a cmdlet`

73</h3>

74 

75È stato digitato `/plugin ...` al prompt di PowerShell e `/plugin` è un comando Claude Code, non un programma. Bash e Zsh segnalano [la loro forma di questo errore](#zsh-no-such-file-or-directory-plugin).

76 

77Utilizzare uno di questi al suo posto:

78 

79* Eseguire `claude`, quindi digitare `/plugin` al prompt di Claude Code

80* Eseguire `claude plugin install <plugin>@<marketplace>` in PowerShell senza avviare una sessione

81 

82<h3 id="claude-command-not-found-after-claude-plugin">

83 `claude: command not found` after `claude plugin ...`

84</h3>

85 

86È stato eseguito `claude plugin install ...` nella shell e la shell non ha potuto trovare `claude` affatto. Su Windows il messaggio è `'claude' is not recognized as the name of a cmdlet` o `'claude' is not recognized as an internal or external command`.

87 

88La causa non è il comando del plugin. O Claude Code non è installato, oppure la sua directory di installazione non è su `PATH` in questa shell. Seguire [`command not found: claude` after installation](/docs/it/troubleshoot-install#command-not-found-claude-after-installation), quindi riprovare il comando del plugin.

89 

90<h3 id="unknown-command-and-command-spellings-that-dont-exist">

91 `Unknown command` and command spellings that don't exist

92</h3>

93 

94È stato digitato un comando di plugin visto da qualche parte e si è ricevuto `Unknown command: /<name>` in una sessione, o `error: unknown command '<name>'` o `error: unknown option '<flag>'` dal binario `claude` nella shell.

95 

96Diversi comandi sono in uso che Claude Code non ha. La tabella seguente mappa ciascuno al comando reale. Il [plugin commands reference](/docs/it/plugins/cli-reference) elenca ogni sottocomando e flag.

97 

98| You typed | What Claude Code says | Use instead |

99| :----------------------------------------- | :--------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |

100| `claude plugin add <source>` | `error: unknown command 'add'` | `claude plugin marketplace add <source>` per aggiungere un marketplace, o `claude plugin install <plugin>@<marketplace>` per installare un plugin |

101| `claude plugin install <plugin> --project` | `error: unknown option '--project'` | `claude plugin install <plugin>@<marketplace> --scope project` |

102| `/install <plugin>` | `Unknown command: /install` | `/plugin install <plugin>@<marketplace>` |

103| `/plugin add <source>` | Il pannello `/plugin` si apre sulla scheda **Discover** | `/plugin marketplace add <source>` |

104| `marketplace.anthropic.com` come fonte | `Invalid marketplace source format. Try: owner/repo, https://..., or ./path` | `anthropics/claude-plugins-official` per il marketplace ufficiale |

105 

106Questi comandi sembrano sbagliati ma funzionano:

107 

108* `claude plugins` è un alias di `claude plugin`

109* `claude plugin remove` è un alias di `claude plugin uninstall`

110* `/plugins` e `/marketplace` in una sessione aprono lo stesso pannello di `/plugin`

111 

112<h2 id="add-a-marketplace">

113 Add a marketplace

114</h2>

115 

116Un marketplace è un catalogo che si aggiunge a Claude Code da un repository git, un URL o un percorso locale. Queste voci coprono i messaggi che si ricevono quando l'aggiunta fallisce o un successivo aggiornamento fallisce.

117 

118<h3 id="marketplace-claude-plugins-official-not-found">

119 `Marketplace "claude-plugins-official" not found`

120</h3>

121 

122È stato eseguito `/plugin install <plugin>@claude-plugins-official` in una sessione e Claude Code ha segnalato che non ha alcun marketplace con quel nome.

123 

124Il marketplace ufficiale non è ancora registrato su questa macchina. Claude Code normalmente lo registra da solo la prima volta che si avvia una sessione di terminale interattiva. Non è stato eseguito se si è utilizzato Claude Code solo attraverso l'estensione VS Code e salta o rinvia quel passaggio:

125 

126* Quando una politica blocca la fonte

127* Quando `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` è impostato

128* Dopo un tentativo fallito che sta aspettando di riprovare

129 

130I comandi della shell `claude plugin` non lo registrano mai per voi.

131 

132Aggiungerlo, quindi riprovare l'installazione:

133 

134```text theme={null}

135/plugin marketplace add anthropics/claude-plugins-official

136```

137 

138Claude Code stampa `Successfully added marketplace: claude-plugins-official` e `/plugin marketplace list` mostra il marketplace con la sua fonte.

139 

140Per qualsiasi altro nome di marketplace in questo messaggio, vedere [`Marketplace "<name>" not found`](#marketplace-not-found).

141 

142La stessa stringa appare anche nella scheda **Errors** di `/plugin`, l'elenco dei fallimenti di caricamento del pannello, quando un plugin elencato nelle impostazioni nomina un marketplace che non è stato aggiunto.

143 

144<h3 id="marketplace-not-found">

145 `Marketplace "<name>" not found`

146</h3>

147 

148È stato eseguito `/plugin install <plugin>@<name>` in una sessione, spesso da una riga di installazione che qualcuno ha inviato, e Claude Code ha segnalato che non ha alcun marketplace con quel nome.

149 

150Se il nome inizia con `claudeai-`, il marketplace è ospitato su claude.ai e lo si aggiunge per nome dalla shell con `claude plugin marketplace add --claudeai <name>`. Vedere [Add a marketplace from claude.ai](/docs/it/plugins/install#add-from-claude-ai).

151 

152Per qualsiasi altro nome, una riga di installazione nomina un marketplace ma non dice dove è ospitato il marketplace e Claude Code non ha un indice per cercare un nome di marketplace. Chiedere a chi ha inviato la riga la fonte del marketplace, che è un GitHub `owner/repo`, un URL git o un percorso. Quindi [aggiungere il marketplace](/docs/it/plugins/install#add-a-marketplace) ed eseguire di nuovo la riga di installazione.

153 

154Un marketplace che qualcuno invia è di terze parti, quindi [rivedere il plugin prima di installarlo](/docs/it/plugins/security#review-a-plugin-before-you-install).

155 

156Se il marketplace è già stato aggiunto, controllare l'ortografia rispetto a `/plugin marketplace list`.

157 

158<h3 id="invalid-marketplace-source-format">

159 `Invalid marketplace source format`

160</h3>

161 

162È stato eseguito `/plugin marketplace add <source>` o `claude plugin marketplace add <source>` e Claude Code ha risposto `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.

163 

164Claude Code accetta una fonte in una di queste forme:

165 

166* Un shorthand GitHub `owner/repo`

167* Un URL `https://` o `http://`

168* Un URL SSH `user@host:path`

169* Un percorso locale che inizia con `./`, `../`, `/` o `~`

170 

171Un nome semplice come `claude-plugins-official` non corrisponde a nessuno di essi. Nemmeno un nome host semplice come `marketplace.anthropic.com`.

172 

173Riscrivere la fonte in una delle forme accettate:

174 

175```text theme={null}

176/plugin marketplace add anthropics/claude-plugins-official

177```

178 

179Claude Code stampa `Successfully added marketplace: <name>` quando l'aggiunta funziona.

180 

181<h3 id="is-not-a-valid-github-owner-repo-shorthand">

182 `'<source>' is not a valid GitHub owner/repo shorthand`

183</h3>

184 

185È stata passata una fonte con una barra che non è `owner/repo`, come `github.com/owner/repo` o un percorso `gitlab.example.com/group/project`. Claude Code l'ha rifiutata con questo messaggio e un elenco di forme accettate.

186 

187Lo shorthand `owner/repo` è solo per GitHub e deve seguire le regole di denominazione di GitHub, quindi un nome host o un segmento di percorso aggiuntivo fallisce. Passare la fonte nella forma che corrisponde a dove è ospitato il marketplace:

188 

189* **Un repository su qualsiasi host**: l'URL di clonazione completo

190* **Un `marketplace.json` ospitato**: il suo URL `https://`

191* **Un checkout locale**: `./path` o un percorso assoluto

192 

193Ad esempio, per aggiungere il marketplace ufficiale tramite il suo URL di clonazione, in una sessione:

194 

195```text theme={null}

196/plugin marketplace add https://github.com/anthropics/claude-plugins-official.git

197```

198 

199Un'aggiunta riuscita stampa `Successfully added marketplace: <name>`.

200 

201<h3 id="path-does-not-exist">

202 `Path does not exist: <path>`

203</h3>

204 

205È stato passato un percorso locale a `marketplace add` e nulla esiste in quel percorso. Un percorso relativo si risolve rispetto alla directory corrente.

206 

207Controllare il percorso risolto nel messaggio. Quindi eseguire il comando dalla directory da cui inizia il percorso relativo, o passare un percorso assoluto alla directory del marketplace. Un'aggiunta riuscita stampa `Successfully added marketplace: <name>`.

208 

209Claude Code accetta una directory che contiene `.claude-plugin/marketplace.json` o un percorso a un file `.json`. Un percorso a qualsiasi altro file fallisce con `File path must point to a .json file (marketplace.json)`.

210 

211<h3 id="marketplace-file-not-found-at-claude-plugin-marketplace-json">

212 `Marketplace file not found at <path>/.claude-plugin/marketplace.json`

213</h3>

214 

215Claude Code ha clonato o scaricato il marketplace ma non ha trovato `marketplace.json` nel percorso previsto al suo interno. Il comando di aggiunta lo segnala come `Failed to add marketplace: Marketplace file not found at ...`.

216 

217La posizione predefinita è `.claude-plugin/marketplace.json` alla radice del repository e il [marketplace reference](/docs/it/plugins/marketplace-reference) elenca le posizioni accettate.

218 

219La soluzione differisce per il proprietario e per tutti gli altri:

220 

221* **Si possiede il marketplace**: mettere il file in quella posizione e re-aggiungere il marketplace

222* **Qualcun altro lo ospita**: chiedere al proprietario la fonte esatta che pubblica

223 

224<h3 id="ssh-authentication-failed-or-https-authentication-failed">

225 `SSH authentication failed` or `HTTPS authentication failed`

226</h3>

227 

228È stato aggiunto o aggiornato un marketplace da un repository git e il clone è fallito con `Failed to clone marketplace repository:` seguito da una di queste righe.

229 

230Per prima cosa controllare il repository stesso: un `owner/repo` scritto male, un repository che non esiste o un repository privato che non si può vedere termina anche con questo messaggio. Aprire l'URL del repository nel browser o eseguire `git ls-remote <url>` nel terminale per confermare che esiste e che si ha accesso.

231 

232Se il repository è corretto, la causa è le credenziali. Claude Code esegue git con i prompt interattivi disabilitati, quindi non può chiedere una password, una passphrase della chiave o una credenziale come farebbe il terminale. Se git ha bisogno di un prompt, si vede `fatal: Cannot prompt because user interactivity has been disabled` o `terminal prompts disabled` nell'errore originale. Solo le credenziali che già funzionano in modo non interattivo hanno successo:

233 

234* **SSH**: `ssh -T git@<host>` deve avere successo senza chiedere una passphrase e l'host deve già essere in `known_hosts`

235* **HTTPS**: l'helper delle credenziali deve contenere un token per l'host. Per GitHub, eseguire `gh auth login` e `gh auth setup-git`. Per un altro host, memorizzare un token di accesso personale nell'helper delle credenziali git. Testare con `git ls-remote <url>`

236 

237Una volta che `git ls-remote` ha successo nel terminale senza un prompt, eseguire di nuovo l'aggiunta o l'aggiornamento. Un'aggiunta riuscita stampa `Successfully added marketplace: <name>`. Un aggiornamento riuscito stampa `Successfully updated marketplace: <name>` dalla shell o `✔ Updated 1 marketplace` in una sessione.

238 

239Per fare in modo che Claude Code salti SSH per le fonti GitHub `owner/repo`, impostare `CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`. Senza di esso, Claude Code clona quelle fonti su SSH quando una chiave SSH per `github.com` sembra configurata e torna a HTTPS quando il clone SSH fallisce.

240 

241Per ciò che gli aggiornamenti automatici in background possono e non possono fare con le credenziali, vedere [What background auto-update does with credentials](/docs/it/plugins/host-marketplace#what-background-auto-update-does-with-credentials).

242 

243<h3 id="ssh-host-key-is-not-in-your-known-hosts-file">

244 `SSH host key is not in your known_hosts file`

245</h3>

246 

247È stato aggiunto un marketplace su SSH da un host a cui non ci si è mai connessi e il clone è fallito con questa riga e un suggerimento `ssh -T git@<host>`. Per un host la cui chiave è cambiata, il messaggio è `SSH host key has changed` con un suggerimento `ssh-keygen -R <host>` al suo posto.

248 

249Claude Code clona con `StrictHostKeyChecking=yes`, quindi rifiuta un host la cui chiave non è stata ancora accettata piuttosto che accettare la chiave automaticamente. Connettersi una volta dal terminale per accettare l'impronta digitale, quindi riprovare:

250 

251```shell theme={null}

252ssh -T git@github.com

253```

254 

255Per un repository pubblico, aggiungere il marketplace tramite il suo URL `https://` al suo posto per evitare completamente SSH.

256 

257<h3 id="command-git-not-found-or-is-in-an-unsafe-location">

258 `Command 'git' not found or is in an unsafe location`

259</h3>

260 

261Su Windows, è stato aggiunto un marketplace e Claude Code ha segnalato `Failed to clone marketplace repository: Command 'git' not found or is in an unsafe location (current directory)`.

262 

263Claude Code cerca `git` su `PATH` e rifiuta di eseguirne uno trovato solo nella directory corrente. Per correggerlo, installare Git e riprovare:

264 

265<Steps>

266 <Step title="Install Git for Windows">

267 Installare Git for Windows in modo che `git` sia su `PATH`.

268 </Step>

269 

270 <Step title="Open a new terminal">

271 Aprire un nuovo terminale in modo che il `PATH` aggiornato si applichi.

272 </Step>

273 

274 <Step title="Confirm git runs">

275 Confermare che `git --version` stampa una versione.

276 </Step>

277 

278 <Step title="Retry the add">

279 Eseguire di nuovo il comando `marketplace add`.

280 </Step>

281</Steps>

282 

283<h3 id="git-clone-timed-out-after-120s">

284 `Git clone timed out after 120s`

285</h3>

286 

287È stato aggiunto o aggiornato un marketplace e ha fallito con `Git clone timed out after 120s`, seguito da un suggerimento per impostare `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`.

288 

289La clonazione di un marketplace e la re-clonazione per aggiornarlo ottiene 120 secondi per impostazione predefinita. Per un repository di grandi dimensioni o una connessione lenta, aumentare il limite. Il valore è in millisecondi:

290 

291<Tabs>

292 <Tab title="Bash or Zsh">

293 ```bash theme={null}

294 export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000

295 ```

296 </Tab>

297 

298 <Tab title="PowerShell">

299 ```powershell theme={null}

300 $env:CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS = "300000"

301 ```

302 </Tab>

303</Tabs>

304 

305Quindi riprovare nella stessa shell.

306 

307Se il repository è un monorepo, limitare il checkout alle directory che si nominano con `claude plugin marketplace add <source> --sparse <paths>`.

308 

309<h3 id="marketplace-updates-keep-failing-offline">

310 Marketplace updates keep failing offline

311</h3>

312 

313Si lavora in un ambiente in cui l'host git del marketplace non è raggiungibile e ogni sessione ripete un aggiornamento fallito in background. Il checkout esistente del marketplace rimane in posizione e l'avvio non è ritardato.

314 

315Ogni sessione, per un marketplace con [auto-update on](/docs/it/plugins/loading#which-marketplaces-and-plugins-auto-update), Claude Code controlla l'host git del marketplace per nuovi commit in background. Quando quel controllo non può raggiungere l'host, tenta di clonare di nuovo il marketplace e offline anche quel clone fallisce.

316 

317Impostare questa variabile per saltare il tentativo di re-clone e continuare a utilizzare il checkout esistente quando il controllo non può raggiungere l'host:

318 

319<Tabs>

320 <Tab title="Bash or Zsh">

321 ```bash theme={null}

322 export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1

323 ```

324 </Tab>

325 

326 <Tab title="PowerShell">

327 ```powershell theme={null}

328 $env:CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE = "1"

329 ```

330 </Tab>

331</Tabs>

332 

333Con la variabile impostata, Claude Code salta il re-clone solo per un checkout che contiene già `.claude-plugin/marketplace.json`. Un marketplace che non è mai stato clonato o il cui clone si è fermato a metà ottiene comunque il tentativo di clone, quindi aggiungerlo una volta mentre online.

334 

335Per una distribuzione completamente offline, pre-popolare la directory dei plugin al momento della compilazione dell'immagine con `CLAUDE_CODE_PLUGIN_SEED_DIR` al suo posto, seguendo [Seed containers and CI](/docs/it/plugins/org#seed-containers-and-ci).

336 

337<h3 id="marketplace-add-fails-on-a-github-enterprise-server-host">

338 Marketplace add fails on a GitHub Enterprise Server host

339</h3>

340 

341È stato aggiunto un marketplace da un URL GitHub Enterprise Server (GHES) e si è ricevuto un errore di politica, oppure è stato aggiunto da claude.ai e si è ricevuto un errore di accesso a GitHub.

342 

343Entrambi i casi sono sulla pagina GHES:

344 

345* [Un errore di politica](/docs/it/github-enterprise-server#marketplace-add-fails-with-a-policy-error) significa che l'organizzazione ha limitato le fonti del marketplace e un amministratore deve aggiungere un `hostPattern` per l'host

346* [Un errore di accesso a GitHub su claude.ai](/docs/it/github-enterprise-server#marketplace-add-on-claude-ai-fails-with-a-github-access-error) significa che il proprio account GitHub Enterprise non è ancora connesso

347 

348<h2 id="install-a-plugin">

349 Install a plugin

350</h2>

351 

352È stato aggiunto un marketplace ed è stata eseguita un'installazione e l'installazione si è fermata con un messaggio invece di installare qualcosa. Queste voci coprono quei messaggi. Coprono anche i messaggi correlati che appaiono in seguito nella scheda **Errors** di `/plugin` o come una scheda **Discover** vuota, quando un plugin o il suo marketplace non può essere trovato, letto o considerato attendibile.

353 

354<h3 id="plugin-not-found-in-marketplace">

355 `Plugin "<name>" not found in marketplace "<marketplace>"`

356</h3>

357 

358È stato eseguito `/plugin install <name>@<marketplace>` o `claude plugin install <name>@<marketplace>` e il nome del plugin non è nella copia del catalogo di quel marketplace sulla macchina.

359 

360`claude plugin install` nella shell stampa lo stesso messaggio quando non è stato aggiunto il marketplace affatto. Se `claude plugin marketplace update <marketplace>` risponde quindi con `Marketplace '<marketplace>' not found`, [aggiungere il marketplace](#add-a-marketplace) per primo.

361 

362<h4 id="the-message-ends-with-a-refresh-hint">

363 `not found in marketplace` with a refresh hint

364</h4>

365 

366Il suggerimento recita `Your local copy may be out of date — try claude plugin marketplace update <marketplace>` o `The marketplace couldn't be refreshed (...)`. Claude Code non ha aggiornato il marketplace prima della ricerca, ad esempio quando si è offline, quindi la copia del catalogo potrebbe essere obsoleta. Aggiornare con il nome del marketplace, quindi installare di nuovo:

367 

368```text theme={null}

369/plugin marketplace update <marketplace>

370```

371 

372`claude plugin marketplace update` stampa `Successfully updated marketplace: <name>` e `/plugin marketplace update` mostra `✔ Updated 1 marketplace`. Se l'installazione riprovata stampa lo stesso messaggio, controllare il nome come [`not found in marketplace` with no hint](#the-message-has-no-hint) descrive. [When Claude Code refreshes a marketplace before an install](/docs/it/plugins/loading#when-claude-code-refreshes-a-marketplace-before-an-install) elenca gli altri casi in cui l'aggiornamento non viene eseguito.

373 

374<h4 id="the-message-has-no-hint">

375 `not found in marketplace` with no hint

376</h4>

377 

378Il nome è il problema più probabile. Aprire `/plugin`, andare a **Discover** e copiare il nome dall'elenco.

379 

380Prima della v2.1.232, Claude Code aggiornava il marketplace denominato solo dopo che la ricerca mancava e solo quando l'auto-aggiornamento era attivo per esso.

381 

382<h3 id="plugin-not-found-in-any-marketplace">

383 `Plugin "<name>" not found in any marketplace`

384</h3>

385 

386È stato eseguito `/plugin install <name>` senza `@marketplace` e nessun marketplace registrato ha quel plugin. `claude plugin install <name>` segnala `Plugin "<name>" not found in any configured marketplace`.

387 

388Senza un nome di marketplace, `claude plugin install` cerca i cataloghi che ha già e non li aggiorna per primo, e `/plugin install` aggiorna solo i marketplace che hanno l'auto-aggiornamento attivo. Nominare il marketplace e Claude Code lo aggiorna prima di cercare il plugin:

389 

390```text theme={null}

391/plugin install <name>@<marketplace>

392```

393 

394Quando l'installazione funziona, si vede `✓ Installed <plugin>.` in una sessione o `Successfully installed plugin: <plugin>@<marketplace>` da `claude plugin install`.

395 

396Se non si sa quale marketplace elenca il plugin, eseguire `/plugin marketplace list` per i marketplace che si hanno e sfogliare **Discover** in `/plugin` per il nome del plugin.

397 

398<h3 id="plugin-is-already-installed-globally">

399 `Plugin '<name>@<marketplace>' is already installed globally`

400</h3>

401 

402È stato eseguito `/plugin install` per un plugin che è già installato a livello di utente o da impostazioni gestite e Claude Code ha rifiutato con `Use '/plugin' to manage existing plugins.` Se è stato digitato il nome del plugin senza `@<marketplace>`, il messaggio omette `globally`.

403 

404Il plugin è già disponibile in ogni progetto, quindi non c'è nulla da aggiungere. Per modificare il suo [scope](/docs/it/plugins/install), abilitarlo o disabilitarlo o configurarlo, aprire `/plugin` e andare a **Installed**.

405 

406Un plugin installato solo a livello di progetto o locale non attiva questo messaggio. Claude Code consente di installarlo anche a livello di utente, quindi è disponibile in altri progetti.

407 

408`claude plugin install` nella shell stampa un messaggio diverso. Per un plugin già installato nello scope di destinazione, stampa `Plugin "<name>@<marketplace>" is already installed (scope: user)` ed esce con 0. Se la sua directory di cache è mancante, lo stesso comando la scarica di nuovo.

409 

410<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">

411 `This plugin uses a source type your Claude Code version does not support`

412</h3>

413 

414È stato installato un plugin il cui marketplace utilizza un tipo di fonte che questa versione di Claude Code non può recuperare e Claude Code si è fermato con questo messaggio e `Update Claude Code and try again.`

415 

416Aggiornare Claude Code, quindi riprovare l'installazione. I tipi di fonte sono sul [marketplace reference](/docs/it/plugins/marketplace-reference).

417 

418<h3 id="plugin-archive-integrity-check-failed">

419 `Plugin archive integrity check failed`

420</h3>

421 

422È stato installato un plugin distribuito come archivio zip e Claude Code l'ha rifiutato con questa riga e `The archive was not installed.` La voce del marketplace del plugin utilizza una fonte [`archive`](/docs/it/plugins/marketplace-reference) con un pin `sha256` e il digest del file scaricato non corrisponde al pin.

423 

424Il messaggio completo è simile a questo:

425 

426```text theme={null}

427Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.

428```

429 

430La soluzione differisce per l'editore e l'installatore:

431 

432* **Si pubblica il plugin**: ricalcolare il digest del file esatto che l'URL serve e aggiornare il `sha256` nella voce del marketplace. Utilizzare `shasum -a 256 my-plugin.zip` o `Get-FileHash -Algorithm SHA256 my-plugin.zip` in PowerShell

433* **Si installa il plugin**: eseguire `/plugin marketplace update <name>` in una sessione per aggiornare il catalogo nel caso in cui la voce sia stata corretta, quindi riprovare l'installazione. Se i digest non concordano ancora dopo l'aggiornamento, chiedere al proprietario del marketplace quale file hanno fissato prima di installare

434 

435<h3 id="marketplace-is-registered-from-an-untrusted-source">

436 `Marketplace "<name>" is registered from an untrusted source`

437</h3>

438 

439Un marketplace aggiunto in precedenza ha smesso di caricarsi e così hanno fatto anche i suoi plugin. Questa riga appare nella scheda **Errors** di `/plugin` o al prossimo aggiornamento.

440 

441Il marketplace è registrato con un nome che è [riservato per i marketplace ufficiali di Anthropic](/docs/it/plugins/marketplace-reference) ma la sua fonte registrata non è un repository GitHub `anthropics`. I nomi riservati vengono ri-controllati ogni volta che un marketplace si carica o si aggiorna, quindi il marketplace e i plugin installati da esso smettono di caricarsi.

442 

443Il messaggio completo nomina il nome riservato e la soluzione:

444 

445```text theme={null}

446Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.

447```

448 

449La soluzione differisce per gli utenti e gli editori:

450 

451* **Si utilizza il marketplace**: nella shell, eseguire `claude plugin marketplace remove <name>`, quindi aggiungere di nuovo il marketplace dal repository ufficiale `github.com/anthropics`

452* **Si pubblica un marketplace di terze parti che ha utilizzato il nome prima che diventasse riservato**: rinominarlo e chiedere agli utenti di re-aggiungerlo dalla propria fonte

453 

454Prima della v2.1.205, Claude Code controllava il nome solo quando si aggiungeva il marketplace, quindi una voce registrata prima che il suo nome diventasse riservato continuava a caricarsi.

455 

456<h3 id="plugin-has-a-corrupt-manifest-file-or-has-an-invalid-manifest-file">

457 `Plugin <name> has a corrupt manifest file` or `has an invalid manifest file`

458</h3>

459 

460Claude Code ha recuperato il plugin, quindi non ha potuto leggere il suo `.claude-plugin/plugin.json`. Nella shell, il `<name>` in questa riga può essere un nome di directory temporanea; il prefisso `Failed to install plugin "<name>@<marketplace>"` porta il nome reale del plugin. La formulazione dice quale controllo ha fallito:

461 

462* **`corrupt manifest file`, seguito da `JSON parse error:`**: il file non è JSON valido

463* **`invalid manifest file`, seguito da `Validation errors:`**: il file si analizza ma fallisce lo schema, come `name: Invalid input` per un campo obbligatorio mancante

464 

465`claude plugin install` segnala entrambi come `Failed to install plugin "<name>@<marketplace>":` ed esce con codice 1.

466 

467L'autore del plugin deve correggere il file e il plugin non può essere installato fino ad allora:

468 

469* **Se è voi**: eseguire `claude plugin validate <plugin-directory>` nella shell per vedere lo stesso errore con il percorso offensivo, quindi correggere il file

470* **Se non è voi**: segnalare il messaggio al proprietario del marketplace

471 

472<h3 id="plugin-directory-not-found-at-path">

473 `Plugin directory not found at path: <path>`

474</h3>

475 

476La scheda **Errors** in `/plugin` mostra questo per un plugin abilitato che il suo marketplace elenca per un percorso relativo, come `./plugins/my-plugin`, quando nessuna directory esiste in quel percorso all'interno del marketplace. Se si mantiene il marketplace, correggere il percorso `source` della voce o ripristinare la cartella. Altrimenti, segnalare il messaggio al proprietario del marketplace.

477 

478`Marketplace directory not found at path: <path>` significa che la directory del marketplace stesso è mancante al suo posto. Per un marketplace aggiunto da un percorso locale, quella directory è stata spostata o eliminata. Ripristinarla o rimuovere il marketplace e aggiungerlo di nuovo dalla sua nuova posizione.

479 

480<h3 id="no-plugins-available-or-no-marketplaces-configured">

481 `No plugins available` or `No marketplaces configured`

482</h3>

483 

484È stato aperto `/plugin` e la scheda **Discover** è vuota, oppure `claude plugin marketplace list` ha stampato `No marketplaces configured`.

485 

486Nessun marketplace è registrato, quindi non c'è catalogo da mostrare. In una sessione, aggiungere il marketplace ufficiale, `anthropics/claude-plugins-official`:

487 

488```text theme={null}

489/plugin marketplace add anthropics/claude-plugins-official

490```

491 

492Claude Code stampa `Successfully added marketplace: claude-plugins-official` e **Discover** elenca i suoi plugin. La pagina [Anthropic marketplaces](/docs/it/plugins/anthropic-marketplaces) elenca gli altri marketplace che si possono aggiungere.

493 

494<h3 id="marketplace-is-already-added-from-a-different-source">

495 `Marketplace "<name>" is already added from a different source`

496</h3>

497 

498È stata confermata l'aggiunta di un marketplace tramite [`/plugin install <plugin> --marketplace <source>`](/docs/it/plugins/install#add-a-marketplace-and-install-in-one-command) e il catalogo che Claude Code ha recuperato da quella fonte ha lo stesso nome di un marketplace già aggiunto da una fonte diversa. Claude Code mantiene il marketplace esistente invece di sostituirlo e il plugin non viene installato.

499 

500Il messaggio completo è simile a questo:

501 

502```text theme={null}

503Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

504```

505 

506Scegliere quale fonte si desidera:

507 

508* **Il marketplace già aggiunto**: installare da esso per nome con `/plugin install <plugin>@<name>`

509* **La nuova fonte**: eseguire `/plugin marketplace remove <name>`, quindi riprovare l'installazione

510 

511<h3 id="cannot-add-marketplace-its-network-source-differs">

512 `Cannot add marketplace "<name>": its network source differs from the one declared for it in settings`

513</h3>

514 

515È stato eseguito `marketplace add` e il catalogo in quella fonte ha lo stesso nome di un marketplace che un file di impostazioni già dichiara sotto [`extraKnownMarketplaces`](/docs/it/settings-reference#extraknownmarketplaces) con una fonte diversa. Claude Code rifiuta l'aggiunta e non registra nulla.

516 

517Il messaggio termina con la soluzione: la fonte deve corrispondere a quella dichiarata per questo nome nelle impostazioni, oppure si cambia la dichiarazione. Confrontare la fonte passata rispetto alla voce `extraKnownMarketplaces` per quel nome, inclusi il suo `ref`, `path` e `headers`, quindi fare uno di questi:

518 

519* **Utilizzare la fonte dichiarata**: aggiungere il marketplace dalla fonte che la voce di impostazioni nomina

520* **Utilizzare la nuova fonte**: modificare o rimuovere la voce `extraKnownMarketplaces`, quindi aggiungere di nuovo il marketplace. Se le impostazioni gestite la dichiarano, chiedere all'amministratore

521 

522<h3 id="failed-to-install-from-the-plugin-menu">

523 `Failed to install: <plugin> (<reason>)`

524</h3>

525 

526Sono stati selezionati plugin da installare nel menu `/plugin`, nessuno di essi è stato installato e il menu si è chiuso con questo riepilogo di ciò che ha fallito.

527 

528Alcuni motivi, come l'output di git dopo un clone fallito, mostrano solo la loro prima riga. Quando tale motivo è stato abbreviato, il riepilogo termina con `Installing a plugin from its details (Enter) in /plugin shows its full error.`

529 

530Cosa fare dipende dal fatto che il riepilogo abbia abbreviato il motivo:

531 

532* Correggere ciò che il motivo tra parentesi nomina

533* Quando il motivo è stato abbreviato, eseguire `/plugin`, selezionare il plugin sulla scheda **Discover** e premere **Enter** per installarlo dai suoi dettagli. Se l'installazione fallisce lì, la vista dei dettagli mostra l'errore completo

534 

535<h3 id="could-not-move-the-new-copy-of-this-plugin-version">

536 `Could not move the new copy of this plugin version into <path>`

537</h3>

538 

539Quando si installa un plugin, Claude Code scarica una copia fresca dei suoi file e la sposta nella cartella di quella versione nella [plugin cache](/docs/it/plugins/loading#find-plugins-on-disk). Questo messaggio significa che lo spostamento è fallito, di solito perché un altro programma stava utilizzando la cartella mentre l'installazione era in esecuzione. Il codice del file system appare tra parentesi:

540 

541```text theme={null}

542Could not move the new copy of this plugin version into /home/user/.claude/plugins/cache/acme-tools/formatter/1.2.0: the new copy or the version folder stayed busy while the install ran (ENOTEMPTY) — usually a scanner still reading the freshly downloaded files, another program using that folder, or another process re-creating it. The previously installed copy was moved back. Run the install again once other Claude Code sessions or programs using that folder have finished.

543```

544 

545Il messaggio dice cosa è successo alla copia che era installata prima, che dice se il plugin funziona ancora:

546 

547* `The previously installed copy was moved back`: la versione che si aveva è ancora installata

548* `had to be removed first`, `was not moved back` o `could not be moved back`: quella versione del plugin non è installata fino a quando un'installazione non ha successo

549* Nessuna tale frase: non c'era una copia precedente, quindi la versione non è ancora installata

550 

551Su Windows, quando un altro programma tiene la copia installata stessa, il messaggio dice invece che quella copia `could not be replaced` e che `It was not replaced and the new copy was discarded`, quindi la versione che si aveva è ancora installata.

552 

553Un elenco `Left on disk` nomina cartelle messe da parte all'interno della cache. Un'installazione successiva di quella versione o una pulizia della cache dei plugin le rimuove, quindi non è necessario eliminarle.

554 

555Per correggere l'installazione:

556 

557* Chiudere altre sessioni di Claude Code, editor e terminali che utilizzano la cartella del plugin sotto `~/.claude/plugins/cache`, quindi eseguire di nuovo l'installazione

558* Quando il messaggio dice di controllare i permessi della cartella della cache dei plugin, ripristinare il permesso di scrittura sulla cartella che nomina e liberare spazio su disco, quindi eseguire di nuovo l'installazione

559 

560<h3 id="dependency-errors">

561 Dependency errors

562</h3>

563 

564Un plugin che dichiara dipendenze può fallire nell'installazione o installarsi e rimanere disabilitato quando una dipendenza non può essere soddisfatta. Il messaggio ti raggiunge al momento dell'installazione o al momento del caricamento:

565 

566* **Durante l'installazione**: il rifiuto torna come messaggio di errore dell'installazione

567* **Quando il plugin si carica**: il problema appare in `claude plugin list` e nella scheda **Errors** di `/plugin` e Claude Code mantiene il plugin interessato disabilitato fino a quando non lo si risolve

568 

569La tabella elenca ogni messaggio e la sua soluzione. Per dichiarare le dipendenze come autore, vedere [Plugin dependencies](/docs/it/plugins/dependencies).

570 

571| Message | Meaning | How to resolve |

572| :--------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

573| `Dependency "<dep>" is not installed` | Una dipendenza dichiarata non è installata. | Installarla nella shell con `claude plugin install <dep>@<marketplace>` o disinstallare il plugin. Se il marketplace della dipendenza non è ancora registrato, aggiungerlo ed eseguire `/reload-plugins` nella sessione, che installa le dipendenze mancanti che può risolvere. |

574| `Dependency "<dep>" is disabled` | La dipendenza è installata ma disattivata. | Abilitare la dipendenza o disinstallare il plugin che ne ha bisogno. |

575| `Requires "<dep>" <range>, installed <version>` | La versione della dipendenza installata è al di fuori dell'intervallo dichiarato dal plugin. | Aggiornare la dipendenza a una versione nell'intervallo o disinstallare il plugin. |

576| `<Plugin or Dependency> "<name>" has conflicting version requirements` | Nessuna versione soddisfa ogni intervallo che la fissa. Il messaggio elenca gli intervalli. | Disinstallare o aggiornare uno dei plugin in conflitto o chiedere all'autore upstream di ampliare il vincolo. |

577| `... has version requirements too complex to intersect` o `has an invalid version requirement` | Un intervallo non è semver valido o gli intervalli combinati non possono essere intersecati. | Correggere l'intervallo non valido o semplificare le catene `\|\|` lunghe. |

578| `... has no git tag satisfying <range>` | Il repository della dipendenza non ha alcun tag `<name>--v*` nell'intervallo. | Controllare che i tag upstream rilascino con quella convenzione o rilassare l'intervallo. |

579| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | La dipendenza è in un marketplace diverso e la risoluzione cross-marketplace è disattivata per impostazione predefinita. | Installare la dipendenza da soli nello stesso scope, nella shell con `claude plugin install <dep>@<marketplace>` più lo `--scope` in cui si sta installando il plugin, quindi riprovare. |

580 

581Per vederli a livello di programmazione, eseguire `claude plugin list --json` nella shell. I plugin con problemi portano un campo `errors` con i messaggi e un campo `errorDetails` con un `type` per ciascuno: le prime due righe sono `dependency-unsatisfied` e la terza è `dependency-version-unsatisfied`.

582 

583<h2 id="plugin-installed-but-not-working">

584 Plugin installed but not working

585</h2>

586 

587L'installazione è riuscita, ma le skills, gli hooks o i server del plugin non stanno facendo nulla. Iniziare con [Plugin doesn't appear or its skills don't show up](#plugin-doesnt-appear-or-its-skills-dont-show-up), che dice dove Claude Code segnala ciò che ha caricato, quindi abbinare il messaggio.

588 

589<h3 id="plugin-doesnt-appear-or-its-skills-dont-show-up">

590 Plugin doesn't appear or its skills don't show up

591</h3>

592 

593È stato installato un plugin e è stato digitato `/` aspettandosi le sue skills, oppure è stato chiesto a Claude di usarlo e non è successo nulla.

594 

595Controllare lo stato del plugin prima di cambiare qualcosa:

596 

597<Steps>

598 <Step title="Confirm the plugin is installed and enabled">

599 Eseguire `/plugin` e aprire **Installed**. Confermare che il plugin è elencato e abilitato. `claude plugin list` nella shell stampa lo stesso elenco con la versione di ogni plugin, lo scope e `Status: ✔ enabled`.

600 </Step>

601 

602 <Step title="Read the Errors tab">

603 Aprire la scheda **Errors** nello stesso pannello. Ogni voce accoppia un messaggio con una riga di guida. La maggior parte dei messaggi nel resto di questa sezione proviene da quella scheda.

604 </Step>

605 

606 <Step title="Reload if you installed during this session">

607 Se il plugin è installato e senza errori ma è stato installato durante questa sessione, eseguire `/reload-plugins`. Stampa `Reloaded:` con conteggi di plugin, skills, agent, hooks e server. Quando qualcosa non è riuscito aggiunge `N errors during load. Run /plugin for details.`

608 </Step>

609</Steps>

610 

611Se il plugin si carica senza errore e le sue skills non appaiono ancora, il passo successivo differisce per il proprio plugin e per quello di qualcun altro:

612 

613* **Un plugin che si sta costruendo**: vedere [Plugin loads but its skills are missing](#plugin-loads-but-its-skills-are-missing)

614* **Un plugin che qualcun altro ha pubblicato**: aprire **Installed** in `/plugin` e aprire il riquadro dei dettagli del plugin, che elenca ciò che il plugin contiene. Un plugin che non elenca skills lì non ne ha da offrire quando si digita `/`

615 

616<h3 id="run-reload-plugins-to-activate">

617 `Run /reload-plugins to activate.`

618</h3>

619 

620Il riepilogo dell'installazione in `/plugin` è terminato con `Run /reload-plugins to activate.` invece di `Plugin is now active.`

621 

622Claude Code non ha attivato il plugin durante l'installazione, perché attivarlo avrebbe [invalidato la cache del prompt](/docs/it/prompt-caching#enabling-or-disabling-a-plugin) o perché il tentativo di attivazione è fallito.

623 

624Non è necessario digitare il comando. Il pannello si chiude e Claude Code esegue `/reload-plugins` per voi, oppure lo mette in coda fino a quando la risposta che sta trasmettendo non finisce.

625 

626Leggere ciò che quel ricaricamento stampa:

627 

628* **`Reloaded:` con conteggi di plugin, skills, agent, hooks e server**: il plugin è ora attivo. Quando qualcosa non è riuscito a caricarsi, la riga aggiunge `N errors during load. Run /plugin for details.`

629* **`This reload changes MCP tools (...) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply.`**: il ricaricamento aggiungerebbe o rimuoverebbe un server MCP del plugin o lo strumento `LSP` e invaliderebbe la cache del prompt. Per il caso LSP la riga inizia con `This reload adds the LSP tool` o `This reload removes the LSP tool`. Eseguirlo con `--force` per attivare il plugin comunque, oppure avviare una nuova sessione

630 

631Prima della v2.1.268, un'installazione che non è stata attivata durante l'installazione è rimasta in sospeso fino a quando non è stato eseguito `/reload-plugins` da soli.

632 

633Prima della v2.1.246, il conteggio delle skills in quel riepilogo includeva solo le voci `commands/` di un plugin, quindi un ricaricamento potrebbe caricare le skills `SKILL.md` di un plugin e comunque segnalare `0 skills`.

634 

635<h3 id="plugin-not-cached-at">

636 `Plugin "<name>" not cached at <path>`

637</h3>

638 

639La scheda **Errors** mostra questa riga con la guida `Run /plugin to refresh the plugin cache`. Claude Code ha un record di installazione per il plugin, ma la directory a cui il record punta è mancante, ad esempio dopo aver cancellato la cache.

640 

641Reinstallare il plugin dalla shell. `claude plugin install <name>@<marketplace>` scarica di nuovo un plugin la cui directory di installazione è mancante anche se il suo record esiste:

642 

643```shell theme={null}

644claude plugin install <name>@<marketplace>

645```

646 

647Quindi eseguire `/reload-plugins` nella sessione. La voce della scheda **Errors** scompare e il plugin è di nuovo sotto **Installed**.

648 

649<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`

651</h3>

652 

653È stato impostato un plugin su `false` in `~/.claude/settings.json` e la sua riga in `claude plugin list` o `/plugin` mostra questo messaggio seguito dalla fonte che lo abilita, come `— project settings enable it, which overrides your user setting`. Un `true` in quella fonte con precedenza più alta sta sovrascrivendo l'impostazione dell'utente.

654 

655Per rinunciare a un plugin abilitato dal progetto sulla macchina, impostare l'id su `false` in `.claude/settings.local.json`, che ha precedenza più alta rispetto al file del progetto. Per le altre fonti che il messaggio può nominare, vedere [Disabled in user settings but still loads](/docs/it/plugins/loading#disabled-in-user-settings-but-still-loads).

656 

657Se `claude plugin list` invece contrassegna il plugin `required by your org`, nessun file di impostazioni è coinvolto: l'organizzazione contrassegna quel plugin sincronizzato come richiesto su claude.ai e si carica anche se è stato disabilitato in precedenza. Vedere [Plugins synced from claude.ai](/docs/it/plugins/loading#synced-plugins).

658 

659<h3 id="plugin-is-enabled-in-project-settings-but-isnt-installed-here">

660 `Plugin "<name>" is enabled in project settings but isn't installed here`

661</h3>

662 

663La scheda **Errors** mostra questa riga per un plugin che il `.claude/settings.json` del progetto abilita, con la guida `Run claude plugin install <name>@<marketplace> --scope project to install it for this project`.

664 

665Le impostazioni di un repository possono abilitare un plugin per tutti coloro che lo aprono, ma non lo installano. Quando il plugin proviene da una fonte esterna come un repository GitHub o un pacchetto npm, Claude Code non lo scarica fino a quando non lo si installa da soli. Eseguire il comando dalla riga di guida nella shell, quindi ricaricare:

666 

667```shell theme={null}

668claude plugin install <name>@<marketplace> --scope project

669```

670 

671Dopo aver eseguito `/reload-plugins` nella sessione, la voce della scheda **Errors** è scomparsa e il plugin è elencato sotto **Installed**.

672 

673Se l'organizzazione pre-installa i plugin, lo fa attraverso le impostazioni gestite al suo posto. Vedere [Pre-install and require plugins](/docs/it/plugins/org#pre-install-and-require-plugins).

674 

675<h3 id="failed-to-load-hooks-from-and-hooks-that-dont-fire">

676 `Failed to load hooks from <path>` and hooks that don't fire

677</h3>

678 

679Gli hooks di un plugin non vengono eseguiti. O la scheda **Errors** mostra un fallimento di caricamento per loro, gli hooks si caricano e si vedono avvisi `<Event> hook error` nella trascrizione, oppure un hook si carica senza errore e non si attiva mai.

680 

681<h4 id="hooks-fail-to-load">

682 Hooks fail to load

683</h4>

684 

685La scheda **Errors** mostra uno di questi messaggi:

686 

687* **`Failed to load hooks from <path>: <reason>`**: `hooks/hooks.json` non è JSON valido o fallisce lo schema degli hooks. Il motivo nomina l'errore di analisi o convalida. Correggere il file. Per catturare un problema di sintassi JSON in `hooks/hooks.json` prima di pubblicare il plugin, eseguire `claude plugin validate <plugin-directory>` nella shell

688* **`hooks path not found: <path>`**: il campo `hooks` del manifest nomina un file che non esiste in quel percorso relativo alla radice del plugin. Correggere il percorso o aggiungere il file

689 

690<h4 id="hook-error-notices-in-the-transcript">

691 `hook error` notices in the transcript

692</h4>

693 

694Un avviso della forma `... hook error: Failed with non-blocking status code: <stderr>` significa che l'hook è stato eseguito e il suo comando è fallito. Ad esempio, `Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` significa che la shell che Claude Code ha generato non poteva trovare `node`. Installarlo o assicurarsi che sia su `PATH` del terminale da cui si avvia `claude`.

695 

696Per qualsiasi altro errore, eseguire il comando dell'hook da soli dalla directory del plugin per vedere l'output completo o catturare lo stderr completo con [debug logging](/docs/it/hooks#debug-hooks).

697 

698<h4 id="hook-loads-but-never-fires">

699 Hook loads but never fires

700</h4>

701 

702Se un hook si carica senza errore ma non si attiva mai, controllare la sua definizione e quindi osservarlo in esecuzione:

703 

704<Steps>

705 <Step title="Check the event name">

706 I nomi degli eventi sono sensibili alle maiuscole, quindi confermare che il vostro corrisponda esattamente, ad esempio `PostToolUse`.

707 </Step>

708 

709 <Step title="Check the matcher">

710 Confermare che il `matcher` dell'hook corrisponda al nome dello strumento.

711 </Step>

712 

713 <Step title="Trigger the event on purpose">

714 Per un hook `PostToolUse`, chiedere a Claude di modificare un file.

715 </Step>

716 

717 <Step title="Read the debug log">

718 Aprire il [debug log](/docs/it/hooks#debug-hooks), che registra quali hook hanno corrisposto. Un hook che è stato eseguito appare lì con il suo codice di uscita.

719 </Step>

720</Steps>

721 

722<h3 id="invalid-mcp-server-config-for-and-mcp-servers-that-dont-start">

723 `Invalid MCP server config for "<server>"` and MCP servers that don't start

724</h3>

725 

726Un plugin raggruppa un server MCP e la scheda **Errors** mostra `Invalid MCP server config for "<server>": <error>` oppure il server è elencato ma `/mcp` non lo mostra mai connesso.

727 

728<h4 id="invalid-mcp-server-config-for-server-error">

729 `Invalid MCP server config for "<server>": <error>`

730</h4>

731 

732La configurazione del server passa il controllo dello schema, ma Claude Code non può risolverla per questa sessione. Il testo dopo i due punti nomina la causa e decide la soluzione:

733 

734* **`Missing environment variables: <names>`**: impostare quelle variabili nella shell da cui si avvia Claude Code, quindi avviare una nuova sessione

735* **`URL is unset or invalid`**: un'opzione `${user_config.*}` che l'URL utilizza non è impostata. Eseguire `/plugin configure <plugin>` per impostarla

736* **`has an invalid MCP url`** o **`headersHelper for MCP server '<server>' references ${user_config.*}`**: la configurazione del plugin stesso è in difetto. Correggere l'`url` o `headersHelper` nella configurazione MCP del plugin o segnalarlo all'autore del plugin se il plugin non è vostro. Il caso `headersHelper` ha la sua voce sotto [plugin command references user\_config](/docs/it/errors#plugin-command-references-user-config)

737 

738<h4 id="server-is-configured-but-never-connects">

739 Server is configured but never connects

740</h4>

741 

742Eseguire `/mcp` per vedere lo stato del server. Quando il server è sano, `/mcp` lo elenca come connesso.

743 

744Per leggere l'errore che il server ha stampato durante l'avvio, eseguire `claude --debug` e aprire il log su `~/.claude/debug/<session-id>.txt`. Il flag `--debug` non stampa al terminale.

745 

746Una voce del server in `.mcp.json` che fallisce lo schema non appare nella scheda **Errors**. Claude Code scarta quel server e registra `Invalid MCP server config for <server> in <path>` solo in quel log di debug. Per trovare la voce senza caricare il plugin, eseguire `claude plugin validate` nella shell sulla directory del plugin, che la segnala come errore.

747 

748Prima della v2.1.281, `claude plugin validate` non controllava `.mcp.json`.

749 

750<h4 id="server-works-with-plugin-dir-but-fails-after-install">

751 Server works with `--plugin-dir` but fails after install

752</h4>

753 

754Siete l'autore del plugin e il server si avvia quando si carica il plugin dalla sua directory di origine con `--plugin-dir` ma fallisce una volta che il plugin è installato.

755 

756Claude Code copia un plugin installato nella sua cache, quindi un percorso che funziona solo dalla directory di origine si interrompe. Scrivere i percorsi all'interno del plugin con `${CLAUDE_PLUGIN_ROOT}`.

757 

758Per i percorsi che raggiungono al di fuori della directory del plugin, vedere [Files the plugin references outside its directory aren't found](#files-the-plugin-references-outside-its-directory-arent-found).

759 

760<h3 id="language-server-doesnt-start">

761 Language server doesn't start, uses too much memory, or reports wrong diagnostics

762</h3>

763 

764È stato installato un [code intelligence plugin](/docs/it/plugins/code-intelligence) e Claude non sta vedendo diagnostiche, oppure il language server sta utilizzando troppa memoria o segnalando errori che non sono reali.

765 

766<h4 id="language-server-doesn’t-start">

767 Language server doesn't start

768</h4>

769 

770Il plugin si connette a un binario del language server che si installa separatamente e Claude Code lo genera per nome dalla `PATH`.

771 

772La scheda **Errors** di `/plugin` mostra il fallimento con il suo motivo, come `Executable not found in $PATH: "<binary>"` e `claude --debug` lo registra come `LSP server <name> failed to start: <reason>`.

773 

774Installare il binario e confermare che sia su `PATH` del terminale da cui si avvia `claude`, ad esempio con `which typescript-language-server`. Quindi avviare una nuova sessione.

775 

776<h4 id="language-server-uses-too-much-memory">

777 Language server uses too much memory

778</h4>

779 

780I language server come `rust-analyzer` e `pyright` indicizzano l'intero progetto. Disabilitare il plugin con `/plugin disable <plugin>` in una sessione e affidarsi agli strumenti di ricerca integrati di Claude al suo posto.

781 

782<h4 id="false-positive-diagnostics-in-a-monorepo">

783 False positive diagnostics in a monorepo

784</h4>

785 

786Un language server che non è configurato per lo spazio di lavoro può segnalare importazioni non risolte per i pacchetti interni. Non c'è nulla da correggere dal lato di Claude Code e le diagnostiche non impediscono a Claude di modificare il codice.

787 

788<h2 id="build-a-plugin">

789 Build a plugin

790</h2>

791 

792Si sta sviluppando un plugin e lo si carica con `--plugin-dir` o lo si installa da un marketplace locale. Queste voci coprono i fallimenti che si incontrano durante lo sviluppo di un plugin. Per i controlli da eseguire dopo ogni modifica, vedere [Test and debug](/docs/it/plugins/create#test-and-debug).

793 

794Due fallimenti che raggiungono anche gli utenti di un plugin hanno le loro voci sotto [Plugin installed but not working](#plugin-installed-but-not-working):

795 

796* **Un hook che non si attiva**: vedere [hooks that don't fire](#failed-to-load-hooks-from-and-hooks-that-dont-fire)

797* **Un server MCP che non si avvia**: vedere [MCP servers that don't start](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)

798 

799<h3 id="commands-path-not-found">

800 `commands path not found: <path>`

801</h3>

802 

803La scheda **Errors** mostra `commands path not found: <absolute path>` con la guida `Check that the path in your manifest or marketplace config is correct`. Lo stesso messaggio appare per `skills`, `agents` e `hooks`.

804 

805Claude Code ha risolto un percorso dal vostro `plugin.json` o dalla voce del marketplace rispetto alla radice del plugin e non ha trovato nulla lì. Il percorso nel messaggio è il percorso assoluto che ha controllato, quindi confrontarlo con ciò che è su disco. Correggere il percorso o creare la directory, quindi eseguire `/reload-plugins`.

806 

807I percorsi nel manifest sono relativi alla radice del plugin e iniziano con `./`. Un percorso che si risolve al di fuori della radice del plugin è segnalato come `<component> path escapes plugin directory` al suo posto e viene scartato.

808 

809<h3 id="plugin-dir-loads-a-plugin-with-no-components">

810 `--plugin-dir` at a marketplace root doesn't load the plugins under `plugins/`

811</h3>

812 

813È stato avviato `claude --plugin-dir <path>` e non si vede alcun errore, ma le skills, gli agent e gli hooks del plugin non sono lì.

814 

815`--plugin-dir` prende la directory radice del plugin, quella che contiene `.claude-plugin/plugin.json` e le directory dei componenti come `skills/`. Se lo si punta alla radice di un marketplace al suo posto, Claude Code non legge `marketplace.json`, quindi un plugin sotto `plugins/` non si carica e non si vede alcun errore. Prima della v2.1.281, Claude Code caricava una radice di marketplace come un plugin vuoto denominato dopo quella directory. Puntare il flag alla directory del plugin stesso:

816 

817```shell theme={null}

818claude --plugin-dir ./my-marketplace/plugins/my-plugin

819```

820 

821Quindi aprire **Installed** in `/plugin`, dove il riquadro dei dettagli del plugin elenca i suoi componenti.

822 

823<h3 id="files-the-plugin-references-outside-its-directory-arent-found">

824 Files the plugin references outside its directory aren't found

825</h3>

826 

827Un plugin funziona dalla sua directory di origine con `--plugin-dir` ma fallisce dopo l'installazione, con errori su un percorso come `../shared-utils`.

828 

829Claude Code copia un plugin installato nella sua cache e lo carica da lì, quindi un percorso che raggiunge al di fuori della propria directory del plugin non punta a nulla nella cache. Spostare i file condivisi all'interno della directory del plugin o farvi riferimento attraverso un symlink al suo interno. Per dove è la cache e come i percorsi si risolvono, vedere [Find plugins on disk](/docs/it/plugins/loading#find-plugins-on-disk).

830 

831<h3 id="claude-plugin-root-shows-forward-slashes-on-windows">

832 `${CLAUDE_PLUGIN_ROOT}` shows forward slashes on Windows

833</h3>

834 

835Su Windows, un hook del plugin riceve `${CLAUDE_PLUGIN_ROOT}` come `C:/Users/you/...` piuttosto che `C:\Users\you\...` e uno script che si aspettava backslash si interrompe.

836 

837Claude Code esegue gli hook in forma di shell attraverso Git Bash su Windows e sostituisce la radice del plugin nella forma Win32 con barra in avanti di proposito. I builtin di Bash, gli strumenti MSYS e i binari Windows nativi accettano tutti quella forma.

838 

839Se lo script ha bisogno di backslash, passare l'hook a una delle forme che mantengono i percorsi nativi, descritte sotto [exec form and shell form](/docs/it/hooks#exec-form-and-shell-form):

840 

841* Un hook in forma exec, che genera il processo direttamente con un array `args`

842* Un hook con `"shell": "powershell"`

843 

844<h3 id="plugin-loads-but-its-skills-are-missing">

845 Plugin loads but its skills are missing

846</h3>

847 

848Il plugin è elencato sotto **Installed** senza errori, ma le sue skills non vengono offerte quando si digita `/`.

849 

850Le skills si caricano da `skills/` alla radice del plugin e i comandi da `commands/` alla radice del plugin. Solo `plugin.json` appartiene all'interno di `.claude-plugin/` e una directory `skills/` all'interno di `.claude-plugin/` non viene scansionata. Spostare le directory alla radice del plugin ed eseguire `/reload-plugins`. Successivamente, il riquadro dei dettagli del plugin in `/plugin` elenca le skills e digitare `/` le offre.

851 

852Ogni skill è una directory contenente `SKILL.md`. Una voce `skills` nel manifest che punta a un file `SKILL.md` piuttosto che alla sua directory è segnalata come `path is a file; skills entries must be directories containing SKILL.md`.

853 

854<h3 id="skill-loads-but-claude-never-invokes-the-skill">

855 Skill loads but Claude never invokes the skill

856</h3>

857 

858La skill del plugin viene eseguita quando si digita il comando `/<plugin>:<skill>` ma Claude non la invoca mai in risposta a una richiesta semplice.

859 

860Controllare queste cause in ordine:

861 

862* **La skill imposta `disable-model-invocation: true`**: con quel campo impostato, solo voi potete invocare la skill. La skill del modello in [Create your first plugin](/docs/it/plugins/create#create-your-first-plugin) lo imposta. Rimuovere la riga da una skill che volete che Claude invochi da solo. [Control who invokes a skill](/docs/it/skills#control-who-invokes-a-skill) copre il campo

863* **La descrizione non corrisponde a come le persone chiedono**: lavorare attraverso i controlli in [Skill not triggering](/docs/it/skills#skill-not-triggering)

864* **La descrizione è troncata**: quando molte skills sono installate, Claude Code accorcia le descrizioni per adattarsi al budget dei caratteri dell'elenco, che può spogliare le parole chiave di cui Claude ha bisogno per abbinare una richiesta. Vedere [Skill descriptions are cut short](/docs/it/skills#skill-descriptions-are-cut-short)

865 

866Per misurare quanto spesso la skill si attiva su prompt realistici piuttosto che controllare uno alla volta, scrivere un caso di eval con un [grader `tool_used: Skill`](/docs/it/plugin-evals#create-your-first-eval-suite) ed eseguirlo con `claude plugin eval` dopo ogni modifica della descrizione.

867 

868<h3 id="is-not-a-plugin-or-skill-folder">

869 `<directory> is not a plugin or skill folder` from `claude plugin eval init`

870</h3>

871 

872È stato eseguito `claude plugin eval init` da una directory che non è la radice di un plugin, come la directory home o la radice di un repository che mantiene il plugin in una sottodirectory. `init` scrive la suite sotto la directory di lavoro, quindi si ferma invece di creare una directory `evals/` che il plugin non vedrebbe mai.

873 

874Cambiare alla radice del plugin, la directory che contiene `.claude-plugin/plugin.json` o il `SKILL.md` della skill ed eseguire di nuovo il comando. Per impalcare la suite da qualche parte d'altro di proposito, passare `--eval-dir`. Vedere [Test plugins with evals](/docs/it/plugin-evals).

875 

876<h3 id="the-userconfig-dialog-never-appears">

877 The `userConfig` dialog never appears

878</h3>

879 

880Il plugin dichiara opzioni `userConfig` ma nessuna finestra di dialogo di configurazione appare quando lo si installa.

881 

882L'installazione interattiva mostra la finestra di dialogo e il comando della shell prende i valori come flag al suo posto:

883 

884* **`/plugin install` in una sessione, o la scheda Discover in `/plugin`**: la finestra di dialogo fa parte di questa installazione interattiva

885* **`claude plugin install` nella shell**: non chiede mai i valori di `userConfig`. Salva tutti i valori `--config KEY=VALUE` che si passano e quando le opzioni rimangono non impostate stampa `N userConfig options not yet set — run /plugin configure <plugin>@<marketplace> in Claude Code, or pass --config KEY=VALUE.` Quando una qualsiasi delle opzioni non impostate è obbligatoria, `(M required)` segue `not yet set`.

886 

887Se è stato installato dalla shell, passare i valori con `--config`, un flag per opzione:

888 

889```shell theme={null}

890claude plugin install my-plugin@my-marketplace --config api_url=https://example.com

891```

892 

893Quando ogni opzione è impostata, l'output di installazione non porta alcuna riga `not yet set`. Per aprire la finestra di dialogo in seguito al suo posto, eseguire `/plugin configure my-plugin@my-marketplace` in una sessione.

894 

895Se si passa una chiave `--config` che il manifest non dichiara, il plugin si installa comunque e il comando stampa `⚠ Installed, but --config not applied: --config key "<key>" isn't declared in this plugin's userConfig.` seguito dalle chiavi che il plugin dichiara.

896 

897<h3 id="claude-plugin-validate-reports-errors">

898 `claude plugin validate` reports errors

899</h3>

900 

901È stato eseguito `claude plugin validate <path>` o `/plugin validate <path>` in una sessione e ha stampato `Found N errors` e `Validation failed`, quindi è uscito con codice 1.

902 

903Il validatore legge il manifest nel percorso che si fornisce: `.claude-plugin/plugin.json` per una directory di plugin o `.claude-plugin/marketplace.json` per una directory di marketplace. Per un marketplace, prefissa i problemi nel manifest della voce stessa con l'indice della voce, come `plugins[1] plugin.json → json: ...`.

904 

905La tabella copre i messaggi che fermano la convalida e due avvisi, `No frontmatter block found` e `Unknown field '<key>'`, che la fermano solo quando si passa `--strict`. Altri avvisi, come una descrizione mancante, non sono elencati.

906 

907| Message | Cause | Fix |

908| :------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |

909| `File not found: <path>` | Il percorso non ha un manifest o non esiste. | Eseguire il comando rispetto alla radice del plugin o del marketplace, la directory che contiene `.claude-plugin/`. |

910| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | La directory non ha alcun manifest `.claude-plugin/`. | Creare il manifest o puntare alla directory giusta. |

911| `Invalid JSON syntax: <parse error>` | Il manifest o `hooks/hooks.json` non è JSON valido. | Correggere il JSON. Fino a quando non si corregge `hooks/hooks.json`, una sessione carica il plugin senza gli hook in quel file. |

912| `Path not found: <path>. The runtime loader will report this as a load failure.` | Un percorso di componente nel manifest non esiste. | Correggere il percorso o creare la directory. |

913| `Path contains ".." which could be a path traversal attempt: <path>` | Un percorso di componente esce dalla directory del plugin. | Utilizzare percorsi all'interno della radice del plugin. |

914| `Path is a file; skills entries must be directories containing SKILL.md` | Una voce `skills` punta a `SKILL.md` invece che alla sua directory. | Puntare alla directory padre o `.` per un `SKILL.md` a livello di radice. |

915| `No frontmatter block found` o `YAML frontmatter failed to parse: <error>` | Un file di skill, agent o comando ha frontmatter YAML mancante o non valido. | Aggiungere o correggere il frontmatter tra i delimitatori `---`. Segnalato durante la convalida di una directory di plugin. |

916| `Unknown field '<key>'` | Il manifest ha un campo che lo schema non definisce. | Rimuoverlo o utilizzare il nome che il messaggio suggerisce. Claude Code ignora i campi sconosciuti al momento del caricamento. |

917 

918Eseguire il comando di nuovo dopo ogni correzione fino a quando non stampa alcun errore.

919 

920I campi `plugin.json` sono sul [manifest reference](/docs/it/plugins/manifest-reference) e i messaggi a livello di marketplace sono sotto [Marketplace validation errors](#marketplace-validation-errors).

921 

922<h3 id="plugin-has-conflicting-manifests">

923 `Plugin <name> has conflicting manifests`

924</h3>

925 

926Il plugin non si carica con `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components.`

927 

928Il plugin ha il suo `plugin.json` e la sua voce del marketplace imposta `strict: false` mentre dichiara anche uno qualsiasi di `commands`, `agents`, `skills`, `hooks`, `outputStyles` o `themes`. Rimuovere quei campi dalla voce o impostare `strict: true` nella voce in modo che Claude Code li aggiunga a `plugin.json`. Vedere [Strict mode](/docs/it/plugins/marketplace-reference#strict-mode).

929 

930<h3 id="warning-no-commands-found-in-plugin-custom-directory">

931 `Warning: No commands found in plugin <name> custom directory`

932</h3>

933 

934Quando il plugin si carica, il log `claude --debug` su `~/.claude/debug/<session-id>.txt` registra `Warning: No commands found in plugin <name> custom directory: <path>. Expected .md files or SKILL.md in subdirectories.` Nulla appare nella sessione o nella scheda **Errors**.

935 

936Il percorso `commands` nel manifest esiste ma non contiene file `.md` e nessun `SKILL.md` in una sottodirectory. Aggiungere i file di comando o rimuovere il percorso dal manifest.

937 

938<h2 id="host-a-marketplace">

939 Host a marketplace

940</h2>

941 

942Si pubblica un marketplace e un utente segnala un errore o la propria convalida fallisce. Queste voci sono per il proprietario del marketplace.

943 

944<h3 id="plugins-with-relative-paths-fail-in-url-based-marketplaces">

945 Plugins with relative paths fail in URL-based marketplaces

946</h3>

947 

948Gli utenti hanno aggiunto il marketplace con un URL `https://example.com/marketplace.json`. Le installazioni di plugin la cui `source` è un percorso relativo, come `./plugins/my-plugin`, falliscono con `its marketplace entry path does not stay inside the marketplace directory`. I plugin già installati non si caricano con `Plugin source path refused`. Entrambi i messaggi hanno una [voce di riferimento degli errori](/docs/it/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory).

949 

950Quando un utente aggiunge un marketplace basato su URL, Claude Code scarica solo il file `marketplace.json` stesso. Non recupera i file dei plugin per percorso relativo da quel server, quindi un percorso relativo in una voce punta a una directory che non è mai stata scaricata. Dare a ogni voce una fonte che Claude Code può recuperare da solo, come un repository GitHub:

951 

952```json theme={null}

953{ "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }

954```

955 

956In alternativa, ospitare il marketplace in un repository git e dire agli utenti di aggiungerlo con l'URL del repository. Per una fonte git, Claude Code clona l'intero repository, quindi i percorsi relativi si risolvono. I tipi di fonte sono sul [marketplace reference](/docs/it/plugins/marketplace-reference).

957 

958<h3 id="marketplace-validation-errors">

959 Marketplace validation errors

960</h3>

961 

962È stato eseguito `claude plugin validate .` dalla directory del marketplace e ha segnalato errori o avvisi sul file del marketplace stesso.

963 

964`claude plugin validate` convalida anche ogni voce la cui `source` è un percorso locale e avverte quando la `version` della voce non concorda con il manifest del plugin stesso.

965 

966La tabella elenca i messaggi a livello di marketplace. I messaggi a livello di voce sono i messaggi del plugin sotto [`claude plugin validate` reports errors](#claude-plugin-validate-reports-errors), prefissati con `plugins[N] plugin.json →`.

967 

968| Message | Kind | Fix |

969| :----------------------------------------------------------------------------------------------------------------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |

970| `Duplicate plugin name "<name>" found in marketplace` | Error | Dare a ogni plugin un `name` univoco. |

971| `Path contains "..": <path>` sotto `plugins[N].source` | Error | Utilizzare percorsi relativi alla radice del marketplace senza segmenti `..`. |

972| `Marketplace name cannot contain control or bidirectional-formatting characters` | Error | Rimuovere il carattere dal nome, come un escape o una nuova riga. |

973| `Plugin name cannot contain control or bidirectional-formatting characters` | Error | Rimuovere il carattere dal `name` del plugin. |

974| `Marketplace has no plugins defined` | Warning | Aggiungere almeno una voce a `plugins`. |

975| `No marketplace description provided` | Warning | Aggiungere una `description` a livello superiore. |

976| `Plugin name "<name>" is not kebab-case` sotto `plugins[N] plugin.json → name` | Warning | Rinominare in lettere minuscole, cifre e trattini. Claude Code accetta altre forme, ma la sincronizzazione del marketplace di claude.ai le rifiuta. |

977| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Warning | Aggiornare la voce per corrispondere a `plugin.json`, che è autorevole al momento dell'installazione. |

978| `Marketplace name "<name>" is reserved in Claude Desktop` | Warning | Rinominare il marketplace. La sincronizzazione del marketplace gestito di Claude Desktop rifiuta `org`, `org-provisioned` e `unknown` in qualsiasi maiuscola. |

979| `Marketplace name "<name>" is not accepted by Claude Desktop` o `Plugin name "<name>" is not accepted by Claude Desktop` | Warning | Rinominare a un massimo di 128 caratteri di lettere, cifre, `.`, `_` e `-`, iniziando con una lettera o una cifra. |

980 

981Prima della v2.1.247, un nome di marketplace contenente caratteri di controllo o di formattazione bidirezionale era segnalato solo come `Marketplace name impersonates an official Anthropic/Claude marketplace`.

982 

983<h2 id="blocked-by-your-organization">

984 Blocked by your organization

985</h2>

986 

987L'organizzazione distribuisce impostazioni gestite che limitano i plugin e un comando è stato rifiutato con un messaggio di politica. Queste voci nominano l'impostazione dietro ogni rifiuto in modo da sapere cosa chiedere all'amministratore. Per il lato amministratore, vedere [Manage plugins for your organization](/docs/it/plugins/org).

988 

989<h3 id="marketplace-source-is-blocked-by-enterprise-policy">

990 `Marketplace source '<source>' is blocked by enterprise policy`

991</h3>

992 

993È stato eseguito `/plugin marketplace add`, `update` o un'installazione e Claude Code ha rifiutato con questa riga. Per una fonte GitHub o git, l'host segue la fonte tra parentesi, come in `'github:owner/repo' (github.com)`.

994 

995L'amministratore ha impostato `blockedMarketplaces` o `strictKnownMarketplaces` nelle impostazioni gestite e questa fonte non è consentita. Chiedere all'amministratore di consentire la fonte o aggiungere una delle fonti consentite che il messaggio elenca.

996 

997Abbinare il resto del messaggio per vedere che tipo di politica ha bloccato la fonte:

998 

999* **`Allowed sources: <list>`**: il blocco proviene dall'elenco di autorizzazione `strictKnownMarketplaces` piuttosto che dall'elenco di blocco `blockedMarketplaces`

1000* **`No external marketplaces are allowed.`**: l'elenco di autorizzazione `strictKnownMarketplaces` è vuoto

1001* **Un `Tip:` che lo shorthand assume github.com**: l'elenco di autorizzazione consente un host git per nome host e lo shorthand `owner/repo` che è stato passato punta a github.com. Se il repository si trova sull'host interno, aggiungerlo di nuovo con il suo URL completo, come `git@your-git-host.com:owner/repo.git`

1002 

1003Un marketplace aggiunto prima che la politica diventasse più restrittiva smette di aggiornarsi anche perché la politica si applica ad ogni aggiornamento.

1004 

1005<h3 id="marketplace-is-not-in-the-allowed-marketplace-list">

1006 `Marketplace "<name>" is not in the allowed marketplace list`

1007</h3>

1008 

1009La scheda **Errors** mostra questa riga o `Marketplace "<name>" is blocked by enterprise policy` per un marketplace già registrato.

1010 

1011Le stesse impostazioni gestite che bloccano una [marketplace source](#marketplace-source-is-blocked-by-enterprise-policy) si applicano al momento del caricamento. `strictKnownMarketplaces` non include questo marketplace o `blockedMarketplaces` lo nomina, quindi Claude Code smette di caricarlo e i suoi plugin. Per la variante dell'elenco di autorizzazione, la riga di guida mostra le fonti consentite o `Contact your administrator to configure allowed marketplace sources`. Per la variante dell'elenco di blocco recita `This marketplace source is explicitly blocked by your administrator`.

1012 

1013<h3 id="plugin-is-blocked-by-your-organizations-policy-and-cannot-be-installed">

1014 `Plugin "<name>" is blocked by your organization's policy and cannot be installed`

1015</h3>

1016 

1017Un'installazione è stata rifiutata con questa riga, un'abilitazione con la stessa riga che termina `cannot be enabled` o un'installazione o aggiornamento con uno che nomina il motivo: `Plugin "<name>" is from marketplace "<marketplace>", which is blocked by your organization's policy` o `Plugin "<name>" depends on "<dep>", which is blocked by your organization's policy`.

1018 

1019Le impostazioni gestite bloccano questo plugin, il suo marketplace o una dipendenza di cui ha bisogno. Chiedere all'amministratore quale voce si applica. Un blocco di dipendenza significa che il plugin non può installarsi fino a quando il marketplace della dipendenza non è consentito.

1020 

1021<h3 id="plugin-dir-is-disabled-by-your-organizations-managed-settings-disables">

1022 `--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)`

1023</h3>

1024 

1025È stato avviato `claude` con `--plugin-dir`, `--plugin-url`, `--agents` o `--mcp-config`. Claude Code è uscito con questo messaggio e `Plugins, custom agents, and MCP servers can only be loaded from sources your administrator has approved.`

1026 

1027L'amministratore ha impostato `disableSideloadFlags` nelle impostazioni gestite, che disattiva i flag che caricano plugin, agent e server da percorsi arbitrari. Caricare il plugin da un marketplace approvato al suo posto o chiedere all'amministratore di rimuovere l'impostazione.

1028 

1029Un messaggio correlato nella scheda **Errors** di `/plugin` è `--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings`. Le impostazioni gestite abilitano o disabilitano quel plugin per nome e Claude Code ignora la copia `--plugin-dir` in modo che il flag non possa sovrascrivere la politica.

1030 

1031<h3 id="plugins-from-claude-skills-are-blocked-by-your-organizations-managed-s">

1032 `Plugins from ~/.claude/skills/ are blocked by your organization's managed settings`

1033</h3>

1034 

1035È stato eseguito `claude plugin init` o `claude plugin enable` e si è fermato con questa riga. Il messaggio nomina `strictKnownMarketplaces or blockedMarketplaces` e chiede all'amministratore di aggiungere `{"source":"skills-dir"}` a `strictKnownMarketplaces` o rimuoverlo da `blockedMarketplaces`.

1036 

1037La fonte `skills-dir` sta per i plugin che Claude Code carica dalla directory `~/.claude/skills/`. Chiedere all'amministratore di fare il cambiamento che il messaggio nomina.

1038 

1039<h3 id="command-sourced-plugins-are-disabled-by-your-organizations-managed-set">

1040 `Command-sourced plugins are disabled by your organization's managed settings`

1041</h3>

1042 

1043È stato installato o aggiornato un plugin con una fonte `command` e si è fermato con questa riga e `The plugin was not installed or updated and its command was not run.`

1044 

1045L'amministratore ha impostato `disableCommandPluginSources`, quindi Claude Code rifiuta di eseguire il comando dichiarato dal marketplace che produce il plugin. L'impostazione di `allowManagedHooksOnly` da solo ha lo stesso effetto quando `disableCommandPluginSources` non è impostato. Chiedere all'amministratore se il plugin può essere pubblicato da un tipo di fonte che la politica consente.

1046 

1047<h3 id="marketplace-is-seed-managed">

1048 `Marketplace '<name>' is seed-managed`

1049</h3>

1050 

1051È stato eseguito `claude plugin marketplace update <name>` e ha fallito con `Marketplace '<name>' is seed-managed (<dir>)` e un suggerimento di chiedere all'amministratore.

1052 

1053Un operatore ha pre-popolato questo marketplace tramite `CLAUDE_CODE_PLUGIN_SEED_DIR` e Claude Code tratta un marketplace seed-managed come di sola lettura. Un `marketplace update` in blocco lo salta e aggiorna gli altri.

1054 

1055Per modificare il contenuto del marketplace, chiedere alla persona che mantiene l'immagine seed di aggiornarlo. Per la procedura, vedere [Seed containers and CI](/docs/it/plugins/org#seed-containers-and-ci).

1056 

1057<h2 id="next-steps">

1058 Next steps

1059</h2>

1060 

1061* [Plugin loading reference](/docs/it/plugins/loading): perché gli ambiti, la cache e la precedenza si comportano in questo modo

1062* [Plugin commands reference](/docs/it/plugins/cli-reference): flag, impostazioni predefinite, output e codici di uscita per i comandi `claude plugin`

1063* [Install and manage plugins](/docs/it/plugins/install): i passaggi di installazione dall'inizio

1064* [Manage plugins for your organization](/docs/it/plugins/org#troubleshoot-policy): risoluzione dei problemi dal lato della politica per gli amministratori

Details

135 Abilitazione o disabilitazione di un plugin135 Abilitazione o disabilitazione di un plugin

136</h3>136</h3>

137 137 

138Quando abiliti o disabiliti un [plugin](/docs/it/plugins), il costo del cambio dipende da quali tipi di componenti fornisce il plugin. I casi seguenti coprono ogni tipo di componente, quando Claude Code applica il cambio, e cosa accade quando disabiliti di nuovo un plugin nella stessa sessione.138Quando abiliti o disabiliti un [plugin](/docs/it/plugins/overview), il costo del cambio dipende da quali tipi di componenti fornisce il plugin. I casi seguenti coprono ogni tipo di componente, quando Claude Code applica il cambio, e cosa accade quando disabiliti di nuovo un plugin nella stessa sessione.

139 139 

140<h4 id="plugin-components-that-keep-the-cache">140<h4 id="plugin-components-that-keep-the-cache">

141 Componenti del plugin che mantengono la cache141 Componenti del plugin che mantengono la cache


147 Plugin che forniscono server MCP147 Plugin che forniscono server MCP

148</h4>148</h4>

149 149 

150Quando abiliti o disabiliti un plugin che fornisce [server MCP](/docs/it/plugins-reference#mcp-servers), Claude Code segue le stesse regole di quando [connetti o disconnetti un server MCP](#connecting-or-disconnecting-an-mcp-server):150Quando abiliti o disabiliti un plugin che fornisce [server MCP](/docs/it/plugins/components#mcp-servers), Claude Code segue le stesse regole di quando [connetti o disconnetti un server MCP](#connecting-or-disconnecting-an-mcp-server):

151 151 

152* Se Claude Code differisce gli strumenti del server, mantiene la cache.152* Se Claude Code differisce gli strumenti del server, mantiene la cache.

153* Se Claude Code li carica nel prefisso, la richiesta successiva rilegge l'intera conversazione.153* Se Claude Code li carica nel prefisso, la richiesta successiva rilegge l'intera conversazione.


156 Plugin di intelligenza del codice156 Plugin di intelligenza del codice

157</h4>157</h4>

158 158 

159Quando abiliti un [plugin di intelligenza del codice](/docs/it/discover-plugins#code-intelligence), Claude ottiene lo [strumento LSP](/docs/it/tools-reference#lsp-tool-behavior).159Quando abiliti un [plugin di intelligenza del codice](/docs/it/plugins/code-intelligence), Claude ottiene lo [strumento LSP](/docs/it/tools-reference#lsp-tool-behavior).

160 160 

161<h4 id="when-plugin-changes-apply">161<h4 id="when-plugin-changes-apply">

162 Quando i cambiamenti del plugin si applicano162 Quando i cambiamenti del plugin si applicano

163</h4>163</h4>

164 164 

165Un cambio che fai nel menu `/plugin` passa attraverso [`/reload-plugins`](/docs/it/discover-plugins#apply-plugin-changes-without-restarting), che Claude Code esegue per te quando chiudi il menu. Paghi il costo, sia annunci aggiunti che una rilettura completa, al primo turno dopo che il cambio si applica. Claude Code può anche applicare un cambio da solo:165Un cambio che fai nel menu `/plugin` passa attraverso [`/reload-plugins`](/docs/it/plugins/cli-reference#reload-plugins), che Claude Code esegue per te quando chiudi il menu. Paghi il costo, sia annunci aggiunti che una rilettura completa, al primo turno dopo che il cambio si applica. Claude Code può anche applicare un cambio da solo:

166 166 

167* Per un plugin con una fonte `command`, Claude Code [può ricaricare il plugin stesso](/docs/it/plugin-marketplaces#when-claude-code-re-runs-the-command).167* Per un plugin con una fonte `command`, Claude Code [può ricaricare il plugin stesso](/docs/it/plugins/loading#when-a-command-source-re-runs).

168* Quando [installi un plugin dall'interfaccia `/plugin`](/docs/it/discover-plugins#install-plugins), Claude Code può attivarlo durante l'installazione. Il riepilogo dell'installazione ti dice se l'ha fatto.168* Quando [installi un plugin dall'interfaccia `/plugin`](/docs/it/plugins/install#install-a-plugin), Claude Code può attivarlo durante l'installazione. Il riepilogo dell'installazione ti dice se l'ha fatto.

169* Quando [sposti la sessione con `/cd`](/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successiva, Claude Code applica i plugin che le impostazioni della nuova directory abilitano come parte dello spostamento, senza l'avviso di rilettura completa che tiene un `/reload-plugins`.169* Quando [sposti la sessione con `/cd`](/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successiva, Claude Code applica i plugin che le impostazioni della nuova directory abilitano come parte dello spostamento, senza l'avviso di rilettura completa che tiene un `/reload-plugins`.

170* Nelle sessioni interattive, quando aggiungi o rimuovi un plugin in una [cartella di plugin](/docs/it/plugins#test-your-plugins-locally) che hai passato con `--plugin-dir`, il cambio si applica subito. Se applicarlo attiverebbe una rilettura completa, Claude Code trattiene il cambio e mostra un avviso per eseguire `/reload-plugins`. Richiede Claude Code v2.1.265 o successiva.170* Nelle sessioni interattive, quando aggiungi o rimuovi un plugin in una [cartella di plugin](/docs/it/plugins/create#load-a-directory-or-archive-for-one-session) che hai passato con `--plugin-dir`, il cambio si applica subito. Se applicarlo attiverebbe una rilettura completa, Claude Code trattiene il cambio e mostra un avviso per eseguire `/reload-plugins`. Richiede Claude Code v2.1.265 o successiva.

171 171 

172Quando `/reload-plugins` viene eseguito e il ricaricamento attiverebbe una rilettura completa, Claude Code mostra un avviso e non applica il ricaricamento. Esegui `/reload-plugins --force` per applicarlo comunque.172Quando `/reload-plugins` viene eseguito e il ricaricamento attiverebbe una rilettura completa, Claude Code mostra un avviso e non applica il ricaricamento. Esegui `/reload-plugins --force` per applicarlo comunque.

173 173 

174`/reload-plugins` viene eseguito anche in sessioni senza un terminale interattivo, come l'app desktop, l'Agent SDK, e la [modalità non interattiva](/docs/it/headless) con `-p`, quando lo digiti direttamente nella sessione. Richiede Claude Code v2.1.260 o successiva.174`/reload-plugins` viene eseguito anche in sessioni senza un terminale interattivo, come l'app desktop, l'Agent SDK, e la [modalità non interattiva](/docs/it/headless) con `-p`, quando lo digiti direttamente nella sessione. Richiede Claude Code v2.1.260 o successiva.

175 175 

176In quelle sessioni il ricaricamento applica tutto tranne i cambiamenti del server MCP del plugin, che [hanno effetto nella tua sessione successiva](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) e quindi non costano mai una rilettura completa a metà sessione.176In quelle sessioni il ricaricamento applica tutto tranne i cambiamenti del server MCP del plugin, che [hanno effetto nella tua sessione successiva](/docs/it/plugins/cli-reference#reload-plugins) e quindi non costano mai una rilettura completa a metà sessione.

177 177 

178<h4 id="plugins-you-enable-and-then-disable-in-one-session">178<h4 id="plugins-you-enable-and-then-disable-in-one-session">

179 Plugin che abiliti e poi disabiliti in una sessione179 Plugin che abiliti e poi disabiliti in una sessione

Details

626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);

627 };627 };

628 }, []);628 }, []);

629 const SAFE_HREF = /^(\/(?![\/\\\s])|#|https?:\/\/)/;

629 const linkify = s => {630 const linkify = s => {

630 const out = [];631 const out = [];

631 let last = 0;632 let last = 0;

632 const re = /\[([^\]]+)\]\(([^)]+)\)/g;633 const re = /\[([^\]]+)\]\(([^)]+)\)/g;

633 for (let m; m = re.exec(s); ) {634 for (let m; m = re.exec(s); ) {

634 if (m.index > last) out.push(s.slice(last, m.index));635 if (m.index > last) out.push(s.slice(last, m.index));

635 out.push(<a key={m.index} href={doc(m[2])}>{m[1]}</a>);636 out.push(SAFE_HREF.test(m[2]) ? <a key={m.index} href={doc(m[2])}>{m[1]}</a> : m[1]);

636 last = re.lastIndex;637 last = re.lastIndex;

637 }638 }

638 if (last < s.length) out.push(s.slice(last));639 if (last < s.length) out.push(s.slice(last));


776 </div>777 </div>

777 <div className="pl-label">{L.whyWorks}</div>778 <div className="pl-label">{L.whyWorks}</div>

778 <div className="pl-teaches">{linkify(p.teaches)}</div>779 <div className="pl-teaches">{linkify(p.teaches)}</div>

779 {p.nextHref && p.next && <div className="pl-next">780 {p.nextHref && p.next && SAFE_HREF.test(p.nextHref) && <div className="pl-next">

780 <span className="pl-next-label">{L.makeItStick}</span>781 <span className="pl-next-label">{L.makeItStick}</span>

781 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>782 <a href={doc(p.nextHref)}>{codeify(p.next)} →</a>

782 </div>}783 </div>}

Details

252<Note>252<Note>

253 Dispositivi affidabili è attualmente in beta. Le funzionalità e la funzionalità possono evolversi man mano che l'esperienza viene perfezionata.253 Dispositivi affidabili è attualmente in beta. Le funzionalità e la funzionalità possono evolversi man mano che l'esperienza viene perfezionata.

254 254 

255 Dispositivi affidabili è disponibile su piani Team e Enterprise. È disabilitato per impostazione predefinita fino a quando un Owner non lo abilita.255 Dispositivi affidabili è disponibile su piani Pro, Max, Team ed Enterprise ed è disabilitato per impostazione predefinita. Su piani Team ed Enterprise, un Owner lo abilita per l'organizzazione. Su piani Pro e Max, Lei abilita **Require trusted devices** da sola nelle impostazioni, sulla pagina Cowork o Account.

256</Note>256</Note>

257 257 

258Dispositivi affidabili è un'impostazione a livello di organizzazione che richiede ai membri di verificare il loro dispositivo prima di poter visualizzare o controllare le sessioni Remote Control da claude.ai, dalle app Claude per dispositivi mobili o da Claude Desktop. Lega l'accesso a Remote Control a un dispositivo noto e a un'autenticazione recente, non solo a un account connesso.258Dispositivi affidabili richiede a ogni membro della vostra organizzazione, o a Lei sola su un piano Pro o Max, di verificare il proprio dispositivo prima di poter visualizzare o controllare le sessioni Remote Control da claude.ai, dalle app Claude per dispositivi mobili o da Claude Desktop. Lega l'accesso a Remote Control a un dispositivo noto e a un'autenticazione recente, non solo a un account connesso.

259 259 

260Quando l'impostazione è attiva, l'interazione con una sessione Remote Control richiede entrambi i seguenti:260Quando l'impostazione è attiva, l'interazione con una sessione Remote Control richiede entrambi i seguenti:

261 261 


267L'impostazione si applica solo a Remote Control. La chat Claude regolare, Claude Code nel terminale e l'utilizzo dell'API non sono interessati.267L'impostazione si applica solo a Remote Control. La chat Claude regolare, Claude Code nel terminale e l'utilizzo dell'API non sono interessati.

268 268 

269<h3 id="enable-trusted-devices-for-your-organization">269<h3 id="enable-trusted-devices-for-your-organization">

270 Abilita Dispositivi affidabili per la tua organizzazione270 Abilita Dispositivi affidabili per un'organizzazione Team o Enterprise

271</h3>271</h3>

272 272 

273Un Owner abilita l'impostazione dalla console di amministrazione di Claude Code.273Un Owner abilita l'impostazione dalle impostazioni dell'organizzazione di claude.ai.

274 274 

275<Steps>275<Steps>

276 <Step title="Apri le impostazioni di amministrazione di Claude Code">276 <Step title="Vai alla pagina Capabilities">

277 Vai a [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code). L'interruttore **Require trusted devices** appare sotto l'impostazione Remote Control.277 Vai a [**Organization settings > Capabilities > Remote sessions**](https://claude.ai/admin-settings/capabilities). L'interruttore **Require trusted devices** appare in quella sezione.

278 </Step>278 </Step>

279 279 

280 <Step title="Attiva Require trusted devices">280 <Step title="Attiva Require trusted devices">

sandboxing.md +26 −26

Details

147* Una regola ask `Bash` semplice, o la forma equivalente `Bash(*)`, viene saltata per i comandi che vengono eseguiti sandboxati; si applica comunque ai comandi che ricadono nel flusso di autorizzazione regolare. In [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), la regola non viene saltata: richiede per i comandi sandboxati anche, inclusi quelli di sola lettura. Prima della v2.1.212, il salto si applicava anche in plan mode147* Una regola ask `Bash` semplice, o la forma equivalente `Bash(*)`, viene saltata per i comandi che vengono eseguiti sandboxati; si applica comunque ai comandi che ricadono nel flusso di autorizzazione regolare. In [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), la regola non viene saltata: richiede per i comandi sandboxati anche, inclusi quelli di sola lettura. Prima della v2.1.212, il salto si applicava anche in plan mode

148 148 

149<Info>149<Info>

150 La modalità auto-allow funziona indipendentemente dall'impostazione della modalità di autorizzazione, con un'eccezione: [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode). Anche se non sei in modalità "accetta modifiche", i comandi Bash sandboxati vengono eseguiti automaticamente quando auto-allow è abilitato. Ciò significa che i comandi Bash che modificano file entro i confini della sandbox vengono eseguiti senza richiedere, anche in modalità Manual, dove gli strumenti di modifica dei file richiederebbero.150 La modalità auto-allow funziona indipendentemente dall'impostazione della modalità di autorizzazione, con tre eccezioni: [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode), un comando in modalità auto che porta [domini consentiti per comando](#per-command-allowed-domains-in-auto-mode), e [revisione del classificatore lato server](/docs/it/permission-modes#how-the-classifier-evaluates-actions) dei comandi sandboxati in modalità auto. Anche se non sei in modalità "accetta modifiche", i comandi Bash sandboxati vengono eseguiti automaticamente quando auto-allow è abilitato. Ciò significa che i comandi Bash che modificano file entro i confini della sandbox vengono eseguiti senza richiedere, anche in modalità Manual, dove gli strumenti di modifica dei file richiederebbero.

151 151 

152 In plan mode, auto-allow non amplia le approvazioni; vedi [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) per come Claude Code blocca i comandi mentre pianifichi. Prima della v2.1.212, auto-allow eseguiva i comandi sandboxati senza un prompt in plan mode anche.152 In plan mode, auto-allow non amplia le approvazioni; vedi [plan mode](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) per come Claude Code blocca i comandi mentre pianifichi. Prima della v2.1.212, auto-allow eseguiva i comandi sandboxati senza un prompt in plan mode anche.

153</Info>153</Info>


318 Proteggi le credenziali318 Proteggi le credenziali

319</h3>319</h3>

320 320 

321L'impostazione `sandbox.credentials` dichiara file di credenziali e variabili di ambiente da proteggere dai comandi in sandbox. Ogni voce nomina un percorso di file o una variabile di ambiente e una `mode`. Il blocco dedicato `credentials` mantiene le regole delle credenziali raggruppate insieme e separate dalle regole generali del filesystem. Richiede Claude Code v2.1.187 o successivo.321L'impostazione `sandbox.credentials` dichiara file di credenziali e variabili di ambiente da proteggere dai comandi in sandbox. Ogni voce nomina un percorso di file o una variabile di ambiente e una `mode`. Il blocco dedicato `credentials` mantiene le regole delle credenziali raggruppate insieme e separate dalle regole generali del filesystem.

322 322 

323Per le voci con `"mode": "deny"`, i percorsi dei file vengono negati per le letture all'interno della sandbox, la stessa restrizione che `filesystem.denyRead` applica, e le variabili di ambiente vengono non impostate prima di ogni comando in sandbox. La protezione del file fa parte del livello del filesystem, quindi non si applica se [disabiliti l'isolamento del filesystem](#disable-filesystem-isolation); la protezione della variabile di ambiente continua comunque.323Per le voci con `"mode": "deny"`, i percorsi dei file vengono negati per le letture all'interno della sandbox, la stessa restrizione che `filesystem.denyRead` applica, e le variabili di ambiente vengono non impostate prima di ogni comando in sandbox. La protezione del file fa parte del livello del filesystem, quindi non si applica se [disabiliti l'isolamento del filesystem](#disable-filesystem-isolation); la protezione della variabile di ambiente continua comunque.

324 324 


621 Come il sandboxing si relaziona alle autorizzazioni e alle modalità di autorizzazione621 Come il sandboxing si relaziona alle autorizzazioni e alle modalità di autorizzazione

622</h2>622</h2>

623 623 

624Il sandboxing, le [regole di autorizzazione](/docs/it/permissions) e le [modalità di autorizzazione](/docs/it/permission-modes) sono livelli complementari. Le sezioni seguenti coprono come la sandbox interagisce con ciascuno.624Il sandboxing, le [regole di autorizzazione](/docs/it/permissions), e le [modalità di autorizzazione](/docs/it/permission-modes) sono livelli complementari. Le sezioni seguenti spiegano come la sandbox interagisce con ciascuno.

625 625 

626<h3 id="permission-rules">626<h3 id="permission-rules">

627 Permission rules627 Regole di autorizzazione

628</h3>628</h3>

629 629 

630Le regole di autorizzazione e il sandboxing controllano cose diverse:630Le regole di autorizzazione e il sandboxing controllano cose diverse:

631 631 

632* **Le regole di autorizzazione** controllano quali strumenti Claude Code può utilizzare e vengono valutate prima che qualsiasi strumento venga eseguito. Si applicano a tutti gli strumenti: Bash, Read, Edit, WebFetch, MCP e altri, tranne per il fatto che una regola di negazione o richiesta non può bloccare [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior) mentre qualsiasi altro strumento rimane.632* **Le regole di autorizzazione** controllano quali strumenti Claude Code può utilizzare e vengono valutate prima che qualsiasi strumento venga eseguito. Si applicano a ogni strumento: Bash, Read, Edit, WebFetch, MCP e altri, tranne per il fatto che una regola di negazione o richiesta non può bloccare [`EndConversation`](/docs/it/tools-reference#endconversation-tool-behavior) mentre rimane qualsiasi altro strumento.

633* **Il sandboxing** fornisce l'applicazione a livello del sistema operativo che limita ciò che i comandi Bash, PowerShell e [Monitor](/docs/it/tools-reference#monitor-tool) possono accedere a livello di filesystem e rete. Si applica solo ai comandi Bash, PowerShell e [Monitor](/docs/it/tools-reference#monitor-tool) e ai loro processi figlio.633* **Il sandboxing** fornisce l'applicazione a livello del sistema operativo che limita ciò a cui i comandi della shell possono accedere a livello di filesystem e di rete. Si applica solo ai comandi Bash, PowerShell e [Monitor](/docs/it/tools-reference#monitor-tool) e ai loro processi figlio.

634 634 

635I due livelli differiscono anche nel modo in cui vengono applicati. Claude Code valuta le decisioni di autorizzazione prima che un comando venga eseguito, in base alla stringa di comando e, in modalità auto, il giudizio di un classificatore separato su se il comando è sicuro. Il sistema operativo applica il confine della sandbox al processo in esecuzione, quindi vale indipendentemente da ciò che il modello ha scelto di eseguire e anche se un comando consentito fa più di quanto il suo nome suggerisca.635I due livelli differiscono anche nel modo in cui vengono applicati. Claude Code valuta le decisioni di autorizzazione prima che un comando venga eseguito, in base alla stringa di comando e, in modalità automatica, al giudizio di un classificatore separato su se il comando è sicuro. Il sistema operativo applica il limite della sandbox al processo in esecuzione, quindi rimane indipendentemente da ciò che il modello ha scelto di eseguire e anche se un comando consentito fa più di quanto il suo nome suggerisca.

636 636 

637Le restrizioni di filesystem e rete sono configurate sia tramite le impostazioni della sandbox che le regole di autorizzazione:637Le restrizioni del filesystem e della rete sono configurate sia attraverso le impostazioni della sandbox che attraverso le regole di autorizzazione:

638 638 

639| Impostazione o regola | Cosa fa |639| Impostazione o regola | Cosa fa |

640| :------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |640| :------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------- |

641| `sandbox.filesystem.allowWrite` | Concede l'accesso in scrittura dei sottoprocessi a percorsi al di fuori della directory di lavoro |641| `sandbox.filesystem.allowWrite` | Concede l'accesso in scrittura del sottoprocesso ai percorsi al di fuori della directory di lavoro |

642| `sandbox.filesystem.denyWrite` e `sandbox.filesystem.denyRead` | Blocca l'accesso dei sottoprocessi a percorsi specifici |642| `sandbox.filesystem.denyWrite` e `sandbox.filesystem.denyRead` | Bloccano l'accesso del sottoprocesso a percorsi specifici |

643| `sandbox.filesystem.allowRead` | Ri-consente la lettura di percorsi specifici all'interno di una regione `denyRead` |643| `sandbox.filesystem.allowRead` | Consente nuovamente la lettura di percorsi specifici all'interno di una regione `denyRead` |

644| [`sandbox.filesystem.disabled`](#disable-filesystem-isolation) | Disattiva completamente il livello di filesystem mantenendo l'isolamento di rete |644| [`sandbox.filesystem.disabled`](#disable-filesystem-isolation) | Disattiva completamente il livello del filesystem mantenendo l'isolamento della rete |

645| Regole di consentimento `Edit` | Concedono l'accesso in scrittura a percorsi specifici, allo stesso modo di `sandbox.filesystem.allowWrite` |645| Regole di autorizzazione `Edit` | Concedono l'accesso in scrittura a percorsi specifici, nello stesso modo in cui `sandbox.filesystem.allowWrite` fa |

646| Regole di negazione `Read` e `Edit` | Bloccano l'accesso a file o directory specifici |646| Regole di negazione `Read` e `Edit` | Bloccano l'accesso a file o directory specifici |

647| Regole di consentimento e negazione `WebFetch(domain:...)` | Controllano l'accesso al dominio |647| Regole di autorizzazione e negazione `WebFetch(domain:...)` | Controllano l'accesso al dominio |

648| Sandbox `allowedDomains` | Controlla quali domini i comandi Bash possono raggiungere |648| `allowedDomains` della sandbox | Controlla quali domini i comandi Bash possono raggiungere |

649| Sandbox `deniedDomains` | Blocca domini specifici anche quando un wildcard `allowedDomains` più ampio altrimenti li permetterebbe |649| `deniedDomains` della sandbox | Blocca domini specifici anche quando un wildcard `allowedDomains` più ampio altrimenti li permetterebbe |

650 650 

651I percorsi e i domini dalle impostazioni della sandbox e dalle regole di autorizzazione vengono uniti insieme nella configurazione finale della sandbox.651I percorsi e i domini sia dalle impostazioni della sandbox che dalle regole di autorizzazione vengono uniti nella configurazione finale della sandbox.

652 652 

653Il [repository claude-code nella directory examples](https://github.com/anthropics/claude-code/tree/main/examples/settings) include configurazioni di impostazioni iniziali per scenari di distribuzione comuni, inclusi esempi specifici della sandbox. Utilizzali come punti di partenza e adattali alle tue esigenze.653La [directory degli esempi del repository claude-code](https://github.com/anthropics/claude-code/tree/main/examples/settings) include configurazioni di impostazioni iniziali per scenari di distribuzione comuni, inclusi esempi specifici della sandbox. Utilizzate questi come punti di partenza e adattateli alle vostre esigenze.

654 654 

655<h3 id="permission-modes">655<h3 id="permission-modes">

656 Permission modes656 Modalità di autorizzazione

657</h3>657</h3>

658 658 

659`/sandbox` non è una [modalità di autorizzazione](/docs/it/permission-modes). Le modalità di autorizzazione decidono se una chiamata di strumento viene eseguita e se vieni richiesto prima, mentre la sandbox limita ciò che un comando Bash può accedere una volta che viene eseguito. Differiscono in ciò che controllano e cosa sostituisce il prompt per azione:659`/sandbox` non è una [modalità di autorizzazione](/docs/it/permission-modes). Le modalità di autorizzazione decidono se una chiamata di strumento viene eseguita e se siete richiesti per primo, mentre la sandbox limita ciò a cui un comando Bash può accedere una volta eseguito. Differiscono in ciò che controllano e cosa sostituisce il prompt per azione:

660 660 

661| | Cosa controlla | Cosa sostituisce il prompt |661| | Cosa controlla | Cosa sostituisce il prompt |

662| :--------------------------------------------------------------------- | :------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |662| :--------------------------------------------------------------------------- | :-------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

663| `/sandbox` | Cosa un comando Bash può accedere una volta che viene eseguito | Il confine della sandbox stesso, in [modalità auto-allow](#sandbox-modes) |663| `/sandbox` | Ciò a cui un comando Bash può accedere una volta eseguito | Il limite della sandbox stesso, in [modalità auto-allow](#sandbox-modes) |

664| [Modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) | Se ogni chiamata di strumento viene eseguita | Un classificatore che esamina le azioni |664| [Modalità automatica](/docs/it/permission-modes#eliminate-prompts-with-auto-mode) | Se ogni chiamata di strumento viene eseguita | Un classificatore che esamina le azioni |

665| `--dangerously-skip-permissions` | Se ogni chiamata di strumento viene eseguita | Niente. I controlli di [percorso protetto](/docs/it/permission-modes#protected-paths) vengono anche saltati; le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves) si applicano comunque |665| `--dangerously-skip-permissions` | Se ogni chiamata di strumento viene eseguita | Niente. I controlli del [percorso protetto](/docs/it/permission-modes#protected-paths) vengono anche saltati; le [azioni che nessuna modalità auto-approva](/docs/it/permission-modes#actions-no-mode-auto-approves) si applicano ancora |

666 666 

667La [modalità auto-allow](#sandbox-modes) della sandbox è separata dalla [modalità auto](/docs/it/permission-modes#eliminate-prompts-with-auto-mode): auto-allow approva i comandi Bash perché il confine della sandbox li contiene, mentre la modalità auto utilizza un classificatore per esaminare le azioni. I due funzionano indipendentemente e possono essere combinati, con le eccezioni elencate in [Sandbox modes](#sandbox-modes). Per scegliere un confine di isolamento per esecuzioni incustodite, vedi [Sandbox environments](/docs/it/sandbox-environments#how-isolation-relates-to-permission-modes). Per una tabella degli accoppiamenti comuni tra modalità di autorizzazione e sandbox con i flag che avviano ciascuno, vedi [Common setups](/docs/it/permission-modes#common-setups).667La [modalità auto-allow](#sandbox-modes) della sandbox è separata dalla [modalità automatica](/docs/it/permission-modes#eliminate-prompts-with-auto-mode): auto-allow approva i comandi Bash perché il limite della sandbox li contiene, mentre la modalità automatica utilizza un classificatore per esaminare le azioni. I due funzionano indipendentemente e possono essere combinati, con le eccezioni elencate in [Modalità sandbox](#sandbox-modes). Per scegliere un limite di isolamento per esecuzioni incustodite, vedere [Ambienti sandbox](/docs/it/sandbox-environments#how-isolation-relates-to-permission-modes). Per una tabella degli accoppiamenti comuni di modalità di autorizzazione e sandbox con i flag che avviano ciascuno, vedere [Configurazioni comuni](/docs/it/permission-modes#common-setups).

668 668 

669<h2 id="configure-the-sandbox-for-your-organization">669<h2 id="configure-the-sandbox-for-your-organization">

670 Configura la sandbox per la tua organizzazione670 Configura la sandbox per la tua organizzazione

Details

25 Installa il plugin25 Installa il plugin

26</h2>26</h2>

27 27 

28In una sessione Claude Code, installa dal [marketplace ufficiale Anthropic](/docs/it/discover-plugins#official-anthropic-marketplace):28In una sessione Claude Code, installa dal [marketplace ufficiale Anthropic](/docs/it/plugins/anthropic-marketplaces):

29 29 

30```text theme={null}30```text theme={null}

31/plugin install security-guidance@claude-plugins-official31/plugin install security-guidance@claude-plugins-official


35 35 

36* **App desktop Claude, sessione locale o SSH**: apri il [browser dei plugin](/docs/it/desktop#install-plugins) facendo clic sul pulsante **+** accanto al prompt, quindi **Plugins**, quindi **Add plugin**36* **App desktop Claude, sessione locale o SSH**: apri il [browser dei plugin](/docs/it/desktop#install-plugins) facendo clic sul pulsante **+** accanto al prompt, quindi **Plugins**, quindi **Add plugin**

37* **Estensione VS Code**: installa dalla [finestra di dialogo **Manage plugins**](/docs/it/vs-code#manage-plugins)37* **Estensione VS Code**: installa dalla [finestra di dialogo **Manage plugins**](/docs/it/vs-code#manage-plugins)

38* **Sessioni cloud**: abilita il plugin per il tuo account claude.ai in modo che Claude Code lo carichi come [plugin sincronizzato](/docs/it/plugins-reference#synced-plugins). Una sessione cloud non carica i plugin dalle tue impostazioni utente o dal file `.claude/settings.json` del repository, come spiega [What carries over from your setup](/docs/it/cloud-environments#what-carries-over-from-your-setup)38* **Sessioni cloud**: una sessione cloud non carica i plugin dalle tue impostazioni utente o dal file `.claude/settings.json` del repository, come spiega [What carries over from your setup](/docs/it/cloud-environments#what-carries-over-from-your-setup). Per i plugin che la tua organizzazione distribuisce tramite impostazioni gestite, consulta [Manage plugins for your organization](/docs/it/plugins/org)

39 39 

40L'installazione del terminale richiede un ambito. Scegli l'ambito utente per scrivere il plugin nelle tue impostazioni utente, in modo che si carichi in ogni nuova sessione locale che avvii su questa macchina.40L'installazione del terminale richiede un ambito. Scegli l'ambito utente per scrivere il plugin nelle tue impostazioni utente, in modo che si carichi in ogni nuova sessione locale che avvii su questa macchina.

41 41 

42Se l'installazione non riesce, fai corrispondere il messaggio che Claude Code segnala:42Se l'installazione non riesce, fai corrispondere il messaggio che Claude Code segnala:

43 43 

44* `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.44* `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.

45* Il plugin [non è trovato nel marketplace](/docs/it/discover-plugins#install-plugins): controlla il nome del plugin.45* Il plugin [non è trovato nel marketplace](/docs/it/plugins/install#install-a-plugin): controlla il nome del plugin.

46 46 

47Controlla il riepilogo dell'installazione. Se segnala `Run /reload-plugins to activate.`, consulta [Applica le modifiche ai plugin senza riavviare](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) per attivare il plugin nella tua sessione corrente.47Controlla il riepilogo dell'installazione. Se segnala `Run /reload-plugins to activate.`, consulta [Apply plugin changes without restarting](/docs/it/plugins/cli-reference#reload-plugins) per attivare il plugin nella tua sessione corrente.

48 48 

49<h3 id="enable-for-your-team-in-local-sessions">49<h3 id="enable-for-your-team-in-local-sessions">

50 Abilita per il tuo team nelle sessioni locali50 Abilita per il tuo team nelle sessioni locali


279 279 

280* [Code Review](/docs/it/code-review): configura la revisione multi-agent al momento della PR280* [Code Review](/docs/it/code-review): configura la revisione multi-agent al momento della PR

281* [Automatizza i workflow con gli hook](/docs/it/hooks-guide): costruisci i tuoi controlli negli stessi punti del ciclo di vita281* [Automatizza i workflow con gli hook](/docs/it/hooks-guide): costruisci i tuoi controlli negli stessi punti del ciclo di vita

282* [Scopri e installa plugin](/docs/it/discover-plugins#official-anthropic-marketplace): sfoglia altri plugin ufficiali282* [Scopri i plugin nel marketplace ufficiale](/docs/it/plugins/anthropic-marketplaces#find-plugins-in-the-official-marketplace): dove sfogliare gli altri plugin ufficiali

sessions.md +1 −1

Details

37 37 

38Una sessione ripresa ripristina la conversazione insieme allo stato salvato in essa:38Una sessione ripresa ripristina la conversazione insieme allo stato salvato in essa:

39 39 

40* Cronologia della conversazione: la cronologia completa, incluse le chiamate agli strumenti e i risultati. Uno strumento che era ancora in esecuzione quando il processo precedente è terminato, ad esempio in un arresto anomalo, non finisce o non viene eseguito di nuovo quando riprendi; Claude continua senza il suo output.40* Cronologia della conversazione: la cronologia completa, incluse le chiamate agli strumenti e i risultati. Uno strumento che era ancora in esecuzione quando il processo precedente è terminato, ad esempio in un arresto anomalo, non finisce o non viene eseguito di nuovo quando riprendi. Claude vede la chiamata contrassegnata come interrotta prima che il suo risultato fosse registrato e gli viene detto di verificare se ha avuto effetto prima di eseguirla di nuovo, a meno che [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/it/env-vars#variables) non sia impostato. Prima della v2.1.281, Claude Code eliminava la chiamata interrotta dalla conversazione o la mostrava a Claude come una che hai interrotto.

41* Modello: la sessione continua sul modello che stava utilizzando. Il modello non viene ripristinato quando è stato ritirato o non è consentito da `availableModels`, quando un flag `--model` o una variabile di ambiente della famiglia `ANTHROPIC_MODEL` ne seleziona uno al lancio, o su provider che utilizzano ID di distribuzione specifici del provider, come [Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry](/docs/it/third-party-integrations); vedi [configurazione del modello](/docs/it/model-config#setting-your-model) per l'ordine di risoluzione.41* Modello: la sessione continua sul modello che stava utilizzando. Il modello non viene ripristinato quando è stato ritirato o non è consentito da `availableModels`, quando un flag `--model` o una variabile di ambiente della famiglia `ANTHROPIC_MODEL` ne seleziona uno al lancio, o su provider che utilizzano ID di distribuzione specifici del provider, come [Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry](/docs/it/third-party-integrations); vedi [configurazione del modello](/docs/it/model-config#setting-your-model) per l'ordine di risoluzione.

42* Agent: una sessione avviata con [`--agent`](/docs/it/sub-agents#invoke-subagents-explicitly) o l'impostazione `agent` continua come quell'agent, mantenendo le sue restrizioni degli strumenti e il modello. Passa `--agent` quando riprendi per sceglierne uno diverso; per il prompt di sistema in entrambi i casi, vedi [Flag del prompt di sistema nelle conversazioni riprese](/docs/it/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code cerca l'agent in due posti: la directory originale della sessione, a condizione che tu abbia [fiducia in quell'area di lavoro](/docs/it/permissions#project-allow-rules-and-workspace-trust), e poi la directory da cui riprendi, quindi un agent con ambito di progetto si carica ancora quando riprendi da un'altra directory. Se Claude Code non trova l'agent in nessuno dei due posti, la sessione riprende con gli strumenti predefiniti e mostra un [avviso che nomina l'agent](/docs/it/errors#session-agent-no-longer-available).42* Agent: una sessione avviata con [`--agent`](/docs/it/sub-agents#invoke-subagents-explicitly) o l'impostazione `agent` continua come quell'agent, mantenendo le sue restrizioni degli strumenti e il modello. Passa `--agent` quando riprendi per sceglierne uno diverso; per il prompt di sistema in entrambi i casi, vedi [Flag del prompt di sistema nelle conversazioni riprese](/docs/it/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code cerca l'agent in due posti: la directory originale della sessione, a condizione che tu abbia [fiducia in quell'area di lavoro](/docs/it/permissions#project-allow-rules-and-workspace-trust), e poi la directory da cui riprendi, quindi un agent con ambito di progetto si carica ancora quando riprendi da un'altra directory. Se Claude Code non trova l'agent in nessuno dei due posti, la sessione riprende con gli strumenti predefiniti e mostra un [avviso che nomina l'agent](/docs/it/errors#session-agent-no-longer-available).

43* Modalità di autorizzazione: se riprendi da un terminale con `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` quando il nome corrisponde a una sessione, senza `-p`, Claude Code ripristina la modalità di autorizzazione in cui era la sessione, tranne nei casi in [modalità di autorizzazione al ripristino](#permission-mode-on-resume), che copre anche il selezionatore di sessioni, `/resume` e la ripresa con `claude -p`. Passa `--permission-mode` o `--dangerously-skip-permissions` per ignorare la modalità ripristinata.43* Modalità di autorizzazione: se riprendi da un terminale con `claude --continue`, `claude --resume <session-id>` o `claude --resume <name>` quando il nome corrisponde a una sessione, senza `-p`, Claude Code ripristina la modalità di autorizzazione in cui era la sessione, tranne nei casi in [modalità di autorizzazione al ripristino](#permission-mode-on-resume), che copre anche il selezionatore di sessioni, `/resume` e la ripresa con `claude -p`. Passa `--permission-mode` o `--dangerously-skip-permissions` per ignorare la modalità ripristinata.

settings.md +5 −1

Details

452 Condividere le impostazioni con il vostro team452 Condividere le impostazioni con il vostro team

453</h3>453</h3>

454 454 

455Eseguite il commit di `.claude/settings.json` in modo che tutti coloro che clonano il repository ottengano le stesse autorizzazioni, hooks, telemetria, e plugins. Ogni collega può comunque sostituirlo per se stesso nel proprio `.claude/settings.local.json`, quindi le eccezioni personali non hanno bisogno di un commit. Per un file team completo, vedete [le impostazioni condivise di un team](/docs/it/settings-example#a-teams-shared-settings).455Eseguite il commit di `.claude/settings.json` in modo che tutti coloro che clonano il repository ottengano le stesse autorizzazioni, hooks, e plugins. Ogni collega può comunque sostituirlo per se stesso nel proprio `.claude/settings.local.json`, quindi le eccezioni personali non hanno bisogno di un commit. Per un file team completo, vedete [le impostazioni condivise di un team](/docs/it/settings-example#a-teams-shared-settings).

456 456 

457Parte di quello che eseguite il commit attende fino a quando ogni collega [non si fida della cartella](/docs/it/permissions#project-allow-rules-and-workspace-trust), e poche chiavi non hanno mai effetto da un file di repository; [Troubleshoot a setting that doesn't apply](#common-cases) copre entrambi.457Parte di quello che eseguite il commit attende fino a quando ogni collega [non si fida della cartella](/docs/it/permissions#project-allow-rules-and-workspace-trust), e poche chiavi non hanno mai effetto da un file di repository; [Troubleshoot a setting that doesn't apply](#common-cases) copre entrambi.

458 458 


743* **Un livello più alto lo imposta.** Un altro file di impostazioni, un flag `--settings`, o una fonte gestita imposta la chiave sopra la tua; lo [stack](#settings-precedence) dice quale. Un flag o una variabile di ambiente può anche sostituire la chiave di per sé, deciso chiave per chiave; la voce della chiave nel [riferimento delle impostazioni](/docs/it/settings-reference) dice quale Claude Code utilizza, e la [voce `env`](/docs/it/settings-reference#env) copre un valore `env` gestito rispetto a un'esportazione di shell.743* **Un livello più alto lo imposta.** Un altro file di impostazioni, un flag `--settings`, o una fonte gestita imposta la chiave sopra la tua; lo [stack](#settings-precedence) dice quale. Un flag o una variabile di ambiente può anche sostituire la chiave di per sé, deciso chiave per chiave; la voce della chiave nel [riferimento delle impostazioni](/docs/it/settings-reference) dice quale Claude Code utilizza, e la [voce `env`](/docs/it/settings-reference#env) copre un valore `env` gestito rispetto a un'esportazione di shell.

744* **Una chiave di sicurezza mantiene il suo valore restrittivo.** Per alcune chiavi Claude Code onora il valore restrittivo da qualsiasi file, quindi un `true` di progetto per [`disableClaudeAiConnectors`](/docs/it/settings-reference#disableclaudeaiconnectors) rimane attivo; vedi [Eccezioni alla precedenza delle impostazioni gestite](#exceptions-to-managed-settings-precedence).744* **Una chiave di sicurezza mantiene il suo valore restrittivo.** Per alcune chiavi Claude Code onora il valore restrittivo da qualsiasi file, quindi un `true` di progetto per [`disableClaudeAiConnectors`](/docs/it/settings-reference#disableclaudeaiconnectors) rimane attivo; vedi [Eccezioni alla precedenza delle impostazioni gestite](#exceptions-to-managed-settings-precedence).

745* **Il file non può impostare quel valore.** I valori [`permissions.defaultMode`](/docs/it/settings-reference#permissions-defaultmode) `auto` e `bypassPermissions` non hanno effetto dalle impostazioni di progetto o locali; impostali invece nelle impostazioni utente o gestite, o passa `--permission-mode` per una sessione. Prima della v2.1.257, `bypassPermissions` aveva effetto da qualsiasi file.745* **Il file non può impostare quel valore.** I valori [`permissions.defaultMode`](/docs/it/settings-reference#permissions-defaultmode) `auto` e `bypassPermissions` non hanno effetto dalle impostazioni di progetto o locali; impostali invece nelle impostazioni utente o gestite, o passa `--permission-mode` per una sessione. Prima della v2.1.257, `bypassPermissions` aveva effetto da qualsiasi file.

746 

747 Una variabile di esportazione telemetria in un blocco [`env`](/docs/it/settings-reference#env) non ha effetto dalle impostazioni di progetto o locali nemmeno, a parte alcuni valori off. [Variabili che Claude Code ignora in `env`](/docs/it/settings-reference#variables-claude-code-ignores-in-env) elenca le variabili e quei valori.

746* **Il file è rotto.** JSON non valido o un valore rifiutato fa sì che Claude Code salti il file o la voce; vedi [Ripara un file di impostazioni rotto](#fix-a-broken-settings-file).748* **Il file è rotto.** JSON non valido o un valore rifiutato fa sì che Claude Code salti il file o la voce; vedi [Ripara un file di impostazioni rotto](#fix-a-broken-settings-file).

747 749 

748<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">750<h4 id="a-change-you-made-in-claude-code-is-lost-in-new-sessions">


766Due cose impediscono a una chiave in `.claude/settings.json` di applicarsi per tutti coloro che la clonano:768Due cose impediscono a una chiave in `.claude/settings.json` di applicarsi per tutti coloro che la clonano:

767 769 

768* **Claude Code ignora la chiave in un file di repository.** Cerca `User, local, or managed`, `User or managed`, `Managed`, o `Global config` nella colonna Scope dell'[indice delle impostazioni](/docs/it/settings-reference#settings-index). Quelle chiavi non si applicano mai dal file condiviso, a parte alcuni che un file di repository può comunque disattivare. Ciascuna di quelle voci lo dice sulla sua riga Scope. Le chiavi `Global config` si applicano solo da `~/.claude.json`.770* **Claude Code ignora la chiave in un file di repository.** Cerca `User, local, or managed`, `User or managed`, `Managed`, o `Global config` nella colonna Scope dell'[indice delle impostazioni](/docs/it/settings-reference#settings-index). Quelle chiavi non si applicano mai dal file condiviso, a parte alcuni che un file di repository può comunque disattivare. Ciascuna di quelle voci lo dice sulla sua riga Scope. Le chiavi `Global config` si applicano solo da `~/.claude.json`.

771 

772 All'interno della chiave `env`, le variabili di esportazione telemetria non si applicano mai dal file condiviso nemmeno, a parte alcuni valori off; vedi [Variabili che Claude Code ignora in `env`](/docs/it/settings-reference#variables-claude-code-ignores-in-env).

769* **La chiave attende la fiducia.** Le regole `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces`, e la maggior parte dei valori [`env`](/docs/it/settings-reference#env) si applicano solo dopo che ogni compagno di squadra [affida la cartella](/docs/it/permissions#project-allow-rules-and-workspace-trust). Fino ad allora vedono ancora i prompt e non ottengono plugin da un marketplace che il file dichiara. Le regole `deny` e `ask` si applicano subito.773* **La chiave attende la fiducia.** Le regole `permissions.allow`, `permissions.additionalDirectories`, `extraKnownMarketplaces`, e la maggior parte dei valori [`env`](/docs/it/settings-reference#env) si applicano solo dopo che ogni compagno di squadra [affida la cartella](/docs/it/permissions#project-allow-rules-and-workspace-trust). Fino ad allora vedono ancora i prompt e non ottengono plugin da un marketplace che il file dichiara. Le regole `deny` e `ask` si applicano subito.

770 774 

771<h4 id="permission-rules-combine-differently-than-you-expected">775<h4 id="permission-rules-combine-differently-than-you-expected">

Details

98 Le impostazioni condivise di un team98 Le impostazioni condivise di un team

99</h2>99</h2>

100 100 

101Le impostazioni condivise di un team, sottoposte a commit nel repository in modo che tutti coloro che lo clonano ottengano le stesse autorizzazioni, hook, telemetria e marketplace di plugin. Salva un file come questo in `.claude/settings.json` nella parte superiore del repository. Cose da sapere prima di sottoporre a commit uno:101Le impostazioni condivise di un team, sottoposte a commit nel repository in modo che tutti coloro che lo clonano ottengano le stesse autorizzazioni, hook e marketplace di plugin. Salva un file come questo in `.claude/settings.json` nella parte superiore del repository. Cose da sapere prima di sottoporre a commit uno:

102 102 

103* **Le sessioni cloud lo leggono anche.** Una [sessione cloud](/docs/it/settings#settings-in-cloud-sessions) inizia da un clone del repository, quindi il file sottoposto a commit si applica anche lì.103* **Le sessioni cloud lo leggono anche.** Una [sessione cloud](/docs/it/settings#settings-in-cloud-sessions) inizia da un clone del repository, quindi il file sottoposto a commit si applica anche lì.

104* **La telemetria va nelle impostazioni gestite o personali.** Claude Code ignora le [variabili dell'esportatore OpenTelemetry](/docs/it/settings-reference#variables-claude-code-ignores-in-env) nei file di impostazioni di un repository, a parte alcuni valori che disattivano la telemetria. Impostale nelle [impostazioni gestite](/docs/it/monitoring-usage#administrator-configuration) per la tua organizzazione, o nel file `~/.claude/settings.json` di ogni persona.

104* **Le regole di autorizzazione attendono la fiducia.** Le regole di autorizzazione e le voci `extraKnownMarketplaces` hanno effetto dopo che ogni persona [si fida di questa cartella stessa](/docs/it/permissions#project-allow-rules-and-workspace-trust), non solo di una cartella padre; le regole di negazione e richiesta si applicano in ogni sessione, fidata o meno.105* **Le regole di autorizzazione attendono la fiducia.** Le regole di autorizzazione e le voci `extraKnownMarketplaces` hanno effetto dopo che ogni persona [si fida di questa cartella stessa](/docs/it/permissions#project-allow-rules-and-workspace-trust), non solo di una cartella padre; le regole di negazione e richiesta si applicano in ogni sessione, fidata o meno.

105* **L'hook è uno script nel repo.** L'hook di questo file esegue `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/it/hooks#how-a-hook-resolves) illustra come scriverlo.106* **L'hook è uno script nel repo.** L'hook di questo file esegue `.claude/hooks/block-rm.sh`; [How a hook resolves](/docs/it/hooks#how-a-hook-resolves) illustra come scriverlo.

106* **Le regole corrispondono al comando e al percorso come scritti.** `Bash(git push *)` non corrisponde a [`git -C . push`](/docs/it/permissions#bash-rule-limits). `Read(./.env)` da solo interrompe i file tool e i comandi che nominano il file, come `cat .env`, ma non [`grep -r` eseguito sulla directory](/docs/it/permissions#read-and-edit); il blocco `sandbox` in questo file colma questa lacuna, perché la sandbox [aggiunge i tuoi percorsi di negazione `Read`](/docs/it/settings-reference#sandbox-filesystem-denyread) a ciò che ogni comando in sandbox non può leggere.107* **Le regole corrispondono al comando e al percorso come scritti.** `Bash(git push *)` non corrisponde a [`git -C . push`](/docs/it/permissions#bash-rule-limits). `Read(./.env)` da solo interrompe i file tool e i comandi che nominano il file, come `cat .env`, ma non [`grep -r` eseguito sulla directory](/docs/it/permissions#read-and-edit); il blocco `sandbox` in questo file colma questa lacuna, perché la sandbox [aggiunge i tuoi percorsi di negazione `Read`](/docs/it/settings-reference#sandbox-filesystem-denyread) a ciò che ogni comando in sandbox non può leggere.


124 "Read(./secrets/**)"125 "Read(./secrets/**)"

125 ]126 ]

126 },127 },

127 "env": {

128 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

129 "OTEL_METRICS_EXPORTER": "otlp",

130 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

131 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

132 },

133 "hooks": {128 "hooks": {

134 "PreToolUse": [129 "PreToolUse": [

135 {130 {


194 "Read(./secrets/**)"189 "Read(./secrets/**)"

195 ]190 ]

196 },191 },

197 // Invia metriche OpenTelemetry al collector del team su gRPC; sostituisci l'endpoint con l'URL del tuo collector

198 "env": {

199 "CLAUDE_CODE_ENABLE_TELEMETRY": "1",

200 "OTEL_METRICS_EXPORTER": "otlp",

201 "OTEL_EXPORTER_OTLP_PROTOCOL": "grpc",

202 "OTEL_EXPORTER_OTLP_ENDPOINT": "http://collector.example.com:4317"

203 },

204 // Prima di ogni comando Bash, esegui uno script nel repo che può bloccarlo192 // Prima di ogni comando Bash, esegui uno script nel repo che può bloccarlo

205 "hooks": {193 "hooks": {

206 "PreToolUse": [194 "PreToolUse": [

Details

626| [`axScreenReader`](#axscreenreader) | Rendete l'[output adatto ai lettori di schermo](/docs/it/accessibility) | Interface and terminal | Any file |626| [`axScreenReader`](#axscreenreader) | Rendete l'[output adatto ai lettori di schermo](/docs/it/accessibility) | Interface and terminal | Any file |

627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Registrate i [file che un comando Bash ha modificato](/docs/it/hooks#bash) in ogni modalità di autorizzazione | Interface and terminal | User or managed |627| [`bashEditDiffEnabled`](#basheditdiffenabled) | Registrate i [file che un comando Bash ha modificato](/docs/it/hooks#bash) in ogni modalità di autorizzazione | Interface and terminal | User or managed |

628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Impostate quanto dell'[output](/docs/it/tools-reference#output-limits) di un comando riuscito Claude riceve inline | Memory and context | Any file |628| [`bashOutputMaxChars`](#bashoutputmaxchars) | Impostate quanto dell'[output](/docs/it/tools-reference#output-limits) di un comando riuscito Claude riceve inline | Memory and context | Any file |

629| [`blockedMarketplaces`](#blockedmarketplaces) | Bloccate le fonti del [marketplace di plugin](/docs/it/plugin-marketplaces) per la vostra organizzazione | Plugins and skills | Managed |629| [`blockedMarketplaces`](#blockedmarketplaces) | Bloccate le fonti del [marketplace di plugin](/docs/it/plugins/overview) per la vostra organizzazione | Plugins and skills | Managed |

630| [`browserExternalPageTools`](#browserexternalpagetools) | Mantenete gli strumenti di Claude disattivati sulle pagine esterne nel riquadro [desktop](/docs/it/desktop) Browser | Tools | Managed |630| [`browserExternalPageTools`](#browserexternalpagetools) | Mantenete gli strumenti di Claude disattivati sulle pagine esterne nel riquadro [desktop](/docs/it/desktop) Browser | Tools | Managed |

631| [`channelsEnabled`](#channelsenabled) | Consentite i [canali](/docs/it/channels#enable-channels-for-your-organization) per la vostra organizzazione | Plugins and skills | Managed |631| [`channelsEnabled`](#channelsenabled) | Consentite i [canali](/docs/it/channels#enable-channels-for-your-organization) per la vostra organizzazione | Plugins and skills | Managed |

632| [`claudeMd`](#claudemd) | Iniettate le istruzioni [CLAUDE.md](/docs/it/memory#deploy-organization-wide-claude-md) a livello di organizzazione dalle impostazioni gestite | Memory and context | Managed |632| [`claudeMd`](#claudemd) | Iniettate le istruzioni [CLAUDE.md](/docs/it/memory#deploy-organization-wide-claude-md) a livello di organizzazione dalle impostazioni gestite | Memory and context | Managed |


647| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limitate il riquadro [desktop](/docs/it/desktop) Browser a localhost per le persone e Claude | Tools | Managed |647| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | Limitate il riquadro [desktop](/docs/it/desktop) Browser a localhost per le persone e Claude | Tools | Managed |

648| [`disableBundledSkills`](#disablebundledskills) | Disattivate le [skill](/docs/it/skills#bundled-skills) e i [workflow](/docs/it/workflows) inclusi in Claude Code | Plugins and skills | Any file |648| [`disableBundledSkills`](#disablebundledskills) | Disattivate le [skill](/docs/it/skills#bundled-skills) e i [workflow](/docs/it/workflows) inclusi in Claude Code | Plugins and skills | Any file |

649| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Disattivate i [connettori claude.ai](/docs/it/mcp#disable-claude-ai-connectors) in modo che Claude Code non li recuperi | MCP | Any file |649| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | Disattivate i [connettori claude.ai](/docs/it/mcp#disable-claude-ai-connectors) in modo che Claude Code non li recuperi | MCP | Any file |

650| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloccate i [plugin](/docs/it/plugins) che si installano eseguendo un comando dichiarato dal marketplace | Plugins and skills | Managed |650| [`disableCommandPluginSources`](#disablecommandpluginsources) | Bloccate i [plugin](/docs/it/plugins/overview) che si installano eseguendo un comando dichiarato dal marketplace | Plugins and skills | Managed |

651| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impedite a Claude Code di registrare il [gestore `claude-cli://`](/docs/it/deep-links) | Remote, desktop, and notifications | Any file |651| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | Impedite a Claude Code di registrare il [gestore `claude-cli://`](/docs/it/deep-links) | Remote, desktop, and notifications | Any file |

652| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Disattivate le [sessioni Desktop Code](/docs/it/desktop#local-sessions-on-managed-devices) che vengono eseguite sul dispositivo, lasciando SSH ad altri host e al cloud | Remote, desktop, and notifications | Managed |652| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | Disattivate le [sessioni Desktop Code](/docs/it/desktop#local-sessions-on-managed-devices) che vengono eseguite sul dispositivo, lasciando SSH ad altri host e al cloud | Remote, desktop, and notifications | Managed |

653| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rifiutate i server specifici dal [`.mcp.json`](/docs/it/mcp#project-scope) di un progetto | MCP | Any file |653| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | Rifiutate i server specifici dal [`.mcp.json`](/docs/it/mcp#project-scope) di un progetto | MCP | Any file |

654| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloccate gli strumenti di Claude nel riquadro [desktop](/docs/it/desktop) iOS Simulator | Tools | Managed |654| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | Bloccate gli strumenti di Claude nel riquadro [desktop](/docs/it/desktop) iOS Simulator | Tools | Managed |

655| [`disableRemoteControl`](#disableremotecontrol) | Disattivate [Remote Control](/docs/it/remote-control) ovunque possa iniziare | Remote, desktop, and notifications | Any file |655| [`disableRemoteControl`](#disableremotecontrol) | Disattivate [Remote Control](/docs/it/remote-control) ovunque possa iniziare | Remote, desktop, and notifications | Any file |

656| [`disableSideloadFlags`](#disablesideloadflags) | Rifiutate i flag CLI che caricano lateralmente i [plugin](/docs/it/plugins), i [subagent](/docs/it/sub-agents), e i [server MCP](/docs/it/mcp) | Enterprise and managed settings | Managed |656| [`disableSideloadFlags`](#disablesideloadflags) | Rifiutate i flag CLI che caricano lateralmente i [plugin](/docs/it/plugins/overview), i [subagent](/docs/it/sub-agents), e i [server MCP](/docs/it/mcp) | Enterprise and managed settings | Managed |

657| [`disableSkillShellExecution`](#disableskillshellexecution) | Impedite alle [skill](/docs/it/skills) e ai comandi personalizzati di eseguire shell inline | Plugins and skills | Any file |657| [`disableSkillShellExecution`](#disableskillshellexecution) | Impedite alle [skill](/docs/it/skills) e ai comandi personalizzati di eseguire shell inline | Plugins and skills | Any file |

658| [`disableWorkflows`](#disableworkflows) | Disattivate i [workflow dinamici](/docs/it/workflows) per tutti; usate `enableWorkflows` per voi stessi | Hooks and automation | Any file |658| [`disableWorkflows`](#disableworkflows) | Disattivate i [workflow dinamici](/docs/it/workflows) per tutti; usate `enableWorkflows` per voi stessi | Hooks and automation | Any file |

659| [`editorMode`](#editormode) | Usate le [scorciatoie da tastiera vim](/docs/it/interactive-mode#vim-editor-mode) nel prompt di input | Interface and terminal | Any file |659| [`editorMode`](#editormode) | Usate le [scorciatoie da tastiera vim](/docs/it/interactive-mode#vim-editor-mode) nel prompt di input | Interface and terminal | Any file |


662| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Approvate ogni server nel file [`.mcp.json`](/docs/it/mcp#project-server-approvals-and-workspace-trust) del progetto senza un prompt | MCP | Any file |662| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | Approvate ogni server nel file [`.mcp.json`](/docs/it/mcp#project-server-approvals-and-workspace-trust) del progetto senza un prompt | MCP | Any file |

663| [`enableArtifact`](#enableartifact) | Disattivate lo [strumento Artifact](/docs/it/artifacts) con un `false` in qualsiasi file; nessun file può riattivarlo | Remote, desktop, and notifications | Any file |663| [`enableArtifact`](#enableartifact) | Disattivate lo [strumento Artifact](/docs/it/artifacts) con un `false` in qualsiasi file; nessun file può riattivarlo | Remote, desktop, and notifications | Any file |

664| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Approvate i server specifici dal [`.mcp.json`](/docs/it/mcp#project-server-approvals-and-workspace-trust) di un progetto | MCP | Any file |664| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | Approvate i server specifici dal [`.mcp.json`](/docs/it/mcp#project-server-approvals-and-workspace-trust) di un progetto | MCP | Any file |

665| [`enabledPlugins`](#enabledplugins) | Attivate o disattivate i singoli [plugin](/docs/it/plugins) per ambito | Plugins and skills | Any file |665| [`enabledPlugins`](#enabledplugins) | Attivate o disattivate i singoli [plugin](/docs/it/plugins/overview) per ambito | Plugins and skills | Any file |

666| [`enableWorkflows`](#enableworkflows) | Attivate o disattivate i [workflow dinamici](/docs/it/workflows) rispetto al valore predefinito del vostro piano | Hooks and automation | Any file |666| [`enableWorkflows`](#enableworkflows) | Attivate o disattivate i [workflow dinamici](/docs/it/workflows) rispetto al valore predefinito del vostro piano | Hooks and automation | Any file |

667| [`enforceAvailableModels`](#enforceavailablemodels) | Mantenete la scelta predefinita di [`/model`](/docs/it/model-config#enforce-the-allowlist-for-the-default-model) all'interno dell'elenco di autorizzazione `availableModels` | Model and responses | Any file |667| [`enforceAvailableModels`](#enforceavailablemodels) | Mantenete la scelta predefinita di [`/model`](/docs/it/model-config#enforce-the-allowlist-for-the-default-model) all'interno dell'elenco di autorizzazione `availableModels` | Model and responses | Any file |

668| [`env`](#env) | Impostate le [variabili di ambiente](/docs/it/env-vars#in-settings-files) per ogni sessione e i suoi sottoprocessi | Memory and context | Any file |668| [`env`](#env) | Impostate le [variabili di ambiente](/docs/it/env-vars#in-settings-files) per ogni sessione e i suoi sottoprocessi | Memory and context | Any file |

669| [`externalEditorContext`](#externaleditorcontext) | Mostrate l'ultima risposta di Claude come commenti quando premete [Ctrl+G](/docs/it/interactive-mode#general-controls) per modificare | Global config settings | Global config |669| [`externalEditorContext`](#externaleditorcontext) | Mostrate l'ultima risposta di Claude come commenti quando premete [Ctrl+G](/docs/it/interactive-mode#general-controls) per modificare | Global config settings | Global config |

670| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Registrate i [marketplace](/docs/it/plugin-marketplaces) per un repository o un'organizzazione | Plugins and skills | Any file |670| [`extraKnownMarketplaces`](#extraknownmarketplaces) | Registrate i [marketplace](/docs/it/plugins/overview) per un repository o un'organizzazione | Plugins and skills | Any file |

671| [`fallbackModel`](#fallbackmodel) | Nominate i [modelli di backup](/docs/it/model-config#fallback-model-chains) per quando il primario è sovraccarico | Model and responses | Any file |671| [`fallbackModel`](#fallbackmodel) | Nominate i [modelli di backup](/docs/it/model-config#fallback-model-chains) per quando il primario è sovraccarico | Model and responses | Any file |

672| [`fastMode`](#fastmode) | Attivate la [modalità veloce](/docs/it/fast-mode) per le sessioni dove è disponibile | Model and responses | Any file |672| [`fastMode`](#fastmode) | Attivate la [modalità veloce](/docs/it/fast-mode) per le sessioni dove è disponibile | Model and responses | Any file |

673| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Richiedete alle persone di attivare la [modalità veloce](/docs/it/fast-mode) ogni sessione | Model and responses | Any file |673| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | Richiedete alle persone di attivare la [modalità veloce](/docs/it/fast-mode) ogni sessione | Model and responses | Any file |


712| [`permissions.deny`](#permissions-deny) | Bloccate gli [usi dello strumento](/docs/it/permissions#permission-rule-syntax) elencati, incluse le letture di file che contengono segreti | Permission settings | Any file |712| [`permissions.deny`](#permissions-deny) | Bloccate gli [usi dello strumento](/docs/it/permissions#permission-rule-syntax) elencati, incluse le letture di file che contengono segreti | Permission settings | Any file |

713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impedite a chiunque di entrare nella [modalità bypassPermissions](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Permission settings | Any file |713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Impedite a chiunque di entrare nella [modalità bypassPermissions](/docs/it/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Permission settings | Any file |

714| [`plansDirectory`](#plansdirectory) | Scegliete dove la [modalità plan](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) scrive i file di piano | Memory and context | Any file |714| [`plansDirectory`](#plansdirectory) | Scegliete dove la [modalità plan](/docs/it/permission-modes#analyze-before-you-edit-with-plan-mode) scrive i file di piano | Memory and context | Any file |

715| [`pluginConfigs`](#pluginconfigs) | Archiviate le risposte che avete dato alla finestra di dialogo di configurazione di un [plugin](/docs/it/plugins) | Plugins and skills | User or managed |715| [`pluginConfigs`](#pluginconfigs) | Archiviate le risposte che avete dato alla finestra di dialogo di configurazione di un [plugin](/docs/it/plugins/overview) | Plugins and skills | User or managed |

716| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Scegliete quali [marketplace](/docs/it/plugin-marketplaces#managed-marketplace-restrictions) possono far emergere i suggerimenti di installazione dei plugin in `/plugin` | Plugins and skills | Managed |716| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Scegliete quali [marketplace](/docs/it/plugins/org#restrict-what-users-can-install) possono far emergere i suggerimenti di installazione dei plugin in `/plugin` | Plugins and skills | Managed |

717| [`pluginTrustMessage`](#plugintrustmessage) | Aggiungete il vostro testo all'avviso di fiducia del [plugin](/docs/it/plugins) | Plugins and skills | Managed |717| [`pluginTrustMessage`](#plugintrustmessage) | Aggiungete il vostro testo all'avviso di fiducia del [plugin](/docs/it/plugins/overview) | Plugins and skills | Managed |

718| [`policyHelper`](#policyhelper) | Eseguite un eseguibile che calcola le [impostazioni gestite](/docs/it/managed-settings#compute-the-policy-with-a-helper-program) all'avvio | Enterprise and managed settings | Managed |718| [`policyHelper`](#policyhelper) | Eseguite un eseguibile che calcola le [impostazioni gestite](/docs/it/managed-settings#compute-the-policy-with-a-helper-program) all'avvio | Enterprise and managed settings | Managed |

719| [`policyHelper.path`](#policyhelper-path) | Nominate l'[eseguibile helper](/docs/it/managed-settings#compute-the-policy-with-a-helper-program) che Claude Code esegue | Enterprise and managed settings | Managed |719| [`policyHelper.path`](#policyhelper-path) | Nominate l'[eseguibile helper](/docs/it/managed-settings#compute-the-policy-with-a-helper-program) che Claude Code esegue | Enterprise and managed settings | Managed |

720| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Rieseguite l'[helper](/docs/it/managed-settings#compute-the-policy-with-a-helper-program) in background a intervalli | Enterprise and managed settings | Managed |720| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | Rieseguite l'[helper](/docs/it/managed-settings#compute-the-policy-with-a-helper-program) in background a intervalli | Enterprise and managed settings | Managed |


745| [`sandbox.enabled`](#sandbox-enabled) | Attivate il [sandboxing di Bash](/docs/it/sandboxing#get-started) su macOS, Linux e WSL2 | Sandbox settings | Any file |745| [`sandbox.enabled`](#sandbox-enabled) | Attivate il [sandboxing di Bash](/docs/it/sandboxing#get-started) su macOS, Linux e WSL2 | Sandbox settings | Any file |

746| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Eseguite la [sandbox](/docs/it/sandboxing) Linux all'interno di un contenitore senza privilegi | Sandbox settings | Any file |746| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | Eseguite la [sandbox](/docs/it/sandboxing) Linux all'interno di un contenitore senza privilegi | Sandbox settings | Any file |

747| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Lasciate che `gh`, `gcloud` e `terraform` verifichino TLS dietro un proxy MITM all'interno della [sandbox](/docs/it/sandboxing#troubleshooting) su macOS | Sandbox settings | Any file |747| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | Lasciate che `gh`, `gcloud` e `terraform` verifichino TLS dietro un proxy MITM all'interno della [sandbox](/docs/it/sandboxing#troubleshooting) su macOS | Sandbox settings | Any file |

748| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Nominate i comandi che vengono sempre eseguiti al di fuori della [sandbox](/docs/it/sandboxing) | Sandbox settings | Any file |748| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | Nominate i comandi che Claude Code può eseguire al di fuori della [sandbox](/docs/it/sandboxing) | Sandbox settings | Any file |

749| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Rifiutate di avviare quando la [sandbox](/docs/it/sandboxing) non può, invece di eseguire senza sandbox | Sandbox settings | Any file |749| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | Rifiutate di avviare quando la [sandbox](/docs/it/sandboxing) non può, invece di eseguire senza sandbox | Sandbox settings | Any file |

750| [`sandbox.filesystem`](#sandbox-filesystem) | Controllate quali percorsi i [comandi in sandbox](/docs/it/sandboxing#filesystem-isolation) possono leggere e scrivere | Sandbox settings | Any file |750| [`sandbox.filesystem`](#sandbox-filesystem) | Controllate quali percorsi i [comandi in sandbox](/docs/it/sandboxing#filesystem-isolation) possono leggere e scrivere | Sandbox settings | Any file |

751| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | Impedite agli sviluppatori di riaprire i [percorsi di lettura che la vostra organizzazione ha bloccato](/docs/it/sandboxing#keep-developers-from-widening-the-policy) | Sandbox settings | Managed |751| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | Impedite agli sviluppatori di riaprire i [percorsi di lettura che la vostra organizzazione ha bloccato](/docs/it/sandboxing#keep-developers-from-widening-the-policy) | Sandbox settings | Managed |


785| [`sshConfigs`](#sshconfigs) | Aggiungete le [connessioni SSH](/docs/it/desktop#pre-configure-ssh-connections-for-your-team) al menu a discesa dell'ambiente Desktop | Remote, desktop, and notifications | User or managed |785| [`sshConfigs`](#sshconfigs) | Aggiungete le [connessioni SSH](/docs/it/desktop#pre-configure-ssh-connections-for-your-team) al menu a discesa dell'ambiente Desktop | Remote, desktop, and notifications | User or managed |

786| [`sshHostAllowlist`](#sshhostallowlist) | Limitate gli host che le [sessioni SSH Desktop](/docs/it/desktop#restrict-which-ssh-hosts-users-can-connect-to) possono raggiungere | Remote, desktop, and notifications | Managed |786| [`sshHostAllowlist`](#sshhostallowlist) | Limitate gli host che le [sessioni SSH Desktop](/docs/it/desktop#restrict-which-ssh-hosts-users-can-connect-to) possono raggiungere | Remote, desktop, and notifications | Managed |

787| [`statusLine`](#statusline) | Eseguite il vostro comando per rendere una [riga di stato](/docs/it/statusline) sotto il prompt | Interface and terminal | Any file |787| [`statusLine`](#statusline) | Eseguite il vostro comando per rendere una [riga di stato](/docs/it/statusline) sotto il prompt | Interface and terminal | Any file |

788| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Elencate in whitelist le fonti del [marketplace](/docs/it/plugin-marketplaces) che gli utenti possono aggiungere e installare | Plugins and skills | Managed |788| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Elencate in whitelist le fonti del [marketplace](/docs/it/plugins/overview) che gli utenti possono aggiungere e installare | Plugins and skills | Managed |

789| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloccate le [skill](/docs/it/skills), gli [agenti](/docs/it/sub-agents), gli [hook](/docs/it/hooks) e i [server MCP](/docs/it/mcp) dalle fonti utente e progetto | Plugins and skills | Managed |789| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | Bloccate le [skill](/docs/it/skills), gli [agenti](/docs/it/sub-agents), gli [hook](/docs/it/hooks) e i [server MCP](/docs/it/mcp) dalle fonti utente e progetto | Plugins and skills | Managed |

790| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Bloccate gli [agenti](/docs/it/sub-agents) alle fonti plugin e gestite | Plugins and skills | Managed |790| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | Bloccate gli [agenti](/docs/it/sub-agents) alle fonti plugin e gestite | Plugins and skills | Managed |

791| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Bloccate gli [hook](/docs/it/hooks) alle fonti plugin e gestite | Plugins and skills | Managed |791| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | Bloccate gli [hook](/docs/it/hooks) alle fonti plugin e gestite | Plugins and skills | Managed |


794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Scegliete la [durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) per i subagent e altre richieste al di fuori della conversazione principale | Model and responses | Any file |794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Scegliete la [durata della cache del prompt](/docs/it/prompt-caching#cache-lifetime) per i subagent e altre richieste al di fuori della conversazione principale | Model and responses | Any file |

795| [`subagentStatusLine`](#subagentstatusline) | Riscrivetle righe nella [visualizzazione del subagent](/docs/it/sub-agents) con il vostro comando | Interface and terminal | Any file |795| [`subagentStatusLine`](#subagentstatusline) | Riscrivetle righe nella [visualizzazione del subagent](/docs/it/sub-agents) con il vostro comando | Interface and terminal | Any file |

796| [`switchModelsOnFlag`](#switchmodelsonflag) | Cambiate i modelli automaticamente o fate una pausa quando un [classificatore di sicurezza](/docs/it/model-config#ask-before-switching) contrassegna una richiesta | Model and responses | Any file |796| [`switchModelsOnFlag`](#switchmodelsonflag) | Cambiate i modelli automaticamente o fate una pausa quando un [classificatore di sicurezza](/docs/it/model-config#ask-before-switching) contrassegna una richiesta | Model and responses | Any file |

797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Smettete di caricare i [plugin abilitati sul vostro account claude.ai](/docs/it/plugins-reference#synced-plugins) e smettete di scaricare quelli nuovi | Plugins and skills | User, local, or managed |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Smettete di caricare i [plugin abilitati sul vostro account claude.ai](/docs/it/plugins/loading#synced-plugins) e smettete di scaricare quelli nuovi | Plugins and skills | User, local, or managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Smettete di scaricare le [skill abilitate sul vostro account claude.ai](/docs/it/skills#how-synced-skills-behave) e nascondetequelle già sincronizzate | Plugins and skills | User, local, or managed |798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Smettete di scaricare le [skill abilitate sul vostro account claude.ai](/docs/it/skills#how-synced-skills-behave) e nascondetequelle già sincronizzate | Plugins and skills | User, local, or managed |

799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Disattivate l'evidenziazione della sintassi nei diff e nei blocchi di codice | Interface and terminal | Any file |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Disattivate l'evidenziazione della sintassi nei diff e nei blocchi di codice | Interface and terminal | Any file |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Rimosso nella v2.1.277, insieme allo strumento `TaskOutput` che ha dimensionato | Memory and context | Any file |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Rimosso nella v2.1.277, insieme allo strumento `TaskOutput` che ha dimensionato | Memory and context | Any file |


2256 `sandbox.credentials`2256 `sandbox.credentials`

2257</h3>2257</h3>

2258 2258 

2259Dichiara i file di credenziali e le variabili di ambiente da [proteggere dai comandi in sandbox](/docs/it/sandboxing#protect-credentials). Ogni voce nomina un file `path` o una variabile `name` e una `mode`: `deny` nasconde la credenziale all'interno della sandbox, e `mask` mostra ai comandi in sandbox un segnaposto mentre il [proxy della sandbox](/docs/it/sandboxing#mask-credentials) sostituisce il valore reale sulle richieste in uscita. Claude Code protegge solo le voci che elenchi; non c'è un elenco di negazione di credenziali incorporato. Richiede Claude Code v2.1.187 o successivo.2259Dichiara i file di credenziali e le variabili di ambiente da [proteggere dai comandi in sandbox](/docs/it/sandboxing#protect-credentials). Ogni voce nomina un file `path` o una variabile `name` e una `mode`: `deny` nasconde la credenziale all'interno della sandbox, e `mask` mostra ai comandi in sandbox un segnaposto mentre il [proxy della sandbox](/docs/it/sandboxing#mask-credentials) sostituisce il valore reale sulle richieste in uscita. Claude Code protegge solo le voci che elenchi; non c'è un elenco di negazione di credenziali incorporato.

2260 2260 

2261* **Scope**: [`Any file`](#scopes). Claude Code onora le voci `mask`, `allowPlaintextInject`, `awsPairs` e `sigv4` solo dalle impostazioni utente, dalle impostazioni gestite e dal flag `--settings`.2261* **Scope**: [`Any file`](#scopes). Claude Code onora le voci `mask`, `allowPlaintextInject`, `awsPairs` e `sigv4` solo dalle impostazioni utente, dalle impostazioni gestite e dal flag `--settings`.

2262* **Type**: object con `files`, `envVars`, `allowPlaintextInject`, `awsPairs` e `sigv4`2262* **Type**: object con `files`, `envVars`, `allowPlaintextInject`, `awsPairs` e `sigv4`


2275}2275}

2276```2276```

2277 2277 

2278La protezione del file `deny` fa parte del livello del filesystem, quindi non si applica quando [disabiliti l'isolamento del filesystem](/docs/it/sandboxing#disable-filesystem-isolation); la protezione della variabile di ambiente continua comunque. Richiede Claude Code v2.1.187 o successivo.2278La protezione del file `deny` fa parte del livello del filesystem, quindi non si applica quando [disabiliti l'isolamento del filesystem](/docs/it/sandboxing#disable-filesystem-isolation); la protezione della variabile di ambiente continua comunque.

2279 2279 

2280<h4 id="invalid-credential-entries-in-managed-settings">2280<h4 id="invalid-credential-entries-in-managed-settings">

2281 Voci di credenziali non valide nelle impostazioni gestite2281 Voci di credenziali non valide nelle impostazioni gestite


2293 `sandbox.credentials.files`2293 `sandbox.credentials.files`

2294</h3>2294</h3>

2295 2295 

2296Proteggi i file o le directory di credenziali dai comandi in sandbox. Con `"mode": "deny"`, Claude Code blocca le letture del percorso all'interno della sandbox, lo stesso blocco di lettura di [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Con `"mode": "mask"`, i comandi in sandbox su Linux e WSL2 leggono una copia sentinella del file, e il proxy della sandbox sostituisce il valore reale sulle richieste in uscita a `injectHosts` di quella voce; su macOS il file è illeggibile all'interno della sandbox invece. Richiede Claude Code v2.1.187 o successivo, e `"mode": "mask"` richiede v2.1.221 o successivo.2296Proteggi i file o le directory di credenziali dai comandi in sandbox. Con `"mode": "deny"`, Claude Code blocca le letture del percorso all'interno della sandbox, lo stesso blocco di lettura di [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Con `"mode": "mask"`, i comandi in sandbox su Linux e WSL2 leggono una copia sentinella del file, e il proxy della sandbox sostituisce il valore reale sulle richieste in uscita a `injectHosts` di quella voce; su macOS il file è illeggibile all'interno della sandbox invece. `"mode": "mask"` richiede Claude Code v2.1.221 o successivo.

2297 2297 

2298* **Scope**: [`Any file`](#scopes). Claude Code scarta le voci `mask` da `.claude/settings.json` del progetto e da `.claude/settings.local.json` locale.2298* **Scope**: [`Any file`](#scopes). Claude Code scarta le voci `mask` da `.claude/settings.json` del progetto e da `.claude/settings.local.json` locale.

2299* **Type**: array di object, ognuno con `path` e una `mode` di `"deny"` o `"mask"`, più i [campi mask opzionali per i file](#mask-fields-for-files)2299* **Type**: array di object, ognuno con `path` e una `mode` di `"deny"` o `"mask"`, più i [campi mask opzionali per i file](#mask-fields-for-files)


2314}2314}

2315```2315```

2316 2316 

2317I percorsi usano gli stessi [prefissi](#sandbox-path-prefixes) delle impostazioni `sandbox.filesystem.*`, e Claude Code unisce gli array da ogni ambito di impostazioni che la sessione carica. [Protect credentials](/docs/it/sandboxing#protect-credentials) copre cosa si applica ancora dalle fonti che escludi con `--setting-sources`. Richiede Claude Code v2.1.187 o successivo; le voci `mask` richiedono v2.1.221 o successivo.2317I percorsi usano gli stessi [prefissi](#sandbox-path-prefixes) delle impostazioni `sandbox.filesystem.*`, e Claude Code unisce gli array da ogni ambito di impostazioni che la sessione carica. [Protect credentials](/docs/it/sandboxing#protect-credentials) copre cosa si applica ancora dalle fonti che escludi con `--setting-sources`. `mask` entries richiedono Claude Code v2.1.221 o successivo.

2318 2318 

2319La sostituzione `mask` viene eseguita solo attraverso il proxy della sandbox, quindi imposta [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) per le reti di test HTTP semplice. `mask` si applica a un singolo file, quindi elenca ogni file di credenziali individualmente. Claude Code accetta ma ignora i campi `mask` su una voce `deny`. [Mask credential files](/docs/it/sandboxing#mask-credential-files) copre quali fonti di impostazioni sono onorate e quando una voce ricade a `deny`.2319La sostituzione `mask` viene eseguita solo attraverso il proxy della sandbox, quindi imposta [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) per le reti di test HTTP semplice. `mask` si applica a un singolo file, quindi elenca ogni file di credenziali individualmente. Claude Code accetta ma ignora i campi `mask` su una voce `deny`. [Mask credential files](/docs/it/sandboxing#mask-credential-files) copre quali fonti di impostazioni sono onorate e quando una voce ricade a `deny`.

2320 2320 


2370 `sandbox.credentials.envVars`2370 `sandbox.credentials.envVars`

2371</h3>2371</h3>

2372 2372 

2373Proteggi le variabili di ambiente dai comandi in sandbox. Con `"mode": "deny"`, Claude Code rimuove la variabile dall'ambiente dei comandi in sandbox. Con `"mode": "mask"`, i comandi in sandbox vedono un valore sentinella per sessione, e il proxy della sandbox sostituisce il valore reale sulle richieste in uscita a `injectHosts` di quella voce, quindi gli strumenti come `gh` e `npm` continuano ad autenticarsi senza mai tenere la credenziale reale. Richiede Claude Code v2.1.187 o successivo, e `"mode": "mask"` richiede v2.1.199 o successivo.2373Proteggi le variabili di ambiente dai comandi in sandbox. Con `"mode": "deny"`, Claude Code rimuove la variabile dall'ambiente dei comandi in sandbox. Con `"mode": "mask"`, i comandi in sandbox vedono un valore sentinella per sessione, e il proxy della sandbox sostituisce il valore reale sulle richieste in uscita a `injectHosts` di quella voce, quindi gli strumenti come `gh` e `npm` continuano ad autenticarsi senza mai tenere la credenziale reale. `"mode": "mask"` richiede Claude Code v2.1.199 o successivo.

2374 2374 

2375* **Scope**: [`Any file`](#scopes). Claude Code scarta le voci `mask` da `.claude/settings.json` del progetto e da `.claude/settings.local.json` locale.2375* **Scope**: [`Any file`](#scopes). Claude Code scarta le voci `mask` da `.claude/settings.json` del progetto e da `.claude/settings.local.json` locale.

2376* **Type**: array di object, ognuno con `name` e una `mode` di `"deny"` o `"mask"`, più i [campi mask opzionali per le variabili di ambiente](#mask-fields-for-environment-variables)2376* **Type**: array di object, ognuno con `name` e una `mode` di `"deny"` o `"mask"`, più i [campi mask opzionali per le variabili di ambiente](#mask-fields-for-environment-variables)


2391}2391}

2392```2392```

2393 2393 

2394Il `name` deve iniziare con una lettera o un underscore e contenere solo lettere, cifre e underscore. Claude Code unisce gli array da ogni ambito di impostazioni che la sessione carica, e applica `deny` quando la stessa variabile appare con entrambe le modalità. [Protect credentials](/docs/it/sandboxing#protect-credentials) copre cosa si applica ancora dalle fonti che escludi con `--setting-sources`. Richiede Claude Code v2.1.187 o successivo; le voci `mask` richiedono v2.1.199 o successivo.2394Il `name` deve iniziare con una lettera o un underscore e contenere solo lettere, cifre e underscore. Claude Code unisce gli array da ogni ambito di impostazioni che la sessione carica, e applica `deny` quando la stessa variabile appare con entrambe le modalità. [Protect credentials](/docs/it/sandboxing#protect-credentials) copre cosa si applica ancora dalle fonti che escludi con `--setting-sources`. `mask` entries richiedono Claude Code v2.1.199 o successivo.

2395 2395 

2396La sostituzione `mask` viene eseguita solo attraverso il proxy della sandbox, quindi imposta [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) per le reti di test HTTP semplice; vedi [Mask environment variables](/docs/it/sandboxing#mask-environment-variables). Claude Code accetta ma ignora i campi `mask` su una voce `deny`.2396La sostituzione `mask` viene eseguita solo attraverso il proxy della sandbox, quindi imposta [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate), o [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) per le reti di test HTTP semplice; vedi [Mask environment variables](/docs/it/sandboxing#mask-environment-variables). Claude Code accetta ma ignora i campi `mask` su una voce `deny`.

2397 2397 


2954 `env`2954 `env`

2955</h3>2955</h3>

2956 2956 

2957Imposta variabili di ambiente per ogni sessione e per i sottoprocessi che Claude Code avvia da essa. Qualsiasi variabile nel [riferimento delle variabili di ambiente](/docs/it/env-vars) può andare qui, che è come applichi una a ogni sessione o la distribuisci al tuo team.2957Imposta variabili di ambiente per ogni sessione e per i sottoprocessi che Claude Code avvia da essa. La maggior parte delle variabili nel [riferimento delle variabili di ambiente](/docs/it/env-vars) può andare qui, che è come applichi una a ogni sessione o la distribuisci al tuo team. Le impostazioni di progetto e locali non possono impostare [alcune di esse](#variables-claude-code-ignores-in-env).

2958 2958 

2959* **Scope**: [`Any file`](#scopes)2959* **Scope**: [`Any file`](#scopes)

2960* **Type**: oggetto che mappa i nomi delle variabili ai valori stringa2960* **Type**: oggetto che mappa i nomi delle variabili ai valori stringa


2975 Come i valori di `env` interagiscono con la tua shell2975 Come i valori di `env` interagiscono con la tua shell

2976</h4>2976</h4>

2977 2977 

2978* Un valore qui sovrascrive la stessa variabile esportata nella tua shell, e quando più di un file di impostazioni imposta una variabile, si applica quello con la [precedenza più alta](/docs/it/settings#settings-precedence).2978* Un valore qui sovrascrive la stessa variabile esportata nella tua shell, e quando più di un file di impostazioni imposta una variabile, si applica quello con la [precedenza più alta](/docs/it/settings#settings-precedence). [Variabili che Claude Code ignora in `env`](#variables-claude-code-ignores-in-env) elenca le eccezioni per le impostazioni di progetto e locali.

2979* Per annullare un'esportazione della shell, imposta la variabile su `""`. Claude Code tratta un valore vuoto come non impostato per la selezione del provider, e i sottoprocessi ereditano il valore vuoto.2979* Per annullare un'esportazione della shell, imposta la variabile su `""`. Claude Code tratta un valore vuoto come non impostato per la selezione del provider, e i sottoprocessi ereditano il valore vuoto.

2980* `NO_COLOR` e `FORCE_COLOR` impostati qui raggiungono solo i sottoprocessi. Per cambiare i colori dell'interfaccia di Claude Code stesso, impostali nella tua shell prima di lanciare `claude`.2980* `NO_COLOR` e `FORCE_COLOR` impostati qui raggiungono solo i sottoprocessi. Per cambiare i colori dell'interfaccia di Claude Code stesso, impostali nella tua shell prima di lanciare `claude`.

2981* I valori qui sono testo semplice nel file di impostazioni e raggiungono ogni sottoprocesso che Claude Code avvia. Per un token bearer OTLP che ruota, usa [`otelHeadersHelper`](#otelheadershelper); per le credenziali API, usa [`apiKeyHelper`](#apikeyhelper).2981* I valori qui sono testo semplice nel file di impostazioni e raggiungono ogni sottoprocesso che Claude Code avvia. Per un token bearer OTLP che ruota, usa [`otelHeadersHelper`](#otelheadershelper); per le credenziali API, usa [`apiKeyHelper`](#apikeyhelper).


2986 2986 

2987* Dalle impostazioni utente, `--settings` e impostazioni gestite: all'avvio, e di nuovo nella sessione in esecuzione quando una modifica salvata altera l'`env` unito.2987* Dalle impostazioni utente, `--settings` e impostazioni gestite: all'avvio, e di nuovo nella sessione in esecuzione quando una modifica salvata altera l'`env` unito.

2988* Dalle impostazioni di progetto e locali: dopo che hai fiducia dell'area di lavoro, o all'avvio in modalità `-p`, che non mostra mai la finestra di dialogo di fiducia, e di nuovo quando una modifica salvata altera l'`env` unito.2988* Dalle impostazioni di progetto e locali: dopo che hai fiducia dell'area di lavoro, o all'avvio in modalità `-p`, che non mostra mai la finestra di dialogo di fiducia, e di nuovo quando una modifica salvata altera l'`env` unito.

2989* Variabili che Claude Code classifica come sicure, come la selezione del modello, timeout e limiti, interruttori di funzionalità e impostazioni di telemetria: all'avvio da ogni file di impostazioni, a parte le [variabili che le impostazioni di progetto e locali non possono impostare](#variables-claude-code-ignores-in-env).2989* Variabili che Claude Code classifica come sicure, come la selezione del modello, timeout e limiti, e interruttori di funzionalità: all'avvio da ogni file di impostazioni, a parte le [variabili che le impostazioni di progetto e locali non possono impostare](#variables-claude-code-ignores-in-env).

2990* Dopo che [sposti la sessione con `/cd`](/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successivo: i valori di `env` della nuova directory di progetto e locali, in aggiunta a quelli della directory precedente.2990* Dopo che [sposti la sessione con `/cd`](/docs/it/permissions#move-the-session-to-another-directory) su v2.1.246 o successivo: i valori di `env` della nuova directory di progetto e locali, in aggiunta a quelli della directory precedente.

2991 2991 

2992<h4 id="variables-claude-code-ignores-in-env">2992<h4 id="variables-claude-code-ignores-in-env">

2993 Variabili che Claude Code ignora in `env`2993 Variabili che Claude Code ignora in `env`

2994</h4>2994</h4>

2995 2995 

2996* Le impostazioni di progetto e locali non possono impostare variabili che un repository estratto non dovrebbe controllare; impostale nella tua shell, impostazioni utente o impostazioni gestite invece. Claude Code elimina ciascuna e registra un avviso che puoi vedere con `claude --debug`. Includono:2996* Le impostazioni di progetto e locali non possono impostare variabili che un repository estratto non dovrebbe controllare; impostale nella tua shell, impostazioni utente o impostazioni gestite invece. Claude Code elimina ciascuna, a parte alcuni valori che disattivano la telemetria, e registra un avviso che puoi vedere con `claude --debug`. Includono:

2997 2997 

2998 * Variabili che scelgono dove Claude Code archivia o scrive i suoi file: `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_TMPDIR` e le variabili di directory del sistema operativo come `HOME`, `TMPDIR`, `TMP`, `TEMP` e la famiglia `XDG_*`.2998 * Variabili che scelgono dove Claude Code archivia o scrive i suoi file: `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_TMPDIR` e le variabili di directory del sistema operativo come `HOME`, `TMPDIR`, `TMP`, `TEMP` e la famiglia `XDG_*`.

2999 * Variabili che esportano il contenuto della sessione: [`OTEL_LOG_RAW_API_BODIES`](/docs/it/env-vars#variables) e la coppia di tracciamento beta dettagliata `ENABLE_BETA_TRACING_DETAILED` e `BETA_TRACING_ENDPOINT`.2999 * Variabili che esportano il contenuto della sessione: [`OTEL_LOG_RAW_API_BODIES`](/docs/it/env-vars#variables) e la coppia di tracciamento beta dettagliata `ENABLE_BETA_TRACING_DETAILED` e `BETA_TRACING_ENDPOINT`.

3000 * Le variabili dell'[esportatore OpenTelemetry](/docs/it/monitoring-usage) che attivano la telemetria, scelgono dove va, o scelgono quale contenuto cattura:

3001 

3002 * `CLAUDE_CODE_ENABLE_TELEMETRY`, più la coppia beta di telemetria migliorata `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` e `ENABLE_ENHANCED_TELEMETRY_BETA`

3003 * I selettori dell'esportatore `OTEL_LOGS_EXPORTER`, `OTEL_METRICS_EXPORTER` e `OTEL_TRACES_EXPORTER`

3004 * Le variabili di contenuto `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_ASSISTANT_RESPONSES`, `OTEL_LOG_TOOL_CONTENT` e `OTEL_LOG_TOOL_DETAILS`

3005 * Variabili `OTEL_EXPORTER_OTLP_*` i cui nomi terminano in `_ENDPOINT`, `_HEADERS`, `_PROTOCOL`, `_CERTIFICATE`, `_CLIENT_KEY` o `_INSECURE`, nelle forme generiche e per segnale, come `OTEL_EXPORTER_OTLP_ENDPOINT` e `OTEL_EXPORTER_OTLP_METRICS_HEADERS`

3006 * `OTEL_EXPORTER_PROMETHEUS_HOST` e `OTEL_EXPORTER_PROMETHEUS_PORT`

3007 

3008 Solo questi valori si applicano ancora dalle impostazioni di progetto e locali, perché disattivano qualcosa: `none` per i tre selettori dell'esportatore, e un valore disattivato come `0` per `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_CONTENT` e `OTEL_LOG_TOOL_DETAILS`. Tale valore sostituisce la stessa variabile nelle tue impostazioni utente, ma non una che l'ambiente da cui avvii Claude Code, un file `--settings` o impostazioni gestite impostano.

3009 

3010 Quando un file di impostazioni di progetto o locale imposta una variabile in questo gruppo, una sessione interattiva locale mostra un avviso all'avvio. Esegui `/status` o `claude doctor` per vedere quali Claude Code ha ignorato e quali hanno disattivato la telemetria; entrambi elencano i nomi, mai i valori. Un'esecuzione non interattiva con `-p` o una sessione Agent SDK non mostra alcun avviso, quindi controlla che il tuo raccoglitore riceva ancora dati dopo l'aggiornamento. Se non lo fa, imposta le variabili nelle tue impostazioni utente, impostazioni gestite, l'ambiente del lavoro, o un file che passi con `--settings`.

3011 

3012 Ignorare questo gruppo nelle impostazioni di progetto e locale richiede Claude Code v2.1.282 o successivo.

3000 * Variabili che cambiano come Claude Code si avvia o si sincronizza, come `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` e `CLAUDE_CODE_PLUGIN_SEED_DIR`.3013 * Variabili che cambiano come Claude Code si avvia o si sincronizza, come `CLAUDE_CODE_PROCESS_WRAPPER`, `CLAUDE_CODE_SYNC_SKILLS`, `CLAUDE_CODE_SYNC_PLUGINS`, `CLAUDE_CODE_PLUGIN_CACHE_DIR` e `CLAUDE_CODE_PLUGIN_SEED_DIR`.

3001 3014 

3002 Prima di v2.1.251, le impostazioni di progetto e locali potevano impostare ogni variabile che questo elenco nomina tranne `HOME`, `XDG_CONFIG_HOME` e le variabili che cambiano come Claude Code si avvia o si sincronizza.3015 Prima di v2.1.251, le impostazioni di progetto e locali potevano impostare ogni variabile che questo elenco nomina tranne `HOME` e `XDG_CONFIG_HOME`.

3003* Variabili di identità che gli ambienti di hosting di Claude Code possiedono, come `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, sono ignorate da ogni file.3016* Variabili di identità che gli ambienti di hosting di Claude Code possiedono, come `CLAUDE_CODE_REMOTE` e `CLAUDE_CODE_ACCOUNT_UUID`, sono ignorate da ogni file.

3004* [`CLAUDE_CODE_MESSAGING_SOCKET` e `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/it/env-vars#variables), che Claude Code esporta stesso, sono ignorate da ogni file. Ignorare la variabile socket richiede Claude Code v2.1.224 o successivo, e ignorare il token richiede v2.1.228 o successivo.3017* [`CLAUDE_CODE_MESSAGING_SOCKET` e `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/it/env-vars#variables), che Claude Code esporta stesso, sono ignorate da ogni file. Ignorare la variabile socket richiede Claude Code v2.1.224 o successivo, e ignorare il token richiede v2.1.228 o successivo.

3005* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/it/sessions#name-the-project-directory-yourself), che Claude Code legge solo dall'ambiente di avvio, è ignorata da ogni file; richiede v2.1.234 o successivo.3018* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/it/sessions#name-the-project-directory-yourself), che Claude Code legge solo dall'ambiente di avvio, è ignorata da ogni file; richiede v2.1.234 o successivo.


3464 `respondToBashCommands`3477 `respondToBashCommands`

3465</h3>3478</h3>

3466 3479 

3467Scegli se Claude risponde dopo che esegui un comando shell con il prefisso [`!`](/docs/it/interactive-mode#shell-mode-with-prefix) nella casella di input. Per impostazione predefinita, Claude Code aggiunge l'output del comando alla conversazione e Claude vi risponde. Imposta questa chiave su `false` per aggiungere l'output al contesto senza una risposta, così puoi eseguire diversi comandi e chiedere informazioni su di essi insieme. Richiede Claude Code v2.1.186 o successivo.3480Scegli se Claude risponde dopo che esegui un comando shell con il prefisso [`!`](/docs/it/interactive-mode#shell-mode-with-prefix) nella casella di input. Per impostazione predefinita, Claude Code aggiunge l'output del comando alla conversazione e Claude vi risponde. Imposta questa chiave su `false` per aggiungere l'output al contesto senza una risposta, così puoi eseguire diversi comandi e chiedere informazioni su di essi insieme.

3468 3481 

3469* **Scope**: [`Any file`](#scopes)3482* **Scope**: [`Any file`](#scopes)

3470* **Type**: Boolean3483* **Type**: Boolean


3478}3491}

3479```3492```

3480 3493 

3481Vedi [Modalità shell con prefisso `!`](/docs/it/interactive-mode#shell-mode-with-prefix). Richiede Claude Code v2.1.186 o successivo.3494Vedi [Modalità shell con prefisso `!`](/docs/it/interactive-mode#shell-mode-with-prefix).

3482 3495 

3483<h3 id="showclearcontextonplanaccept">3496<h3 id="showclearcontextonplanaccept">

3484 `showClearContextOnPlanAccept`3497 `showClearContextOnPlanAccept`


3985Personalizzate l'attribuzione che Claude Code aggiunge ai commit git e alle pull request. I commit ricevono un [git trailer](https://git-scm.com/docs/git-interpret-trailers) come `Co-Authored-By` per impostazione predefinita; le descrizioni delle pull request ricevono testo semplice. Impostate ogni parte separatamente con le sotto-chiavi di seguito.3998Personalizzate l'attribuzione che Claude Code aggiunge ai commit git e alle pull request. I commit ricevono un [git trailer](https://git-scm.com/docs/git-interpret-trailers) come `Co-Authored-By` per impostazione predefinita; le descrizioni delle pull request ricevono testo semplice. Impostate ogni parte separatamente con le sotto-chiavi di seguito.

3986 3999 

3987* **Ambito**: [`Any file`](#scopes)4000* **Ambito**: [`Any file`](#scopes)

3988* **Tipo**: oggetto con stringhe `commit` e `pr` e un Boolean `sessionUrl`4001* **Tipo**: oggetto con stringhe `commit` e `pr` e un Boolean `sessionUrl`, oppure `false` per nascondere tutta l'attribuzione. Il valore `false` richiede Claude Code v2.1.281 o successivo; le versioni precedenti lo rifiutano e [saltano l'intero file di impostazioni utente, progetto o locale](/docs/it/settings#fix-a-broken-settings-file) che lo contiene

3989* **Predefinito**: non impostato, quindi Claude Code utilizza l'attribuzione standard mostrata sotto ogni sotto-chiave4002* **Predefinito**: non impostato, quindi Claude Code utilizza l'attribuzione standard mostrata sotto ogni sotto-chiave

3990 4003 

4004Per nascondere tutta l'attribuzione, impostate `attribution` su `false`. In un file di impostazioni che anche le versioni precedenti leggono, impostate [`commit`](#attribution-commit) e [`pr`](#attribution-pr) su stringhe vuote e [`sessionUrl`](#attribution-sessionurl) su `false` invece.

4005 

3991Questo esempio sostituisce l'attribuzione del commit, rimuove l'attribuzione della pull request e elimina il collegamento della sessione:4006Questo esempio sostituisce l'attribuzione del commit, rimuove l'attribuzione della pull request e elimina il collegamento della sessione:

3992 4007 

3993```json settings.json theme={null}4008```json settings.json theme={null}


4000}4015}

4001```4016```

4002 4017 

4003Per nascondere tutta l'attribuzione, impostate [`commit`](#attribution-commit) e [`pr`](#attribution-pr) su stringhe vuote e [`sessionUrl`](#attribution-sessionurl) su `false`. Una volta impostato `commit` o `pr`, Claude Code ignora l'impostazione deprecata `includeCoAuthoredBy` e utilizza il testo predefinito per quello dei due che avete lasciato non impostato.4018Una volta impostato `commit` o `pr`, Claude Code ignora l'impostazione deprecata `includeCoAuthoredBy` e utilizza il testo predefinito per quello dei due che avete lasciato non impostato.

4004 4019 

4005Claude Code comunica a Claude che le vostre istruzioni personali sull'attribuzione, come una regola CLAUDE.md o [memory](/docs/it/memory), hanno la precedenza su queste righe di commit e PR, a meno che la riga non sia impostata in [managed settings](/docs/it/managed-settings).4020Claude Code comunica a Claude che le vostre istruzioni personali sull'attribuzione, come una regola CLAUDE.md o [memory](/docs/it/memory), hanno la precedenza su queste righe di commit e PR, a meno che la riga non sia impostata in [managed settings](/docs/it/managed-settings).

4006 4021 


4026}4041}

4027```4042```

4028 4043 

4029Per nascondere tutta l'attribuzione oggi, impostate [`attribution.commit`](#attribution-commit) e [`attribution.pr`](#attribution-pr) su stringhe vuote e [`attribution.sessionUrl`](#attribution-sessionurl) su `false`.4044Per nascondere tutta l'attribuzione, vedete [`attribution`](#attribution).

4030 4045 

4031<h3 id="includegitinstructions">4046<h3 id="includegitinstructions">

4032 `includeGitInstructions`4047 `includeGitInstructions`


4184* **Gli hooks gestiti e SDK vengono eseguiti**: gli hooks dalle impostazioni gestite e gli hooks che l'[Agent SDK](/docs/it/agent-sdk/overview) registra nel processo4199* **Gli hooks gestiti e SDK vengono eseguiti**: gli hooks dalle impostazioni gestite e gli hooks che l'[Agent SDK](/docs/it/agent-sdk/overview) registra nel processo

4185* **Gli hooks dei plugin forzati vengono eseguiti**: gli hooks dai plugin che le tue impostazioni gestite forzano l'abilitazione tramite [`enabledPlugins`](#enabledplugins). Claude Code corrisponde all'ID completo `plugin@marketplace`, quindi un plugin con lo stesso nome da un marketplace diverso rimane bloccato. Questo ti consente di distribuire hooks verificati tramite un marketplace dell'organizzazione mentre blocchi tutto il resto4200* **Gli hooks dei plugin forzati vengono eseguiti**: gli hooks dai plugin che le tue impostazioni gestite forzano l'abilitazione tramite [`enabledPlugins`](#enabledplugins). Claude Code corrisponde all'ID completo `plugin@marketplace`, quindi un plugin con lo stesso nome da un marketplace diverso rimane bloccato. Questo ti consente di distribuire hooks verificati tramite un marketplace dell'organizzazione mentre blocchi tutto il resto

4186* **Tutto il resto è bloccato**: gli hooks dell'utente, del progetto e locali, gli hooks da altri plugin e gli hooks dichiarati nel frontmatter dell'agente4201* **Tutto il resto è bloccato**: gli hooks dell'utente, del progetto e locali, gli hooks da altri plugin e gli hooks dichiarati nel frontmatter dell'agente

4187* **I plugin con origine comando sono disabilitati**: Claude Code disabilita anche i plugin con un'[origine `command`](/docs/it/plugin-marketplaces#command-sources), inclusi i plugin forzati abilitati in `enabledPlugins` gestito, a meno che tu non imposti [`disableCommandPluginSources`](#disablecommandpluginsources) su `false` esplicitamente4202* **I plugin con origine comando sono disabilitati**: Claude Code disabilita anche i plugin con un'[origine `command`](/docs/it/plugins/marketplace-reference#command-plugin-source), inclusi i plugin forzati abilitati in `enabledPlugins` gestito, a meno che tu non imposti [`disableCommandPluginSources`](#disablecommandpluginsources) su `false` esplicitamente

4188* **I comandi marketplace `headersHelper` sono bloccati**: Claude Code blocca anche i comandi marketplace [`headersHelper`](/docs/it/plugin-marketplaces#authenticate-archive-downloads) a meno che [`disableCommandPluginSources`](#disablecommandpluginsources) non sia esplicitamente impostato su `false`, ad eccezione di un marketplace che le impostazioni gestite stesse dichiarano. Richiede Claude Code v2.1.238 o successivo4203* **I comandi marketplace `headersHelper` sono bloccati**: Claude Code blocca anche i comandi marketplace [`headersHelper`](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) a meno che [`disableCommandPluginSources`](#disablecommandpluginsources) non sia esplicitamente impostato su `false`, ad eccezione di un marketplace che le impostazioni gestite stesse dichiarano. Richiede Claude Code v2.1.238 o successivo

4189* **La riga di stato e il suggerimento di file si restringono alle impostazioni gestite**: Claude Code legge [`statusLine`](/docs/it/statusline), [`fileSuggestion`](#filesuggestion) e [`subagentStatusLine`](/docs/it/statusline#subagent-status-lines) solo dalle impostazioni gestite, seguendo i [gate della riga di stato e del suggerimento di file](#status-line-and-file-suggestion-gates)4204* **La riga di stato e il suggerimento di file si restringono alle impostazioni gestite**: Claude Code legge [`statusLine`](/docs/it/statusline), [`fileSuggestion`](#filesuggestion) e [`subagentStatusLine`](/docs/it/statusline#subagent-status-lines) solo dalle impostazioni gestite, seguendo i [gate della riga di stato e del suggerimento di file](#status-line-and-file-suggestion-gates)

4190 4205 

4191Il comando [`/goal`](/docs/it/goal) non può essere eseguito mentre questa chiave è impostata, perché dipende dagli hooks.4206Il comando [`/goal`](/docs/it/goal) non può essere eseguito mentre questa chiave è impostata, perché dipende dagli hooks.


4369 Plugin e skills4384 Plugin e skills

4370</h2>4385</h2>

4371 4386 

4372Abilita i plugin, registra i marketplace, limita le fonti di plugin che un'organizzazione consente e controlla quali skills si caricano. Per l'installazione e la creazione di plugin, vedi [Plugin](/docs/it/plugins).4387Abilita i plugin, registra i marketplace, limita le fonti di plugin che un'organizzazione consente e controlla quali skills si caricano. Per l'installazione e la creazione di plugin, vedi [Plugin](/docs/it/plugins/overview).

4373 4388 

4374<h3 id="disablebundledskills">4389<h3 id="disablebundledskills">

4375 `disableBundledSkills`4390 `disableBundledSkills`


4465 `syncClaudeAiPlugins`4480 `syncClaudeAiPlugins`

4466</h3>4481</h3>

4467 4482 

4468Disattiva il download dei [plugin abilitati per il tuo account claude.ai](/docs/it/plugins-reference#synced-plugins). Claude Code li scarica in `~/.claude/plugins/synced/` all'inizio delle sessioni di terminale in cui accedi con il tuo account claude.ai, e nelle sessioni Cowork e cloud, e carica ognuno come `<name>@synced`. Imposta `false` per interrompere quel download e smettere di caricare i plugin che ha già sincronizzato. Claude Code onora solo `false`: `true` è lo stesso di non impostato e non attiva la sincronizzazione dove è altrimenti disattivata. Richiede Claude Code v2.1.273 o successivo.4483Disattiva il download dei [plugin abilitati per il tuo account claude.ai](/docs/it/plugins/loading#synced-plugins). Claude Code li scarica in `~/.claude/plugins/synced/` all'inizio delle sessioni di terminale in cui accedi con il tuo account claude.ai e nelle sessioni Cowork, e carica ognuno come `<name>@synced`. Imposta `false` per interrompere quel download e smettere di caricare i plugin che ha già sincronizzato. Claude Code onora solo `false`: `true` è lo stesso di non impostato e non attiva la sincronizzazione dove è altrimenti disattivata. Richiede Claude Code v2.1.273 o successivo.

4469 4484 

4470* **Scope**: [`User, local, or managed`](#scopes), e file passati con `--settings`. Un repository non può disattivarla per te.4485* **Scope**: [`User, local, or managed`](#scopes), e file passati con `--settings`. Un repository non può disattivarla per te.

4471* **Type**: Boolean4486* **Type**: Boolean


4514 4529 

4515Blocca le fonti di marketplace dei plugin per la tua organizzazione. Claude Code controlla la lista di blocco all'aggiunta del marketplace e all'installazione, aggiornamento, aggiornamento e auto-aggiornamento del plugin, quindi un marketplace che qualcuno ha aggiunto prima di impostare la policy non può essere utilizzato per recuperare plugin. Le fonti bloccate vengono controllate prima del download, quindi non toccano mai il filesystem.4530Blocca le fonti di marketplace dei plugin per la tua organizzazione. Claude Code controlla la lista di blocco all'aggiunta del marketplace e all'installazione, aggiornamento, aggiornamento e auto-aggiornamento del plugin, quindi un marketplace che qualcuno ha aggiunto prima di impostare la policy non può essere utilizzato per recuperare plugin. Le fonti bloccate vengono controllate prima del download, quindi non toccano mai il filesystem.

4516 4531 

4517Se imposti questa chiave nella [console di amministrazione claude.ai](/docs/it/server-managed-settings), claude.ai la applica anche quando chiunque nella tua organizzazione aggiunge un marketplace da un repository git su claude.ai, come [Come funzionano le restrizioni](/docs/it/plugin-marketplaces#how-restrictions-work) descrive.4532Se imposti questa chiave nella [console di amministrazione claude.ai](/docs/it/server-managed-settings), claude.ai la applica anche quando chiunque nella tua organizzazione aggiunge un marketplace da un repository git su claude.ai, come [Come funzionano le restrizioni](/docs/it/plugins/org#restrict-what-users-can-install) descrive.

4518 4533 

4519* **Scope**: [`Managed`](#scopes)4534* **Scope**: [`Managed`](#scopes)

4520* **Type**: array di oggetti di fonte marketplace, nelle stesse forme di [`strictKnownMarketplaces`](#allowed-source-types)4535* **Type**: array di oggetti di fonte marketplace, nelle stesse forme di [`strictKnownMarketplaces`](#allowed-source-types)


4530}4545}

4531```4546```

4532 4547 

4533Una voce `github` può utilizzare la forma [owner-wildcard](#owner-wildcards) `"owner/*"` per bloccare ogni repository sotto quel proprietario GitHub, che richiede Claude Code v2.1.223 o successivo. Aggiungi `{ "source": "skills-dir" }` per impedire a Claude Code di caricare i plugin [`@skills-dir`](/docs/it/plugins-reference#skills-directory-plugins) da `~/.claude/skills/` senza limitare alcun marketplace. Vedi [Restrizioni di marketplace gestite](/docs/it/plugin-marketplaces#managed-marketplace-restrictions).4548Una voce `github` può utilizzare la forma [owner-wildcard](#owner-wildcards) `"owner/*"` per bloccare ogni repository sotto quel proprietario GitHub, che richiede Claude Code v2.1.223 o successivo. Aggiungi `{ "source": "skills-dir" }` per impedire a Claude Code di caricare i plugin [`@skills-dir`](/docs/it/plugins/loading#plugins-shared-through-a-repository) da `~/.claude/skills/` senza limitare alcun marketplace. Vedi [Restrizioni di marketplace gestite](/docs/it/plugins/org#restrict-what-users-can-install).

4534 4549 

4535<h3 id="channelsenabled">4550<h3 id="channelsenabled">

4536 `channelsEnabled`4551 `channelsEnabled`


4556 `disableCommandPluginSources`4571 `disableCommandPluginSources`

4557</h3>4572</h3>

4558 4573 

4559Blocca la [fonte plugin `command`](/docs/it/plugin-marketplaces#command-sources), che installa un plugin eseguendo un comando dichiarato dal marketplace sulla macchina dell'utente. Quando lo imposti su `true`, Claude Code non esegue mai il comando, non installa o aggiorna plugin con origine comando e interrompe il caricamento di quelli già installati. Imposta su `false` per consentirli esplicitamente. Ogni volta che blocca le fonti comando, che tu lo imposti su `true` o lo lasci non impostato sotto [`allowManagedHooksOnly`](#allowmanagedhooksonly), blocca anche i comandi [`headersHelper`](/docs/it/plugin-marketplaces#authenticate-archive-downloads) del marketplace, tranne per un marketplace che le impostazioni gestite stesse dichiarano. Richiede Claude Code v2.1.229 o successivo, e il blocco `headersHelper` richiede v2.1.238 o successivo.4574Blocca la [fonte plugin `command`](/docs/it/plugins/marketplace-reference#command-plugin-source), che installa un plugin eseguendo un comando dichiarato dal marketplace sulla macchina dell'utente. Quando lo imposti su `true`, Claude Code non esegue mai il comando, non installa o aggiorna plugin con origine comando e interrompe il caricamento di quelli già installati. Imposta su `false` per consentirli esplicitamente. Ogni volta che blocca le fonti comando, che tu lo imposti su `true` o lo lasci non impostato sotto [`allowManagedHooksOnly`](#allowmanagedhooksonly), blocca anche i comandi [`headersHelper`](/docs/it/plugins/host-marketplace#authenticate-archive-downloads) del marketplace, tranne per un marketplace che le impostazioni gestite stesse dichiarano. Richiede Claude Code v2.1.229 o successivo, e il blocco `headersHelper` richiede v2.1.238 o successivo.

4560 4575 

4561* **Scope**: [`Managed`](#scopes)4576* **Scope**: [`Managed`](#scopes)

4562* **Type**: Boolean4577* **Type**: Boolean


4588}4603}

4589```4604```

4590 4605 

4591Un nome ha effetto solo quando il marketplace è registrato sulla macchina e la sua fonte registrata è anche dichiarata nelle stesse impostazioni gestite, come voce [`extraKnownMarketplaces`](#extraknownmarketplaces) per quel nome o come voce di [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code ignora un marketplace registrato da una fonte diversa sotto un nome nella lista di autorizzazione. Il marketplace ufficiale è esente dal requisito di fonte: autorizzare solo il suo nome è sufficiente, poiché quel nome può registrarsi solo dalla fonte ufficiale di Anthropic. Vedi [Suggerisci plugin per contesto](/docs/it/plugin-relevance).4606Un nome ha effetto solo quando il marketplace è registrato sulla macchina e la sua fonte registrata è anche dichiarata nelle stesse impostazioni gestite, come voce [`extraKnownMarketplaces`](#extraknownmarketplaces) per quel nome o come voce di [`strictKnownMarketplaces`](#strictknownmarketplaces). Claude Code ignora un marketplace registrato da una fonte diversa sotto un nome nella lista di autorizzazione. Il marketplace ufficiale è esente dal requisito di fonte: autorizzare solo il suo nome è sufficiente, poiché quel nome può registrarsi solo dalla fonte ufficiale di Anthropic. Vedi [Suggerisci plugin per contesto](/docs/it/plugins/relevance).

4592 4607 

4593<h3 id="plugintrustmessage">4608<h3 id="plugintrustmessage">

4594 `pluginTrustMessage`4609 `pluginTrustMessage`


4612 4627 

4613Limita le fonti di marketplace dei plugin da cui le persone nella tua organizzazione possono aggiungere e installare plugin. Claude Code applica la lista di autorizzazione all'aggiunta del marketplace e all'installazione, aggiornamento, aggiornamento e auto-aggiornamento del plugin, prima di qualsiasi operazione di rete o filesystem, quindi un marketplace che qualcuno ha aggiunto prima di impostare la policy non può essere utilizzato per recuperare plugin una volta che la sua fonte non corrisponde più. Gli utenti bloccati vedono un errore che nomina la policy gestita.4628Limita le fonti di marketplace dei plugin da cui le persone nella tua organizzazione possono aggiungere e installare plugin. Claude Code applica la lista di autorizzazione all'aggiunta del marketplace e all'installazione, aggiornamento, aggiornamento e auto-aggiornamento del plugin, prima di qualsiasi operazione di rete o filesystem, quindi un marketplace che qualcuno ha aggiunto prima di impostare la policy non può essere utilizzato per recuperare plugin una volta che la sua fonte non corrisponde più. Gli utenti bloccati vedono un errore che nomina la policy gestita.

4614 4629 

4615Se imposti questa chiave nella [console di amministrazione claude.ai](/docs/it/server-managed-settings), claude.ai la applica anche quando chiunque nella tua organizzazione aggiunge un marketplace da un repository git su claude.ai, come [Come funzionano le restrizioni](/docs/it/plugin-marketplaces#how-restrictions-work) descrive.4630Se imposti questa chiave nella [console di amministrazione claude.ai](/docs/it/server-managed-settings), claude.ai la applica anche quando chiunque nella tua organizzazione aggiunge un marketplace da un repository git su claude.ai, come [Come funzionano le restrizioni](/docs/it/plugins/org#restrict-what-users-can-install) descrive.

4616 4631 

4617* **Scope**: [`Managed`](#scopes)4632* **Scope**: [`Managed`](#scopes)

4618* **Type**: array di oggetti di fonte marketplace; vedi [Tipi di fonte consentiti](#allowed-source-types)4633* **Type**: array di oggetti di fonte marketplace; vedi [Tipi di fonte consentiti](#allowed-source-types)


4630}4645}

4631```4646```

4632 4647 

4633Puoi anche scrivere questa chiave come `allowedMarketplaces`; [Alias di chiave Marketplace](#marketplace-key-aliases) descrive come Claude Code tratta l'alias e quale versione lo accetta. Questa chiave è un gate di policy: controlla cosa gli utenti possono aggiungere ma non registra nulla. Per limitare e pre-registrare in un file, vedi [Combina con `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Per la vista rivolta all'utente, vedi [Restrizioni di marketplace gestite](/docs/it/plugin-marketplaces#managed-marketplace-restrictions).4648Puoi anche scrivere questa chiave come `allowedMarketplaces`; [Alias di chiave Marketplace](#marketplace-key-aliases) descrive come Claude Code tratta l'alias e quale versione lo accetta. Questa chiave è un gate di policy: controlla cosa gli utenti possono aggiungere ma non registra nulla. Per limitare e pre-registrare in un file, vedi [Combina con `extraKnownMarketplaces`](#combine-with-extraknownmarketplaces). Per la vista rivolta all'utente, vedi [Restrizioni di marketplace gestite](/docs/it/plugins/org#restrict-what-users-can-install).

4634 4649 

4635<h4 id="allowed-source-types">4650<h4 id="allowed-source-types">

4636 Tipi di fonte consentiti4651 Tipi di fonte consentiti


4651 4666 

4652Tre tipi di fonte portano regole oltre la tabella:4667Tre tipi di fonte portano regole oltre la tabella:

4653 4668 

4654* **`url`**: un marketplace URL scarica solo il file `marketplace.json` e Claude Code non recupera i file plugin per percorso relativo da quel server, quindi i suoi plugin devono utilizzare una [fonte plugin](/docs/it/plugin-marketplaces#plugin-sources) diversa da un percorso relativo, come un URL di archivio, che può essere sullo stesso host. Per i plugin con percorsi relativi, utilizza un marketplace basato su Git. Vedi [I plugin con percorsi relativi falliscono nei marketplace basati su URL](/docs/it/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces).4669* **`url`**: un marketplace URL scarica solo il file `marketplace.json` e Claude Code non recupera i file plugin per percorso relativo da quel server, quindi i suoi plugin devono utilizzare una [fonte plugin](/docs/it/plugins/marketplace-reference#plugin-sources) diversa da un percorso relativo, come un URL di archivio, che può essere sullo stesso host. Per i plugin con percorsi relativi, utilizza un marketplace basato su Git. Vedi [I plugin con percorsi relativi falliscono nei marketplace basati su URL](/docs/it/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces).

4655* **`hostPattern`**: usalo per consentire ogni marketplace su un server GitHub Enterprise o GitLab interno senza elencare ogni repository. Claude Code confronta le fonti `github` con `github.com`, prende il nome host dalle fonti `url` e lo prende dalle fonti `git` a seconda della forma dell'[URL git](https://git-scm.com/docs/git-clone#_git_urls):4670* **`hostPattern`**: usalo per consentire ogni marketplace su un server GitHub Enterprise o GitLab interno senza elencare ogni repository. Claude Code confronta le fonti `github` con `github.com`, prende il nome host dalle fonti `url` e lo prende dalle fonti `git` a seconda della forma dell'[URL git](https://git-scm.com/docs/git-clone#_git_urls):

4656 4671 

4657 * Un URL con uno schema, come `https://` o `ssh://`: il nome host nell'URL.4672 * Un URL con uno schema, come `https://` o `ssh://`: il nome host nell'URL.


4661 Le fonti `file` e `directory` non hanno host e non corrispondono mai a una voce `hostPattern`.4676 Le fonti `file` e `directory` non hanno host e non corrispondono mai a una voce `hostPattern`.

4662* **`pathPattern`**: usalo per consentire marketplace del filesystem insieme alle voci `hostPattern` per le fonti di rete. `".*"` consente ogni percorso locale; un pattern più stretto come `"^/opt/approved/"` limita a una directory.4677* **`pathPattern`**: usalo per consentire marketplace del filesystem insieme alle voci `hostPattern` per le fonti di rete. `".*"` consente ogni percorso locale; un pattern più stretto come `"^/opt/approved/"` limita a una directory.

4663 4678 

4664Qualsiasi lista di autorizzazione, anche una vuota, interrompe anche il caricamento dei plugin [`@skills-dir`](/docs/it/plugins-reference#skills-directory-plugins) da `~/.claude/skills/` da parte di Claude Code. Aggiungi la voce `{ "source": "skills-dir" }` per continuare a caricarli; la voce non ha significato al di fuori di questa chiave e `blockedMarketplaces`.4679Qualsiasi lista di autorizzazione, anche una vuota, interrompe anche il caricamento dei plugin [`@skills-dir`](/docs/it/plugins/loading#plugins-shared-through-a-repository) da `~/.claude/skills/` da parte di Claude Code. Aggiungi la voce `{ "source": "skills-dir" }` per continuare a caricarli; la voce non ha significato al di fuori di questa chiave e `blockedMarketplaces`.

4665 4680 

4666<h4 id="owner-wildcards">4681<h4 id="owner-wildcards">

4667 Wildcard del proprietario4682 Wildcard del proprietario


4719}4734}

4720```4735```

4721 4736 

4722Con questa voce, Claude Code mantiene disponibile un marketplace ufficiale già registrato e, su una macchina nuova, registra il marketplace automaticamente la prima volta che avvii Claude Code in modo interattivo. La registrazione automatica più comunemente manca:4737Con questa voce, Claude Code mantiene disponibile un marketplace ufficiale già registrato e, su una macchina nuova, registra il marketplace automaticamente la prima volta che avvii una sessione di terminale interattiva. La registrazione automatica più comunemente manca:

4723 4738 

4724* Ambienti non interattivi che vengono eseguiti prima del primo avvio interattivo della macchina.4739* Ambienti non interattivi che vengono eseguiti prima della prima sessione di terminale interattiva della macchina.

4725* Macchine dove Claude Code è già stato eseguito in modo interattivo sotto una policy che ha bloccato il marketplace, come il blocco dell'array vuoto. Claude Code registra il tentativo bloccato e non ritenta dopo il cambio della policy.4740* Macchine dove Claude Code è stato eseguito solo tramite l'estensione VS Code.

4741* Macchine dove Claude Code ha già eseguito una sessione di terminale interattiva sotto una policy che ha bloccato il marketplace, come il blocco dell'array vuoto. Claude Code registra il tentativo bloccato e non ritenta dopo il cambio della policy.

4726 4742 

4727Su queste macchine, aggiungi il marketplace a [`extraKnownMarketplaces`](#extraknownmarketplaces) nello stesso `managed-settings.json` in modo che Claude Code lo registri automaticamente, o esegui `claude plugin marketplace add anthropics/claude-plugins-official`.4743Su queste macchine, aggiungi il marketplace a [`extraKnownMarketplaces`](#extraknownmarketplaces) nello stesso `managed-settings.json` in modo che Claude Code lo registri automaticamente, o esegui `claude plugin marketplace add anthropics/claude-plugins-official`.

4728 4744 


4846 `enabledPlugins`4862 `enabledPlugins`

4847</h3>4863</h3>

4848 4864 

4849Attiva o disattiva i singoli [plugin](/docs/it/plugins), codificati per `plugin-name@marketplace-name`. Un plugin senza voce in alcuno scope ricade al suo valore [`defaultEnabled`](/docs/it/plugins-reference#default-enablement). Quando abiliti o disabiliti un plugin con `/plugin` o `claude plugin enable`, Claude Code scrive questa chiave per te.4865Attiva o disattiva i singoli [plugin](/docs/it/plugins/overview) codificati per `plugin-name@marketplace-name`. Un plugin senza voce in alcuno scope ricade al suo valore [`defaultEnabled`](/docs/it/plugins/manifest-reference#fields). Quando abiliti o disabiliti un plugin con `/plugin` o `claude plugin enable`, Claude Code scrive questa chiave per te.

4850 4866 

4851* **Scope**: [`Any file`](#scopes)4867* **Scope**: [`Any file`](#scopes)

4852* **Type**: oggetto che mappa `plugin-name@marketplace-name` a un Boolean4868* **Type**: oggetto che mappa `plugin-name@marketplace-name` a un Boolean


4873 4889 

4874Le impostazioni del progetto hanno precedenza sulle impostazioni utente, quindi impostare un plugin su `false` in `~/.claude/settings.json` non disabilita un plugin che il `.claude/settings.json` del progetto abilita. Per rinunciare a un plugin abilitato dal progetto sulla tua macchina, impostalo su `false` in `.claude/settings.local.json` invece. I plugin forzatamente abilitati dalle impostazioni gestite non possono essere disabilitati in questo modo, poiché le impostazioni gestite sovrascrivono le impostazioni locali.4890Le impostazioni del progetto hanno precedenza sulle impostazioni utente, quindi impostare un plugin su `false` in `~/.claude/settings.json` non disabilita un plugin che il `.claude/settings.json` del progetto abilita. Per rinunciare a un plugin abilitato dal progetto sulla tua macchina, impostalo su `false` in `.claude/settings.local.json` invece. I plugin forzatamente abilitati dalle impostazioni gestite non possono essere disabilitati in questo modo, poiché le impostazioni gestite sovrascrivono le impostazioni locali.

4875 4891 

4876Abilitare un plugin da una fonte esterna come un repository GitHub o un pacchetto npm nel `.claude/settings.json` di un progetto non lo installa per altre persone. Su ogni percorso che carica i plugin, Claude Code segnala il plugin come non installato finché ogni utente non lo [installa da solo](/docs/it/discover-plugins#configure-team-marketplaces).4892Abilitare un plugin da una fonte esterna come un repository GitHub o un pacchetto npm nel `.claude/settings.json` di un progetto non lo installa per altre persone. Su ogni percorso che carica i plugin, Claude Code segnala il plugin come non installato finché ogni utente non lo [installa da solo](/docs/it/plugins/org#require-plugins-per-repository).

4877 4893 

4878<h3 id="extraknownmarketplaces">4894<h3 id="extraknownmarketplaces">

4879 `extraKnownMarketplaces`4895 `extraKnownMarketplaces`


4908 4924 

4909[Cosa viene eseguito prima di fidare una cartella](/docs/it/permissions#what-runs-before-you-trust-a-folder) confronta il gate di fiducia con l'altro contenuto che un repository può fornire. Puoi anche scrivere questa chiave come `additionalMarketplaces`; vedi [Alias di chiave Marketplace](#marketplace-key-aliases).4925[Cosa viene eseguito prima di fidare una cartella](/docs/it/permissions#what-runs-before-you-trust-a-folder) confronta il gate di fiducia con l'altro contenuto che un repository può fornire. Puoi anche scrivere questa chiave come `additionalMarketplaces`; vedi [Alias di chiave Marketplace](#marketplace-key-aliases).

4910 4926 

4911Imposta `"autoUpdate": true` insieme a `source` per fare in modo che Claude Code aggiorni quel marketplace e aggiorni i suoi plugin installati in background dopo l'avvio. Quando omesso, `claude-plugins-official` e la maggior parte degli altri marketplace ufficiali di Anthropic predefiniti su `true`, e i marketplace di terze parti predefiniti su `false`. Vedi [Configura gli auto-aggiornamenti](/docs/it/discover-plugins#configure-auto-updates).4927Imposta `"autoUpdate": true` insieme a `source` per fare in modo che Claude Code aggiorni quel marketplace e aggiorni i suoi plugin installati in background dopo l'avvio. Quando omesso, `claude-plugins-official` e la maggior parte degli altri marketplace ufficiali di Anthropic predefiniti su `true`, e i marketplace di terze parti predefiniti su `false`. Vedi [Configura gli auto-aggiornamenti](/docs/it/plugins/install#keep-plugins-updated).

4912 4928 

4913Quando più di un file di impostazioni definisce una voce di marketplace con lo stesso nome, Claude Code utilizza la voce dal [file di precedenza più alta](/docs/it/settings#settings-precedence) nel complesso. Quella voce sostituisce la voce di precedenza inferiore e non eredita nessuno dei suoi campi, quindi una ridefinizione non può combinare le credenziali `source.headers` di un file con un URL che un altro file controlla. Prima di v2.1.228, Claude Code univa le voci con lo stesso nome campo per campo, quindi una voce in un file di precedenza superiore poteva ereditare campi che non impostava, incluso `headers` di un altro file.4929Quando più di un file di impostazioni definisce una voce di marketplace con lo stesso nome, Claude Code utilizza la voce dal [file di precedenza più alta](/docs/it/settings#settings-precedence) nel complesso. Quella voce sostituisce la voce di precedenza inferiore e non eredita nessuno dei suoi campi, quindi una ridefinizione non può combinare le credenziali `source.headers` di un file con un URL che un altro file controlla. Prima di v2.1.228, Claude Code univa le voci con lo stesso nome campo per campo, quindi una voce in un file di precedenza superiore poteva ereditare campi che non impostava, incluso `headers` di un altro file.

4914 4930 


4925* **`directory`**: un percorso del filesystem locale, con `path`, solo per lo sviluppo4941* **`directory`**: un percorso del filesystem locale, con `path`, solo per lo sviluppo

4926* **`settings`**: un marketplace inline dichiarato direttamente nel file di impostazioni senza un repository ospitato, con `name` e `plugins`4942* **`settings`**: un marketplace inline dichiarato direttamente nel file di impostazioni senza un repository ospitato, con `name` e `plugins`

4927 4943 

4928Il tipo di fonte `git` funziona con qualsiasi servizio di hosting git, incluso GitLab auto-ospitato e Bitbucket. Claude Code clona il repository con la stessa autenticazione che `git clone` userebbe su quella macchina: helper di credenziali configurati o chiavi SSH. Un token del provider come `GITHUB_TOKEN` ha effetto solo attraverso un helper di credenziali che lo legge. Vedi [Repository privati](/docs/it/plugin-marketplaces#private-repositories) per i dettagli di configurazione.4944Il tipo di fonte `git` funziona con qualsiasi servizio di hosting git, incluso GitLab auto-ospitato e Bitbucket. Claude Code clona il repository con la stessa autenticazione che `git clone` userebbe su quella macchina: helper di credenziali configurati o chiavi SSH. Un token del provider come `GITHUB_TOKEN` ha effetto solo attraverso un helper di credenziali che lo legge. Vedi [Repository privati](/docs/it/plugins/host-marketplace#grant-access-to-a-private-marketplace) per i dettagli di configurazione.

4929 4945 

4930Per le fonti `github` e `git`, Claude Code non scarica mai il contenuto di [Git LFS](https://git-lfs.com) quando clona il repository del marketplace per aggiungerlo o aggiornarlo. I file puntatore LFS rimangono come puntatori invece di scaricare il loro contenuto, e l'output di aggiunta o aggiornamento segnala quanti.4946Per le fonti `github` e `git`, Claude Code non scarica mai il contenuto di [Git LFS](https://git-lfs.com) quando clona il repository del marketplace per aggiungerlo o aggiornarlo. I file puntatore LFS rimangono come puntatori invece di scaricare il loro contenuto, e l'output di aggiunta o aggiornamento segnala quanti.

4931 4947 

4932Il campo `skipLfs` all'interno dell'oggetto `source` è accettato e non ha effetto. Prima di v2.1.274, Claude Code scaricava il contenuto LFS a meno che non impostassi `"skipLfs": true`.4948Il campo `skipLfs` all'interno dell'oggetto `source` è accettato e non ha effetto. Prima di v2.1.274, Claude Code scaricava il contenuto LFS a meno che non impostassi `"skipLfs": true`.

4933 4949 

4934Per una fonte `url`, imposta `headersHelper` all'interno dell'oggetto `source` quando la credenziale in `headers` scade e un comando deve produrne una nuova. Richiede Claude Code v2.1.238 o successivo. Per cosa il comando deve stampare e dove Claude Code lo esegue, vedi [Scrivi il comando headersHelper](/docs/it/plugin-marketplaces#write-the-headershelper-command), e per i casi in cui Claude Code non lo esegue, vedi [Quando Claude Code salta un comando headersHelper](/docs/it/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Una volta che imposti `headersHelper` su un URL di marketplace `https://`, Claude Code esegue il comando in due punti, riutilizzando l'output di un'esecuzione per fino a 60 secondi:4950Per una fonte `url`, imposta `headersHelper` all'interno dell'oggetto `source` quando la credenziale in `headers` scade e un comando deve produrne una nuova. Richiede Claude Code v2.1.238 o successivo. Per cosa il comando deve stampare e dove Claude Code lo esegue, vedi [Scrivi il comando headersHelper](/docs/it/plugins/host-marketplace#write-the-headershelper-command), e per i casi in cui Claude Code non lo esegue, vedi [Quando Claude Code salta un comando headersHelper](/docs/it/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output). Una volta che imposti `headersHelper` su un URL di marketplace `https://`, Claude Code esegue il comando in due punti, riutilizzando l'output di un'esecuzione per fino a 60 secondi:

4935 4951 

4936* Prima di ogni recupero del `marketplace.json` di quel marketplace, incluso un aggiornamento successivo. Claude Code invia le intestazioni stampate con quel recupero.4952* Prima di ogni recupero del `marketplace.json` di quel marketplace, incluso un aggiornamento successivo. Claude Code invia le intestazioni stampate con quel recupero.

4937* Prima di ogni download di archivio plugin sull'origine dell'URL del marketplace, significando lo stesso schema, host e porta. Claude Code invia l'output con quel download, e nessun altro download ottiene le intestazioni.4953* Prima di ogni download di archivio plugin sull'origine dell'URL del marketplace, significando lo stesso schema, host e porta. Claude Code invia l'output con quel download, e nessun altro download ottiene le intestazioni.

4938 4954 

4939Claude Code ignora qualsiasi `headersHelper` impostato nel `.claude/settings.json` o `.claude/settings.local.json` di una directory che aggiungi con [`--add-dir`](/docs/it/permissions#what-runs-before-you-trust-a-folder), su una fonte `url` e su una voce di plugin inline allo stesso modo, e invia solo gli `headers` fissi impostati in quel file. [Come gli utenti accettano un comando headersHelper](/docs/it/plugin-marketplaces#how-users-accept-a-headershelper-command) copre gli altri file di impostazioni.4955Claude Code ignora qualsiasi `headersHelper` impostato nel `.claude/settings.json` o `.claude/settings.local.json` di una directory che aggiungi con [`--add-dir`](/docs/it/permissions#what-runs-before-you-trust-a-folder), su una fonte `url` e su una voce di plugin inline allo stesso modo, e invia solo gli `headers` fissi impostati in quel file. [Come gli utenti accettano un comando headersHelper](/docs/it/plugins/host-marketplace#how-users-accept-a-headershelper-command) copre gli altri file di impostazioni.

4940 4956 

4941I plugin elencati in una fonte `settings` devono fare riferimento a fonti esterne come GitHub o npm, e il `name` deve corrispondere alla chiave del marketplace. Abiliti comunque ogni plugin separatamente in `enabledPlugins`. Questo esempio dichiara un plugin inline:4957I plugin elencati in una fonte `settings` devono fare riferimento a fonti esterne come GitHub o npm, e il `name` deve corrispondere alla chiave del marketplace. Abiliti comunque ogni plugin separatamente in `enabledPlugins`. Questo esempio dichiara un plugin inline:

4942 4958 


4962}4978}

4963```4979```

4964 4980 

4965Una voce di plugin sotto `source: 'settings'` la cui propria `source` è un [`archive`](/docs/it/plugin-marketplaces#zip-archives) può impostare `headers` per il download dell'archivio. Se il valore che metteresti in `headers` è effimero, come un token che il tuo registro conia su richiesta, imposta un comando `headersHelper` invece. Una voce può impostare entrambi. Entrambi i campi richiedono Claude Code v2.1.238 o successivo.4981Una voce di plugin sotto `source: 'settings'` la cui propria `source` è un [`archive`](/docs/it/plugins/marketplace-reference#archive-plugin-source) può impostare `headers` per il download dell'archivio. Se il valore che metteresti in `headers` è effimero, come un token che il tuo registro conia su richiesta, imposta un comando `headersHelper` invece. Una voce può impostare entrambi. Entrambi i campi richiedono Claude Code v2.1.238 o successivo.

4966 4982 

4967Claude Code invia gli `headers` della voce e tutto ciò che il comando stampa, con il download dell'archivio di quel plugin e con nessun altro download. Claude Code esegue il comando solo quando un utente [installa o aggiorna quel singolo plugin da solo](/docs/it/plugin-marketplaces#how-users-accept-a-headershelper-command). Tre ulteriori regole dipendono da quale file contiene la voce:4983Claude Code invia gli `headers` della voce e tutto ciò che il comando stampa, con il download dell'archivio di quel plugin e con nessun altro download. Claude Code esegue il comando solo quando un utente [installa o aggiorna quel singolo plugin da solo](/docs/it/plugins/host-marketplace#how-users-accept-a-headershelper-command). Tre ulteriori regole dipendono da quale file contiene la voce:

4968 4984 

4969* **`strict`**: a differenza di una voce nel `marketplace.json` di un marketplace, una voce nelle impostazioni non ha bisogno di `"strict": false`, perché un file di impostazioni non porta campi di manifesto da inline. Vedi [Modalità strict](/docs/it/plugin-marketplaces#strict-mode).4985* **`strict`**: a differenza di una voce nel `marketplace.json` di un marketplace, una voce nelle impostazioni non ha bisogno di `"strict": false`, perché un file di impostazioni non porta campi di manifesto da inline. Vedi [Modalità strict](/docs/it/plugins/marketplace-reference#strict-mode).

4970* **Fiducia della cartella**: per una voce nel `.claude/settings.json` o `.claude/settings.local.json` di un progetto, Claude Code esegue il comando solo dopo che l'utente ha anche [fidato quella cartella](/docs/it/permissions#what-runs-before-you-trust-a-folder).4986* **Fiducia della cartella**: per una voce nel `.claude/settings.json` o `.claude/settings.local.json` di un progetto, Claude Code esegue il comando solo dopo che l'utente ha anche [fidato quella cartella](/docs/it/permissions#what-runs-before-you-trust-a-folder).

4971* **Filtro intestazione**: Claude Code elimina i [nomi di intestazione di routing delle richieste e identità del client](/docs/it/plugin-marketplaces#when-claude-code-skips-a-headershelper-command-or-drops-its-output) da una voce nel `.claude/settings.json` o `.claude/settings.local.json` di un progetto, perché un repository può fornire quei file. Claude Code applica lo stesso filtro a una voce di catalogo e a una voce in una directory `--add-dir`, e nessun filtro a una voce nelle tue impostazioni utente, un file `--settings` o impostazioni gestite.4987* **Filtro intestazione**: Claude Code elimina i [nomi di intestazione di routing delle richieste e identità del client](/docs/it/plugins/host-marketplace#when-claude-code-skips-a-headershelper-command-or-drops-its-output) da una voce nel `.claude/settings.json` o `.claude/settings.local.json` di un progetto, perché un repository può fornire quei file. Claude Code applica lo stesso filtro a una voce di catalogo e a una voce in una directory `--add-dir`, e nessun filtro a una voce nelle tue impostazioni utente, un file `--settings` o impostazioni gestite.

4972 4988 

4973<h4 id="marketplace-key-aliases">4989<h4 id="marketplace-key-aliases">

4974 Alias di chiave Marketplace4990 Alias di chiave Marketplace


4985 `pluginConfigs`5001 `pluginConfigs`

4986</h3>5002</h3>

4987 5003 

4988Archivia le risposte non sensibili che dai al dialogo di configurazione [`userConfig`](/docs/it/plugins-reference#user-configuration) di un plugin, codificato per ID plugin. Claude Code scrive questa chiave alle tue impostazioni utente quando riempi il dialogo, quindi non devi modificarla a mano. Claude Code archivia le opzioni sensibili nel Portachiavi di macOS invece, ricadendo a `~/.claude/.credentials.json` quando il Portachiavi rifiuta la scrittura; su piattaforme senza un portachiavi supportato, le archivia in `~/.claude/.credentials.json`.5004Archivia le risposte non sensibili che dai al dialogo di configurazione [`userConfig`](/docs/it/plugins/manifest-reference#user-configuration) di un plugin, codificato per ID plugin. Claude Code scrive questa chiave alle tue impostazioni utente quando riempi il dialogo, quindi non devi modificarla a mano. Claude Code archivia le opzioni sensibili nel Portachiavi di macOS invece, ricadendo a `~/.claude/.credentials.json` quando il Portachiavi rifiuta la scrittura; su piattaforme senza un portachiavi supportato, le archivia in `~/.claude/.credentials.json`.

4989 5005 

4990* **Scope**: [`User or managed`](#scopes)5006* **Scope**: [`User or managed`](#scopes)

4991* **Type**: oggetto che mappa un ID plugin a un oggetto con un campo `options`, mappando ogni nome di opzione a una stringa, numero, Boolean o array di stringhe, e un campo `mcpServers` facoltativo che contiene valori di configurazione utente per server nella stessa forma5007* **Type**: oggetto che mappa un ID plugin a un oggetto con un campo `options`, mappando ogni nome di opzione a una stringa, numero, Boolean o array di stringhe, e un campo `mcpServers` facoltativo che contiene valori di configurazione utente per server nella stessa forma


5233}5249}

5234```5250```

5235 5251 

5236Il `settings.json` di un plugin può anche fornire questa chiave; vedere [Ship default settings with your plugin](/docs/it/plugins#ship-default-settings-with-your-plugin).5252Il `settings.json` di un plugin può anche fornire questa chiave; vedere [Ship default settings with your plugin](/docs/it/plugins/components#default-settings).

5237 5253 

5238<h3 id="crosssessioninbound">5254<h3 id="crosssessioninbound">

5239 `crossSessionInbound`5255 `crossSessionInbound`


5329 * `"in-process"`: i compagni di squadra vengono eseguiti all'interno del riquadro terminale principale5345 * `"in-process"`: i compagni di squadra vengono eseguiti all'interno del riquadro terminale principale

5330 * `"auto"`: riquadri divisi quando si esegue all'interno di tmux, o all'interno di iTerm2 con `it2` sul `PATH` o tmux installato; in-process altrimenti5346 * `"auto"`: riquadri divisi quando si esegue all'interno di tmux, o all'interno di iTerm2 con `it2` sul `PATH` o tmux installato; in-process altrimenti

5331 * `"tmux"`: riquadri divisi utilizzando tmux o iTerm2, rilevati dal terminale5347 * `"tmux"`: riquadri divisi utilizzando tmux o iTerm2, rilevati dal terminale

5332 * `"iterm2"`: riquadri divisi nativi di iTerm2 tramite la CLI `it2`, in Claude Code v2.1.186 o successivo5348 * `"iterm2"`: riquadri divisi nativi di iTerm2 tramite la CLI `it2`

5333* **Default**: `"in-process"`5349* **Default**: `"in-process"`

5334* **Per-session overrides**: `--teammate-mode` ha la precedenza su questa chiave per una sessione5350* **Per-session overrides**: `--teammate-mode` ha la precedenza su questa chiave per una sessione

5335 5351 


5339}5355}

5340```5356```

5341 5357 

5342Il valore `iterm2` richiede Claude Code v2.1.186 o successivo.

5343 

5344<span id="worktree-settings" />5358<span id="worktree-settings" />

5345 5359 

5346<h3 id="worktree">5360<h3 id="worktree">


6200 6214 

6201Claude Code accetta comunque un `--mcp-config` i cui server sono tutti voci in-process `type: "sdk"`, quindi l'Agent SDK e l'estensione VS Code continuano a funzionare. Gli utenti possono comunque aggiungere server con `claude mcp add` o un file `.mcp.json`; per il controllo per server, impostare anche [`allowedMcpServers`](/docs/it/managed-mcp). Richiede Claude Code v2.1.193 o successivo.6215Claude Code accetta comunque un `--mcp-config` i cui server sono tutti voci in-process `type: "sdk"`, quindi l'Agent SDK e l'estensione VS Code continuano a funzionare. Gli utenti possono comunque aggiungere server con `claude mcp add` o un file `.mcp.json`; per il controllo per server, impostare anche [`allowedMcpServers`](/docs/it/managed-mcp). Richiede Claude Code v2.1.193 o successivo.

6202 6216 

6217Lo stesso controllo copre le cartelle di plugin nominate nella variabile di ambiente [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/it/env-vars#variables), che richiede Claude Code v2.1.280 o successivo. Quando la variabile nomina una cartella, Claude Code esce con lo stesso errore e l'errore dice di annullare l'impostazione della variabile.

6218 

6203Nelle sessioni cloud, Claude Code ignora anche gli aggiornamenti MCP forniti dal server a metà sessione, il percorso dietro la configurazione della sessione cloud e le chiamate SDK `setMcpServers()` che raggiungono quelle sessioni. Le voci in-process `type: "sdk"` rimangono esenti anche lì. Prima della v2.1.239, un `--mcp-config` fornito dal server bloccava l'avvio di una sessione cloud.6219Nelle sessioni cloud, Claude Code ignora anche gli aggiornamenti MCP forniti dal server a metà sessione, il percorso dietro la configurazione della sessione cloud e le chiamate SDK `setMcpServers()` che raggiungono quelle sessioni. Le voci in-process `type: "sdk"` rimangono esenti anche lì. Prima della v2.1.239, un `--mcp-config` fornito dal server bloccava l'avvio di una sessione cloud.

6204 6220 

6205<h3 id="forceremotesettingsrefresh">6221<h3 id="forceremotesettingsrefresh">

skills.md +15 −15

Details

129| Progetto | `.claude/skills/<skill-name>/SKILL.md` | Sessioni in questo repository. Committala in modo che il tuo team la ottenga anche |129| Progetto | `.claude/skills/<skill-name>/SKILL.md` | Sessioni in questo repository. Committala in modo che il tuo team la ottenga anche |

130| Annidato | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sessioni avviate in o sotto `<subdir>`. Una sessione avviata sopra di essa carica la skill una volta che Claude lavora su file lì. Vedi [monorepos e sottodirectory](#discovery-from-parent-and-nested-directories) |130| Annidato | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sessioni avviate in o sotto `<subdir>`. Una sessione avviata sopra di essa carica la skill una volta che Claude lavora su file lì. Vedi [monorepos e sottodirectory](#discovery-from-parent-and-nested-directories) |

131| Directory aggiuntiva | `.claude/skills/<skill-name>/SKILL.md` in una directory che passi con `--add-dir` | Quella sessione. Vedi [directory al di fuori del progetto](#skills-from-additional-directories) |131| Directory aggiuntiva | `.claude/skills/<skill-name>/SKILL.md` in una directory che passi con `--add-dir` | Quella sessione. Vedi [directory al di fuori del progetto](#skills-from-additional-directories) |

132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Ovunque il [plugin](/docs/it/plugins) sia abilitato, come `/plugin-name:skill-name` |132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Ovunque il [plugin](/docs/it/plugins/overview) sia abilitato, come `/plugin-name:skill-name` |

133| Account claude.ai | Skills abilitate per il tuo account claude.ai | Sessioni Cowork, sessioni cloud e sessioni di terminale in cui accedi con quell'account. Vedi [Skills sincronizzate da claude.ai](#how-synced-skills-behave) |133| Account claude.ai | Skills abilitate per il tuo account claude.ai | Sessioni Cowork, sessioni cloud e sessioni di terminale in cui accedi con quell'account. Vedi [Skills sincronizzate da claude.ai](#how-synced-skills-behave) |

134 134 

135Le cartelle delle skill seguono anche queste regole:135Le cartelle delle skill seguono anche queste regole:

136 136 

137* **Cartelle con symlink**: una voce `<skill-name>` nella posizione enterprise, personale o di progetto può essere un symlink a una directory altrove su disco. Claude Code legge `SKILL.md` dal target e carica la skill una sola volta anche se più posizioni puntano allo stesso target. Le skill dei plugin [gestiscono i symlink diversamente](/docs/it/plugins-reference#share-files-within-a-marketplace-with-symlinks).137* **Cartelle con symlink**: una voce `<skill-name>` nella posizione enterprise, personale o di progetto può essere un symlink a una directory altrove su disco. Claude Code legge `SKILL.md` dal target e carica la skill una sola volta anche se più posizioni puntano allo stesso target. Le skill dei plugin [gestiscono i symlink diversamente](/docs/it/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks).

138* **Nome riservato**: non nominare una cartella di skill `synced`, in nessuna capitalizzazione. Claude Code usa `~/.claude/skills/synced/` per [skills scaricate da claude.ai](#where-synced-skills-load) e salta una skill che crei con quel nome nelle posizioni enterprise, personale e di progetto.138* **Nome riservato**: non nominare una cartella di skill `synced`, in nessuna capitalizzazione. Claude Code usa `~/.claude/skills/synced/` per [skills scaricate da claude.ai](#where-synced-skills-load) e salta una skill che crei con quel nome nelle posizioni enterprise, personale e di progetto.

139* **File di comando**: un file Markdown in `.claude/commands/` è il formato più vecchio e funziona ancora. Supporta lo stesso [frontmatter](#frontmatter-reference) tranne `name` e `paths`. Per trovare il nome che digiti per invocarlo, vedi [Come una skill ottiene il suo nome di comando](#how-a-skill-gets-its-command-name). Preferisci una skill per il nuovo lavoro, poiché le skill supportano anche [file di supporto](#add-supporting-files).139* **File di comando**: un file Markdown in `.claude/commands/` è il formato più vecchio e funziona ancora. Supporta lo stesso [frontmatter](#frontmatter-reference) tranne `name` e `paths`. Per trovare il nome che digiti per invocarlo, vedi [Come una skill ottiene il suo nome di comando](#how-a-skill-gets-its-command-name). Preferisci una skill per il nuovo lavoro, poiché le skill supportano anche [file di supporto](#add-supporting-files).

140* **Cartella di skill come plugin**: aggiungi un `.claude-plugin/plugin.json` a una cartella di skill e si carica come [plugin](/docs/it/plugins-reference#skills-directory-plugins) denominato `<name>@skills-dir`, in modo che possa raggruppare agenti, hooks e server MCP. In un `.claude/skills/` di un progetto, questo richiede di accettare prima la finestra di dialogo di fiducia dell'area di lavoro.140* **Cartella di skill come plugin**: aggiungi un `.claude-plugin/plugin.json` a una cartella di skill e si carica come [plugin](/docs/it/plugins/loading#plugins-shared-through-a-repository) denominato `<name>@skills-dir`, in modo che possa raggruppare agenti, hooks e server MCP. In un `.claude/skills/` di un progetto, questo richiede di accettare prima la finestra di dialogo di fiducia dell'area di lavoro.

141 141 

142<h3 id="discovery-from-parent-and-nested-directories">142<h3 id="discovery-from-parent-and-nested-directories">

143 Carica skills in monorepos e sottodirectory143 Carica skills in monorepos e sottodirectory


275 275 

276Claude Code osserva le directory delle skill per i cambiamenti di file, tranne in [modalità bare](/docs/it/headless#start-faster-with-bare-mode). Quando aggiungi, modifichi o rimuovi una skill sotto `~/.claude/skills/`, il progetto `.claude/skills/`, o una `.claude/skills/` all'interno di una directory `--add-dir`, Claude Code raccoglie il cambiamento all'interno della sessione corrente, senza un riavvio. Se crei una directory di skill di livello superiore che non esisteva quando la sessione è iniziata, riavvia Claude Code in modo che possa osservare la nuova directory.276Claude Code osserva le directory delle skill per i cambiamenti di file, tranne in [modalità bare](/docs/it/headless#start-faster-with-bare-mode). Quando aggiungi, modifichi o rimuovi una skill sotto `~/.claude/skills/`, il progetto `.claude/skills/`, o una `.claude/skills/` all'interno di una directory `--add-dir`, Claude Code raccoglie il cambiamento all'interno della sessione corrente, senza un riavvio. Se crei una directory di skill di livello superiore che non esisteva quando la sessione è iniziata, riavvia Claude Code in modo che possa osservare la nuova directory.

277 277 

278La rilevazione dei cambiamenti in tempo reale copre solo il testo `SKILL.md`. Per una cartella di skill che è anche un [plugin](/docs/it/plugins-reference#skills-directory-plugins), i cambiamenti a `hooks/`, `.mcp.json`, `agents/` e `output-styles/` richiedono `/reload-plugins` per avere effetto.278La rilevazione dei cambiamenti in tempo reale copre solo il testo `SKILL.md`. Per una cartella di skill che è anche un [plugin](/docs/it/plugins/loading#plugins-shared-through-a-repository), i cambiamenti a `hooks/`, `.mcp.json`, `agents/` e `output-styles/` richiedono `/reload-plugins` per avere effetto.

279 279 

280<h3 id="remove-a-skill">280<h3 id="remove-a-skill">

281 Rimuovi una skill281 Rimuovi una skill


285 285 

286* **Skill personale o di progetto**: elimina la directory della skill, `~/.claude/skills/<skill-name>/` o `.claude/skills/<skill-name>/`. Claude Code [la elimina da `/skills` nella sessione corrente](#live-change-detection); il contenuto che Claude Code ha già caricato da essa segue il [ciclo di vita del contenuto della skill](#skill-content-lifecycle).286* **Skill personale o di progetto**: elimina la directory della skill, `~/.claude/skills/<skill-name>/` o `.claude/skills/<skill-name>/`. Claude Code [la elimina da `/skills` nella sessione corrente](#live-change-detection); il contenuto che Claude Code ha già caricato da essa segue il [ciclo di vita del contenuto della skill](#skill-content-lifecycle).

287* **Skill enterprise**: un amministratore elimina la directory della skill da `.claude/skills/` all'interno della [directory delle impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms), ad esempio `/etc/claude-code/.claude/skills/<skill-name>/` su Linux.287* **Skill enterprise**: un amministratore elimina la directory della skill da `.claude/skills/` all'interno della [directory delle impostazioni gestite](/docs/it/managed-settings#delivery-mechanisms), ad esempio `/etc/claude-code/.claude/skills/<skill-name>/` su Linux.

288* **Skill di plugin**: disabilita o disinstalla il plugin che la fornisce, dal menu `/plugin` o con `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code scarica le skill del plugin quando [il cambiamento si applica](/docs/it/discover-plugins#apply-plugin-changes-without-restarting) o quando riavvii.288* **Skill di plugin**: disabilita o disinstalla il plugin che la fornisce, dal menu `/plugin` o con `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code scarica le skill del plugin quando [il cambiamento si applica](/docs/it/plugins/cli-reference#reload-plugins) o quando riavvii.

289* **Skill sincronizzato da claude.ai**: disattiva la skill per il tuo account claude.ai, nello stesso luogo in cui l'hai [abilitata](#skills-in-cowork-and-cloud-sessions). Claude Code la rimuove da `~/.claude/skills/synced/` la prossima volta che [sincronizza le tue skill](#how-synced-skills-behave). Se elimini la directory manualmente, la prossima sincronizzazione la scarica di nuovo mentre la skill rimane abilitata su claude.ai.289* **Skill sincronizzato da claude.ai**: disattiva la skill per il tuo account claude.ai, nello stesso luogo in cui l'hai [abilitata](#skills-in-cowork-and-cloud-sessions). Claude Code la rimuove da `~/.claude/skills/synced/` la prossima volta che [sincronizza le tue skill](#how-synced-skills-behave). Se elimini la directory manualmente, la prossima sincronizzazione la scarica di nuovo mentre la skill rimane abilitata su claude.ai.

290* **Skill raggruppata**: imposta [`disableBundledSkills`](#bundled-skills) su `true` per disattivare le skill raggruppate, o imposta una skill su `"off"` in [`skillOverrides`](#override-skill-visibility-from-settings) per nasconderla.290* **Skill raggruppata**: imposta [`disableBundledSkills`](#bundled-skills) su `true` per disattivare le skill raggruppate, o imposta una skill su `"off"` in [`skillOverrides`](#override-skill-visibility-from-settings) per nasconderla.

291 291 


389 389 

390| Percorso di distribuzione | Campi frontmatter che puoi usare |390| Percorso di distribuzione | Campi frontmatter che puoi usare |

391| :--------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------- |391| :--------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------- |

392| Skills di Claude Code a [qualsiasi livello](#where-skills-live), incluse skills di [plugin](/docs/it/plugins) | Ogni campo nella tabella sopra |392| Skills di Claude Code a [qualsiasi livello](#where-skills-live), incluse skills di [plugin](/docs/it/plugins/overview) | Ogni campo nella tabella sopra |

393| Upload di skills su claude.ai, l'API Skills e il packaging con `package_skill.py` da [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |393| Upload di skills su claude.ai, l'API Skills e il packaging con `package_skill.py` da [anthropics/skills](https://github.com/anthropics/skills) | `name`, `description`, `license`, `compatibility`, `metadata`, `allowed-tools` |

394 394 

395Quando abiliti una skill personale per il tuo account claude.ai, ad esempio per usarla in [sessioni Cowork e cloud](#skills-in-cowork-and-cloud-sessions) e routine, la carichi su claude.ai, quindi si applicano le stesse regole.395Quando abiliti una skill personale per il tuo account claude.ai, ad esempio per usarla in [sessioni Cowork e cloud](#skills-in-cowork-and-cloud-sessions) e routine, la carichi su claude.ai, quindi si applicano le stesse regole.


411La tabella seguente mostra da dove proviene il nome del comando per ogni layout:411La tabella seguente mostra da dove proviene il nome del comando per ogni layout:

412 412 

413| Posizione della skill | Fonte del nome del comando | Esempio |413| Posizione della skill | Fonte del nome del comando | Esempio |

414| :--------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |414| :--------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- |

415| Directory skill sotto `~/.claude/skills/` o `.claude/skills/` | Nome della directory | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |415| Directory skill sotto `~/.claude/skills/` o `.claude/skills/` | Nome della directory | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |

416| Directory [nidificata](#where-skills-live) `.claude/skills/`, quando il nome si scontra con un'altra skill | Percorso della sottodirectory relativo alla directory di lavoro, quindi il nome della directory skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |416| Directory [nidificata](#where-skills-live) `.claude/skills/`, quando il nome si scontra con un'altra skill | Percorso della sottodirectory relativo alla directory di lavoro, quindi il nome della directory skill | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

417| File sotto `.claude/commands/` | Nome del file senza estensione | `.claude/commands/deploy.md` → `/deploy` |417| File sotto `.claude/commands/` | Nome del file senza estensione | `.claude/commands/deploy.md` → `/deploy` |

418| File in una sottodirectory di `.claude/commands/` | Percorso della sottodirectory relativo a `commands/` con ogni `/` sostituito da `:`, quindi il nome del file senza estensione | `.claude/commands/frontend/component.md` → `/frontend:component` |418| File in una sottodirectory di `.claude/commands/` | Percorso della sottodirectory relativo a `commands/` con ogni `/` sostituito da `:`, quindi il nome del file senza estensione | `.claude/commands/frontend/component.md` → `/frontend:component` |

419| Sottodirectory `skills/` del plugin | Frontmatter `name` o il nome della directory, con namespace dal plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, o `/my-plugin:fancy` con `name: fancy` |419| Sottodirectory `skills/` del plugin | Frontmatter `name` o il nome della directory, con namespace dal plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, o `/my-plugin:fancy` con `name: fancy` |

420| `SKILL.md` radice del plugin | Frontmatter `name`, con il nome della directory del plugin come fallback | `my-plugin/SKILL.md` con `name: review` → `/my-plugin:review`. Vedi [Regole di comportamento del percorso](/docs/it/plugins-reference#path-behavior-rules) |420| `SKILL.md` radice del plugin | Frontmatter `name`, con il nome della directory del plugin come fallback | `my-plugin/SKILL.md` con `name: review` → `/my-plugin:review`. Vedi [una singola skill alla radice del plugin](/docs/it/plugins/components#skills) |

421| Skill [sincronizzata da claude.ai](#how-synced-skills-behave) | Il nome della skill sul tuo account claude.ai, con prefisso `anthropic-skills:` | Skill dell'account `deploy` → `/anthropic-skills:deploy`, o `/deploy` mentre nessun altro comando usa quel nome |421| Skill [sincronizzata da claude.ai](#how-synced-skills-behave) | Il nome della skill sul tuo account claude.ai, con prefisso `anthropic-skills:` | Skill dell'account `deploy` → `/anthropic-skills:deploy`, o `/deploy` mentre nessun altro comando usa quel nome |

422 422 

423In una skill di plugin, il frontmatter `name` sostituisce il nome della directory nell'ultimo segmento del comando, quindi `my-plugin/skills/review/SKILL.md` con `name: fancy` diventa `/my-plugin:fancy`. Il bare `/fancy` invoca anche la skill a meno che un altro comando non usi già quel nome. Se il `name` che scrivi inizia già con il prefisso del plugin stesso, Claude Code non aggiunge il prefisso di nuovo nella v2.1.246 o successivo. Ad esempio, `name: my-plugin:fancy` diventa comunque `/my-plugin:fancy`. Dalla v2.1.216 alla v2.1.245, Claude Code ha raddoppiato il prefisso quando il `name` lo portava già.423In una skill di plugin, il frontmatter `name` sostituisce il nome della directory nell'ultimo segmento del comando, quindi `my-plugin/skills/review/SKILL.md` con `name: fancy` diventa `/my-plugin:fancy`. Il bare `/fancy` invoca anche la skill a meno che un altro comando non usi già quel nome. Se il `name` che scrivi inizia già con il prefisso del plugin stesso, Claude Code non aggiunge il prefisso di nuovo nella v2.1.246 o successivo. Ad esempio, `name: my-plugin:fancy` diventa comunque `/my-plugin:fancy`. Dalla v2.1.216 alla v2.1.245, Claude Code ha raddoppiato il prefisso quando il `name` lo portava già.


442| `${CLAUDE_EFFORT}` | Il livello di sforzo attuale: `low`, `medium`, `high`, `xhigh` o `max`. Ultracode non è un livello distinto e viene segnalato come `xhigh`. Usa questo per adattare le istruzioni della skill all'impostazione di sforzo attiva. |442| `${CLAUDE_EFFORT}` | Il livello di sforzo attuale: `low`, `medium`, `high`, `xhigh` o `max`. Ultracode non è un livello distinto e viene segnalato come `xhigh`. Usa questo per adattare le istruzioni della skill all'impostazione di sforzo attiva. |

443| `${CLAUDE_SKILL_DIR}` | La directory contenente il file `SKILL.md` della skill. Per skills di plugin, questa è la sottodirectory della skill all'interno del plugin, non la radice del plugin. Usa questo nei comandi di iniezione bash per fare riferimento a script o file forniti con la skill, indipendentemente dalla directory di lavoro attuale. |443| `${CLAUDE_SKILL_DIR}` | La directory contenente il file `SKILL.md` della skill. Per skills di plugin, questa è la sottodirectory della skill all'interno del plugin, non la radice del plugin. Usa questo nei comandi di iniezione bash per fare riferimento a script o file forniti con la skill, indipendentemente dalla directory di lavoro attuale. |

444| `${CLAUDE_PROJECT_DIR}` | La directory radice del progetto. Questo è lo stesso percorso che [hooks](/docs/it/hooks#reference-scripts-by-path) e server MCP ricevono come `CLAUDE_PROJECT_DIR`. Usa questo per fare riferimento a script o file locali del progetto, come `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, indipendentemente da dove la skill è installata. |444| `${CLAUDE_PROJECT_DIR}` | La directory radice del progetto. Questo è lo stesso percorso che [hooks](/docs/it/hooks#reference-scripts-by-path) e server MCP ricevono come `CLAUDE_PROJECT_DIR`. Usa questo per fare riferimento a script o file locali del progetto, come `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, indipendentemente da dove la skill è installata. |

445| `${CLAUDE_PLUGIN_ROOT}` | La directory di installazione del plugin. Sostituito solo in skills di plugin. Usa questo per fare riferimento a script o file forniti in qualsiasi punto del plugin, incluse risorse condivise tra le skills del plugin. Vedi [variabili di ambiente del plugin](/docs/it/plugins-reference#environment-variables). |445| `${CLAUDE_PLUGIN_ROOT}` | La directory di installazione del plugin. Sostituito solo in skills di plugin. Usa questo per fare riferimento a script o file forniti in qualsiasi punto del plugin, incluse risorse condivise tra le skills del plugin. Vedi [variabili di ambiente del plugin](/docs/it/plugins/manifest-reference#environment-variables). |

446| `${CLAUDE_PLUGIN_DATA}` | La [directory di dati persistenti](/docs/it/plugins-reference#persistent-data-directory) del plugin, che sopravvive agli aggiornamenti del plugin. Sostituito solo in skills di plugin. Usa questo per fare riferimento a dipendenze installate, file generati o cache che devono sopravvivere a un aggiornamento. |446| `${CLAUDE_PLUGIN_DATA}` | La [directory di dati persistenti](/docs/it/plugins/components#path-variables-and-persistent-data) del plugin, che sopravvive agli aggiornamenti del plugin. Sostituito solo in skills di plugin. Usa questo per fare riferimento a dipendenze installate, file generati o cache che devono sopravvivere a un aggiornamento. |

447 447 

448Claude Code sostituisce `${CLAUDE_SKILL_DIR}` e `${CLAUDE_PROJECT_DIR}` in due posti: il contenuto markdown della skill e le regole Bash nel frontmatter [`allowed-tools`](#frontmatter-reference). In una skill di plugin, Claude Code sostituisce `${CLAUDE_PLUGIN_ROOT}` e `${CLAUDE_PLUGIN_DATA}` negli stessi due posti. Usare la stessa variabile in entrambi i posti consente a una skill di eseguire uno script fornito senza un prompt di permesso. La seguente skill mostra il pattern:448Claude Code sostituisce `${CLAUDE_SKILL_DIR}` e `${CLAUDE_PROJECT_DIR}` in due posti: il contenuto markdown della skill e le regole Bash nel frontmatter [`allowed-tools`](#frontmatter-reference). In una skill di plugin, Claude Code sostituisce `${CLAUDE_PLUGIN_ROOT}` e `${CLAUDE_PLUGIN_DATA}` negli stessi due posti. Usare la stessa variabile in entrambi i posti consente a una skill di eseguire uno script fornito senza un prompt di permesso. La seguente skill mostra il pattern:

449 449 


892 892 

893Il controllo per entrambi è un confronto di base. Raccogli alcuni prompt realistici, esegui ognuno in una sessione nuova con la skill disponibile e di nuovo con essa [disabilitata](#override-skill-visibility-from-settings), e confronta i risultati. Una sessione nuova è importante perché il contesto residuo dalla creazione della skill maschererà le lacune nelle istruzioni scritte.893Il controllo per entrambi è un confronto di base. Raccogli alcuni prompt realistici, esegui ognuno in una sessione nuova con la skill disponibile e di nuovo con essa [disabilitata](#override-skill-visibility-from-settings), e confronta i risultati. Una sessione nuova è importante perché il contesto residuo dalla creazione della skill maschererà le lacune nelle istruzioni scritte.

894 894 

895Due strumenti automatizzano quel confronto. Per una skill che viene fornita in un [plugin](/docs/it/plugins), [`claude plugin eval`](/docs/it/plugin-evals) esegue ogni prompt in una sessione isolata con e senza il plugin, la valuta con grader che definisci o che scrive per te, e esce con un codice diverso da zero al di sotto di una soglia in modo da poter controllare il CI su di essa. Per iterare su una singola skill all'interno di una conversazione Claude Code, il plugin skill-creator di seguito esegue un ciclo simile con il suo formato `evals/evals.json`. I due formati non sono intercambiabili.895Due strumenti automatizzano quel confronto. Per una skill che viene fornita in un [plugin](/docs/it/plugins/overview), [`claude plugin eval`](/docs/it/plugin-evals) esegue ogni prompt in una sessione isolata con e senza il plugin, la valuta con grader che definisci o che scrive per te, e esce con un codice diverso da zero al di sotto di una soglia in modo da poter controllare il CI su di essa. Per iterare su una singola skill all'interno di una conversazione Claude Code, il plugin skill-creator di seguito esegue un ciclo simile con il suo formato `evals/evals.json`. I due formati non sono intercambiabili.

896 896 

897<h3 id="run-evals-with-skill-creator">897<h3 id="run-evals-with-skill-creator">

898 Esegui eval con skill-creator898 Esegui eval con skill-creator


907Se l'installazione fallisce, fai corrispondere il messaggio che Claude Code segnala:907Se l'installazione fallisce, fai corrispondere il messaggio che Claude Code segnala:

908 908 

909* `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.909* `Marketplace "claude-plugins-official" not found`: aggiungi il marketplace con `/plugin marketplace add anthropics/claude-plugins-official`, quindi riprova l'installazione.

910* Il plugin [non è trovato nel marketplace](/docs/it/discover-plugins#install-plugins): controlla il nome del plugin.910* Il plugin [non è trovato nel marketplace](/docs/it/plugins/install#install-a-plugin): controlla il nome del plugin.

911 911 

912Se il riepilogo dell'installazione segnala `Run /reload-plugins to activate.`, Claude Code esegue quindi quel ricaricamento per te. Se il ricaricamento avverte che il tuo prossimo messaggio rileggerebbe la conversazione, esegui `/reload-plugins --force` per rendere disponibili le skill del plugin nella sessione corrente. Quindi chiedi a Claude di valutare una skill esistente, ad esempio `evaluate my summarize-changes skill with skill-creator`. Il plugin ti guida attraverso la scrittura dei test case ed esegue il ciclo:912Se il riepilogo dell'installazione segnala `Run /reload-plugins to activate.`, Claude Code esegue quindi quel ricaricamento per te. Se il ricaricamento avverte che il tuo prossimo messaggio rileggerebbe la conversazione, esegui `/reload-plugins --force` per rendere disponibili le skill del plugin nella sessione corrente. Quindi chiedi a Claude di valutare una skill esistente, ad esempio `evaluate my summarize-changes skill with skill-creator`. Il plugin ti guida attraverso la scrittura dei test case ed esegue il ciclo:

913 913 


928Gli skills possono essere distribuiti a diversi livelli a seconda del vostro pubblico:928Gli skills possono essere distribuiti a diversi livelli a seconda del vostro pubblico:

929 929 

930* **Project skills**: Eseguire il commit di `.claude/skills/` nel controllo versione930* **Project skills**: Eseguire il commit di `.claude/skills/` nel controllo versione

931* **Plugins**: Creare una directory `skills/` nel vostro [plugin](/docs/it/plugins)931* **Plugins**: Creare una directory `skills/` nel vostro [plugin](/docs/it/plugins/overview)

932* **Managed**: Distribuire a livello organizzativo tramite [managed settings](/docs/it/managed-settings)932* **Managed**: Distribuire a livello organizzativo tramite [managed settings](/docs/it/managed-settings)

933 933 

934<h3 id="generate-visual-output">934<h3 id="generate-visual-output">


1143 1143 

1144Se la skill è fornita in un plugin, potete misurare con quale frequenza si attiva su prompt realistici piuttosto che controllare uno alla volta: scrivete un caso di eval con un [grader `tool_used: Skill`](/docs/it/plugin-evals#create-your-first-eval-suite) ed eseguitelo con `claude plugin eval` dopo ogni modifica della descrizione.1144Se la skill è fornita in un plugin, potete misurare con quale frequenza si attiva su prompt realistici piuttosto che controllare uno alla volta: scrivete un caso di eval con un [grader `tool_used: Skill`](/docs/it/plugin-evals#create-your-first-eval-suite) ed eseguitelo con `claude plugin eval` dopo ogni modifica della descrizione.

1145 1145 

1146Per trovare file `SKILL.md` il cui frontmatter non viene analizzato, eseguite [`claude plugin validate`](/docs/it/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) sulla directory delle skills, ad esempio `claude plugin validate .claude/skills` per le skills del progetto o `claude plugin validate ~/.claude/skills` per le skills personali. Richiede Claude Code v2.1.233 o successivo.1146Per trovare file `SKILL.md` il cui frontmatter non viene analizzato, eseguite [`claude plugin validate`](/docs/it/plugins/cli-reference#validate-a-directory) sulla directory delle skills, ad esempio `claude plugin validate .claude/skills` per le skills del progetto o `claude plugin validate ~/.claude/skills` per le skills personali. Richiede Claude Code v2.1.233 o successivo.

1147 1147 

1148<h3 id="skill-triggers-too-often">1148<h3 id="skill-triggers-too-often">

1149 Skill triggers too often1149 Skill triggers too often


1184* **[Valutazione della qualità dell'output della skill](https://agentskills.io/skill-creation/evaluating-skills)**: il formato del file eval e il flusso di lavoro di iterazione su agentskills.io1184* **[Valutazione della qualità dell'output della skill](https://agentskills.io/skill-creation/evaluating-skills)**: il formato del file eval e il flusso di lavoro di iterazione su agentskills.io

1185* **[Best practice di authoring delle skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)**: guida di scrittura che si applica ai prodotti Claude1185* **[Best practice di authoring delle skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)**: guida di scrittura che si applica ai prodotti Claude

1186* **[Subagents](/docs/it/sub-agents)**: delega attività ad agenti specializzati1186* **[Subagents](/docs/it/sub-agents)**: delega attività ad agenti specializzati

1187* **[Plugins](/docs/it/plugins)**: pacchetto e distribuisci skills con altre estensioni1187* **[Plugins](/docs/it/plugins/overview)**: pacchetto e distribuisci skills con altre estensioni

1188* **[Hooks](/docs/it/hooks)**: automatizza i flussi di lavoro intorno agli eventi degli strumenti1188* **[Hooks](/docs/it/hooks)**: automatizza i flussi di lavoro intorno agli eventi degli strumenti

1189* **[Memory](/docs/it/memory)**: gestisci i file CLAUDE.md per il contesto persistente1189* **[Memory](/docs/it/memory)**: gestisci i file CLAUDE.md per il contesto persistente

1190* **[Commands](/docs/it/commands)**: riferimento per i comandi integrati e le skills raggruppate1190* **[Commands](/docs/it/commands)**: riferimento per i comandi integrati e le skills raggruppate

statusline.md +1 −1

Details

1142 1142 

1143Scrivi una riga JSON su stdout per ogni riga che vuoi sovrascrivere, nella forma `{"id": "<task id>", "content": "<row body>"}`. La stringa `content` viene renderizzata così com'è, inclusi i colori ANSI e i hyperlink OSC 8. Ometti l'`id` di un task per mantenere il rendering predefinito per quella riga; emetti una stringa `content` vuota per nasconderla.1143Scrivi una riga JSON su stdout per ogni riga che vuoi sovrascrivere, nella forma `{"id": "<task id>", "content": "<row body>"}`. La stringa `content` viene renderizzata così com'è, inclusi i colori ANSI e i hyperlink OSC 8. Ometti l'`id` di un task per mantenere il rendering predefinito per quella riga; emetti una stringa `content` vuota per nasconderla.

1144 1144 

1145Gli stessi gate di fiducia, `disableAllHooks` e [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly) che si applicano a `statusLine` si applicano qui. I plugin possono fornire un `subagentStatusLine` predefinito nel loro [`settings.json`](/docs/it/plugins-reference#standard-plugin-layout), ma a differenza dei hooks, i valori dei plugin non vengono eseguiti sotto `allowManagedHooksOnly` anche quando il plugin è forzato abilitato nelle impostazioni gestite `enabledPlugins`.1145Gli stessi gate di fiducia, `disableAllHooks` e [`allowManagedHooksOnly`](/docs/it/settings-reference#allowmanagedhooksonly) che si applicano a `statusLine` si applicano qui. I plugin possono fornire un `subagentStatusLine` predefinito nel loro [`settings.json`](/docs/it/plugins/manifest-reference#standard-layout), ma a differenza dei hooks, i valori dei plugin non vengono eseguiti sotto `allowManagedHooksOnly` anche quando il plugin è forzato abilitato nelle impostazioni gestite `enabledPlugins`.

1146 1146 

1147<h2 id="tips">1147<h2 id="tips">

1148 Suggerimenti1148 Suggerimenti

sub-agents.md +19 −15

Details

174| Flag CLI `--agents` | Sessione corrente | 2 | Passa JSON quando avvia Claude Code |174| Flag CLI `--agents` | Sessione corrente | 2 | Passa JSON quando avvia Claude Code |

175| `.claude/agents/` | Progetto corrente | 3 | Chieda a Claude, o crei il file manualmente |175| `.claude/agents/` | Progetto corrente | 3 | Chieda a Claude, o crei il file manualmente |

176| `~/.claude/agents/` | Tutti i suoi progetti | 4 | Chieda a Claude, o crei il file manualmente |176| `~/.claude/agents/` | Tutti i suoi progetti | 4 | Chieda a Claude, o crei il file manualmente |

177| Directory `agents/` del plugin | Dove il plugin è abilitato | 5 (minima) | Installato con [plugins](/docs/it/plugins) |177| Directory `agents/` del plugin | Dove il plugin è abilitato | 5 (minima) | Installato con [plugins](/docs/it/plugins/overview) |

178 178 

179I **subagent di progetto** (`.claude/agents/`) sono ideali per subagent specifici di una base di codice. Li archivi nel controllo della versione in modo che il suo team possa utilizzarli e migliorarli in modo collaborativo.179I **subagent di progetto** (`.claude/agents/`) sono ideali per subagent specifici di una base di codice. Li archivi nel controllo della versione in modo che il suo team possa utilizzarli e migliorarli in modo collaborativo.

180 180 

181I subagent di progetto vengono scoperti camminando verso l'alto dalla directory di lavoro corrente, quindi ogni `.claude/agents/` tra lì e la radice del repository viene scansionato. A partire da v2.1.178, quando più di una di queste directory annidate definisce lo stesso `name`, Claude Code utilizza la definizione più vicina alla directory di lavoro.181I subagent di progetto vengono scoperti camminando verso l'alto dalla directory di lavoro corrente, quindi ogni `.claude/agents/` tra lì e la radice del repository viene scansionato. Quando più di una di queste directory annidate definisce lo stesso `name`, Claude Code utilizza la definizione più vicina alla directory di lavoro.

182 182 

183Quando aggiunge una directory con `--add-dir` o `/add-dir`, Claude Code carica anche la sua cartella `.claude/agents/`, insieme ai subagent di progetto. Consulti [Directory aggiuntive](/docs/it/permissions#additional-directories-grant-file-access-not-configuration) per quali altri tipi di configurazione si caricano da `--add-dir`. Per condividere i subagent tra progetti senza `--add-dir`, usi `~/.claude/agents/` o un [plugin](/docs/it/plugins).183Quando aggiunge una directory con `--add-dir` o `/add-dir`, Claude Code carica anche la sua cartella `.claude/agents/`, insieme ai subagent di progetto. Consulti [Directory aggiuntive](/docs/it/permissions#additional-directories-grant-file-access-not-configuration) per quali altri tipi di configurazione si caricano da `--add-dir`. Per condividere i subagent tra progetti senza `--add-dir`, usi `~/.claude/agents/` o un [plugin](/docs/it/plugins/overview).

184 184 

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

186 186 


238 238 

239I **subagent gestiti** vengono distribuiti dagli amministratori dell'organizzazione. Posizioni file markdown in `.claude/agents/` all'interno della [directory managed settings](/docs/it/managed-settings#delivery-mechanisms), utilizzando lo stesso formato frontmatter dei subagent di progetto e utente. Le definizioni gestite hanno la precedenza sui subagent di progetto e utente con lo stesso nome.239I **subagent gestiti** vengono distribuiti dagli amministratori dell'organizzazione. Posizioni file markdown in `.claude/agents/` all'interno della [directory managed settings](/docs/it/managed-settings#delivery-mechanisms), utilizzando lo stesso formato frontmatter dei subagent di progetto e utente. Le definizioni gestite hanno la precedenza sui subagent di progetto e utente con lo stesso nome.

240 240 

241I **subagent plugin** provengono da [plugins](/docs/it/plugins) che ha installato. Si caricano automaticamente insieme ai suoi subagent personalizzati e appaiono nella typeahead @-mention con il loro nome con ambito. Consulti il [riferimento dei componenti plugin](/docs/it/plugins-reference#agents) per i dettagli sulla creazione di subagent plugin.241I **subagent plugin** provengono da [plugins](/docs/it/plugins/overview) che ha installato. Si caricano automaticamente insieme ai suoi subagent personalizzati e appaiono nella typeahead @-mention con il loro nome con ambito. Consulti il [riferimento dei componenti plugin](/docs/it/plugins/components#agents) per i dettagli sulla creazione di subagent plugin.

242 242 

243<Note>243<Note>

244 Per motivi di sicurezza, i subagent plugin non supportano i campi frontmatter `hooks`, `mcpServers` o `permissionMode`. Questi campi vengono ignorati durante il caricamento degli agenti da un plugin. Se ne ha bisogno, copi il file dell'agente in `.claude/agents/` o `~/.claude/agents/`. Può anche aggiungere regole a [`permissions.allow`](/docs/it/settings-reference#permissions-allow) in `settings.json` o `settings.local.json`, ma queste regole si applicano all'intera sessione, non solo al subagent plugin.244 Per motivi di sicurezza, i subagent plugin non supportano i campi frontmatter `hooks`, `mcpServers` o `permissionMode`. Questi campi vengono ignorati durante il caricamento degli agenti da un plugin. Se ne ha bisogno, copi il file dell'agente in `.claude/agents/` o `~/.claude/agents/`. Può anche aggiungere regole a [`permissions.allow`](/docs/it/settings-reference#permissions-allow) in `settings.json` o `settings.local.json`, ma queste regole si applicano all'intera sessione, non solo al subagent plugin.


305 305 

306| Field | Required | Description |306| Field | Required | Description |

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

308| `name` | Yes | Identificatore univoco, come `code-reviewer` o `reviewer-v2`. [Hooks](/docs/it/hooks#subagentstart) ricevono questo valore come `agent_type`. Il nome del file non deve corrispondere. I nomi non possono contenere `:`, che è riservato per [identificatori con ambito plugin](/docs/it/plugins) come `my-plugin:reviewer`. Claude Code non carica un file il cui nome contiene uno e registra un errore nel log di debug. Prima di v2.1.218, tali nomi erano accettati |308| `name` | Yes | Identificatore univoco, come `code-reviewer` o `reviewer-v2`. [Hooks](/docs/it/hooks#subagentstart) ricevono questo valore come `agent_type`. Il nome del file non deve corrispondere. I nomi non possono contenere `:`, che è riservato per [identificatori con ambito plugin](/docs/it/plugins/overview) come `my-plugin:reviewer`. Claude Code non carica un file il cui nome contiene uno e registra un errore nel log di debug. Prima di v2.1.218, tali nomi erano accettati |

309| `description` | Yes | Quando Claude dovrebbe delegare a questo subagent |309| `description` | Yes | Quando Claude dovrebbe delegare a questo subagent |

310| `tools` | No | [Strumenti](#available-tools) che il subagent può utilizzare, come una stringa separata da virgole come `Read, Grep, Bash` o un elenco YAML. Eredita ogni strumento disponibile per i subagent se omesso. Se nessuna voce nell'elenco si risolve in uno strumento, il subagent di solito [non si avvia](/docs/it/errors#agent-would-be-spawned-with-zero-tools) con un errore che nomina le voci. Per precaricare Skills nel contesto, usi il campo `skills` piuttosto che elencare `Skill` qui |310| `tools` | No | [Strumenti](#available-tools) che il subagent può utilizzare, come una stringa separata da virgole come `Read, Grep, Bash` o un elenco YAML. Eredita ogni strumento disponibile per i subagent se omesso. Se nessuna voce nell'elenco si risolve in uno strumento, il subagent di solito [non si avvia](/docs/it/errors#agent-would-be-spawned-with-zero-tools) con un errore che nomina le voci. Per precaricare Skills nel contesto, usi il campo `skills` piuttosto che elencare `Skill` qui |

311| `disallowedTools` | No | Strumenti da negare, rimossi dall'elenco ereditato o specificato. Stesso formato di `tools`. Una voce con uno specificatore, come `Bash(git push *)`, comunque [rimuove lo strumento intero](#available-tools) |311| `disallowedTools` | No | Strumenti da negare, rimossi dall'elenco ereditato o specificato. Stesso formato di `tools`. Una voce con uno specificatore, come `Bash(git push *)`, comunque [rimuove lo strumento intero](#available-tools) |


349 349 

350Per vedere il log di debug, esegua Claude Code con `--debug`.350Per vedere il log di debug, esegua Claude Code con `--debug`.

351 351 

352Un [subagent plugin](/docs/it/plugins-reference#agents) il cui frontmatter non ha `name` o non analizza comunque si carica, con il suo nome file.352Un [subagent plugin](/docs/it/plugins/components#agents) il cui frontmatter non ha `name` o non analizza comunque si carica, con il suo nome file.

353 353 

354<h5 id="check-an-agents-directory-before-a-session">354<h5 id="check-an-agents-directory-before-a-session">

355 Controlli una directory `agents` prima di una sessione355 Controlli una directory `agents` prima di una sessione

356</h5>356</h5>

357 357 

358Per trovare file in una directory `agents` il cui frontmatter non analizza, esegua `claude plugin validate` contro la directory, ad esempio `.claude/agents` o `~/.claude/agents`. Claude Code controlla solo [la directory che nomina](/docs/it/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest), e non segnala un file il cui frontmatter analizza ma non ha `name`. Richiede Claude Code v2.1.233 o successivo.358Per trovare file in una directory `agents` il cui frontmatter non analizza, esegua `claude plugin validate` contro la directory, ad esempio `.claude/agents` o `~/.claude/agents`. Claude Code controlla solo [la directory che nomina](/docs/it/plugins/cli-reference#validate-a-directory), e non segnala un file il cui frontmatter analizza ma non ha `name`. Richiede Claude Code v2.1.233 o successivo.

359 359 

360<h3 id="choose-a-model">360<h3 id="choose-a-model">

361 Scelga un modello361 Scelga un modello


573* Un nome che fa riferimento a un server che ha già configurato573* Un nome che fa riferimento a un server che ha già configurato

574* Un server inline in un file agente da `~/.claude/agents/`, in uno che passa con `--agents` o l'opzione SDK `agents`, o in uno che le impostazioni gestite forniscono574* Un server inline in un file agente da `~/.claude/agents/`, in uno che passa con `--agents` o l'opzione SDK `agents`, o in uno che le impostazioni gestite forniscono

575 575 

576A partire da v2.1.153, le restrizioni MCP che si applicano alla sessione principale coprono anche i server dichiarati nel frontmatter del subagent:576Le restrizioni MCP che si applicano alla sessione principale coprono anche i server dichiarati nel frontmatter del subagent:

577 577 

578* [`--strict-mcp-config`](/docs/it/cli-reference) e [`--bare`](/docs/it/cli-reference)578* [`--strict-mcp-config`](/docs/it/cli-reference) e [`--bare`](/docs/it/cli-reference)

579* [Configurazione MCP gestita aziendale](/docs/it/managed-mcp)579* [Configurazione MCP gestita aziendale](/docs/it/managed-mcp)


820| `SubagentStart` | Nome del tipo di agente | Quando un subagent inizia l'esecuzione |820| `SubagentStart` | Nome del tipo di agente | Quando un subagent inizia l'esecuzione |

821| `SubagentStop` | Nome del tipo di agente | Quando un subagent completa |821| `SubagentStop` | Nome del tipo di agente | Quando un subagent completa |

822 822 

823Entrambi gli eventi supportano matcher per indirizzare tipi di agenti specifici per nome. Il valore del matcher è il `name` del frontmatter dell'agente per i subagent a livello di progetto e utente, o l'identificatore con ambito del plugin come `my-plugin:db-agent` per [subagent plugin](/docs/it/plugins). Un nome con ambito contiene un due punti, quindi viene valutato come un'[espressione regolare non ancorata](/docs/it/hooks#matcher-patterns); ancoratelo con `^` e `$`, come in `^my-plugin:db-agent$`, per corrispondere solo a quell'agente.823Entrambi gli eventi supportano matcher per indirizzare tipi di agenti specifici per nome. Il valore del matcher è il `name` del frontmatter dell'agente per i subagent a livello di progetto e utente, o l'identificatore con ambito del plugin come `my-plugin:db-agent` per [subagent plugin](/docs/it/plugins/components#agents). Un nome con ambito contiene un due punti, quindi viene valutato come un'[espressione regolare non ancorata](/docs/it/hooks#matcher-patterns); ancoratelo con `^` e `$`, come in `^my-plugin:db-agent$`, per corrispondere solo a quell'agente.

824 824 

825Questo esempio esegue uno script di configurazione solo quando il subagent `db-agent` inizia e uno script di pulizia quando qualsiasi subagent si ferma:825Questo esempio esegue uno script di configurazione solo quando il subagent `db-agent` inizia e uno script di pulizia quando qualsiasi subagent si ferma:

826 826 


862 862 

863Mantenga le descrizioni brevi: Claude Code mostra un avviso di avvio quando le descrizioni combinate dei suoi subagent superano il [limite di 15.000 token](/docs/it/errors#agent-descriptions-are-over-the-15000-token-limit), e continua a caricare ogni subagent.863Mantenga le descrizioni brevi: Claude Code mostra un avviso di avvio quando le descrizioni combinate dei suoi subagent superano il [limite di 15.000 token](/docs/it/errors#agent-descriptions-are-over-the-15000-token-limit), e continua a caricare ogni subagent.

864 864 

865Se il subagent viene fornito in un [plugin](/docs/it/plugins/overview), può misurare quanto affidabilmente Claude delega ad esso su prompt realistici invece di controllare uno alla volta: [`claude plugin eval`](/docs/it/plugin-evals) esegue ogni prompt con e senza il plugin e valuta i risultati.

866 

865<h3 id="invoke-subagents-explicitly">867<h3 id="invoke-subagents-explicitly">

866 Invochi i subagent esplicitamente868 Invochi i subagent esplicitamente

867</h3>869</h3>


887 889 

888Il 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.890Il 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.

889 891 

890I subagent forniti da un [plugin](/docs/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.892I subagent forniti da un [plugin](/docs/it/plugins/overview) 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.

891 893 

892Può 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`. Mentre digita questo modulo il typeahead mostra corrispondenze di file piuttosto che agenti. La mention dell'agente si risolve comunque quando invia.894Può 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`. Mentre digita questo modulo il typeahead mostra corrispondenze di file piuttosto che agenti. La mention dell'agente si risolve comunque quando invia.

893 895 


897claude --agent code-reviewer899claude --agent code-reviewer

898```900```

899 901 

900Il prompt di sistema del subagent sostituisce completamente il prompt di sistema predefinito di Claude Code, nello stesso modo in cui [`--system-prompt`](/docs/it/cli-reference) fa. I file `CLAUDE.md` e la memoria del progetto continuano a caricarsi attraverso il flusso di messaggi normale, anche quando la definizione dell'agente imposta [`omitClaudeMd`](#supported-frontmatter-fields). Il nome dell'agente appare come `@<name>` nell'intestazione di avvio in modo che possa confermare che è attivo.902Il prompt di sistema del subagent sostituisce completamente il prompt di sistema predefinito di Claude Code, nello stesso modo in cui [`--system-prompt`](/docs/it/cli-reference) fa. I file `CLAUDE.md` e la memoria del progetto continuano a caricarsi attraverso il flusso di messaggi normale, anche quando la definizione dell'agente imposta [`omitClaudeMd`](#supported-frontmatter-fields).

903 

904Il nome dell'agente appare come `@<name>` nell'intestazione di avvio in modo che possa confermare che è attivo.

901 905 

902Questo funziona con i subagent integrati e personalizzati, e la scelta persiste quando riprende la sessione: Claude Code ripristina le restrizioni di strumenti e il modello dell'agente insieme alla conversazione. Se l'agente non esiste più quando riprende, la sessione continua con gli strumenti predefiniti e mostra un [avviso che nomina l'agente](/docs/it/errors#session-agent-no-longer-available). Per il prompt di sistema in entrambi i casi, vedi [Flag del prompt di sistema nelle conversazioni riprese](/docs/it/cli-reference#system-prompt-flags-in-resumed-conversations).906Questo funziona con i subagent integrati e personalizzati, e la scelta persiste quando riprende la sessione: Claude Code ripristina le restrizioni di strumenti e il modello dell'agente insieme alla conversazione. Se l'agente non esiste più quando riprende, la sessione continua con gli strumenti predefiniti e mostra un [avviso che nomina l'agente](/docs/it/errors#session-agent-no-longer-available). Per il prompt di sistema in entrambi i casi, vedi [Flag del prompt di sistema nelle conversazioni riprese](/docs/it/cli-reference#system-prompt-flags-in-resumed-conversations).

903 907 


932I subagent possono essere eseguiti in primo piano o in background:936I subagent possono essere eseguiti in primo piano o in background:

933 937 

934* **Subagent in primo piano** bloccano la conversazione principale fino al completamento. I prompt di autorizzazione vengono passati a lei mentre si presentano.938* **Subagent in primo piano** bloccano la conversazione principale fino al completamento. I prompt di autorizzazione vengono passati a lei mentre si presentano.

935* **Subagent in background** vengono eseguiti contemporaneamente mentre continua a lavorare. Quando un subagent in background raggiunge una chiamata di strumento che necessita di autorizzazione, Claude Code fa emergere il prompt nella sua sessione principale e nomina il subagent che sta chiedendo. Approvi per consentire al subagent di continuare, o premi Esc per negare quella singola chiamata di strumento senza fermare il subagent. Prima di v2.1.186, i subagent in background auto-negavano qualsiasi chiamata di strumento che avrebbe richiesto un prompt.939* **Subagent in background** vengono eseguiti contemporaneamente mentre continua a lavorare. Quando un subagent in background raggiunge una chiamata di strumento che necessita di autorizzazione, Claude Code fa emergere il prompt nella sua sessione principale e nomina il subagent che sta chiedendo. Approvi per consentire al subagent di continuare, o premi Esc per negare quella singola chiamata di strumento senza fermare il subagent.

936 940 

937Per ogni subagent che Claude genera con lo strumento Agent, Claude Code sceglie primo piano o background dal primo di questi casi che si applica:941Per ogni subagent che Claude genera con lo strumento Agent, Claude Code sceglie primo piano o background dal primo di questi casi che si applica:

938 942 


1129* **System prompt**: il prompt dell'agente stesso più i dettagli dell'ambiente che Claude Code aggiunge, non il prompt di sistema di Claude Code. I subagent personalizzati definiscono il loro nel [corpo markdown](#write-subagent-files) o nel campo `prompt`. Gli agenti integrati hanno prompt predefiniti.1133* **System prompt**: il prompt dell'agente stesso più i dettagli dell'ambiente che Claude Code aggiunge, non il prompt di sistema di Claude Code. I subagent personalizzati definiscono il loro nel [corpo markdown](#write-subagent-files) o nel campo `prompt`. Gli agenti integrati hanno prompt predefiniti.

1130* **Task message**: il prompt di delegazione che Claude scrive quando consegna il lavoro.1134* **Task message**: il prompt di delegazione che Claude scrive quando consegna il lavoro.

1131* **File CLAUDE.md**: ogni livello della [gerarchia CLAUDE.md](/docs/it/memory#how-claude-md-files-load) che la conversazione principale carica, inclusi `~/.claude/CLAUDE.md`, regole del progetto, `CLAUDE.local.md`, file di policy gestiti e qualsiasi file [`AGENTS.md`](/docs/it/memory#agents-md) caricato come istruzioni del progetto. Gli agenti Explore e Plan integrati saltano questo. Un subagent la cui definizione imposta [`omitClaudeMd`](#supported-frontmatter-fields) carica solo i file di policy gestiti, o nessuno affatto quando la definizione proviene da [impostazioni gestite](#choose-the-subagent-scope).1135* **File CLAUDE.md**: ogni livello della [gerarchia CLAUDE.md](/docs/it/memory#how-claude-md-files-load) che la conversazione principale carica, inclusi `~/.claude/CLAUDE.md`, regole del progetto, `CLAUDE.local.md`, file di policy gestiti e qualsiasi file [`AGENTS.md`](/docs/it/memory#agents-md) caricato come istruzioni del progetto. Gli agenti Explore e Plan integrati saltano questo. Un subagent la cui definizione imposta [`omitClaudeMd`](#supported-frontmatter-fields) carica solo i file di policy gestiti, o nessuno affatto quando la definizione proviene da [impostazioni gestite](#choose-the-subagent-scope).

1132* **Git status**: uno snapshot preso all'inizio della sessione genitore. Assente quando la directory di lavoro non è un repository Git o quando [`includeGitInstructions`](/docs/it/settings-reference#includegitinstructions) è `false`. Explore e Plan lo saltano comunque.1136* **Git status**: uno snapshot che Claude Code legge dal suo repository quando il subagent inizia. Assente al di fuori di un repository Git o ogni volta che lo snapshot è disattivato; vedi [`includeGitInstructions`](/docs/it/settings-reference#includegitinstructions). Explore e Plan lo saltano comunque.

1133* **Preloaded skills**: contenuto completo di qualsiasi skill denominata nel campo [`skills`](#preload-skills-into-subagents) dell'agente. Gli agenti integrati non precaricano skills.1137* **Preloaded skills**: contenuto completo di qualsiasi skill denominata nel campo [`skills`](#preload-skills-into-subagents) dell'agente. Gli agenti integrati non precaricano skills.

1134* **Sibling roster**: un promemoria di sistema che elenca `main` e ogni altro agente denominato nella sessione, ognuno un valore `to` valido per [`SendMessage`](#resume-subagents). Richiede Claude Code v2.1.206 o successivo. L'elenco appare solo quando gli strumenti del subagent includono `SendMessage` e almeno un altro agente ha un nome, sia che Claude lo abbia denominato quando lo ha generato o che venga eseguito come un collega [agent teams](/docs/it/agent-teams). È uno snapshot preso quando il subagent inizia, quindi gli agenti denominati successivamente non appaiono.1138* **Sibling roster**: un promemoria di sistema che elenca `main` e ogni altro agente denominato nella sessione, ognuno un valore `to` valido per [`SendMessage`](#resume-subagents). Richiede Claude Code v2.1.206 o successivo. L'elenco appare solo quando gli strumenti del subagent includono `SendMessage` e almeno un altro agente ha un nome, sia che Claude lo abbia denominato quando lo ha generato o che venga eseguito come un collega [agent teams](/docs/it/agent-teams). È uno snapshot preso quando il subagent inizia, quindi gli agenti denominati successivamente non appaiono.

1135 1139 


1175 1179 

1176Un subagent che lei ha fermato lei stesso, con `x` in `/tasks` o una richiesta SDK `stop_task`, non si auto-riprende. Se Claude gli invia un messaggio, il messaggio viene rifiutato e Claude viene detto che l'agente è stato annullato.1180Un subagent che lei ha fermato lei stesso, con `x` in `/tasks` o una richiesta SDK `stop_task`, non si auto-riprende. Se Claude gli invia un messaggio, il messaggio viene rifiutato e Claude viene detto che l'agente è stato annullato.

1177 1181 

1178Mentre [la riga di quel subagent è ancora nel pannello subagent](#run-subagents-in-foreground-or-background), digiti nella sua trascrizione per riprendere lei stesso. Dopo, un messaggio da Claude può auto-riprendere di nuovo. Richiede Claude Code v2.1.191 o successivo.1182Mentre [la riga di quel subagent è ancora nel pannello subagent](#run-subagents-in-foreground-or-background), digiti nella sua trascrizione per riprendere lei stesso. Dopo, un messaggio da Claude può auto-riprendere di nuovo.

1179 1183 

1180Riprendere avvia una nuova esecuzione dell'agente con lo stesso ID, quindi un subagent che aveva già fallito o completato si mostra come in esecuzione di nuovo nell'elenco delle attività e negli eventi delle attività dell'Agent SDK. Prima di v2.1.205, continuava a mostrare il suo stato precedente fallito o completato mentre l'esecuzione ripresa stava funzionando.1184Riprendere avvia una nuova esecuzione dell'agente con lo stesso ID, quindi un subagent che aveva già fallito o completato si mostra come in esecuzione di nuovo nell'elenco delle attività e negli eventi delle attività dell'Agent SDK. Prima di v2.1.205, continuava a mostrare il suo stato precedente fallito o completato mentre l'esecuzione ripresa stava funzionando.

1181 1185 


1493 1497 

1494Ora che comprende i subagent, esplori queste funzionalità correlate:1498Ora che comprende i subagent, esplori queste funzionalità correlate:

1495 1499 

1496* [Distribuisca subagent con i plugin](/docs/it/plugins) per condividere i subagent tra team o progetti1500* [Distribuisca subagent con i plugin](/docs/it/plugins/components#agents) per condividere i subagent tra team o progetti

1497* [Esegua Claude Code a livello di programmazione](/docs/it/headless) con l'Agent SDK per CI/CD e automazione1501* [Esegua Claude Code a livello di programmazione](/docs/it/headless) con l'Agent SDK per CI/CD e automazione

1498* [Usi i server MCP](/docs/it/mcp) per dare ai subagent accesso a strumenti e dati esterni1502* [Usi i server MCP](/docs/it/mcp) per dare ai subagent accesso a strumenti e dati esterni

Details

156 Crea un tema personalizzato156 Crea un tema personalizzato

157</h3>157</h3>

158 158 

159Oltre ai preset integrati, `/theme` elenca tutti i temi personalizzati che hai definito e tutti i temi forniti dai [plugin](/docs/it/plugins-reference#themes) installati. Seleziona **Nuovo tema personalizzato…** alla fine dell'elenco per crearne uno in modo interattivo: dai un nome al tema, quindi scegli i singoli token di colore da sovrascrivere. Premi `Ctrl+E` mentre un tema personalizzato è evidenziato per modificarlo.159Oltre ai preset integrati, `/theme` elenca tutti i temi personalizzati che hai definito e tutti i temi forniti dai [plugin](/docs/it/plugins/components#themes-and-output-styles) installati. Seleziona **Nuovo tema personalizzato…** alla fine dell'elenco per crearne uno in modo interattivo: dai un nome al tema, quindi scegli i singoli token di colore da sovrascrivere. Premi `Ctrl+E` mentre un tema personalizzato è evidenziato per modificarlo.

160 160 

161Ogni tema personalizzato è un file JSON in `~/.claude/themes/`. Il nome del file senza l'estensione `.json` è lo slug del tema, e selezionare il tema memorizza `custom:<slug>` come preferenza del tema. Il file ha tre campi facoltativi:161Ogni tema personalizzato è un file JSON in `~/.claude/themes/`. Il nome del file senza l'estensione `.json` è lo slug del tema, e selezionare il tema memorizza `custom:<slug>` come preferenza del tema. Il file ha tre campi facoltativi:

162 162 

Details

179Claude Code trasmette l'output di un comando a un file di lavoro mentre il comando viene eseguito; un comando il cui output supera 5 GB viene terminato. Quando il comando termina, Claude Code legge l'output da quel file, fino alla finestra di lettura descritta di seguito. Quanto dell'output raggiunge Claude inline dipende dal fatto che Claude Code tratti il risultato come un errore:179Claude Code trasmette l'output di un comando a un file di lavoro mentre il comando viene eseguito; un comando il cui output supera 5 GB viene terminato. Quando il comando termina, Claude Code legge l'output da quel file, fino alla finestra di lettura descritta di seguito. Quanto dell'output raggiunge Claude inline dipende dal fatto che Claude Code tratti il risultato come un errore:

180 180 

181| Risultato | Cosa ottiene Claude |181| Risultato | Cosa ottiene Claude |

182| :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |182| :-------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

183| Valido | Inline fino a circa 30.000 caratteri per impostazione predefinita; oltre quello, il percorso di un file salvato nella directory della sessione e troncato oltre 64 MiB, più un breve anteprima dall'inizio, e Claude legge o cerca il file quando ha bisogno del resto |183| Valido | Inline fino a circa 30.000 caratteri per impostazione predefinita; oltre quello, il percorso di un file salvato nella directory della sessione e troncato oltre 64 MiB, più un'anteprima fino ai primi 2.000 caratteri, e Claude legge o cerca il file quando ha bisogno del resto |

184| Errore | Inline fino a circa 10.000 caratteri; oltre quello, un estratto testa-coda di quella dimensione ricavato dalla finestra di lettura, senza percorso del file |184| Errore | Inline fino a circa 10.000 caratteri; oltre quello, un estratto testa-coda di quella dimensione ricavato dalla finestra di lettura, senza percorso del file |

185 185 

186Un comando che esce con codice 1 conta come risultato valido per lo strumento Bash solo quando Claude Code riconosce il codice di uscita 1 come un risultato benigno per quel comando: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test`, e `[`, più `git diff` e `git grep`. Ogni altro comando che esce con codice 1 conta come errore, anche quando il codice di uscita 1 è un risultato informativo benigno: nessuna corrispondenza per `pgrep` e `jq -e`, file che differiscono per `cmp`.186Un comando che esce con codice 1 conta come risultato valido per lo strumento Bash solo quando Claude Code riconosce il codice di uscita 1 come un risultato benigno per quel comando: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test`, e `[`, più `git diff` e `git grep`. Ogni altro comando che esce con codice 1 conta come errore, anche quando il codice di uscita 1 è un risultato informativo benigno: nessuna corrispondenza per `pgrep` e `jq -e`, file che differiscono per `cmp`.


221* `mcp`: [server MCP](/docs/it/mcp) locali221* `mcp`: [server MCP](/docs/it/mcp) locali

222* `lsp`: [language server](#lsp-tool-behavior)222* `lsp`: [language server](#lsp-tool-behavior)

223* `hooks`: comandi [hook](/docs/it/hooks)223* `hooks`: comandi [hook](/docs/it/hooks)

224* `plugin`: comandi che i [plugin](/docs/it/plugins) eseguono224* `plugin`: comandi che i [plugin](/docs/it/plugins/overview) eseguono

225* `helper`: comandi helper di Claude Code, come `git`225* `helper`: comandi helper di Claude Code, come `git`

226* `agent`: processi Claude Code figlio, come [agent teammate](/docs/it/agent-teams)226* `agent`: processi Claude Code figlio, come [agent teammate](/docs/it/agent-teams)

227 227 


344* Trovare implementazioni di un'interfaccia344* Trovare implementazioni di un'interfaccia

345* Tracciare gerarchie di chiamate345* Tracciare gerarchie di chiamate

346 346 

347Claude Code mantiene lo strumento inattivo finché non installate un [plugin di code intelligence](/docs/it/discover-plugins#code-intelligence) per il vostro linguaggio. Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), Claude Code non avvia i language server dei plugin, quindi lo strumento LSP rimane inattivo lì. Claude Code prende la configurazione del language server dal plugin e installate il binario del server voi stessi.347Claude Code mantiene lo strumento inattivo finché non installate un [plugin di code intelligence](/docs/it/plugins/code-intelligence) per il vostro linguaggio. Nelle [sessioni cloud](/docs/it/claude-code-on-the-web), Claude Code non avvia i language server dei plugin, quindi lo strumento LSP rimane inattivo lì. Claude Code prende la configurazione del language server dal plugin e installate il binario del server voi stessi.

348 348 

349Claude Code restituisce un risultato di errore per ogni chiamata LSP su un file il cui language server non riesce ad avviare.349Claude Code restituisce un risultato di errore per ogni chiamata LSP su un file il cui language server non riesce ad avviare.

350 350 


376 376 

377Lo strumento non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Non è disponibile nemmeno quando `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` è impostato.377Lo strumento non è disponibile su Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry. Non è disponibile nemmeno quando `DISABLE_TELEMETRY` o `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` è impostato.

378 378 

379I plugin possono dichiarare monitor che si avviano automaticamente quando il plugin è attivo, invece di chiedere a Claude di avviarli. Vedi [plugin monitors](/docs/it/plugins-reference#monitors).379I plugin possono dichiarare monitor che si avviano automaticamente quando il plugin è attivo, invece di chiedere a Claude di avviarli. Vedi [plugin monitors](/docs/it/plugins/components#monitors).

380 380 

381<h3 id="websocket-source">381<h3 id="websocket-source">

382 WebSocket source382 WebSocket source

vs-code.md +2 −2

Details

331 Gestire i plugin331 Gestire i plugin

332</h2>332</h2>

333 333 

334L'estensione VS Code include un'interfaccia grafica per installare e gestire i [plugin](/docs/it/plugins). Digitate `/plugins` nella casella del prompt per aprire l'interfaccia **Manage plugins**.334L'estensione VS Code include un'interfaccia grafica per installare e gestire i [plugin](/docs/it/plugins/overview). Digitate `/plugins` nella casella del prompt per aprire l'interfaccia **Manage plugins**.

335 335 

336<h3 id="install-plugins">336<h3 id="install-plugins">

337 Installare i plugin337 Installare i plugin


394 La gestione dei plugin in VS Code utilizza gli stessi comandi CLI dietro le quinte. I plugin e i marketplace che configurate nell'estensione sono disponibili anche nella CLI, e viceversa.394 La gestione dei plugin in VS Code utilizza gli stessi comandi CLI dietro le quinte. I plugin e i marketplace che configurate nell'estensione sono disponibili anche nella CLI, e viceversa.

395</Note>395</Note>

396 396 

397Per ulteriori informazioni sul sistema dei plugin, consultate [Plugins](/docs/it/plugins) e [Plugin marketplaces](/docs/it/plugin-marketplaces).397Per ulteriori informazioni sul sistema dei plugin, consultate [Plugins](/docs/it/plugins/overview) e [Plugin marketplaces](/docs/it/plugins/overview).

398 398 

399<h2 id="automate-browser-tasks-with-chrome">399<h2 id="automate-browser-tasks-with-chrome">

400 Automatizzare attività del browser con Chrome400 Automatizzare attività del browser con Chrome

Details

116 └── my-tool116 └── my-tool

117 ```117 ```

118 118 

119 <a className="digest-feature-link" href="/docs/it/plugins-reference#file-locations-reference">Riferimento plugin</a>119 <a className="digest-feature-link" href="/docs/it/plugins/manifest-reference#standard-layout">Riferimento plugin</a>

120</div>120</div>

121 121 

122<div className="digest-wins">122<div className="digest-wins">

Details

104 <div>Le build native macOS e Linux sostituiscono gli strumenti <code>Glob</code> e <code>Grep</code> con <code>bfs</code> e <code>ugrep</code> incorporati disponibili tramite Bash, per ricerche più veloci senza un round-trip di strumento separato</div>104 <div>Le build native macOS e Linux sostituiscono gli strumenti <code>Glob</code> e <code>Grep</code> con <code>bfs</code> e <code>ugrep</code> incorporati disponibili tramite Bash, per ricerche più veloci senza un round-trip di strumento separato</div>

105 <div><code>--from-pr</code> ora accetta URL di richiesta di unione GitLab, richiesta pull Bitbucket e URL PR GitHub Enterprise oltre a github.com</div>105 <div><code>--from-pr</code> ora accetta URL di richiesta di unione GitLab, richiesta pull Bitbucket e URL PR GitHub Enterprise oltre a github.com</div>

106 <div>Modalità Auto: includete <code>"\$defaults"</code> in <a href="/docs/it/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code>, o <code>environment</code></a> per aggiungere regole personalizzate insieme all'elenco incorporato invece di sostituirlo</div>106 <div>Modalità Auto: includete <code>"\$defaults"</code> in <a href="/docs/it/auto-mode-config"><code>autoMode.allow</code>, <code>soft\_deny</code>, o <code>environment</code></a> per aggiungere regole personalizzate insieme all'elenco incorporato invece di sostituirlo</div>

107 <div>Il nuovo comando <a href="/docs/it/plugin-dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> crea tag git di rilascio per i plugin con convalida della versione</div>107 <div>Il nuovo comando <a href="/docs/it/plugins/dependencies#tag-plugin-releases-for-version-resolution"><code>claude plugin tag</code></a> crea tag git di rilascio per i plugin con convalida della versione</div>

108 <div>Le sessioni Opus 4.7 ora calcolano rispetto alla finestra di contesto nativa di 1M del modello, correggendo le percentuali <code>/context</code> gonfiate e l'autocompattazione prematura</div>108 <div>Le sessioni Opus 4.7 ora calcolano rispetto alla finestra di contesto nativa di 1M del modello, correggendo le percentuali <code>/context</code> gonfiate e l'autocompattazione prematura</div>

109 <div><code>/resume</code> su sessioni di grandi dimensioni è fino al 67% più veloce e ora offre di riassumere sessioni grandi e obsolete prima di rileggere</div>109 <div><code>/resume</code> su sessioni di grandi dimensioni è fino al 67% più veloce e ora offre di riassumere sessioni grandi e obsolete prima di rileggere</div>

110 </div>110 </div>

Details

24 claude --plugin-url https://example.com/my-plugin.zip24 claude --plugin-url https://example.com/my-plugin.zip

25 ```25 ```

26 26 

27 <a className="digest-feature-link" href="/docs/it/plugins">Guida ai plugin</a>27 <a className="digest-feature-link" href="/docs/it/plugins/overview">Guida ai plugin</a>

28</div>28</div>

29 29 

30<div className="digest-feature">30<div className="digest-feature">

Details

59 > /plugin list --enabled59 > /plugin list --enabled

60 ```60 ```

61 61 

62 <a className="digest-feature-link" href="/docs/it/plugins-reference#plugin-list">Comandi dei plugin</a>62 <a className="digest-feature-link" href="/docs/it/plugins/cli-reference#plugin-list">Comandi dei plugin</a>

63</div>63</div>

64 64 

65<div className="digest-feature">65<div className="digest-feature">

Details

86 <div className="digest-wins-grid">86 <div className="digest-wins-grid">

87 <div>L'estensione VS Code ottiene <a href="/docs/it/vs-code#extension-settings">Focus view</a>, che nasconde l'attività dello strumento dietro una riga espandibile per turno; attivatela dal menu dei comandi o con <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> su Mac)</div>87 <div>L'estensione VS Code ottiene <a href="/docs/it/vs-code#extension-settings">Focus view</a>, che nasconde l'attività dello strumento dietro una riga espandibile per turno; attivatela dal menu dei comandi o con <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> su Mac)</div>

88 <div>I file di credenziali Sandbox accettano <a href="/docs/it/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> su Linux e WSL2, quindi i comandi in sandbox leggono una copia sentinella mentre il proxy sandbox sostituisce il valore reale all'uscita; il mascheramento delle credenziali guadagna anche opzioni <code>extract</code>, <code>decode</code> consapevole di JWT, e re-firma AWS SigV4</div>88 <div>I file di credenziali Sandbox accettano <a href="/docs/it/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> su Linux e WSL2, quindi i comandi in sandbox leggono una copia sentinella mentre il proxy sandbox sostituisce il valore reale all'uscita; il mascheramento delle credenziali guadagna anche opzioni <code>extract</code>, <code>decode</code> consapevole di JWT, e re-firma AWS SigV4</div>

89 <div>I marketplace possono distribuire un plugin come <a href="/docs/it/plugin-marketplaces#zip-archives">archivio zip</a> con la nuova fonte <code>archive</code>, scaricato su HTTPS con un pin SHA-256 opzionale, quindi gli install funzionano senza git o npm</div>89 <div>I marketplace possono distribuire un plugin come <a href="/docs/it/plugins/marketplace-reference#archive-plugin-source">archivio zip</a> con la nuova fonte <code>archive</code>, scaricato su HTTPS con un pin SHA-256 opzionale, quindi gli install funzionano senza git o npm</div>

90 <div><code>/review</code> è ora un alias di <a href="/docs/it/code-review#review-a-diff-locally"><code>/code-review</code></a>, e <code>/code-review</code> senza livello di sforzo riutilizza il livello che avete digitato per ultimo</div>90 <div><code>/review</code> è ora un alias di <a href="/docs/it/code-review#review-a-diff-locally"><code>/code-review</code></a>, e <code>/code-review</code> senza livello di sforzo riutilizza il livello che avete digitato per ultimo</div>

91 <div>Una sessione che copiate con <a href="/docs/it/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> ora effettua le sue modifiche al codice in un worktree proprio invece del checkout della sessione originale</div>91 <div>Una sessione che copiate con <a href="/docs/it/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> ora effettua le sue modifiche al codice in un worktree proprio invece del checkout della sessione originale</div>

92 <div>I plugin che installate da <a href="/docs/it/discover-plugins#install-plugins"><code>/plugin</code></a> si attivano nella sessione corrente quando è sicuro farlo; il riepilogo dell'installazione segnala <code>Plugin is now active.</code> o vi dice di eseguire <code>/reload-plugins</code></div>92 <div>I plugin che installate da <a href="/docs/it/plugins/install#install-a-plugin"><code>/plugin</code></a> si attivano nella sessione corrente quando è sicuro farlo; il riepilogo dell'installazione segnala <code>Plugin is now active.</code> o vi dice di eseguire <code>/reload-plugins</code></div>

93 <div>Le <a href="/docs/it/agent-view#how-file-edits-are-isolated">sessioni in background</a> che hanno modificato il codice in un worktree ora eseguono il commit e il push prima di terminare, aprono una richiesta pull in bozza solo quando l'attività lo richiede, e seguono le istruzioni git nel vostro <code>CLAUDE.md</code></div>93 <div>Le <a href="/docs/it/agent-view#how-file-edits-are-isolated">sessioni in background</a> che hanno modificato il codice in un worktree ora eseguono il commit e il push prima di terminare, aprono una richiesta pull in bozza solo quando l'attività lo richiede, e seguono le istruzioni git nel vostro <code>CLAUDE.md</code></div>

94 <div>Il limite di 200 subagent per sessione viene rimosso, quindi le sessioni di lunga durata non rifiutano più i nuovi subagent; i limiti di <a href="/docs/it/sub-agents#concurrent-subagent-limit">concorrenza</a> e profondità si applicano ancora</div>94 <div>Il limite di 200 subagent per sessione viene rimosso, quindi le sessioni di lunga durata non rifiutano più i nuovi subagent; i limiti di <a href="/docs/it/sub-agents#concurrent-subagent-limit">concorrenza</a> e profondità si applicano ancora</div>

95 <div>Le impostazioni archiviate di un repository non possono più attivare <a href="/docs/it/remote-control#enable-remote-control-for-all-sessions">Remote Control auto-connect</a>; impostate <code>remoteControlAtStartup</code> nelle vostre impostazioni utente o gestite, e le impostazioni di progetto e locali possono solo disattivarla</div>95 <div>Le impostazioni archiviate di un repository non possono più attivare <a href="/docs/it/remote-control#enable-remote-control-for-all-sessions">Remote Control auto-connect</a>; impostate <code>remoteControlAtStartup</code> nelle vostre impostazioni utente o gestite, e le impostazioni di progetto e locali possono solo disattivarla</div>

Details

72 <div className="digest-wins-grid">72 <div className="digest-wins-grid">

73 <div>Digita <code>@</code> nel prompt per <a href="/docs/it/cross-session-messaging#message-another-session">menzionare un'altra sessione Claude</a> per nome, e Claude la messaggerizza direttamente con <code>SendMessage</code>; un nome semplice che corrisponde esattamente a una sessione live ora viene consegnato senza un passaggio di conferma</div>73 <div>Digita <code>@</code> nel prompt per <a href="/docs/it/cross-session-messaging#message-another-session">menzionare un'altra sessione Claude</a> per nome, e Claude la messaggerizza direttamente con <code>SendMessage</code>; un nome semplice che corrisponde esattamente a una sessione live ora viene consegnato senza un passaggio di conferma</div>

74 <div>Le sessioni interattive su una macchina mantengono <a href="/docs/it/cross-session-messaging#see-which-sessions-claude-can-reach">nomi univoci</a>: se avvii o rinomini una sessione con un nome che un'altra sessione live già utilizza, Claude Code ti dà una variante <code>name-word-word</code> e te lo comunica</div>74 <div>Le sessioni interattive su una macchina mantengono <a href="/docs/it/cross-session-messaging#see-which-sessions-claude-can-reach">nomi univoci</a>: se avvii o rinomini una sessione con un nome che un'altra sessione live già utilizza, Claude Code ti dà una variante <code>name-word-word</code> e te lo comunica</div>

75 <div>I marketplace dei plugin accettano <a href="/docs/it/plugin-marketplaces#command-sources">fonti <code>command</code></a>: un comando locale stampa la directory del plugin, che Claude Code ri-risolve ogni sessione e applica senza un riavvio</div>75 <div>I marketplace dei plugin accettano <a href="/docs/it/plugins/marketplace-reference#command-plugin-source">fonti <code>command</code></a>: un comando locale stampa la directory del plugin, che Claude Code ri-risolve ogni sessione e applica senza un riavvio</div>

76 <div>Su Linux e WSL, imposta <a href="/docs/it/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> a una dimensione come <code>4G</code> per limitare la memoria che i comandi dello strumento Bash e PowerShell possono utilizzare</div>76 <div>Su Linux e WSL, imposta <a href="/docs/it/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> a una dimensione come <code>4G</code> per limitare la memoria che i comandi dello strumento Bash e PowerShell possono utilizzare</div>

77 <div>Gli strumenti di tracciamento delle attività, come <code>TaskCreate</code>, <code>TaskUpdate</code> e <code>TodoWrite</code>, sono <a href="/docs/it/tools-reference#task-tool-availability">non più disponibili su Opus 4.8, Sonnet 5, Fable 5, Mythos 5 e modelli successivi in quelle famiglie</a>; imposta <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> per riattivarli</div>77 <div>Gli strumenti di tracciamento delle attività, come <code>TaskCreate</code>, <code>TaskUpdate</code> e <code>TodoWrite</code>, sono <a href="/docs/it/tools-reference#task-tool-availability">non più disponibili su Opus 4.8, Sonnet 5, Fable 5, Mythos 5 e modelli successivi in quelle famiglie</a>; imposta <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> per riattivarli</div>

78 <div><a href="/docs/it/code-review#review-a-diff-locally"><code>/code-review</code></a> a livello di sforzo alto, xhigh e max ora viene eseguito in un agente di background come gli altri livelli</div>78 <div><a href="/docs/it/code-review#review-a-diff-locally"><code>/code-review</code></a> a livello di sforzo alto, xhigh e max ora viene eseguito in un agente di background come gli altri livelli</div>

79 <div><a href="/docs/it/discover-plugins#install-plugins"><code>/plugin install plugin\@marketplace</code></a> aggiorna prima il marketplace, quindi i plugin appena pubblicati si installano senza un aggiornamento manuale del marketplace</div>79 <div><a href="/docs/it/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> aggiorna prima il marketplace, quindi i plugin appena pubblicati si installano senza un aggiornamento manuale del marketplace</div>

80 <div>Le impostazioni accettano <a href="/docs/it/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> e <code>allowedMarketplaces</code></a> come alias per <code>extraKnownMarketplaces</code> e <code>strictKnownMarketplaces</code></div>80 <div>Le impostazioni accettano <a href="/docs/it/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> e <code>allowedMarketplaces</code></a> come alias per <code>extraKnownMarketplaces</code> e <code>strictKnownMarketplaces</code></div>

81 <div>Su modelli più recenti, Claude può <a href="/docs/it/tools-reference#write-tool-behavior">sovrascrivere un file esistente con lo strumento Write</a> senza leggerlo prima in questa sessione, corrispondendo alle regole dello strumento Edit; i modelli più vecchi richiedono la lettura</div>81 <div>Su modelli più recenti, Claude può <a href="/docs/it/tools-reference#write-tool-behavior">sovrascrivere un file esistente con lo strumento Write</a> senza leggerlo prima in questa sessione, corrispondendo alle regole dello strumento Edit; i modelli più vecchi richiedono la lettura</div>

82 <div>L'estensione VS Code può <a href="/docs/it/vs-code#organize-sessions-into-groups">organizzare l'elenco delle sessioni in gruppi</a>: fai clic con il pulsante destro del mouse per creare, rinominare o eliminare un gruppo, e Cmd/Ctrl- o Shift-click per spostare più sessioni contemporaneamente</div>82 <div>L'estensione VS Code può <a href="/docs/it/vs-code#organize-sessions-into-groups">organizzare l'elenco delle sessioni in gruppi</a>: fai clic con il pulsante destro del mouse per creare, rinominare o eliminare un gruppo, e Cmd/Ctrl- o Shift-click per spostare più sessioni contemporaneamente</div>

Details

54 54 

55 <div className="digest-wins-grid">55 <div className="digest-wins-grid">

56 <div>Impostate <a href="/docs/it/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> al livello superiore o per modello sotto <code>modelSettings</code> per limitare il livello di sforzo su ogni provider, inclusi Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry; qualsiasi livello superiore viene eseguito al limite</div>56 <div>Impostate <a href="/docs/it/settings-reference#maxeffortlevel"><code>maxEffortLevel</code></a> al livello superiore o per modello sotto <code>modelSettings</code> per limitare il livello di sforzo su ogni provider, inclusi Amazon Bedrock, Google Cloud's Agent Platform e Microsoft Foundry; qualsiasi livello superiore viene eseguito al limite</div>

57 <div>Puntate `--plugin-dir` a una cartella di plugin per <a href="/docs/it/plugins#test-your-plugins-locally">caricare ogni sottocartella immediata che ha un manifest</a></div>57 <div>Puntate `--plugin-dir` a una cartella di plugin per <a href="/docs/it/plugins/create#load-a-directory-or-archive-for-one-session">caricare ogni sottocartella immediata che ha un manifest</a></div>

58 <div>Se WebFetch non ha finito di scaricare una pagina entro cinque minuti, <a href="/docs/it/tools-reference#webfetch-tool-behavior">il fetch fallisce con un errore di deadline</a> invece di bloccarsi; impostate <code>CLAUDE\_CODE\_WEBFETCH\_DEADLINE\_MS</code> per cambiare la deadline, o a <code>0</code> per rimuovere il limite</div>58 <div>Se WebFetch non ha finito di scaricare una pagina entro cinque minuti, <a href="/docs/it/tools-reference#webfetch-tool-behavior">il fetch fallisce con un errore di deadline</a> invece di bloccarsi; impostate <code>CLAUDE\_CODE\_WEBFETCH\_DEADLINE\_MS</code> per cambiare la deadline, o a <code>0</code> per rimuovere il limite</div>

59 <div>Passate `--json` a <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> o <code>disable</code> per stampare il risultato come <a href="/docs/it/plugins-reference#plugin-json-result">un oggetto JSON su l'ultima riga di stdout</a></div>59 <div>Passate `--json` a <code>claude plugin install</code>, <code>uninstall</code>, <code>update</code>, <code>enable</code> o <code>disable</code> per stampare il risultato come <a href="/docs/it/plugins/cli-reference#plugin-json-result">un oggetto JSON su l'ultima riga di stdout</a></div>

60 <div>Quando il classificatore della modalità automatica blocca un'azione, il motivo che Claude riceve <a href="/docs/it/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">di solito nomina la regola che corrisponde</a>, come <code>\[Data Exfiltration]</code></div>60 <div>Quando il classificatore della modalità automatica blocca un'azione, il motivo che Claude riceve <a href="/docs/it/auto-mode-config#fix-a-denial-with-an-allow-rule-an-environment-entry-or-a-retry">di solito nomina la regola che corrisponde</a>, come <code>\[Data Exfiltration]</code></div>

61 <div>Quando digitate <code>/</code> a metà di un prompt, potete ora scegliere da <a href="/docs/it/interactive-mode#complete-a-command-mid-prompt">un elenco di comandi corrispondenti</a> invece di un singolo suggerimento. L'elenco si apre mentre digitate nel rendering a schermo intero. Una skill di plugin corrisponde anche al suo nome senza il prefisso del plugin</div>61 <div>Quando digitate <code>/</code> a metà di un prompt, potete ora scegliere da <a href="/docs/it/interactive-mode#complete-a-command-mid-prompt">un elenco di comandi corrispondenti</a> invece di un singolo suggerimento. L'elenco si apre mentre digitate nel rendering a schermo intero. Una skill di plugin corrisponde anche al suo nome senza il prefisso del plugin</div>

62 <div>Nell'estensione VS Code, fate clic sul conteggio degli agenti in fondo alla casella del prompt per aprire la <a href="/docs/it/vs-code#use-the-prompt-box">mappa degli agenti</a>, dove potete aprire la trascrizione di sola lettura di un subagente o fermarlo</div>62 <div>Nell'estensione VS Code, fate clic sul conteggio degli agenti in fondo alla casella del prompt per aprire la <a href="/docs/it/vs-code#use-the-prompt-box">mappa degli agenti</a>, dove potete aprire la trascrizione di sola lettura di un subagente o fermarlo</div>

workflows.md +1 −1

Details

239 Distribuire un flusso di lavoro in un plugin239 Distribuire un flusso di lavoro in un plugin

240</h3>240</h3>

241 241 

242Per condividere un flusso di lavoro tra team o repository, includilo in un [plugin](/docs/it/plugins). Posiziona lo script in una directory `workflows/` alla radice del plugin, o punta a una posizione diversa con il [`workflows` campo del manifest](/docs/it/plugins-reference#component-path-fields).242Per condividere un flusso di lavoro tra team o repository, includilo in un [plugin](/docs/it/plugins/overview). Posiziona lo script in una directory `workflows/` alla radice del plugin, o punta a una posizione diversa con il [`workflows` campo del manifest](/docs/it/plugins/manifest-reference#fields).

243 243 

244I flussi di lavoro del plugin sono nello spazio dei nomi del nome del plugin. Un plugin chiamato `acme-tools` che contiene uno script il cui `meta.name` è `release-audit` viene eseguito come `/acme-tools:release-audit`.244I flussi di lavoro del plugin sono nello spazio dei nomi del nome del plugin. Un plugin chiamato `acme-tools` che contiene uno script il cui `meta.name` è `release-audit` viene eseguito come `/acme-tools:release-audit`.

245 245 

worktrees.md +3 −1

Details

256Un worktree ottiene i suoi propri file e branch, ma condivide quanto segue con il checkout principale:256Un worktree ottiene i suoi propri file e branch, ma condivide quanto segue con il checkout principale:

257 257 

258* **La directory `.git` del repository**: i comandi git in un worktree scrivono nella directory `.git` condivisa del repository principale, e il [sandboxing](/docs/it/sandboxing#filesystem-isolation) consente quelle scritture, quindi comandi come `git commit` funzionano da dentro un worktree con la sandbox abilitata.258* **La directory `.git` del repository**: i comandi git in un worktree scrivono nella directory `.git` condivisa del repository principale, e il [sandboxing](/docs/it/sandboxing#filesystem-isolation) consente quelle scritture, quindi comandi come `git commit` funzionano da dentro un worktree con la sandbox abilitata.

259* **Plugin**: i plugin installati a [ambito del progetto](/docs/it/plugins-reference#plugin-installation-scopes) dal checkout principale caricano anche nei worktree dello stesso repository, quindi non è necessario reinstallarli per ogni worktree. Richiede Claude Code v2.1.200 o successivo.259* **Plugin**: i plugin installati a [ambito del progetto](/docs/it/plugins/loading#find-where-a-plugin-is-enabled) dal checkout principale caricano anche nei worktree dello stesso repository, quindi non è necessario reinstallarli per ogni worktree. Richiede Claude Code v2.1.200 o successivo.

260* **Approvazioni di permesso**: scegliere "Sì, e non chiedere di nuovo" per un comando Bash in una sessione di worktree salva la regola nel `.claude/settings.local.json` del checkout principale, quindi si applica nel checkout principale e in ogni altro worktree del repository, e sopravvive alla rimozione del worktree. Su Windows e negli altri casi in cui Claude Code [non utilizza la radice del repository](/docs/it/settings#where-claude-code-looks-for-each-file), la regola rimane con quel worktree. Prima della v2.1.211, un'approvazione concessa in un worktree era salvata all'interno di quel worktree, non si applicava altrove, e era persa quando il worktree era rimosso. Vedere [dove le approvazioni sono salvate](/docs/it/permissions#permission-system).260* **Approvazioni di permesso**: scegliere "Sì, e non chiedere di nuovo" per un comando Bash in una sessione di worktree salva la regola nel `.claude/settings.local.json` del checkout principale, quindi si applica nel checkout principale e in ogni altro worktree del repository, e sopravvive alla rimozione del worktree. Su Windows e negli altri casi in cui Claude Code [non utilizza la radice del repository](/docs/it/settings#where-claude-code-looks-for-each-file), la regola rimane con quel worktree. Prima della v2.1.211, un'approvazione concessa in un worktree era salvata all'interno di quel worktree, non si applicava altrove, e era persa quando il worktree era rimosso. Vedere [dove le approvazioni sono salvate](/docs/it/permissions#permission-system).

261* **Skill, agenti e comandi non tracciati**: quando il checkout del worktree non ha una directory `.claude/skills` alla sua radice, ad esempio perché il vostro `.claude/skills` è gitignored, Claude Code carica le [skill del progetto](/docs/it/skills#where-skills-live) del checkout principale nella sessione del worktree. In un worktree con la sua propria directory `.claude/skills`, carica solo quella copia.261* **Skill, agenti e comandi non tracciati**: quando il checkout del worktree non ha una directory `.claude/skills` alla sua radice, ad esempio perché il vostro `.claude/skills` è gitignored, Claude Code carica le [skill del progetto](/docs/it/skills#where-skills-live) del checkout principale nella sessione del worktree. In un worktree con la sua propria directory `.claude/skills`, carica solo quella copia.

262 262 


330 330 

331Abbinarlo a un hook `WorktreeRemove` per pulire quando la sessione termina. Vedere il [riferimento degli hook](/docs/it/hooks#worktreecreate) per lo schema di input e un esempio di rimozione.331Abbinarlo a un hook `WorktreeRemove` per pulire quando la sessione termina. Vedere il [riferimento degli hook](/docs/it/hooks#worktreecreate) per lo schema di input e un esempio di rimozione.

332 332 

333Un hook `WorktreeCreate` vi consente anche di eseguire [`/batch`](/docs/it/commands#all-commands) al di fuori di un repository git. Ogni subagent `/batch` pubblica quindi la sua modifica con i comandi di controllo versione del vostro progetto e, quando non riesce ad aprire una pull request, segnala invece ciò che ha pubblicato. L'esecuzione di `/batch` al di fuori di un repository git richiede Claude Code v2.1.281 o versione successiva.

334 

333<h2 id="troubleshooting">335<h2 id="troubleshooting">

334 Risoluzione dei problemi336 Risoluzione dei problemi

335</h2>337</h2>

Details

66| Funzionalità | Motivo |66| Funzionalità | Motivo |

67| ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |67| ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |

68| [Cloud sessions](/docs/it/claude-code-on-the-web), incluse quelle avviate dall'[app Desktop](/docs/it/desktop#cloud-sessions) | Richiede l'archiviazione lato server dei dati di sessione, inclusa la cronologia delle conversazioni con prompt e completamenti. |68| [Cloud sessions](/docs/it/claude-code-on-the-web), incluse quelle avviate dall'[app Desktop](/docs/it/desktop#cloud-sessions) | Richiede l'archiviazione lato server dei dati di sessione, inclusa la cronologia delle conversazioni con prompt e completamenti. |

69| [Claude Tag](/docs/it/claude-tag) | Conserva la memoria del canale e le trascrizioni della sessione. |69| [Claude Tag](https://claude.com/docs/claude-tag) | Conserva la memoria del canale e le trascrizioni della sessione. |

70| [Artifacts](/docs/it/artifacts) | Richiede l'archiviazione del contenuto della pagina pubblicata sull'infrastruttura gestita da Anthropic. |70| [Artifacts](/docs/it/artifacts) | Richiede l'archiviazione del contenuto della pagina pubblicata sull'infrastruttura gestita da Anthropic. |

71| Invio di feedback (`/feedback`, `/bug`, `/share`) | L'invio di feedback invia i dati della conversazione ad Anthropic. |71| Invio di feedback (`/feedback`, `/bug`, `/share`) | L'invio di feedback invia i dati della conversazione ad Anthropic. |

72| [Remote Control](/docs/it/remote-control) | Archivia la trascrizione della sessione sui server Anthropic per sincronizzare la conversazione tra i dispositivi. |72| [Remote Control](/docs/it/remote-control) | Archivia la trascrizione della sessione sui server Anthropic per sincronizzare la conversazione tra i dispositivi. |