Skip to main content
Hospedar um marketplace significa colocar seu catálogo marketplace.json onde outras pessoas possam adicioná-lo com /plugin marketplace add, instalar seus plugins e continuar recebendo suas alterações após você fazer push. Esta página é para a pessoa que opera um marketplace.
Estes casos são cobertos em outras páginas:
Comece com Host your marketplace para escolher um host e o comando que seus usuários executam. Leia Keep users up to date antes de seu primeiro lançamento. Leia Rename or remove a plugin antes de alterar o name de um plugin.

Host your marketplace

Você pode hospedar o marketplace no GitHub, em outro host git, como uma URL marketplace.json hospedada ou em um diretório em um sistema de arquivos compartilhado. Envie aos seus usuários o comando add para seu host e diga-lhes o que eles precisam em sua máquina: Para fixar uma branch ou tag de um marketplace GitHub ou git-URL, diga aos usuários para anexar #<ref>, como em your-org/your-marketplace#stable. A plugin commands reference lista todas as formas que o comando aceita. Um add bem-sucedido imprime Successfully added marketplace: your-marketplace. Claude Code pega esse nome do campo name em seu marketplace.json, não do nome do repositório. Os usuários então instalam um plugin pelo name da entrada e pelo name do marketplace, como em /plugin install code-formatter@your-marketplace.

Register the marketplace for everyone in a repository

Para compartilhar o marketplace com todos que trabalham em um repositório, execute claude plugin marketplace add your-org/your-marketplace --scope project lá uma vez a partir de seu shell e faça commit do .claude/settings.json que ele escreve. Claude Code então registra o marketplace para cada colega de trabalho que trusts the folder.

Avoid relative-path entries in a URL-hosted marketplace

Quando os usuários adicionam seu marketplace como uma URL marketplace.json simples, Claude Code baixa apenas esse arquivo. Uma entrada em seu array plugins cujo source é um caminho relativo como ./plugins/formatter então falha na instalação com its marketplace entry path does not stay inside the marketplace directory. Dê a cada entrada um source que possa ser buscado por conta própria, como um repositório github ou uma URL archive, ou hospede o marketplace em um repositório git para que Claude Code clone a árvore inteira.

Edit plugins in place on a shared directory

Quando os usuários adicionam seu marketplace a partir de um diretório compartilhado, Claude Code lê plugins com sources de caminho relativo diretamente desse diretório em vez de copiá-los. Os usuários veem suas edições quando iniciam a próxima sessão ou executam /reload-plugins, sem uma etapa de atualização ou um bump de versão.

Keep plugin files out of Git LFS

Mantenha os arquivos que seus plugins precisam fora de Git LFS. Quando os usuários adicionam um marketplace hospedado em um repositório git ou instalam um plugin baseado em git que ele lista, Claude Code clona esse marketplace ou repositório de plugin em sua máquina. O clone nunca baixa conteúdo LFS, então arquivos rastreados por LFS chegam como arquivos de ponteiro. Para compartilhar arquivos entre seu plugin e outras partes do mesmo marketplace, crie links simbólicos dentro do diretório do seu plugin. Quando Claude Code copia o plugin em seu cache, ele lida com cada symlink por onde o alvo se resolve:
  • Dentro do próprio diretório do plugin: o symlink é preservado como um symlink relativo no cache, para que continue resolvendo para o alvo copiado em tempo de execução.
  • Em outro lugar dentro do mesmo marketplace: o symlink é desreferenciado. O conteúdo do alvo é copiado para o cache em seu lugar. Isso permite que o diretório skills/ de um meta-plugin vincule a skills definidas por outros plugins no marketplace.
  • Fora do marketplace: o symlink é ignorado por segurança.
Para plugins instalados a partir de um caminho local ou de um command source cujo mode é o padrão copy, Claude Code preserva apenas symlinks que se resolvem dentro do próprio diretório do plugin e ignora todos os outros. O comando a seguir cria um link de dentro de um plugin de marketplace para uma skill compartilhada definida por um plugin irmão. No Windows, use mklink /D a partir de um Prompt de Comando elevado ou ative o Modo de Desenvolvedor:

Distribute through organization settings

Em um plano Team ou Enterprise, você também pode distribuir o marketplace através de Organization settings > Plugins & skills em claude.ai em vez de hospedá-lo em algum lugar onde os usuários o adicionem. Organization sync lê o repositório através da conexão GitHub ou GitLab da sua organização em claude.ai, então as credenciais git dos seus usuários não estão envolvidas. Organization sync é mais rigoroso sobre o repositório do que /plugin marketplace add é:
  • Repositório de marketplace: em github.com e gitlab.com, deve ser privado ou interno
  • Plugin sources: cada plugin source deve ser do tipo github, url ou git-subdir, ou um relative path que comece com ./
  • Diretório bin/ de nível superior: claude.ai rejeita um plugin que tem um e sincroniza o resto do marketplace. A mensagem de erro começa com Plugin contains a top-level bin/ directory. Mantenha executáveis em outro diretório, como scripts/, e referencie-os como ${CLAUDE_PLUGIN_ROOT}/scripts/<name> a partir de seus hooks ou configurações de servidor MCP
Veja Manage plugins for your organization para o fluxo de trabalho do administrador.

Grant access to a private marketplace

Quando um usuário adiciona, instala a partir de ou atualiza seu marketplace, Claude Code executa git em sua máquina com prompts interativos desativados e depende de quaisquer credenciais que essa máquina já tenha. Claude Code não tem seu próprio token git, e marketplace.json não tem campo para um. Você escolhe se o clone é executado sobre SSH ou HTTPS pela forma do comando add que você envia aos usuários:
  • GitHub owner/repo: Claude Code testa ssh -T git@github.com e clona sobre SSH quando o teste é bem-sucedido. Se o teste falhar ou o próprio clone SSH falhar, ele clona sobre HTTPS. Os usuários em máquinas sem uma chave SSH do GitHub podem definir CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1 para pular o teste e clonar sobre HTTPS.
  • git@host:path.git: SSH.
  • https://example.com/repo.git: HTTPS.
Diga aos usuários o que cada protocolo precisa em sua máquina:
  • SSH: a chave deve funcionar sem um prompt de passphrase, por exemplo porque está carregada em ssh-agent. O host já deve estar em known_hosts.
  • HTTPS: Claude Code deixa o helper de credencial git do usuário ativado, mas proíbe-o de solicitar. Uma credencial que o helper já armazena funciona; uma que ele teria que pedir falha. No GitHub, gh auth login seguido de gh auth setup-git armazena uma.
Para um host GitHub Enterprise Server, os usuários precisam de acesso git a esse host a partir de sua máquina. Veja Plugin marketplaces on GHES para o que cada superfície Claude Code precisa para alcançar um marketplace hospedado em GHES. Se você distribuir através de Organization settings > Plugins & skills em claude.ai em vez disso, as credenciais git dos seus usuários não estão envolvidas. Veja Distribute through organization settings para quais plugin sources podem ser privados lá.

Serve users who have no git-host account

Os usuários sem uma conta de host git podem adicionar um marketplace que você serve como uma URL marketplace.json ou a partir de um diretório compartilhado, mas podem instalar apenas os plugins cujas entradas sources eles também podem alcançar. Uma entrada que aponta para um repositório github privado ainda falha na instalação para eles, porque Claude Code a busca com o mesmo git não-interativo que usa para um marketplace hospedado em git. Estas entry sources não precisam de conta git:
  • archive: um zip baixado sobre HTTPS. Os usuários não precisam de git nem de uma conta, apenas acesso de rede à URL. Requer Claude Code v2.1.224 ou posterior. Fixe cada archive com sha256 para que Claude Code recuse um download alterado. Para enviar credenciais com o download, veja Authenticate archive downloads.
  • Um repositório git público: Claude Code clona um source url ou git-subdir público sobre HTTPS sem credenciais quando a entrada fornece uma URL https://. Para um source github ou um source git-subdir escrito como owner/repo, os usuários sem uma chave SSH do GitHub definem CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1.
Para uma equipe em uma rede, um marketplace directory em um sistema de arquivos compartilhado também funciona sem contas git. Os usuários precisam apenas de acesso de leitura ao caminho.

What background auto-update does with credentials

Background auto-update é a atualização desatendida de Claude Code de marketplaces e plugins instalados após uma sessão iniciar. Está desativado para seu marketplace até que um usuário ou administrador o ative, conforme coberto em Keep users up to date. Quando está ativado para um marketplace privado, a verificação de fundo de novos commits usa os helpers de credencial git configurados do usuário e nunca solicita. Cada tipo de remoto e helper fornece um resultado diferente:
  • Remotes SSH: uma chave carregada em ssh-agent autentica a verificação.
  • Remotes HTTPS com uma credencial armazenada: um helper que pode fornecer uma credencial armazenada sem solicitar autentica a verificação. Git Credential Manager, o helper Keychain do macOS e git-credential-store funcionam dessa forma uma vez que mantêm uma credencial para o host.
  • Remotes HTTPS com um helper que precisa solicitar: o helper não pode responder em segundo plano. A atualização falha silenciosamente e o checkout existente permanece no lugar, para que os plugins do usuário continuem funcionando a partir do último estado sincronizado.
Após a verificação, Claude Code faz um dos seguintes:
  • O checkout está atualizado: Claude Code o deixa como está.
  • A verificação encontra novos commits ou falha porque não consegue alcançar ou autenticar para o remoto: Claude Code clona o marketplace novamente e substitui o checkout existente pelo novo clone. Se esse clone falhar, o checkout existente permanece no lugar. O re-clone pode time out on large repositories.
Para manter um marketplace privado atual, um usuário pode fazer um dos seguintes:
  • Armazenar uma credencial: faça login no helper de credencial primeiro para que ele mantenha uma credencial para o host. Para GitHub, execute gh auth login, depois gh auth setup-git.
  • Manter o checkout em falha: se o usuário definir CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1, Claude Code mantém o checkout existente sem tentar o re-clone quando a verificação de fundo não consegue alcançar ou autenticar para o remoto. Os plugins continuam funcionando a partir do último estado sincronizado.
Se um usuário definir GITHUB_TOKEN ou outro token de provedor no ambiente, isso sozinho não autentica a verificação de fundo. Um token entra em vigor através de um helper de credencial, como o helper da CLI gh, que lê GH_TOKEN e GITHUB_TOKEN.

Roll out to a whole company

Lançar um plugin para uma empresa envolve você como proprietário do marketplace, um administrador que controla configurações gerenciadas e cada pessoa que usa Claude Code. Você pode executar o lançamento sem o administrador, caso em que cada pessoa adiciona o marketplace e instala o plugin por conta própria. Para pessoas que não têm conta de host git, estas seções cobrem uma forma cada de alcançá-las:

Keep users up to date

Suas alterações chegam aos usuários através de background auto-update, uma vez que está ativado para seu marketplace, ou quando os usuários atualizam o plugin por conta própria. Em ambos os casos, um usuário obtém uma nova cópia de um plugin apenas quando sua versão computada muda, conforme descrito em Release a new version.

Turn on auto-update

Background auto-update está desativado para seu marketplace por padrão, e marketplace.json não tem campo para ativá-lo. Um usuário ou um administrador o ativa:
  • Diga aos usuários para ativá-lo: cada usuário vai para Marketplaces em /plugin, seleciona seu marketplace e seleciona Enable auto-update.
  • Peça a um administrador para defini-lo: se um administrador definir "autoUpdate": true na entrada extraKnownMarketplaces do seu marketplace em configurações gerenciadas, está ativado para todos que recebem essas configurações. Veja Set update policy.
Sem auto-update, os usuários recebem suas alterações quando executam /plugin marketplace update <name> em uma sessão ou claude plugin update <plugin>@<name> no shell. Para o que os usuários veem quando uma atualização os alcança, veja When auto-update runs.

Release a new version

Para lançar uma nova versão aos usuários, altere o version do plugin. Os usuários obtêm uma nova cópia apenas quando a versão computada do plugin difere da que eles têm. Essa versão vem de plugin.json primeiro, depois da entrada do marketplace, por Versions and updates. Um plugin que os usuários load in place a partir de um marketplace que adicionaram como um diretório local não é controlado por version. Ele carrega seus arquivos atuais em cada início de sessão, seja qual for sua string de versão. Para cada instalação que não seja um carregamento in-place ou um de um source command, aumente version em cada lançamento ou omita-o:
  • Bump version em cada lançamento: os usuários permanecem em sua cópia em cache até a string mudar. Se você definir "version": "1.0.0" e fazer push de novos commits sem alterá-lo, os usuários não os recebem.
  • Omita version: os usuários rastreiam seus commits em vez disso. Deixe version fora de plugin.json e da entrada do marketplace.
Não defina version em plugin.json e na entrada do marketplace. Se você fizer, Claude Code usa o valor plugin.json sem aviso, e claude plugin validate relata a incompatibilidade como Entry declares version "<a>" but <path>/plugin.json says "<b>".

Hold users on one version

Um marketplace serve uma versão de cada plugin por vez, então você mantém os usuários em uma versão escolhendo o que cada entrada aponta:
  • ref e sha na entrada do plugin: ref nomeia uma branch ou tag e sha nomeia um commit para um source github, url ou git-subdir. Veja Plugin sources.
  • #<ref> no comando add: os usuários que adicionam your-org/your-marketplace#stable obtêm essa branch ou tag do catálogo. Para duas linhas de lançamento ao mesmo tempo, veja Run release channels.
  • Tags <plugin>--v<version>: um intervalo de versão de uma dependência se resolve contra essas tags. Veja Release a plugin that others depend on.
Release a new version diz quando uma entrada alterada alcança os usuários.

Change the command of a command source

Se você alterar o command de um command source ou alternar seu mode, cada usuário tem que aceitar o novo comando antes de Claude Code executá-lo. Claude Code executa apenas o comando exato que um usuário aceitou quando instalou ou atualizou pela última vez o plugin. Depois que a cópia do marketplace de um usuário pega a alteração, esse usuário vê o seguinte:
  • Sem mais execuções de fundo: a once-per-session run do comando para para esse usuário, então a nova saída da ferramenta não os alcança.
  • Uma entrada na aba Errors do /plugin: a entrada mostra o novo comando e o comando claude plugin update para executar.
Diga aos usuários para executar o comando claude plugin update que essa entrada mostra, em um terminal. Claude Code mostra a eles o novo comando e pede que o aceitem.

Run release channels

Para oferecer faixas estáveis e de acesso antecipado, hospede dois marketplaces cujas entradas apontam para diferentes refs do mesmo plugin e deixe cada usuário adicionar o que quiser. Claude Code não tem conceito de canal de lançamento, e um marketplace serve uma versão de cada plugin por vez. Dê aos dois arquivos marketplace.json valores name diferentes. Claude Code identifica um marketplace por seu name, então um usuário não pode ter dois marketplaces com o mesmo nome registrados ao mesmo tempo. Com estes dois catálogos, os usuários que adicionam stable-tools instalam code-formatter a partir da branch stable, e os usuários que adicionam latest-tools instalam a partir de latest:
Dê aos dois refs versões plugin.json diferentes ou omita version para que o commit SHA os distinga. As atualizações são detectadas comparando versões, então uma ref que se move sem uma mudança de versão deixa os usuários na cópia em cache. Para atribuir os canais a grupos de usuários em vez de deixar os usuários escolherem, um administrador dá a cada grupo a entrada extraKnownMarketplaces correspondente, conforme descrito em Set update policy.

Rename or remove a plugin

O name de um plugin é seu identificador. Os usuários o referenciam nas chaves de configurações enabledPlugins e pluginConfigs e em /plugin install, então alterá-lo quebra cada instalação existente. Para alterar o rótulo que os usuários veem em /plugin sem quebrar nada, defina displayName em plugin.json e mantenha name inalterado.

Migrate users with a renames map

Quando você deve alterar um name, adicione um mapa renames de nível superior a marketplace.json para que Claude Code migre usuários existentes em vez de relatar Plugin "<name>" not found in marketplace. Faça o mesmo quando remover uma entrada de plugins. A migração automática requer Claude Code v2.1.193 ou posterior. Mapeie cada nome anterior para seu nome atual ou para null quando o plugin se foi. Este marketplace renomeia formatter para code-formatter e registra que legacy-linter foi removido:
Depois que você faz push, um usuário que ainda tem o nome antigo ativado vê um destes resultados:
  • Entrada renomeada: o plugin carrega sob seu novo nome. claude plugin list e os detalhes do plugin em /plugin mostram Renamed to "code-formatter" in the "your-marketplace" marketplace uma vez, e Claude Code reescreve a chave antiga para a nova em enabledPlugins e pluginConfigs nos escopos de configurações do usuário, projeto e local.
  • Entrada null: a chave antiga é removida desses escopos e o usuário vê Removed from the "your-marketplace" marketplace.
  • Ativado em configurações gerenciadas: o plugin ainda carrega sob seu novo nome, mas Claude Code não pode reescrever configurações gerenciadas, então o aviso recorre até que um administrador atualize enabledPlugins lá.
Para um marketplace que os usuários adicionaram a partir de um repositório git ou URL, um plugin renomeado relata Plugin "<name>" not cached at <path> até que o usuário execute /plugin install code-formatter@your-marketplace uma vez em uma sessão. Trate renames como histórico apenas de acréscimo. Mantenha entradas antigas depois que todos migrarem. Quando renomear novamente, adicione uma segunda entrada em vez de editar a primeira, porque Claude Code segue a cadeia a partir do nome mais antigo. Em seu shell, execute claude plugin validate . após editar o mapa. Ele rejeita uma cadeia que cicla ou que termina em qualquer lugar que não seja null ou um nome em plugins, com renames.<name>: chain does not resolve.

Uninstall removed plugins from users’ machines

Para desinstalar um plugin removido das máquinas dos usuários em vez de deixar uma cópia para trás, defina "forceRemoveDeletedPlugins": true no nível superior de marketplace.json. Sem o campo, um plugin removido permanece instalado e relata Plugin "<name>" not found in marketplace quando uma sessão o carrega. Com ele, Claude Code faz o seguinte em cada início de sessão:
  1. Compara o que os usuários instalaram a partir de seu marketplace contra as entradas e o mapa renames, e trata qualquer plugin que não esteja listado nem renomeado como removido.
  2. Desinstala cada plugin removido do usuário, projeto e escopos locais. Os plugins que apenas configurações gerenciadas instalaram permanecem no lugar.
  3. Lista cada plugin removido em um cabeçalho Flagged em /plugin com o status Removed from marketplace.

Authenticate archive downloads

Para autenticar um download archive, como um download de um registro privado, defina os cabeçalhos HTTP que Claude Code envia com ele. Você pode definir headers em um destes lugares:
  • O source url do marketplace: o source url que você registrou o marketplace a partir de, como uma entrada extraKnownMarketplaces.
  • A entrada do plugin: em Claude Code v2.1.238 ou posterior, você pode defini-lo na entrada marketplace.json do plugin em vez disso, ao lado de source.
Em um destes lugares, defina um comando headersHelper em vez de headers quando o valor é de curta duração, como um token que seu registro gera sob demanda. Claude Code executa o comando e envia o objeto JSON que ele imprime como os headers desse lugar. Requer Claude Code v2.1.238 ou posterior. A marketplace reference lista os campos de entrada headers e headersHelper. O lugar que você escolhe decide quais downloads obtêm os headers e quando Claude Code executa o comando: Onde ambos os lugares definem um header do mesmo nome, Claude Code envia o valor da entrada. Dentro de um lugar, um header que o comando imprime substitui um header do mesmo nome listado em headers.

Add a headersHelper to a plugin entry

Esta entrada define headersHelper ao lado de source. Ela também define "strict": false, que Claude Code exige de uma entrada marketplace.json que define headersHelper:
Para verificar a entrada, execute claude plugin install my-plugin@your-marketplace em seu shell. Claude Code mostra a você o comando e a URL do archive, e baixa o zip depois que você aceita.

Write the headersHelper command

Se você define headersHelper em um source url de um marketplace ou em uma entrada de plugin, escreva o comando para atender a estes requisitos:
  • Texto do comando: no máximo 500 caracteres de ASCII imprimível, sem uma sequência de quatro ou mais espaços.
  • Saída: imprima um objeto JSON de nomes de headers e valores de string em stdout, depois saia com 0 dentro de 10 segundos.
  • Shell e diretório de trabalho: Claude Code executa o comando através de sh ou através de cmd.exe no Windows. O diretório de trabalho é o diretório de configuração, que é ~/.claude ou CLAUDE_CONFIG_DIR. Dê um caminho absoluto ou um comando em PATH, porque um caminho relativo se resolve contra esse diretório, não o projeto do usuário.
  • Variáveis que Claude Code remove: quando o comando é definido em uma entrada marketplace.json ou no .claude/settings.json ou .claude/settings.local.json de um projeto, Claude Code remove do ambiente cada variável cujo nome parece uma credencial, pela mesma regra que aplica a um headersHelper MCP. ANTHROPIC_API_KEY e MY_REGISTRY_TOKEN são ambos removidos, então tenha o comando ler sua credencial de um arquivo ou um armazenamento de credenciais. Esta remoção não se aplica a um comando definido em configurações de usuário, um arquivo --settings ou configurações gerenciadas.
  • Variáveis que Claude Code define: CLAUDE_CODE_MARKETPLACE_URL e CLAUDE_CODE_MARKETPLACE_NAME para o comando de um source url, e CLAUDE_CODE_PLUGIN_NAME e CLAUDE_CODE_PLUGIN_ARCHIVE_URL para o comando de uma entrada. CLAUDE_CODE_MARKETPLACE_NAME não está definido na primeira busca depois que um usuário adiciona um marketplace por URL, porque essa busca é o que fornece o nome.
Um comando que cria um token bearer imprime um objeto como este:

When Claude Code skips a headersHelper command or drops its output

Um comando headersHelper não é executado ou headers de headers ou da saída do comando são descartados quando um dos seguintes se aplica:
  • Comando falha: se o comando sair com não-zero, executar por mais de 10 segundos ou imprimir qualquer coisa que não seja um objeto JSON de valores de string, a busca ou download para o qual o comando foi executado não acontece.
  • URL do marketplace não começa com https://: o comando desse source url não é executado e as solicitações carregam apenas os headers listados em seu campo headers.
  • Redirecionamento deixa a origem: quando um download é redirecionado para fora da origem da URL do archive, a solicitação redirecionada não carrega valores de headers de nenhum source url do marketplace ou entrada de plugin.
  • Entrada define um header de roteamento ou identidade: Claude Code descarta nomes de roteamento de solicitação e identidade de cliente como Host, Cookie e X-Forwarded-* de headers de uma entrada e saída de comando, e mantém nomes de autenticação como Authorization. Cada entrada marketplace.json é filtrada dessa forma. Para uma entrada de plugin inline em configurações, veja extraKnownMarketplaces.
  • Comando definido em configurações de um diretório --add-dir: o comando é ignorado, em um source url e em uma entrada de plugin inline igualmente, e apenas os headers desse arquivo são enviados.
  • Configurações gerenciadas bloqueiam o comando: definir disableCommandPluginSources para true bloqueia comandos headersHelper, e allowManagedHooksOnly também os bloqueia a menos que disableCommandPluginSources seja explicitamente false. Sob um desses bloqueios, Claude Code ainda executa o comando para um marketplace que as próprias configurações gerenciadas declaram.

How users accept a headersHelper command

Um usuário aceita o comando de uma entrada de plugin cada vez que instala ou atualiza apenas esse plugin. Eles fazem isso a partir da própria visualização do plugin em /plugin ou com claude plugin install ou claude plugin update. Claude Code mostra o comando e a URL do archive, e executa o comando apenas depois que o usuário aceita. Em um shell não-interativo, passe --yes para aceitar o comando. Para aceitar apenas o comando que uma execução anterior --json exibiu, passe --accept-command com o sha256 que a execução relatou. Claude Code executa apenas o comando que mostrou, para a URL do archive que mostrou. Se o comando da entrada ou a URL do archive mudaram no meio, Claude Code recusa a instalação ou atualização. Uma mudança na string de consulta sozinha não conta.

Installs and updates that refuse a command instead of asking

Em qualquer operação que não seja uma instalação ou atualização de um único plugin, Claude Code não executa o comando de uma entrada nem baixa seu archive. O plugin permanece em sua versão instalada ou permanece desinstalado, e o usuário vê um destes resultados:
  • Instalando vários plugins ao mesmo tempo, a partir de uma sugestão de plugin ou como dependência de outro plugin: Claude Code recusa o plugin que tem o comando e direciona o usuário para a própria visualização desse plugin em /plugin. Os outros plugins em uma instalação em massa ainda instalam. Um plugin que depende do plugin recusado falha em instalar até que o usuário instale o plugin recusado por conta própria.
  • Background auto-update ou início de sessão para um plugin cujo archive nunca foi baixado: Claude Code lista o plugin na aba Errors do /plugin para que o usuário saiba instalá-lo ou atualizá-lo por conta própria.

When a marketplace url source’s command runs

Você declara o headersHelper de um source url do marketplace em um arquivo de configurações, como uma entrada extraKnownMarketplaces, em vez de no catálogo que o marketplace publica. Claude Code portanto não pede ao usuário para aceitá-lo em cada instalação ou atualização. Em vez disso, o arquivo de configurações que o declara decide quando Claude Code o executa: Para uma entrada de plugin inline em um desses arquivos, Claude Code exige a mesma confiança de pasta ou aprovação de configurações que para um comando de nível de marketplace nesse arquivo, e o usuário também aceita o comando da entrada em cada instalação ou atualização.

Depend on and recommend other plugins

Uma entrada pode declarar dependências em outros plugins.
  • Intervalos de versão: uma dependência pode carregar um intervalo semver.
  • Dependências entre marketplaces: uma dependência de outro marketplace instala apenas quando seu marketplace lista esse marketplace em allowCrossMarketplaceDependenciesOn.
Para intervalos de versão, a convenção de tag git <plugin>--v<version> que eles se resolvem contra e confiança entre marketplaces, veja Plugin dependencies. Para ter Claude Code sugerir um plugin quando um projeto o corresponde, adicione um bloco relevance à entrada com os sinais que identificam o projeto. Os usuários veem sugestões do seu marketplace apenas quando um administrador o lista em pluginSuggestionMarketplaces. Para os sinais e a etapa de habilitação, veja Plugin relevance.

Work around what a marketplace can’t do

Algumas coisas que proprietários pedem não têm campo em marketplace.json. Aqui está a opção mais próxima para cada:
  • Restringir o que mais os usuários instalam: a lista de permissões do marketplace é uma configuração gerenciada, strictKnownMarketplaces. Veja Restrict what users can install.
  • Instalar ou ativar um plugin sem o usuário pedir: nenhum campo de entrada instala um plugin. enabledPlugins gerenciado faz isso para uma frota; veja Pre-install and require plugins.
  • Mostrar entradas diferentes para usuários diferentes: as entradas não carregam campo de audiência, e cada usuário que adiciona o marketplace vê o catálogo inteiro. Hospede marketplaces separados para audiências separadas.
  • Marcar um plugin como descontinuado: não há estado de descontinuação. A opção é remover a entrada, mapear seu nome para null em renames e opcionalmente definir forceRemoveDeletedPlugins.
  • Ativar auto-update para seus usuários: cada usuário o ativa em Marketplaces em /plugin ou um administrador define autoUpdate em configurações gerenciadas. Veja Turn on auto-update.
  • Carregar credenciais git: nenhum campo de marketplace mantém um token git. O acesso a um marketplace ou plugin hospedado em git segue a configuração git do usuário, por Grant access to a private marketplace. Para sources archive, uma entrada pode definir headers ou headersHelper em vez disso.

Next steps