Skip to main content
マーケットプレイスをホストするということは、marketplace.json カタログを他のユーザーが /plugin marketplace add で追加でき、そのプラグインをインストールでき、プッシュ後も変更を受け取り続けられる場所に配置することを意味します。 このページはマーケットプレイスを運営する人向けです。
これらのケースは他のページで説明されています。
マーケットプレイスをホストするから始めて、ホストとユーザーが実行するコマンドを選択してください。最初のリリースの前にユーザーを最新の状態に保つをお読みください。プラグインの name を変更する前にプラグインの名前変更または削除をお読みください。

マーケットプレイスをホストする

マーケットプレイスは GitHub、別の git ホスト、ホストされた marketplace.json URL、または共有ファイルシステム上のディレクトリでホストできます。ユーザーにホストの追加コマンドを送信し、マシンで必要なものを伝えてください: GitHub または git URL マーケットプレイスのブランチまたはタグをピンするには、ユーザーに #<ref> を追加するよう指示してください。例えば your-org/your-marketplace#stable のように。プラグインコマンドリファレンスは、コマンドが受け入れるすべての形式をリストしています。 追加に成功すると Successfully added marketplace: your-marketplace が出力されます。Claude Code はリポジトリ名ではなく、marketplace.json の name フィールドからその名前を取得します。 その後、ユーザーはプラグインをマーケットプレイスの name とエントリの name でインストールします。例えば /plugin install code-formatter@your-marketplace のように。

リポジトリ内のすべてのユーザーのためにマーケットプレイスを登録する

1 つのリポジトリで作業するすべてのユーザーとマーケットプレイスを共有するには、シェルからそこで claude plugin marketplace add your-org/your-marketplace --scope project を 1 回実行し、書き込まれた .claude/settings.json をコミットしてください。Claude Code は、フォルダを信頼する各チームメイトのマーケットプレイスを登録します。

URL ホストマーケットプレイスで相対パスエントリを避ける

ユーザーがマーケットプレイスをベアな marketplace.json URL として追加する場合、Claude Code はそのファイルのみをダウンロードします。plugins 配列内のエントリで、source が ./plugins/formatter のような相対パスの場合、インストール時にits marketplace entry path does not stay inside the marketplace directoryで失敗します。すべてのエントリに、github リポジトリや archive URL のような単独でフェッチできるソースを指定するか、マーケットプレイスを git リポジトリでホストして Claude Code がツリー全体をクローンするようにしてください。

共有ディレクトリでプラグインをその場で編集する

ユーザーが共有ディレクトリからマーケットプレイスを追加する場合、Claude Code は相対パスソースを持つプラグインをそのディレクトリから直接読み取り、コピーしません。ユーザーは次のセッション開始時または /reload-plugins 実行時に編集内容を確認します。更新ステップやバージョンバンプは不要です。

プラグインファイルを Git LFS から除外する

プラグインが必要とするファイルを Git LFS から除外してください。ユーザーが git リポジトリでホストされたマーケットプレイスを追加するか、それがリストする git ベースのプラグインをインストールする場合、Claude Code はそのマーケットプレイスまたはプラグインリポジトリをマシンにクローンします。クローンは LFS コンテンツをダウンロードしないため、LFS 追跡ファイルはポインタファイルとして到着します。 プラグインと同じマーケットプレイスの他の部分の間でファイルを共有するには、プラグインディレクトリ内にシンボリックリンクを作成してください。Claude Code がプラグインをキャッシュにコピーする場合、各シンボリックリンクをターゲットが解決される場所で処理します:
  • プラグイン自体のディレクトリ内:シンボリックリンクはキャッシュ内で相対シンボリックリンクとして保持されるため、実行時にコピーされたターゲットへの解決を続けます。
  • 同じマーケットプレイス内の他の場所:シンボリックリンクは逆参照されます。ターゲットのコンテンツはキャッシュにコピーされます。これにより、メタプラグインの skills/ ディレクトリがマーケットプレイス内の他のプラグインで定義されたスキルにリンクできます。
  • マーケットプレイス外:セキュリティ上の理由からシンボリックリンクはスキップされます。
ローカルパスからインストールされたプラグイン、またはデフォルトの mode が copy である command ソースからインストールされたプラグインの場合、Claude Code はプラグイン自体のディレクトリ内で解決するシンボリックリンクのみを保持し、他はすべてスキップします。 次のコマンドは、マーケットプレイスプラグイン内から兄弟プラグインで定義された共有スキルへのリンクを作成します。Windows では、昇格されたコマンドプロンプトから mklink /D を使用するか、開発者モードを有効にしてください:

組織設定を通じて配布する

Team または Enterprise プランでは、ユーザーが自分で追加するホストの代わりに、claude.ai のOrganization settings > Plugins & skillsを通じてマーケットプレイスを配布することもできます。Organization sync は、claude.ai 上の組織の GitHub または GitLab 接続を通じてリポジトリを読み取るため、ユーザーの git 認証情報は関係ありません。 Organization sync は、/plugin marketplace add よりもリポジトリについてより厳密です:
  • マーケットプレイスリポジトリ:github.com と gitlab.com では、プライベートまたは内部である必要があります
  • プラグインソース:各プラグインソースは github、url、または git-subdir タイプ、または ./ で始まる相対パスである必要があります
  • トップレベルの bin/ ディレクトリ:claude.ai はこれを持つプラグインを拒否し、マーケットプレイスの残りを同期します。エラーメッセージは Plugin contains a top-level bin/ directory で始まります。実行可能ファイルを scripts/ などの別のディレクトリに保持し、フック または MCP サーバー設定から ${CLAUDE_PLUGIN_ROOT}/scripts/<name> として参照してください
組織のプラグインを管理するを参照して、管理者ワークフローを確認してください。

プライベートマーケットプレイスへのアクセスを許可する

ユーザーがマーケットプレイスを追加、インストール、または更新する場合、Claude Code はマシンで git を実行し、対話的なプロンプトをオフにして、そのマシンが既に保持している認証情報に依存します。Claude Code は独自の git トークンを持たず、marketplace.json にはそのためのフィールドがありません。 追加コマンドの形式によって、クローンが SSH または HTTPS で実行されるかを選択します:
  • GitHub owner/repo:Claude Code は ssh -T git@github.com をプローブし、プローブが成功する場合は SSH でクローンします。プローブが失敗するか、SSH クローン自体が失敗する場合は、HTTPS でクローンします。GitHub SSH キーを持たないマシンのユーザーは、CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1 を設定してプローブをスキップし、HTTPS でクローンできます。
  • git@host:path.git:SSH。
  • https://example.com/repo.git:HTTPS。
各プロトコルがマシンで必要とするものをユーザーに伝えてください:
  • SSH:キーはパスフレーズプロンプトなしで機能する必要があります。例えば ssh-agent に読み込まれているため。ホストは既に known_hosts にある必要があります。
  • HTTPS:Claude Code はユーザーの git 認証情報ヘルパーを有効にしたままにしますが、プロンプトを禁止します。ヘルパーが既に保存している認証情報は機能します。要求する必要があるものは失敗します。GitHub では、gh auth login の後に gh auth setup-git を実行すると、認証情報が保存されます。
GitHub Enterprise Server ホストの場合、ユーザーはマシンからそのホストへの git アクセスが必要です。GHES 上のプラグインマーケットプレイスを参照して、各 Claude Code サーフェスが GHES ホストマーケットプレイスに到達するために必要なものを確認してください。 代わりに claude.ai のOrganization settings > Plugins & skillsを通じて配布する場合、ユーザーの git 認証情報は関係ありません。組織設定を通じて配布するを参照して、どのプラグインソースがプライベートになる可能性があるかを確認してください。

git ホストアカウントを持たないユーザーにサービスを提供する

git ホストアカウントを持たないユーザーは、marketplace.json URL として、または共有ディレクトリからマーケットプレイスを追加できますが、エントリソースにもアクセスできるプラグインのみをインストールできます。プライベート github リポジトリを指すエントリは、Claude Code がマーケットプレイスをホストする git に使用するのと同じ非対話的な git でフェッチするため、インストール時に失敗します。 これらのエントリソースは git アカウントを必要としません:
  • archive:HTTPS でダウンロードされた zip。ユーザーは git またはアカウントを必要とせず、URL へのネットワークアクセスのみが必要です。Claude Code v2.1.224 以降が必要です。各アーカイブを sha256 でピンして、Claude Code が変更されたダウンロードを拒否するようにしてください。ダウンロードで認証情報を送信するには、アーカイブダウンロードを認証するを参照してください。
  • パブリック git リポジトリ:Claude Code は、エントリが https:// URL を指定する場合、認証情報なしで HTTPS 経由でパブリック url または git-subdir ソースをクローンします。github ソース、または owner/repo として記述された git-subdir ソースの場合、GitHub SSH キーを持たないユーザーは CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1 を設定します。
1 つのネットワーク上のチームの場合、共有ファイルシステム上の directory マーケットプレイスも git アカウントなしで機能します。ユーザーはパスへの読み取りアクセスのみが必要です。

バックグラウンド自動更新が認証情報で行うこと

バックグラウンド自動更新は、セッション開始後のマーケットプレイスとインストール済みプラグインの Claude Code の無人更新です。ユーザーを最新の状態に保つで説明されているように、ユーザーまたは管理者がオンにするまで、マーケットプレイスではオフです。 プライベートマーケットプレイスでオンの場合、新しいコミットのバックグラウンドチェックはユーザーの設定された git 認証情報ヘルパーを使用し、プロンプトを表示しません。各種類のリモートとヘルパーは異なる結果を与えます:
  • SSH リモート:ssh-agent に読み込まれたキーがチェックを認証します。
  • 保存された認証情報を持つ HTTPS リモート:プロンプトなしで保存された認証情報を提供できるヘルパーがチェックを認証します。Git Credential Manager、macOS Keychain ヘルパー、および git-credential-store は、ホストの認証情報を保持すると、このように機能します。
  • プロンプトが必要なヘルパーを持つ HTTPS リモート:ヘルパーはバックグラウンドで応答できません。更新は静かに失敗し、既存のチェックアウトが所定の位置に留まるため、ユーザーのプラグインは最後に同期された状態から機能し続けます。
チェック後、Claude Code は次のいずれかを実行します:
  • チェックアウトは最新です:Claude Code はそのままにします。
  • チェックが新しいコミットを見つけるか、リモートに到達または認証できないため失敗する:Claude Code はマーケットプレイスを再度クローンし、既存のチェックアウトを新しいクローンに置き換えます。そのクローンが失敗する場合、既存のチェックアウトが所定の位置に留まります。再クローンは大規模なリポジトリでタイムアウトする可能性があります。
プライベートマーケットプレイスを最新に保つために、ユーザーは次のいずれかを実行できます:
  • 認証情報を保存する:最初に認証情報ヘルパーにサインインして、ホストの認証情報を保持するようにします。GitHub の場合、gh auth login を実行してから gh auth setup-git を実行します。
  • 失敗時にチェックアウトを保持する:ユーザーが CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 を設定する場合、バックグラウンドチェックがリモートに到達または認証できない場合、Claude Code は再クローンを試みずに既存のチェックアウトを保持します。プラグインは最後に同期された状態から機能し続けます。
ユーザーが環境で GITHUB_TOKEN または別のプロバイダートークンを設定する場合、それだけではバックグラウンドチェックを認証しません。トークンは gh CLI のヘルパーなどの認証情報ヘルパーを通じて有効になり、GH_TOKEN と GITHUB_TOKEN を読み取ります。

会社全体にロールアウトする

プラグインを会社全体にロールアウトするには、マーケットプレイスの所有者、管理設定を制御する管理者、および Claude Code を使用する各ユーザーが関係します。管理者なしでロールアウトを実行できます。その場合、各ユーザーはマーケットプレイスを追加してプラグインをインストールします。 git ホストアカウントを持たないユーザーの場合、これらのセクションはそれぞれ 1 つの方法をカバーしています:

ユーザーを最新の状態に保つ

ユーザーへの変更は、マーケットプレイスでバックグラウンド自動更新がオンになると、またはユーザーがプラグイン自体を更新するときに到達します。どちらの場合も、ユーザーは計算されたバージョンが変更されたときにのみプラグインの新しいコピーを取得します。バージョンをリリースするで説明されています。

自動更新をオンにする

バックグラウンド自動更新はデフォルトではマーケットプレイスではオフで、marketplace.json にはそれをオンにするフィールドがありません。ユーザーまたは管理者がオンにします:
  • ユーザーにオンにするよう指示する:各ユーザーは /plugin のMarketplacesに移動し、マーケットプレイスを選択して、Enable auto-updateを選択します。
  • 管理者に設定するよう依頼する:管理者が管理設定でマーケットプレイスの extraKnownMarketplaces エントリで "autoUpdate": true を設定する場合、それらの設定を受け取るすべてのユーザーに対してオンです。更新ポリシーを設定するを参照してください。
自動更新がない場合、ユーザーはセッションで /plugin marketplace update <name> を実行するか、シェルで claude plugin update <plugin>@<name> を実行して変更を受け取ります。 更新がユーザーに到達するときに何が表示されるかについては、自動更新が実行されるときを参照してください。

新しいバージョンをリリースする

ユーザーに新しいバージョンをリリースするには、プラグインの version を変更してください。ユーザーは、プラグインの計算されたバージョンが持っているものと異なる場合にのみ新しいコピーを取得します。そのバージョンは plugin.json から最初に来て、次にマーケットプレイスエントリから来ます。バージョンと更新を参照してください。 ユーザーが追加したマーケットプレイスからローカルディレクトリとしてその場で読み込むプラグインは version で制御されません。セッション開始時に現在のファイルを読み込みます。バージョン文字列が何を言おうとも。 その場での読み込みまたは command ソースからのインストール以外のすべてのインストールについて、各リリースで version を増やすか、省略してください:
  • 各リリースで version をバンプする:ユーザーはキャッシュされたコピーに留まります。文字列が変更されるまで。"version": "1.0.0" を設定してコミットをプッシュしても変更しない場合、ユーザーはそれらを受け取りません。
  • version を省略する:ユーザーはコミットを追跡します。plugin.json とマーケットプレイスエントリの両方から version を除外してください。
plugin.json とマーケットプレイスエントリの両方で version を設定しないでください。そうする場合、Claude Code は警告なしに plugin.json 値を使用し、claude plugin validate は不一致を Entry declares version "<a>" but <path>/plugin.json says "<b>" として報告します。

ユーザーを 1 つのバージョンに保持する

1 つのマーケットプレイスは一度に各プラグインの 1 つのバージョンを提供するため、各エントリが指すものを選択することでユーザーをバージョンに保持します:
  • プラグインエントリの ref と sha:ref はブランチまたはタグに名前を付け、sha は github、url、または git-subdir ソースのコミットに名前を付けます。プラグインソースを参照してください。
  • 追加コマンドの #<ref>:your-org/your-marketplace#stable を追加するユーザーはカタログのそのブランチまたはタグを取得します。一度に 2 つのリリースラインの場合は、リリースチャネルを実行するを参照してください。
  • <plugin>--v<version> タグ:依存関係のバージョン範囲はこれらのタグに対して解決されます。他のプラグインが依存するプラグインをリリースするを参照してください。
新しいバージョンをリリースするは、変更されたエントリがユーザーに到達するときを示します。

コマンドソースのコマンドを変更する

command ソースの command を変更するか、その mode を切り替える場合、各ユーザーは Claude Code がそれを実行する前に新しいコマンドを受け入れる必要があります。Claude Code は、ユーザーがプラグインをインストールまたは最後に更新したときに受け入れた正確なコマンドのみを実行します。 ユーザーのマーケットプレイスのコピーが変更を取得した後、そのユーザーは以下を見ます:
  • バックグラウンド実行なし:コマンドのセッションごとの実行はそのユーザーに対して停止するため、ツールの新しい出力はそれらに到達しません。
  • /plugin エラータブのエントリ:エントリは新しいコマンドと実行する claude plugin update コマンドを表示します。
ユーザーにそのエントリが表示する claude plugin update コマンドをターミナルで実行するよう指示してください。Claude Code は新しいコマンドを表示し、それを受け入れるよう求めます。

リリースチャネルを実行する

安定版と早期アクセストラックを提供するには、エントリが同じプラグインの異なる ref を指す 2 つのマーケットプレイスをホストし、各ユーザーが必要なものを追加できるようにしてください。Claude Code にはリリースチャネルの概念がなく、1 つのマーケットプレイスは一度に各プラグインの 1 つのバージョンを提供します。 2 つの marketplace.json ファイルに異なる name 値を指定してください。Claude Code はマーケットプレイスを name で識別するため、ユーザーは一度に同じ名前の 2 つのマーケットプレイスを登録できません。 これら 2 つのカタログでは、stable-tools を追加するユーザーは stable ブランチから code-formatter をインストールし、latest-tools を追加するユーザーは latest からインストールします:
2 つの ref に異なる plugin.json バージョンを指定するか、version を省略してコミット SHA がそれらを区別するようにしてください。更新はバージョンを比較することで検出されるため、バージョン変更なしで移動する ref はユーザーをキャッシュされたコピーに残します。 チャネルをユーザーが選択させるのではなくユーザーグループに割り当てるには、管理者が各グループに一致する extraKnownMarketplaces エントリを指定します。更新ポリシーを設定するで説明されています。

プラグインの名前変更または削除

プラグインの name はその識別子です。ユーザーは enabledPlugins と pluginConfigs 設定キーおよび /plugin install でそれを参照するため、変更するとすべての既存インストールが破損します。 ユーザーが /plugin で見るラベルを何も破損させずに変更するには、plugin.json で displayName を設定し、name を変更しないままにしてください。

名前変更マップでユーザーを移行する

name を変更する必要がある場合、marketplace.json にトップレベルの renames マップを追加して、Claude Code がPlugin "<name>" not found in marketplaceを報告する代わりに既存ユーザーを移行するようにしてください。plugins からエントリを削除する場合も同じことをしてください。自動移行には Claude Code v2.1.193 以降が必要です。 各前の名前を現在の名前にマップするか、プラグインが削除されたときは null にマップしてください。このマーケットプレイスは formatter を code-formatter に名前変更し、legacy-linter が削除されたことを記録します:
プッシュ後、古い名前がまだ有効になっているユーザーは、これらの結果のいずれかを見ます:
  • 名前変更されたエントリ:プラグインは新しい名前で読み込まれます。claude plugin list とプラグインの詳細は /plugin の下に Renamed to "code-formatter" in the "your-marketplace" marketplace を 1 回表示し、Claude Code はユーザー、プロジェクト、ローカル設定スコープの enabledPlugins と pluginConfigs の古いキーを新しいキーに書き直します。
  • null エントリ:古いキーはそれらのスコープから削除され、ユーザーは Removed from the "your-marketplace" marketplace を見ます。
  • 管理設定で有効:プラグインは新しい名前で読み込まれ続けますが、Claude Code は管理設定を書き直すことができないため、管理者がそこで enabledPlugins を更新するまで通知が繰り返されます。
git リポジトリまたは URL から追加されたマーケットプレイスの場合、名前変更されたプラグインは、ユーザーがセッションで /plugin install code-formatter@your-marketplace を 1 回実行するまでPlugin "<name>" not cached at <path>を報告します。 renames を追加のみの履歴として扱ってください。すべてのユーザーが移行した後も古いエントリを保持してください。再度名前変更する場合、最初のエントリを編集するのではなく、2 番目のエントリを追加してください。Claude Code は最も古い名前からチェーンをたどるため。 シェルで、マップを編集した後に claude plugin validate . を実行してください。サイクルするか、null またはプラグイン内の名前以外の場所で終わるチェーンを拒否します。renames.<name>: chain does not resolve で。

削除されたプラグインをユーザーのマシンからアンインストールする

削除されたプラグインをユーザーのマシンから残すのではなくアンインストールするには、marketplace.json のトップレベルで "forceRemoveDeletedPlugins": true を設定してください。フィールドがない場合、削除されたプラグインはインストールされたままで、セッションが読み込むときに Plugin "<name>" not found in marketplace を報告します。それがある場合、Claude Code は各セッション開始時に以下を実行します:
  1. ユーザーがマーケットプレイスからインストールしたものをエントリと renames マップと比較し、リストされていないか名前変更されていないプラグインを削除されたものとして扱います。
  2. ユーザー、プロジェクト、ローカルスコープから各削除されたプラグインをアンインストールします。管理設定のみがインストールしたプラグインは所定の位置に留まります。
  3. /plugin のFlagged見出しの下に各削除されたプラグインをリストします。ステータスは Removed from marketplace です。

アーカイブダウンロードを認証する

archive ダウンロード(プライベートレジストリからのダウンロードなど)を認証するには、Claude Code がそれで送信する HTTP ヘッダーを設定してください。これらの場所のいずれかで headers を設定できます:
  • マーケットプレイスの url ソース:extraKnownMarketplaces エントリなど、マーケットプレイスを登録した url ソース。
  • プラグインのエントリ:Claude Code v2.1.238 以降では、代わりに source の横にプラグインの marketplace.json エントリで設定できます。
どちらの場所でも、値が短命の場合(レジストリが要求時に生成するトークンなど)は、headers の代わりに headersHelper コマンドを設定してください。Claude Code はコマンドを実行し、その場所のヘッダーとして出力する JSON オブジェクトを送信します。Claude Code v2.1.238 以降が必要です。 マーケットプレイスリファレンスは headers と headersHelper エントリフィールドをリストしています。 選択する場所は、どのダウンロードがヘッダーを取得し、Claude Code がコマンドをいつ実行するかを決定します: 両方の場所が同じ名前のヘッダーを設定する場合、Claude Code はエントリの値を送信します。1 つの場所内で、コマンドが出力するヘッダーは同じ名前のリストされたヘッダーをオーバーライドします。

プラグインエントリに headersHelper を追加する

このエントリは source の横に headersHelper を設定します。また、"strict": falseを設定します。これは Claude Code が headersHelper を設定する marketplace.json エントリに必要とします:
エントリを確認するには、シェルで claude plugin install my-plugin@your-marketplace を実行してください。Claude Code はコマンドとアーカイブ URL を表示し、受け入れた後に zip をダウンロードします。

headersHelper コマンドを書く

マーケットプレイスの url ソースまたはプラグインエントリで headersHelper を設定するかどうかにかかわらず、コマンドを書いてこれらの要件を満たしてください:
  • コマンドテキスト:最大 500 文字の印字可能 ASCII。4 つ以上のスペースの実行なし。
  • 出力:stdout に 1 つの JSON オブジェクトのヘッダー名と文字列値を出力してから、10 秒以内に終了 0 で終了します。
  • シェルと作業ディレクトリ:Claude Code はコマンドを sh を通じて実行するか、Windows では cmd.exe を通じて実行します。作業ディレクトリは設定ディレクトリです。~/.claude または CLAUDE_CONFIG_DIR。相対パスはそのディレクトリに対して解決されるため、ユーザーのプロジェクトではなく、絶対パスまたは PATH 上のコマンドを指定してください。
  • Claude Code が削除する変数:コマンドが marketplace.json エントリ、またはプロジェクトの .claude/settings.json または .claude/settings.local.json で設定されている場合、Claude Code は環境から認証情報のように見える名前を持つすべての変数を削除します。MCP headersHelper に適用するのと同じルール。ANTHROPIC_API_KEY と MY_REGISTRY_TOKEN は両方とも削除されるため、コマンドはファイルまたは認証情報ストアから認証情報を読み取ります。この削除はユーザー設定、--settings ファイル、または管理設定で設定されたコマンドには適用されません。
  • Claude Code が設定する変数:url ソースのコマンドの場合は CLAUDE_CODE_MARKETPLACE_URL と CLAUDE_CODE_MARKETPLACE_NAME。エントリのコマンドの場合は CLAUDE_CODE_PLUGIN_NAME と CLAUDE_CODE_PLUGIN_ARCHIVE_URL。CLAUDE_CODE_MARKETPLACE_NAME は、ユーザーが URL でマーケットプレイスを追加した後の最初のフェッチでは設定されていません。そのフェッチが名前を提供するため。
ベアラートークンをミントするコマンドは、このようなオブジェクトを出力します:

Claude Code が headersHelper コマンドをスキップするか出力をドロップするとき

headersHelper コマンドは実行されないか、headers からのヘッダーまたはコマンドの出力は、以下のいずれかが適用される場合にドロップされます:
  • コマンドが失敗する:コマンドが非ゼロで終了するか、10 秒を超えて実行するか、JSON オブジェクト以外の文字列値を出力する場合、コマンドが実行されたフェッチまたはダウンロードは発生しません。
  • マーケットプレイス URL が https:// で始まらない:その url ソースのコマンドは実行されず、リクエストは headers フィールドにリストされたヘッダーのみを実行します。
  • リダイレクトがオリジンを離れる:ダウンロードがアーカイブ URL のオリジンからリダイレクトされる場合、リダイレクトされたリクエストはマーケットプレイス url ソースまたはプラグインエントリからの headers 値またはコマンド出力を実行しません。
  • エントリがルーティングまたはアイデンティティヘッダーを設定する:Claude Code はエントリの headers とコマンド出力から Host、Cookie、X-Forwarded-* などのリクエストルーティングおよびクライアントアイデンティティ名をドロップし、Authorization などの認証名を保持します。すべての marketplace.json エントリはこのようにフィルタリングされます。設定内のインラインプラグインエントリの場合は、extraKnownMarketplacesを参照してください。
  • --add-dir ディレクトリの設定で設定されたコマンド:コマンドは無視され、url ソースとインラインプラグインエントリの両方で、そのファイルの headers のみが送信されます。
  • 管理設定がコマンドをブロックする:disableCommandPluginSourcesを true に設定するとブロック headersHelper コマンド、および allowManagedHooksOnly も disableCommandPluginSources が明示的に false でない限りブロックします。どちらのブロックでも、Claude Code は管理設定自体が宣言するマーケットプレイスのコマンドを実行します。

ユーザーが headersHelper コマンドを受け入れる方法

ユーザーは、そのプラグインを単独でインストールまたは更新するたびに、プラグインエントリのコマンドを受け入れます。彼らは /plugin のプラグイン自体のビューから、または claude plugin install または claude plugin update でそれを行います。Claude Code はコマンドとアーカイブ URL を表示し、ユーザーが受け入れた後にのみコマンドを実行します。 非対話的なシェルでは、--yesを渡してコマンドを受け入れます。前の --json 実行が表示した、そのコマンドのみを受け入れるには、--accept-commandを実行が報告した sha256 で渡します。 Claude Code は表示したコマンドのみを実行し、表示したアーカイブ URL に対してのみ実行します。エントリのコマンドまたはアーカイブ URL が間に変更された場合、Claude Code はインストールまたは更新を拒否します。クエリ文字列のみの変更はカウントされません。

コマンドを要求する代わりに拒否するインストールと更新

単一プラグインのインストールまたは更新以外の操作では、Claude Code はエントリのコマンドを実行せず、アーカイブをダウンロードしません。プラグインはインストール済みバージョンに留まるか、インストールされたままで、ユーザーは以下のいずれかを見ます:
  • 複数のプラグインを一度にインストールする、プラグイン提案から、または別のプラグインの依存関係として:Claude Code はコマンドを持つプラグインを拒否し、ユーザーを /plugin のそのプラグイン自体のビューに指示します。バルクインストール内の他のプラグインはまだインストールします。プラグインが拒否されたプラグインに依存する場合、ユーザーがそのプラグインを単独でインストールするまで失敗します。
  • バックグラウンド自動更新、またはアーカイブがダウンロードされたことのないプラグインのセッション開始:Claude Code はプラグインを /plugin エラータブにリストして、ユーザーが単独でインストールまたは更新することを知っています。

マーケットプレイス url ソースのコマンドが実行されるとき

マーケットプレイス url ソースの headersHelper を、マーケットプレイスが公開するカタログではなく、extraKnownMarketplaces エントリなどの設定ファイルで宣言します。Claude Code はそれぞれのインストールまたは更新でユーザーに受け入れるよう求めません。代わりに、それを宣言する設定ファイルが Claude Code がそれを実行するときを決定します: これらのファイルの 1 つのインラインプラグインエントリの場合、Claude Code はそのファイルのマーケットプレイスレベルのコマンドと同じフォルダ信頼または設定承認を要求し、ユーザーはまたそれぞれのインストールまたは更新でエントリのコマンドを受け入れます。

他のプラグインに依存し、推奨する

エントリは他のプラグインへの依存関係を宣言できます。
  • バージョン範囲: 依存関係は semver 範囲を含むことができます。
  • クロスマーケットプレイス依存関係: 別のマーケットプレイスからの依存関係は、お客様のマーケットプレイスが allowCrossMarketplaceDependenciesOn にそのマーケットプレイスをリストしている場合にのみインストールされます。
バージョン範囲、<plugin>--v<version> git タグ規約がそれらに対して解決される方法、およびクロスマーケットプレイス信頼については、Plugin dependencies を参照してください。 Claude Code がプロジェクトに一致するときにプラグインを提案するようにするには、プロジェクトを識別するシグナルを含む relevance ブロックをエントリに追加します。ユーザーは、管理者がそれを pluginSuggestionMarketplaces にリストしている場合にのみ、お客様のマーケットプレイスからの提案を表示します。シグナルと有効化ステップについては、Plugin relevance を参照してください。

マーケットプレイスができないことへの対応

マーケットプレイスの所有者が要求する一部の機能には、marketplace.json にフィールドがありません。以下は各機能に対する最も近いオプションです。
  • ユーザーがインストールできるその他のプラグインを制限する: マーケットプレイスの許可リストは管理設定 strictKnownMarketplaces です。ユーザーがインストールできるものを制限する を参照してください。
  • ユーザーが要求せずにプラグインをインストールまたは有効にする: エントリフィールドはプラグインをインストールしません。管理設定の enabledPlugins はフリート全体に対してそれを実行します。プラグインを事前インストールして必須にする を参照してください。
  • 異なるユーザーに異なるエントリを表示する: エントリには対象ユーザーフィールドがなく、マーケットプレイスを追加するすべてのユーザーがカタログ全体を表示します。異なる対象ユーザー向けに別々のマーケットプレイスをホストしてください。
  • プラグインを非推奨としてマークする: 非推奨状態はありません。オプションはエントリを削除し、その名前を renames で null にマップし、オプションで forceRemoveDeletedPlugins を設定することです。
  • ユーザーの自動更新をオンにする: 各ユーザーは /plugin の Marketplaces でオンにするか、管理者が管理設定で autoUpdate を設定します。自動更新をオンにする を参照してください。
  • Git 認証情報を保持する: マーケットプレイスフィールドは Git トークンを保持しません。Git でホストされるマーケットプレイスまたはプラグインへのアクセスは、プライベートマーケットプレイスへのアクセスを許可する に従い、ユーザーの Git セットアップに従います。archive ソースの場合、エントリは代わりに headers または headersHelper を設定できます。

次のステップ