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.
Questa pagina è per la persona che gestisce un marketplace.
Questi casi sono trattati su altre pagine:
- Non hai ancora scritto il file di catalogo: inizia con Crea un marketplace
- 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
name di un plugin.
Host your marketplace
Puoi ospitare il marketplace su GitHub, su un altro host git, come URLmarketplace.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:
Per 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 elenca ogni forma che il comando accetta.
Un 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.
Gli utenti quindi installano un plugin per il name della voce e il name del marketplace, come in /plugin install code-formatter@your-marketplace.
Register the marketplace for everyone in a repository
Per condividere il marketplace con tutti coloro che lavorano in un repository, eseguiclaude 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.
Avoid relative-path entries in a URL-hosted marketplace
Quando gli utenti aggiungono il tuo marketplace come URLmarketplace.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. 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.
Edit plugins in place on a shared directory
Quando 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.
Keep plugin files out of Git LFS
Mantieni i file di cui i tuoi plugin hanno bisogno fuori da Git LFS. 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.Share files within a marketplace with symlinks
Per 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:- 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.
- 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. - Fuori dal marketplace: il symlink viene saltato per motivi di sicurezza.
command 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.
Il 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:
Distribute through organization settings
Su un piano Team o Enterprise, puoi anche distribuire il marketplace attraverso Organization settings > Plugins & skills 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. Organization sync è più rigoroso riguardo al repository rispetto a/plugin marketplace add:
- Repository marketplace: su github.com e gitlab.com, deve essere privato o interno
- Plugin sources: ogni plugin source deve essere di tipo
github,url, ogit-subdir, o un relative path che inizia con./ - 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 conPlugin contains a top-level bin/ directory. Mantieni gli eseguibili in un’altra directory, comescripts/, e fai riferimento ad essi come${CLAUDE_PLUGIN_ROOT}/scripts/<name>dai tuoi hooks o dalle configurazioni del server MCP
Grant access to a private marketplace
Quando un utente aggiunge, installa da, o aggiorna il tuo marketplace, Claude Code eseguegit 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.
Scegli se il clone viene eseguito su SSH o HTTPS dalla forma del comando add che invii agli utenti:
- GitHub
owner/repo: Claude Code verificassh -T git@github.come 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 impostareCLAUDE_CODE_PLUGIN_PREFER_HTTPS=1per saltare la verifica e clonare su HTTPS. git@host:path.git: SSH.https://example.com/repo.git: HTTPS.
- SSH: la chiave deve funzionare senza un prompt di passphrase, ad esempio perché è caricata in
ssh-agent. L’host deve già essere inknown_hosts. - 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 loginseguito dagh auth setup-gitne memorizza una.
Serve users who have no git-host account
Gli utenti senza un account su un host git possono aggiungere un marketplace che servi come URLmarketplace.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.
Queste entry sources non hanno bisogno di un account git:
archive: uno zip scaricato su HTTPS. Gli utenti non hanno bisogno né digitné di un account, solo accesso di rete all’URL. Richiede Claude Code v2.1.224 o successivo. Fissa ogni archive consha256in modo che Claude Code rifiuti un download modificato. Per inviare credenziali con il download, vedi Authenticate archive downloads.- Un repository git pubblico: Claude Code clona una source
urlogit-subdirpubblica su HTTPS senza credenziali quando la voce fornisce un URLhttps://. Per una sourcegithub, o una sourcegit-subdirscritta comeowner/repo, gli utenti senza una chiave SSH GitHub impostanoCLAUDE_CODE_PLUGIN_PREFER_HTTPS=1.
directory su un filesystem condiviso funziona anche senza account git. Gli utenti hanno bisogno solo dell’accesso in lettura al percorso.
What background auto-update does with credentials
Background 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. Quando è 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:- SSH remotes: una chiave caricata in
ssh-agentautentica il controllo. - 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-storefunzionano in questo modo una volta che detengono una credenziale per l’host. - 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.
- Il checkout è aggiornato: Claude Code lo lascia come è.
- 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.
- 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, quindigh auth setup-git. - 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.
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.
Roll out to a whole company
Distribuire 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.
Per le persone che non hanno un account su un host git, queste sezioni coprono ciascuna un modo per raggiungerle:
- Entry sources che non hanno bisogno di un account git: Serve users who have no git-host account
- Una directory di plugin pre-popolata: Seed containers and CI, che serve anche gli utenti che non hanno un account su un host git
- Impostazioni dell’organizzazione claude.ai: Distribute through organization settings, dove le credenziali git dei tuoi utenti non sono coinvolte
Keep users up to date
I 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.Turn on auto-update
Background auto-update è disattivato per il tuo marketplace per impostazione predefinita, emarketplace.json non ha un campo per attivarlo. Un utente o un amministratore lo attiva:
- Comunica agli utenti di attivarlo: ogni utente va a Marketplaces in
/plugin, seleziona il tuo marketplace, e seleziona Enable auto-update. - Chiedi a un amministratore di impostarlo: se un amministratore imposta
"autoUpdate": truesulla voceextraKnownMarketplacesdel tuo marketplace nelle impostazioni gestite, è attivato per tutti coloro che ricevono quelle impostazioni. Vedi Set update policy.
/plugin marketplace update <name> in una sessione o claude plugin update <plugin>@<name> nella shell.
Per cosa vedono gli utenti quando un aggiornamento li raggiunge, vedi When auto-update runs.
Release a new version
Per rilasciare una nuova versione agli utenti, cambia ilversion 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.
Un plugin che gli utenti load in place 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.
Per ogni installazione diversa da un caricamento in place o uno da una source command, aumenta version a ogni rilascio o omettilo:
- Bump
versiona 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. - Ometti
version: gli utenti tracceranno i tuoi commit invece. Lasciaversionfuori sia daplugin.jsonche dalla voce del marketplace.
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>".
Hold users on one version
Un marketplace serve una versione di ogni plugin alla volta, quindi tieni gli utenti su una versione scegliendo cosa ogni voce punta:refeshasulla voce del plugin:refnomina un branch o un tag eshanomina un commit per una sourcegithub,url, ogit-subdir. Vedi Plugin sources.#<ref>sul comando add: gli utenti che aggiungonoyour-org/your-marketplace#stableottengono quel branch o tag del catalogo. Per due linee di rilascio contemporaneamente, vedi Run release channels.- 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.
Change the command of a command source
Se cambi ilcommand di una command 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.
Dopo che la copia del marketplace di un utente raccoglie il cambiamento, quell’utente vede uno dei seguenti:
- Nessuna più esecuzione di background: l’esecuzione una volta per sessione del comando si ferma per quell’utente, quindi l’output nuovo dello strumento non li raggiunge.
- Una voce nella scheda
/pluginErrors: la voce mostra il nuovo comando e il comandoclaude plugin updateda eseguire.
claude plugin update che quella voce mostra, in un terminale. Claude Code mostra loro il nuovo comando e chiede loro di accettarlo.
Run release channels
Per 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. Dai ai due filemarketplace.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.
Con 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:
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.
Per 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.
Rename or remove a plugin
Ilname 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.
Per cambiare l’etichetta che gli utenti vedono in /plugin senza interrompere nulla, imposta displayName in plugin.json e mantieni name invariato.
Migrate users with a renames map
Quando devi cambiare unname, 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. Fai lo stesso quando rimuovi una voce da plugins. La migrazione automatica richiede Claude Code v2.1.193 o successivo.
Mappa 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:
- Voce rinominata: il plugin carica con il suo nuovo nome.
claude plugin liste i dettagli del plugin in/pluginmostranoRenamed to "code-formatter" in the "your-marketplace" marketplaceuna volta, e Claude Code riscrive la vecchia chiave a quella nuova inenabledPluginsepluginConfigsnegli ambiti di impostazioni utente, progetto e locale. - Voce
null: la vecchia chiave viene eliminata da quegli ambiti e l’utente vedeRemoved from the "your-marketplace" marketplace. - 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
enabledPluginslì.
Plugin "<name>" not cached at <path> finché l’utente non esegue /plugin install code-formatter@your-marketplace una volta in una sessione.
Tratta 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.
Nella 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.
Uninstall removed plugins from users’ machines
Per 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:
- 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. - Disinstalla ogni plugin rimosso dagli ambiti utente, progetto e locale. I plugin che solo le impostazioni gestite hanno installato rimangono in posizione.
- Elenca ogni plugin rimosso sotto un’intestazione Flagged in
/plugincon lo statoRemoved from marketplace.
Authenticate archive downloads
Per autenticare un downloadarchive, 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:
- La source
urldel marketplace: la sourceurlda cui hai registrato il marketplace, come una voceextraKnownMarketplaces. - La voce del plugin: su Claude Code v2.1.238 o successivo, puoi impostarla sulla voce
marketplace.jsondel plugin invece, accanto asource.
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.
Il marketplace reference elenca i campi di voce headers e headersHelper.
Il posto che scegli decide quali download ottengono le intestazioni e quando Claude Code esegue il comando:
Dove 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.
Add a headersHelper to a plugin entry
Questa voce impostaheadersHelper accanto a source. Imposta anche "strict": false, che Claude Code richiede di una voce marketplace.json che imposta headersHelper:
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.
Write the headersHelper command
Che tu impostiheadersHelper su una source url del marketplace o su una voce del plugin, scrivi il comando per soddisfare questi requisiti:
- Testo del comando: al massimo 500 caratteri di ASCII stampabile, senza una sequenza di quattro o più spazi.
- Output: stampa un oggetto JSON di nomi di intestazione e valori di stringa su stdout, quindi esci 0 entro 10 secondi.
- Shell e directory di lavoro: Claude Code esegue il comando attraverso
sh, o attraversocmd.exesu Windows. La directory di lavoro è la directory di configurazione, che è~/.claudeoCLAUDE_CONFIG_DIR. Dai un percorso assoluto o un comando suPATH, perché un percorso relativo si risolve rispetto a quella directory, non al progetto dell’utente. - Variabili che Claude Code rimuove: quando il comando è impostato in una voce
marketplace.json, o nel.claude/settings.jsono.claude/settings.local.jsondi un progetto, Claude Code rimuove dall’ambiente ogni variabile il cui nome sembra una credenziale, per la stessa regola che applica a un MCPheadersHelper.ANTHROPIC_API_KEYeMY_REGISTRY_TOKENsono 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. - Variabili che Claude Code imposta:
CLAUDE_CODE_MARKETPLACE_URLeCLAUDE_CODE_MARKETPLACE_NAMEper il comando di una sourceurl, eCLAUDE_CODE_PLUGIN_NAMEeCLAUDE_CODE_PLUGIN_ARCHIVE_URLper il comando di una voce.CLAUDE_CODE_MARKETPLACE_NAMEnon è impostato al primo fetch dopo che un utente aggiunge un marketplace per URL, perché quel fetch è quello che fornisce il nome.
When Claude Code skips a headersHelper command or drops its output
Un comandoheadersHelper non viene eseguito, o le intestazioni da headers o dall’output del comando vengono eliminate, quando uno dei seguenti si applica:
- 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.
- L’URL del marketplace non inizia con
https://: il comando di quella sourceurlnon viene eseguito, e le richieste portano solo le intestazioni elencate nel suo campoheaders. - Il reindirizzamento lascia l’origine: quando un download viene reindirizzato fuori dall’origine dell’URL dell’archive, la richiesta reindirizzata non porta valori
headerso output del comando da nessuno della sourceurldel marketplace o della voce del plugin. - 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, eX-Forwarded-*daheaderse dall’output del comando di una voce, e mantiene i nomi di autenticazione comeAuthorization. Ogni vocemarketplace.jsonviene filtrata in questo modo. Per una voce di plugin inline nelle impostazioni, vediextraKnownMarketplaces. - Il comando è impostato nelle impostazioni di una directory
--add-dir: il comando viene ignorato, su una sourceurle su una voce di plugin inline allo stesso modo, e solo leheadersdi quel file vengono inviate. - Le impostazioni gestite bloccano il comando: impostare
disableCommandPluginSourcesatrueblocca i comandiheadersHelper, eallowManagedHooksOnlyli blocca anche a meno chedisableCommandPluginSourcesnon sia esplicitamentefalse. Sotto uno di questi blocchi, Claude Code continua a eseguire il comando per un marketplace che le impostazioni gestite stesse dichiarano.
How users accept a headersHelper command
Un 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.
In una shell non interattiva, passa --yes per accettare il comando. Per accettare solo il comando che un’esecuzione --json precedente ha visualizzato, passa --accept-command con lo sha256 che l’esecuzione ha segnalato.
Claude 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.
Installs and updates that refuse a command instead of asking
Su 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:- 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. - Background auto-update, o avvio della sessione per un plugin il cui archive non è mai stato scaricato: Claude Code elenca il plugin nella scheda
/pluginErrors in modo che l’utente sappia di installarlo o aggiornarlo da solo.
When a marketplace url source’s command runs
Dichiari il headersHelper di una source url del marketplace in un file di impostazioni, come una voce 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:
Per una voce di plugin inline 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.
Depend on and recommend other plugins
Una voce può dichiarare dipendenze da altri plugin.- Intervalli di versione: una dipendenza può portare un intervallo semver.
- Dipendenze cross-marketplace: una dipendenza da un altro marketplace installa solo quando il tuo marketplace elenca quel marketplace in
allowCrossMarketplaceDependenciesOn.
<plugin>--v<version> su cui si risolvono, e la fiducia cross-marketplace, vedi Plugin dependencies.
Per 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.
Work around what a marketplace can’t do
Alcune cose che i proprietari chiedono non hanno un campo inmarketplace.json. Ecco l’opzione più vicina per ciascuna:
- Limitare cosa altro gli utenti installano: l’allowlist del marketplace è un’impostazione gestita,
strictKnownMarketplaces. Vedi Restrict what users can install. - Installare o abilitare un plugin senza che l’utente chieda: nessun campo di voce installa un plugin.
enabledPluginsgestito lo fa per una flotta; vedi Pre-install and require plugins. - 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.
- Contrassegnare un plugin come deprecato: non c’è uno stato di deprecazione. L’opzione è rimuovere la voce, mappare il suo nome a
nullinrenames, e opzionalmente impostareforceRemoveDeletedPlugins. - Attivare auto-update per i tuoi utenti: ogni utente lo attiva in Marketplaces in
/plugin, o un amministratore impostaautoUpdatenelle impostazioni gestite. Vedi Turn on auto-update. - 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. Per le source
archive, una voce può impostareheadersoheadersHelperinvece.
Next steps
- Marketplace reference: campi
marketplace.json, tipi di source, e messaggi di convalida - Manage plugins for your organization: richiedi, limita, o semina il tuo marketplace su tutte le macchine della tua organizzazione
- Plugin dependencies: etichetta i rilasci in modo che i plugin che dipendono dal tuo possano risolvere le versioni
- Troubleshoot plugins: gli errori che i tuoi utenti vedono quando aggiungono o aggiornano dal tuo marketplace