Un 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 (repository git, percorsi locali e altro). Questa guida ti mostra come creare il tuo marketplace per condividere plugin con il tuo team o comunità. Stai cercando di installare plugin da un marketplace esistente? Vedi Scopri e installa plugin precostruiti.Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Panoramica
La creazione e la distribuzione di un marketplace comporta:- 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 per i dettagli su come crearli.
- Creazione di un file marketplace: definisci un
marketplace.jsonche elenca i tuoi plugin e dove trovarli (vedi Crea il file marketplace). - Ospita il marketplace: esegui il push su GitHub, GitLab o un altro host git (vedi Ospita e distribuisci marketplace).
- Condividi con gli utenti: gli utenti aggiungono il tuo marketplace con
/plugin marketplace adde installano singoli plugin (vedi Scopri e installa plugin).
/plugin marketplace update.
Procedura dettagliata: creare un marketplace locale
Questo esempio crea un marketplace con un plugin: una skillquality-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.
Crea la skill
Crea un file
SKILL.md che definisce cosa fa la skill quality-review.my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md
Crea il manifest del plugin
Crea un file
plugin.json che descrive il plugin. Il manifest va nella directory .claude-plugin/.my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json
Impostare
version significa che gli utenti ricevono aggiornamenti solo quando modifichi questo campo, quindi incrementalo ad ogni rilascio. Se ometti version e ospiti questo marketplace in git, ogni commit conta automaticamente come una nuova versione. Vedi Risoluzione della versione per scegliere l’approccio giusto.Crea il file marketplace
Crea il catalogo marketplace che elenca il tuo plugin.
my-marketplace/.claude-plugin/marketplace.json
Come vengono installati i plugin: Quando gli utenti installano un plugin, Claude Code copia la directory del plugin in una posizione cache. Ciò significa che i plugin non possono fare riferimento a file al di fuori della loro directory utilizzando percorsi come
../shared-utils, perché quei file non verranno copiati.Se hai bisogno di condividere file tra plugin, usa symlink. Vedi Plugin caching and file resolution per i dettagli.Crea il file marketplace
Crea.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.
Ogni voce di plugin ha bisogno almeno di un name e di una source (da dove recuperarla). Vedi lo schema completo di seguito per tutti i campi disponibili.
Schema del marketplace
Campi obbligatori
| Campo | Tipo | Descrizione | Esempio |
|---|---|---|---|
name | string | Identificatore del marketplace (kebab-case, senza spazi). Questo è pubblico: gli utenti lo vedono quando installano plugin (ad esempio, /plugin install my-tool@your-marketplace). | "acme-tools" |
owner | object | Informazioni sul manutentore del marketplace (vedi i campi di seguito) | |
plugins | array | Elenco dei plugin disponibili | Vedi di seguito |
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, anthropic-marketplace, anthropic-plugins, agent-skills, anthropic-agent-skills, knowledge-work-plugins, life-sciences. Anche i nomi che impersonano marketplace ufficiali, come official-claude-plugins o anthropic-tools-v2, sono bloccati.Campi del proprietario
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
name | string | Sì | Nome del manutentore o del team |
email | string | No | Email di contatto per il manutentore |
Campi opzionali
| Campo | Tipo | Descrizione |
|---|---|---|
$schema | string | URL dello schema JSON per l’autocompletamento dell’editor e la convalida. Claude Code ignora questo campo al momento del caricamento. |
description | string | Breve descrizione del marketplace |
version | string | Versione del manifest del marketplace |
metadata.pluginRoot | string | Directory di base anteposta ai percorsi di fonte del plugin relativo (ad esempio, "./plugins" ti consente di scrivere "source": "formatter" invece di "source": "./plugins/formatter") |
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. |
description e version sono accettati anche sotto metadata per compatibilità con le versioni precedenti.
Voci di plugin
Ogni voce di plugin nell’arrayplugins descrive un plugin e dove trovarlo. Puoi includere qualsiasi campo dallo schema del manifest del plugin (come description, version, author, commands, hooks, ecc.), più questi campi specifici del marketplace: source, category, tags e strict.
Campi obbligatori
| Campo | Tipo | Descrizione |
|---|---|---|
name | string | Identificatore del plugin (kebab-case, senza spazi). Questo è pubblico: gli utenti lo vedono quando installano (ad esempio, /plugin install my-plugin@marketplace). |
source | string|object | Da dove recuperare il plugin (vedi Plugin sources di seguito) |
Campi di plugin opzionali
Campi di metadati standard:| Campo | Tipo | Descrizione |
|---|---|---|
displayName | string | Nome leggibile mostrato nelle superfici dell’interfaccia utente. Ritorna a name quando omesso. Può contenere spazi e qualsiasi maiuscola/minuscola. Non utilizzato per il namespacing o la ricerca. Richiede Claude Code v2.1.143 o successivo. |
description | string | Breve descrizione del plugin |
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. Ometti per tornare allo SHA del commit git. Vedi Version resolution. |
author | object | Informazioni sull’autore del plugin (name obbligatorio, email opzionale) |
homepage | string | URL della homepage o della documentazione del plugin |
repository | string | URL del repository del codice sorgente |
license | string | Identificatore di licenza SPDX (ad esempio, MIT, Apache-2.0) |
keywords | array | Tag per la scoperta e la categorizzazione dei plugin |
category | string | Categoria del plugin per l’organizzazione |
tags | array | Tag per la ricercabilità |
strict | boolean | Controlla se plugin.json è l’autorità per le definizioni dei componenti (predefinito: true). Vedi Strict mode di seguito. |
| Campo | Tipo | Descrizione |
|---|---|---|
skills | string|array | Percorsi personalizzati alle directory delle skill contenenti <name>/SKILL.md |
commands | string|array | Percorsi personalizzati ai file di skill flat .md o alle directory |
agents | string|array | Percorsi personalizzati ai file degli agenti |
hooks | string|object | Configurazione degli hook personalizzati o percorso al file degli hook |
mcpServers | string|object | Configurazioni del server MCP o percorso alla configurazione MCP |
lspServers | string|object | Configurazioni del server LSP o percorso alla configurazione LSP |
Plugin sources
Le plugin sources indicano a Claude Code dove recuperare ogni singolo plugin elencato nel tuo marketplace. Questi sono impostati nel camposource di ogni voce di plugin in marketplace.json.
Una volta che un plugin viene clonato o copiato nella macchina locale, viene copiato nella cache del plugin locale con versione in ~/.claude/plugins/cache.
| Source | Tipo | Campi | Note |
|---|---|---|---|
| Percorso relativo | string (ad es. "./my-plugin") | nessuno | Directory locale all’interno del repository del marketplace. Deve iniziare con ./. Risolto relativamente alla radice del marketplace, non alla directory .claude-plugin/ |
github | object | repo, ref?, sha? | |
url | object | url, ref?, sha? | Fonte URL Git |
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 |
npm | object | package, version?, registry? | Installato tramite npm install |
Marketplace sources vs plugin sources: Questi sono concetti diversi che controllano cose diverse.
- Marketplace source — dove recuperare il catalogo
marketplace.jsonstesso. Impostato quando gli utenti eseguono/plugin marketplace addo nelle impostazioniextraKnownMarketplaces. Supportaref(branch/tag) ma nonsha. - Plugin source — dove recuperare un singolo plugin elencato nel marketplace. Impostato nel campo
sourcedi ogni voce di plugin all’interno dimarketplace.json. Supporta siaref(branch/tag) chesha(commit esatto).
acme-corp/plugin-catalog (marketplace source) può elencare un plugin recuperato da acme-corp/code-formatter (plugin source). La marketplace source e la plugin source puntano a repository diversi e sono fissate indipendentemente.Percorsi relativi
Per i plugin nello stesso repository, usa un percorso che inizia con./:
.claude-plugin/. Nell’esempio sopra, ./plugins/my-plugin punta a <repo>/plugins/my-plugin, anche se marketplace.json si trova in <repo>/.claude-plugin/marketplace.json. Non usare ../ per fare riferimento a percorsi al di fuori della radice del marketplace.
I percorsi relativi funzionano solo quando gli utenti aggiungono il tuo marketplace tramite Git (GitHub, GitLab o URL git). Se gli utenti aggiungono il tuo marketplace tramite un URL diretto al file
marketplace.json, i percorsi relativi non si risolveranno correttamente. Per la distribuzione basata su URL, usa invece GitHub, npm o fonti URL git. Vedi Troubleshooting per i dettagli.Repository GitHub
| Campo | Tipo | Descrizione |
|---|---|---|
repo | string | Obbligatorio. Repository GitHub nel formato owner/repo |
ref | string | Opzionale. Branch o tag Git (predefinito al branch predefinito del repository) |
sha | string | Opzionale. SHA del commit git completo a 40 caratteri per fissare a una versione esatta |
Repository Git
| Campo | Tipo | Descrizione |
|---|---|---|
url | string | Obbligatorio. URL completo del repository git (https:// o git@). Il suffisso .git è opzionale, quindi gli URL di Azure DevOps e AWS CodeCommit senza il suffisso funzionano |
ref | string | Opzionale. Branch o tag Git (predefinito al branch predefinito del repository) |
sha | string | Opzionale. SHA del commit git completo a 40 caratteri per fissare a una versione esatta |
Sottodirectory Git
Usagit-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.
url accetta anche una scorciatoia GitHub (owner/repo) o URL SSH (git@github.com:owner/repo.git).
| Campo | Tipo | Descrizione |
|---|---|---|
url | string | Obbligatorio. URL del repository Git, scorciatoia GitHub owner/repo o URL SSH |
path | string | Obbligatorio. Percorso della sottodirectory all’interno del repo contenente il plugin (ad esempio, "tools/claude-plugin") |
ref | string | Opzionale. Branch o tag Git (predefinito al branch predefinito del repository) |
sha | string | Opzionale. SHA del commit git completo a 40 caratteri per fissare a una versione esatta |
Pacchetti npm
I plugin distribuiti come pacchetti npm vengono installati utilizzandonpm install. Questo funziona con qualsiasi pacchetto nel registro npm pubblico o in un registro privato ospitato dal tuo team.
version:
registry:
| Campo | Tipo | Descrizione |
|---|---|---|
package | string | Obbligatorio. Nome del pacchetto o pacchetto con scope (ad esempio, @org/plugin) |
version | string | Opzionale. Versione o intervallo di versione (ad esempio, 2.1.0, ^2.0.0, ~1.5.0) |
registry | string | Opzionale. URL del registro npm personalizzato. Predefinito al registro npm del sistema (tipicamente npmjs.org) |
Voci di plugin avanzate
Questo esempio mostra una voce di plugin che utilizza molti dei campi opzionali, inclusi percorsi personalizzati per comandi, agenti, hooks e server MCP:commandseagents: Puoi specificare più directory o singoli file. I percorsi sono relativi alla radice del plugin.${CLAUDE_PLUGIN_ROOT}: Usa questa variabile nelle configurazioni degli hook e del server MCP per fare riferimento ai file all’interno della directory di installazione del plugin. Questo è necessario perché i plugin vengono copiati in una posizione cache quando installati. Per le dipendenze o lo stato che dovrebbe sopravvivere agli aggiornamenti dei plugin, usa${CLAUDE_PLUGIN_DATA}invece.strict: false: Poiché è impostato su false, il plugin non ha bisogno del suoplugin.json. La voce del marketplace definisce tutto. Vedi Strict mode di seguito.
Strict mode
Il campostrict controlla se plugin.json è l’autorità per le definizioni dei componenti (skills, agenti, hooks, server MCP, stili di output).
| Valore | Comportamento |
|---|---|
true (predefinito) | plugin.json è l’autorità. La voce del marketplace può integrarla con componenti aggiuntivi e entrambe le fonti vengono unite. |
false | La voce del marketplace è la definizione completa. Se il plugin ha anche un plugin.json che dichiara componenti, è un conflitto e il plugin non riesce a caricarsi. |
strict: true: il plugin ha il suoplugin.jsone gestisce i suoi componenti. La voce del marketplace può aggiungere skill o hook extra in cima. Questo è il predefinito e funziona per la maggior parte dei plugin.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 questi file sono esposti come skill, agenti, hook, ecc. Utile quando il marketplace ristruttura o cura i componenti di un plugin diversamente da quanto previsto dall’autore del plugin.
Ospita e distribuisci marketplace
Ospita su GitHub (consigliato)
GitHub fornisce il metodo di distribuzione più semplice:- Crea un repository: Configura un nuovo repository per il tuo marketplace
- Aggiungi il file marketplace: Crea
.claude-plugin/marketplace.jsoncon le tue definizioni di plugin - Condividi con i team: Gli utenti aggiungono il tuo marketplace con
/plugin marketplace add owner/repo
Ospita su altri servizi git
Qualsiasi servizio di hosting git funziona, come GitLab, Bitbucket e server self-hosted. Gli utenti aggiungono con l’URL completo del repository:Repository privati
Claude Code supporta l’installazione di plugin da repository privati. Per l’installazione manuale e gli aggiornamenti, Claude Code utilizza i tuoi helper di credenziali git esistenti, quindi l’accesso HTTPS tramitegh auth login, Keychain di macOS o git-credential-store funziona come nel 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.
Gli aggiornamenti automatici in background vengono eseguiti all’avvio senza helper di credenziali, poiché i prompt interattivi bloccherebbero l’avvio di Claude Code. Per abilitare gli aggiornamenti automatici per i marketplace privati, imposta il token di autenticazione appropriato nel tuo ambiente:
| Provider | Variabili di ambiente | Note |
|---|---|---|
| GitHub | GITHUB_TOKEN o GH_TOKEN | Token di accesso personale o token di GitHub App |
| GitLab | GITLAB_TOKEN o GL_TOKEN | Token di accesso personale o token di progetto |
| Bitbucket | BITBUCKET_TOKEN | Password dell’app o token di accesso al repository |
.bashrc, .zshrc) o passalo quando esegui Claude Code:
Per gli ambienti CI/CD, configura il token come variabile di ambiente segreta. GitHub Actions fornisce automaticamente
GITHUB_TOKEN per i repository nella stessa organizzazione.Testa localmente prima della distribuzione
Testa il tuo marketplace localmente prima di condividerlo:Richiedi marketplace per il tuo team
Puoi configurare il tuo repository in modo che i membri del team vengano automaticamente invitati a installare il tuo marketplace quando fidano della cartella del progetto. Aggiungi il tuo marketplace a.claude/settings.json:
Se usi una fonte 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 viene archiviato una volta per utente in ~/.claude/plugins/known_marketplaces.json, non per progetto.Pre-popola plugin per i container
Per le immagini container e gli ambienti CI, puoi pre-popolare una directory di plugin al momento della compilazione in modo che Claude Code si avvii con marketplace e plugin già disponibili, senza clonare nulla al runtime. Imposta la variabile di ambienteCLAUDE_CODE_PLUGIN_SEED_DIR per puntare a questa directory.
Per stratificare più directory seed, separa i percorsi con : su Unix o ; su Windows. Claude Code cerca ogni directory in ordine e il primo seed che contiene un determinato marketplace o cache di plugin vince.
La directory seed rispecchia la struttura di ~/.claude/plugins:
~/.claude/plugins risultante nella tua immagine e punta CLAUDE_CODE_PLUGIN_SEED_DIR ad essa.
Per 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ì:
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.
All’avvio, Claude Code registra i marketplace trovati nel known_marketplaces.json del seed nella configurazione primaria e utilizza le cache dei plugin trovate sotto cache/ al posto senza ri-clonare. Questo funziona sia in modalità interattiva che in modalità non interattiva con il flag -p.
Dettagli del comportamento:
- Sola lettura: la directory seed non viene mai scritta. Gli aggiornamenti automatici sono disabilitati per i marketplace seed poiché git pull fallirebbe su un filesystem di sola lettura.
- Le voci seed hanno precedenza: i marketplace dichiarati nel seed sovrascrivono qualsiasi voce corrispondente nella configurazione dell’utente ad ogni avvio. Per rinunciare a un plugin seed, usa
/plugin disablepiuttosto che rimuovere il marketplace. - Risoluzione del percorso: Claude Code individua il contenuto del marketplace sondando
$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/al runtime, non fidandosi dei percorsi archiviati all’interno del JSON del seed. Ciò significa che il seed funziona correttamente anche quando montato in un percorso diverso da dove è stato compilato. - La mutazione è bloccata: l’esecuzione di
/plugin marketplace removeo/plugin marketplace updatesu un marketplace gestito da seed non riesce con una guida per chiedere al tuo amministratore di aggiornare l’immagine seed. - Compone con le impostazioni: se
extraKnownMarketplacesoenabledPluginsdichiarano un marketplace che esiste già nel seed, Claude Code utilizza la copia del seed invece di clonare.
Restrizioni del marketplace gestito
Per le organizzazioni che richiedono un controllo rigoroso sulle fonti dei plugin, gli amministratori possono limitare quali marketplace di plugin gli utenti possono aggiungere utilizzando l’impostazionestrictKnownMarketplaces nelle impostazioni gestite.
Quando strictKnownMarketplaces è configurato nelle impostazioni gestite, il comportamento della restrizione dipende dal valore:
| Valore | Comportamento |
|---|---|
| Non definito (predefinito) | Nessuna restrizione. Gli utenti possono aggiungere qualsiasi marketplace |
Array vuoto [] | Blocco completo. Gli utenti non possono aggiungere nuovi marketplace |
| Elenco di fonti | Gli utenti possono aggiungere solo marketplace che corrispondono esattamente all’elenco di autorizzazione |
Configurazioni comuni
Disabilita tutti gli aggiunte di marketplace:".*" come pathPattern per consentire qualsiasi percorso del filesystem controllando comunque le fonti di rete con hostPattern.
strictKnownMarketplaces limita ciò che gli utenti possono aggiungere, ma non registra i marketplace di per sé. Per rendere i marketplace consentiti disponibili automaticamente senza che gli utenti eseguano /plugin marketplace add, abbinalo a extraKnownMarketplaces nello stesso managed-settings.json. Vedi Usare entrambi insieme.Come funzionano le restrizioni
Le restrizioni vengono convalidate prima di qualsiasi operazione di rete o del filesystem. Il controllo viene eseguito all’aggiunta del marketplace e all’installazione, aggiornamento, aggiornamento e auto-aggiornamento del plugin. Se un marketplace è stato aggiunto prima della configurazione della policy e la sua fonte non corrisponde più all’elenco di autorizzazione, Claude Code rifiuta di installare o aggiornare i plugin da esso. Lo stesso controllo si applica ablockedMarketplaces.
L’elenco di autorizzazione utilizza la corrispondenza esatta per la maggior parte dei tipi di fonte. Affinché un marketplace sia consentito, tutti i campi specificati devono corrispondere esattamente:
- Per le fonti GitHub:
repoè obbligatorio erefopathdevono corrispondere anche se specificati nell’elenco di autorizzazione - Per le fonti URL: l’URL completo deve corrispondere esattamente
- Per le fonti
hostPattern: l’host del marketplace viene confrontato con il modello regex - Per le fonti
pathPattern: il percorso del filesystem del marketplace viene confrontato con il modello regex
.git o il modulo ssh:// rispetto a https:// vengono trattati 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 tutte le forme corrispondano.
Poiché strictKnownMarketplaces è impostato nelle impostazioni gestite, le configurazioni individuali degli utenti e dei progetti non possono ignorare queste restrizioni.
Per i dettagli di configurazione completi inclusi tutti i tipi di fonte supportati e il confronto con extraKnownMarketplaces, vedi il riferimento strictKnownMarketplaces.
Risoluzione della versione e canali di rilascio
Le 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.
Claude Code risolve la versione di un plugin dal primo di questi che è impostato:
versionnelplugin.jsondel pluginversionnella voce del marketplace del plugin- Lo SHA del commit git della fonte del plugin
github, url, git-subdir e i percorsi relativi all’interno di un marketplace ospitato su git, puoi omettere completamente version e ogni nuovo commit viene trattato come una nuova versione. Questa è la configurazione più semplice per i plugin interni o in fase di sviluppo attivo.
Configura i canali di rilascio
Per supportare i canali di rilascio “stable” e “latest” per i tuoi plugin, puoi configurare due marketplace che puntano a diversi ref o SHA dello stesso repo. Puoi quindi assegnare i due marketplace a diversi gruppi di utenti tramite impostazioni gestite.Esempio
Assegna i canali ai gruppi di utenti
Assegna ogni marketplace al gruppo di utenti appropriato tramite impostazioni gestite. Ad esempio, il gruppo stabile riceve:latest-tools:
Fissa le versioni delle dipendenze
Un plugin può vincolare le sue dipendenze a un intervallo semver in modo che gli aggiornamenti a una dipendenza non interrompano il plugin dipendente. Vedi Vincola le versioni delle dipendenze dei plugin per la convenzione del tag git{plugin-name}--v{version}, la sintassi dell’intervallo e come più vincoli sulla stessa dipendenza vengono combinati.
Validazione e test
Testa il tuo marketplace prima di condividerlo. Valida la sintassi JSON del tuo marketplace:Gestisci marketplace dalla CLI
Claude Code fornisce sottocomandiclaude plugin marketplace non interattivi per lo scripting e l’automazione. Questi sono equivalenti ai comandi /plugin marketplace disponibili in una sessione interattiva.
Plugin marketplace add
Aggiungi un marketplace da un repository GitHub, URL git, URL remoto o percorso locale.<source>: Scorciatoia GitHubowner/repo, URL git, URL remoto a un filemarketplace.jsono percorso di directory locale. Per fissare a un branch o tag, aggiungi@refalla scorciatoia GitHub o#refa un URL git
| Opzione | Descrizione | Predefinito |
|---|---|---|
--scope <scope> | Dove dichiarare il marketplace: user, project o local. Vedi Plugin installation scopes | user |
--sparse <paths...> | Limita il checkout a directory specifiche tramite git sparse-checkout. Utile per i monorepo |
owner/repo:
@ref:
marketplace.json direttamente:
.claude/settings.json:
Plugin marketplace list
Elenca tutti i marketplace configurati.| Opzione | Descrizione |
|---|---|
--json | Output come JSON |
Plugin marketplace remove
Rimuovi un marketplace configurato. L’aliasrm è accettato anche.
<name>: nome del marketplace da rimuovere, come mostrato daclaude plugin marketplace list. Questo è ilnamedamarketplace.json, non la fonte che hai passato aadd
Plugin marketplace update
Aggiorna i marketplace dalle loro fonti per recuperare nuovi plugin e cambiamenti di versione.[name]: nome del marketplace da aggiornare, come mostrato daclaude plugin marketplace list. Aggiorna tutti i marketplace se omesso
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.
Troubleshooting
Marketplace non carica
Sintomi: Non riesci ad aggiungere il marketplace o a vedere i plugin da esso Soluzioni:- Verifica che l’URL del marketplace sia accessibile
- Controlla che
.claude-plugin/marketplace.jsonesista nel percorso specificato - Assicurati che la sintassi JSON sia valida e che il frontmatter sia ben formato utilizzando
claude plugin validateo/plugin validate - Per i repository privati, conferma di avere i permessi di accesso
Errori di validazione del marketplace
Eseguiclaude plugin validate . o /plugin validate . dalla directory del tuo marketplace per verificare i problemi. Il validatore controlla plugin.json, il frontmatter di skill/agente/comando e hooks/hooks.json per errori di sintassi e schema. Errori comuni:
| Errore | Causa | Soluzione |
|---|---|---|
File not found: .claude-plugin/marketplace.json | Manifest mancante | Crea .claude-plugin/marketplace.json con i campi obbligatori |
Invalid JSON syntax: Unexpected token... | Errore di sintassi JSON in marketplace.json | Controlla le virgole mancanti, le virgole extra o le stringhe non quotate |
Duplicate plugin name "x" found in marketplace | Due plugin condividono lo stesso nome | Dai a ogni plugin un valore name univoco |
plugins[0].source: Path contains ".." | Il percorso di fonte contiene .. | Usa percorsi relativi alla radice del marketplace senza ... Vedi Percorsi relativi |
YAML frontmatter failed to parse: ... | YAML non valido in un file di skill, agente o comando | Correggi la sintassi YAML nel blocco frontmatter. Al runtime questo file si carica senza metadati. |
Invalid JSON syntax: ... (hooks.json) | hooks/hooks.json malformato | Correggi la sintassi JSON. Un hooks/hooks.json malformato impedisce al plugin intero di caricarsi. |
Marketplace has no plugins defined: aggiungi almeno un plugin all’arraypluginsNo marketplace description provided: aggiungi unadescriptiondi livello superiore per aiutare gli utenti a comprendere il tuo marketplacePlugin name "x" is not kebab-case: il nome del plugin contiene lettere maiuscole, spazi o caratteri speciali. Rinomina in lettere minuscole, cifre e trattini solo (ad esempio,my-plugin). Claude Code accetta altre forme, ma la sincronizzazione del marketplace Claude.ai le rifiuta.
Errori di installazione del plugin
Sintomi: Il marketplace appare ma l’installazione del plugin non riesce Soluzioni:- Verifica che gli URL di fonte del plugin siano accessibili
- Controlla che le directory dei plugin contengano i file richiesti
- Per le fonti GitHub, assicurati che i repository siano pubblici o che tu abbia accesso
- Testa manualmente le fonti dei plugin clonando/scaricando
L’autenticazione del repository privato non riesce
Sintomi: Errori di autenticazione durante l’installazione di plugin da repository privati Soluzioni: Per l’installazione manuale e gli aggiornamenti:- Verifica di essere autenticato con il tuo provider git (ad esempio, esegui
gh auth statusper GitHub) - Controlla che il tuo helper di credenziali sia configurato correttamente:
git config --global credential.helper - Prova a clonare il repository manualmente per verificare che le tue credenziali funzionino
- Imposta il token appropriato nel tuo ambiente:
echo $GITHUB_TOKEN - Controlla che il token abbia i permessi richiesti (accesso in lettura al repository)
- Per GitHub, assicurati che il token abbia lo scope
repoper i repository privati - Per GitLab, assicurati che il token abbia almeno lo scope
read_repository - Verifica che il token non sia scaduto
Gli aggiornamenti del marketplace non riescono in ambienti offline
Sintomi: Ilgit pull del marketplace non riesce e Claude Code cancella la cache esistente, causando l’indisponibilità dei plugin.
Causa: Per impostazione predefinita, quando un git pull non riesce, Claude Code rimuove il clone obsoleto e tenta di ri-clonare. In ambienti offline o airgapped, la ri-clonazione non riesce allo stesso modo, lasciando la directory del marketplace vuota.
Soluzione: Imposta CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 per mantenere la cache esistente quando il pull non riesce invece di cancellarla:
git pull e continua a utilizzare lo stato ultimo noto come buono. Per distribuzioni completamente offline in cui il repository non sarà mai raggiungibile, utilizza CLAUDE_CODE_PLUGIN_SEED_DIR per pre-popolare la directory dei plugin al momento della compilazione.
Le operazioni Git scadono
Sintomi: L’installazione del plugin o gli aggiornamenti del marketplace non riescono con un errore di timeout come “Git clone timed out after 120s” o “Git pull timed out after 120s”. Causa: Claude Code utilizza un timeout di 120 secondi per tutte le operazioni git, inclusa la clonazione dei repository dei plugin e il pull degli aggiornamenti del marketplace. I repository di grandi dimensioni o le connessioni di rete lente possono superare questo limite. Soluzione: Aumenta il timeout utilizzando la variabile di ambienteCLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS. Il valore è in millisecondi:
I plugin con percorsi relativi non riescono nei marketplace basati su URL
Sintomi: Hai aggiunto un marketplace tramite URL (comehttps://example.com/marketplace.json), ma i plugin con fonti di percorso relativo come "./plugins/my-plugin" non riescono a installare con errori “path not found”.
Causa: I marketplace basati su URL scaricano solo il file marketplace.json stesso. Non scaricano i file dei plugin dal server. I percorsi relativi nella voce del marketplace fanno riferimento a file sul server remoto che non sono stati scaricati.
Soluzioni:
- Usa fonti esterne: Cambia le voci dei plugin per usare GitHub, npm o fonti URL git invece di percorsi relativi:
- Usa un marketplace basato su Git: Ospita il tuo marketplace in un repository Git e aggiungilo con l’URL git. I marketplace basati su Git clonano l’intero repository, rendendo i percorsi relativi funzionanti correttamente.
File non trovati dopo l’installazione
Sintomi: Il plugin si installa ma i riferimenti ai file non riescono, specialmente i file al di fuori della directory del plugin Causa: I plugin vengono copiati in una directory cache piuttosto che utilizzati in-place. I percorsi che fanno riferimento a file al di fuori della directory del plugin (come../shared-utils) non funzioneranno perché quei file non vengono copiati.
Soluzioni: Vedi Plugin caching and file resolution per le soluzioni alternative inclusi symlink e ristrutturazione delle directory.
Per ulteriori strumenti di debug e problemi comuni, vedi Debugging and development tools.
Vedi anche
- Scopri e installa plugin precostruiti - Installazione di plugin da marketplace esistenti
- Plugins - Creazione dei tuoi plugin
- Plugins reference - Specifiche tecniche complete e schemi
- Plugin settings - Opzioni di configurazione dei plugin
- strictKnownMarketplaces reference - Restrizioni del marketplace gestito