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を実行すると、認証情報が保存されます。
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を設定します。
directory マーケットプレイスも git アカウントなしで機能します。ユーザーはパスへの読み取りアクセスのみが必要です。
バックグラウンド自動更新が認証情報で行うこと
バックグラウンド自動更新は、セッション開始後のマーケットプレイスとインストール済みプラグインの Claude Code の無人更新です。ユーザーを最新の状態に保つで説明されているように、ユーザーまたは管理者がオンにするまで、マーケットプレイスではオフです。 プライベートマーケットプレイスでオンの場合、新しいコミットのバックグラウンドチェックはユーザーの設定された git 認証情報ヘルパーを使用し、プロンプトを表示しません。各種類のリモートとヘルパーは異なる結果を与えます:- SSH リモート:
ssh-agentに読み込まれたキーがチェックを認証します。 - 保存された認証情報を持つ HTTPS リモート:プロンプトなしで保存された認証情報を提供できるヘルパーがチェックを認証します。Git Credential Manager、macOS Keychain ヘルパー、および
git-credential-storeは、ホストの認証情報を保持すると、このように機能します。 - プロンプトが必要なヘルパーを持つ HTTPS リモート:ヘルパーはバックグラウンドで応答できません。更新は静かに失敗し、既存のチェックアウトが所定の位置に留まるため、ユーザーのプラグインは最後に同期された状態から機能し続けます。
- チェックアウトは最新です: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 つの方法をカバーしています:
- git アカウントを必要としないエントリソース:git ホストアカウントを持たないユーザーにサービスを提供する
- 事前入力されたプラグインディレクトリ:コンテナと CI をシードする。これは git ホストアカウントを持たないユーザーにもサービスを提供します
- claude.ai 組織設定:組織設定を通じて配布する。ユーザーの git 認証情報は関係ありません
ユーザーを最新の状態に保つ
ユーザーへの変更は、マーケットプレイスでバックグラウンド自動更新がオンになると、またはユーザーがプラグイン自体を更新するときに到達します。どちらの場合も、ユーザーは計算されたバージョンが変更されたときにのみプラグインの新しいコピーを取得します。バージョンをリリースするで説明されています。自動更新をオンにする
バックグラウンド自動更新はデフォルトではマーケットプレイスではオフで、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 からインストールします:
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を更新するまで通知が繰り返されます。
/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 は各セッション開始時に以下を実行します:
- ユーザーがマーケットプレイスからインストールしたものをエントリと
renamesマップと比較し、リストされていないか名前変更されていないプラグインを削除されたものとして扱います。 - ユーザー、プロジェクト、ローカルスコープから各削除されたプラグインをアンインストールします。管理設定のみがインストールしたプラグインは所定の位置に留まります。
/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 は環境から認証情報のように見える名前を持つすべての変数を削除します。MCPheadersHelperに適用するのと同じルール。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を設定できます。
次のステップ
- マーケットプレイスリファレンス:
marketplace.jsonフィールド、ソースタイプ、および検証メッセージ - 組織のプラグインを管理する:組織のマシン全体でマーケットプレイスを要求、制限、またはシードする
- プラグイン依存関係:プラグインが依存するプラグインがバージョンを解決できるようにリリースをタグ付けする
- プラグインのトラブルシューティング:ユーザーがマーケットプレイスから追加または更新するときに見るエラー