plugin-marketplaces.md +0 −1688 deleted
File Deleted View Diff
1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# プラグインマーケットプレイスの作成と配布
6
7> Claude Code 拡張機能を配布するためのプラグインマーケットプレイスを構築およびホストします。
8
9**プラグインマーケットプレイス**は、他のユーザーにプラグインを配布できるカタログです。マーケットプレイスは、一元化された検出、バージョン追跡、自動更新、および複数のソースタイプ(Git リポジトリ、ローカルパスなど)のサポートを提供します。このガイドでは、チームやコミュニティとプラグインを共有するための独自のマーケットプレイスを作成する方法を説明します。
10
11既存のマーケットプレイスからプラグインをインストールしたいですか?[既成プラグインの検出とインストール](/docs/ja/discover-plugins)を参照してください。
12
13<h2 id="overview">
14 概要
15</h2>
16
17マーケットプレイスの作成と配布には、以下が含まれます。
18
191. **プラグインの作成**:skills、agents、hooks、MCP サーバー、または LSP サーバーを使用して 1 つ以上のプラグインを構築します。このガイドでは、配布するプラグインが既にあることを前提としています。プラグインの作成方法の詳細については、[プラグインの作成](/docs/ja/plugins)を参照してください。
202. **マーケットプレイスファイルの作成**:プラグインとその場所を一覧表示する `marketplace.json` を定義します。[マーケットプレイスファイルの作成](#create-the-marketplace-file)を参照してください。
213. **マーケットプレイスのホスト**:GitHub、GitLab、または別の Git ホストにプッシュします。[マーケットプレイスのホストと配布](#host-and-distribute-marketplaces)を参照してください。
224. **ユーザーと共有**:ユーザーが `/plugin marketplace add` でマーケットプレイスを追加し、個別のプラグインをインストールします。[プラグインの検出とインストール](/docs/ja/discover-plugins)を参照してください。
23
24マーケットプレイスがライブになったら、リポジトリに変更をプッシュして更新できます。ユーザーは `/plugin marketplace update` でローカルコピーを更新します。
25
26<h2 id="walkthrough-create-a-local-marketplace">
27 チュートリアル:ローカルマーケットプレイスの作成
28</h2>
29
30この例では、1 つのプラグイン(コードレビュー用の `quality-review` skill)を含むマーケットプレイスを作成します。ディレクトリ構造を作成し、skill を追加し、プラグインマニフェストとマーケットプレイスカタログを作成してから、インストールしてテストします。
31
32<Steps>
33 <Step title="ディレクトリ構造の作成">
34 ```bash theme={null}
35 mkdir -p my-marketplace/.claude-plugin
36 mkdir -p my-marketplace/plugins/quality-review-plugin/.claude-plugin
37 mkdir -p my-marketplace/plugins/quality-review-plugin/skills/quality-review
38 ```
39 </Step>
40
41 <Step title="skill の作成">
42 `quality-review` skill が何をするかを定義する `SKILL.md` ファイルを作成します。
43
44 ```markdown my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md theme={null}
45 ---
46 description: Review code for bugs, security, and performance
47 ---
48
49 Review the code I've selected or the recent changes for:
50 - Potential bugs or edge cases
51 - Security concerns
52 - Performance issues
53 - Readability improvements
54
55 Be concise and actionable.
56 ```
57 </Step>
58
59 <Step title="プラグインマニフェストの作成">
60 プラグインを説明する `plugin.json` ファイルを作成します。マニフェストは `.claude-plugin/` ディレクトリに配置されます。
61
62 ```json my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json theme={null}
63 {
64 "name": "quality-review-plugin",
65 "description": "Adds a quality-review skill for quick code reviews",
66 "version": "1.0.0",
67 "author": {
68 "name": "Your Name"
69 }
70 }
71 ```
72
73 <Note>
74 `version` を設定すると、ユーザーはこのフィールドを変更した場合にのみ更新を受け取ります。そのため、リリースのたびにバージョンを上げてください。[`command` ソース](#command-sources)を持つプラグインはこのフィールドでピン留めされません。[ローカルディレクトリから追加されたマーケットプレイスから](/docs/ja/plugins-reference#plugin-caching-and-file-resolution)その場で読み込まれるプラグインもそうです。`version` を省略した場合、バージョンは[バージョン管理](/docs/ja/plugins-reference#version-management)の次のソースから取得されます。
75 </Note>
76 </Step>
77
78 <Step title="マーケットプレイスファイルの作成">
79 プラグインを一覧表示するマーケットプレイスカタログを作成します。
80
81 ```json my-marketplace/.claude-plugin/marketplace.json theme={null}
82 {
83 "name": "my-plugins",
84 "owner": {
85 "name": "Your Name"
86 },
87 "plugins": [
88 {
89 "name": "quality-review-plugin",
90 "source": "./plugins/quality-review-plugin",
91 "description": "Adds a quality-review skill for quick code reviews"
92 }
93 ]
94 }
95 ```
96 </Step>
97
98 <Step title="追加とインストール">
99 `my-marketplace` を含むディレクトリから Claude Code を起動し、以下のコマンドを実行します。install コマンドはプラグイン詳細ビューを開き、インストールスコープを選択してインストールを確認します。インストール概要を確認します。`Run /reload-plugins to activate.` と報告される場合は、[プラグイン変更の再起動なしでの適用](/docs/ja/discover-plugins#apply-plugin-changes-without-restarting)を参照してください。
100
101 ```shell theme={null}
102 /plugin marketplace add ./my-marketplace
103 /plugin install quality-review-plugin@my-plugins
104 ```
105 </Step>
106
107 <Step title="試してみる">
108 エディタでコードを選択し、新しい skill を実行します。プラグイン skill はプラグイン名でネームスペース化されます。
109
110 ```shell theme={null}
111 /quality-review-plugin:quality-review
112 ```
113 </Step>
114</Steps>
115
116プラグインが実行できることの詳細(hooks、agents、MCP サーバー、LSP サーバーを含む)については、[プラグイン](/docs/ja/plugins)を参照してください。
117
118<Note>
119 **プラグインのインストール方法**:ユーザーがプラグインをインストールすると、Claude Code はプラグインディレクトリをキャッシュロケーションにコピーします。ただし、プラグインがその場で読み込まれる場合は除きます。[link mode](#copy-mode-and-link-mode) の [`command` ソース](#command-sources)はその場で読み込まれ、[ローカルディレクトリから追加されたマーケットプレイスの相対パスソース](#relative-paths)もそうです。コピーされたプラグインは、`../shared-utils` のようなパスを使用してプラグインディレクトリの外部のファイルを参照できません。これらのファイルはコピーされないためです。
120
121 プラグイン間でファイルを共有する必要がある場合は、symlinks を使用します。詳細については、[プラグインキャッシングとファイル解決](/docs/ja/plugins-reference#plugin-caching-and-file-resolution)を参照してください。
122</Note>
123
124<h2 id="create-the-marketplace-file">
125 マーケットプレイスファイルの作成
126</h2>
127
128リポジトリルートに `.claude-plugin/marketplace.json` を作成します。このファイルは、マーケットプレイスの名前、所有者情報、およびソースを含むプラグインのリストを定義します。
129
130各プラグインエントリには、最低限 `name` と `source`(Claude Code がどこから取得するかを指定)が必要です。利用可能なすべてのフィールドについては、以下の[完全なスキーマ](#marketplace-schema)を参照してください。
131
132```json theme={null}
133{
134 "name": "company-tools",
135 "owner": {
136 "name": "DevTools Team",
137 "email": "devtools@example.com"
138 },
139 "plugins": [
140 {
141 "name": "code-formatter",
142 "source": "./plugins/formatter",
143 "description": "Automatic code formatting on save",
144 "version": "2.1.0",
145 "author": {
146 "name": "DevTools Team"
147 }
148 },
149 {
150 "name": "deployment-tools",
151 "source": {
152 "source": "github",
153 "repo": "company/deploy-plugin"
154 },
155 "description": "Deployment automation tools"
156 }
157 ]
158}
159```
160
161<h2 id="marketplace-schema">
162 マーケットプレイススキーマ
163</h2>
164
165<h3 id="required-fields">
166 必須フィールド
167</h3>
168
169| フィールド | タイプ | 説明 | 例 |
170| :-------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------ |
171| `name` | string | ケバブケースのマーケットプレイス識別子。スペース、制御文字、双方向フォーマット文字は含まれません。これは公開向けです。ユーザーはプラグインをインストールするときに表示されます(例:`/plugin install my-tool@your-marketplace`)。各ユーザーは、マーケットプレイス名ごとに 1 つのマーケットプレイスのみを登録できます。同じ名前の 2 番目のマーケットプレイスを追加すると、Claude Code は最初のマーケットプレイスを置き換えます。1 つのマーケットプレイス名の下に複数のプラグインを公開するには、すべてを [単一の `marketplace.json`](#create-the-marketplace-file) にリストします。 | `"acme-tools"` |
172| `owner` | object | マーケットプレイスメンテナー情報。[所有者フィールド](#owner-fields)を参照してください | |
173| `plugins` | array | 利用可能なプラグインのリスト | [プラグインエントリ](#plugin-entries)を参照してください |
174
175<Note>
176 **予約名**:以下のマーケットプレイス名は Anthropic の公式使用のために予約されており、サードパーティのマーケットプレイスでは使用できません:`claude-code-marketplace`、`claude-code-plugins`、`claude-plugins-official`、`claude-plugins-community`、`claude-community`、`anthropic-marketplace`、`anthropic-plugins`、`agent-skills`、`anthropic-agent-skills`、`knowledge-work-plugins`、`life-sciences`、`claude-for-legal`、`claude-for-financial-services`、`financial-services-plugins`、`first-party-plugins`、`claude-tag-plugins`、`healthcare`。公式マーケットプレイスになりすましている名前(`official-claude-plugins` や `anthropic-plugins-v2` など)もブロックされています。これらの名前を予約することで、サードパーティのマーケットプレイスが Anthropic 公開ソースとして自らを提示することを防ぎます。
177
178 Claude Code は、マーケットプレイスを追加するときだけでなく、マーケットプレイスをロードするたびに予約名を再チェックします。これらの名前の 1 つの下に登録されていたマーケットプレイスが、その名前が予約されるようになると、ロードが停止し、[信頼できないソースから登録されている](/docs/ja/errors#marketplace-is-registered-from-an-untrusted-source)ことを報告します。そのマーケットプレイスを削除し、公式 Anthropic ソースから再度追加してください。新しく予約された名前の影響を受けるサードパーティのマーケットプレイスは、別の名前の下で再度追加するとすぐにロードされます。v2.1.205 より前では、`first-party-plugins` と `healthcare` は予約されておらず、予約名の下に既に登録されているマーケットプレイスはロードされ続けていました。v2.1.265 より前では、`claude-tag-plugins` は予約されていませんでした。
179
180 マーケットプレイスに `npm`、`pip`、`uv`、`cargo`、`github`、または `gh` という名前を付けることもできません。大文字小文字は問いません。このチェックには Claude Code v2.1.275 以降が必要です。
181</Note>
182
183<h3 id="owner-fields">
184 所有者フィールド
185</h3>
186
187| フィールド | タイプ | 必須 | 説明 |
188| :------ | :----- | :-- | :------------------------------ |
189| `name` | string | はい | メンテナーまたはチームの名前 |
190| `email` | string | いいえ | メンテナーの連絡先メール |
191| `url` | string | いいえ | ウェブサイト、GitHub プロフィール、または組織の URL |
192
193<h3 id="optional-fields">
194 オプションフィールド
195</h3>
196
197| フィールド | タイプ | 説明 |
198| :------------------------------------ | :----- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
199| `$schema` | string | エディターのオートコンプリートと検証用の JSON Schema URL。Claude Code はロード時にこのフィールドを無視します。 |
200| `description` | string | マーケットプレイスの簡潔な説明 |
201| `version` | string | マーケットプレイスマニフェストバージョン |
202| `metadata.pluginRoot` | string | Claude Code が裸のプラグインソース名を解決するディレクトリ。[相対パス](#relative-paths)を参照してください。Claude Code v2.1.239 以降が必要です。 |
203| `allowCrossMarketplaceDependenciesOn` | array | このマーケットプレイス内のプラグインが依存する可能性のある他のマーケットプレイス。ここにリストされていないマーケットプレイスからの依存関係はインストール時にブロックされます。[別のマーケットプレイスからプラグインに依存する](/docs/ja/plugin-dependencies#depend-on-a-plugin-from-another-marketplace)を参照してください。 |
204| `renames` | object | プラグインの以前の `name` から現在の名前へのマッピング、またはプラグインが削除された場合は `null`。マーケットプレイス内のエントリの名前を変更または削除するときに、既存ユーザーが自動的に移行できるようにします。[プラグインの名前変更または削除](#rename-or-remove-a-plugin)を参照してください。Claude Code v2.1.193 以降が必要です。 |
205
206`description` と `version` は後方互換性のため `metadata` の下でも受け入れられます。
207
208<h2 id="plugin-entries">
209 プラグインエントリ
210</h2>
211
212`plugins` 配列内の各プラグインエントリは、プラグインとその場所を説明します。[プラグインマニフェストスキーマ](/docs/ja/plugins-reference#plugin-manifest-schema)のフィールド(`description`、`version`、`author`、`commands`、`hooks` など)を含めることができます。さらに、これらのマーケットプレイス固有のフィールド:`source`、`category`、`tags`、`strict`、`relevance`、`headers`、および `headersHelper` があります。
213
214<h3 id="required-fields-2">
215 必須フィールド
216</h3>
217
218| フィールド | タイプ | 説明 |
219| :------- | :------------- | :--------------------------------------------------------------------------------------------------------------------- |
220| `name` | string | ケバブケースのプラグイン識別子。スペース、制御文字、双方向フォーマット文字は含まれません。これは公開向けです。ユーザーはインストール時に表示されます(例:`/plugin install my-plugin@marketplace`)。 |
221| `source` | string\|object | プラグインを取得する場所(以下の[プラグインソース](#plugin-sources)を参照) |
222
223<h3 id="optional-plugin-fields">
224 オプションプラグインフィールド
225</h3>
226
227**標準メタデータフィールド:**
228
229| フィールド | タイプ | 説明 |
230| :--------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
231| `displayName` | string | UI サーフェスに表示される人間が読める名前。エントリもプラグインの `plugin.json` も設定しない場合、ユーザーはプラグインの `name` を表示されます。スペースと任意の大文字小文字を含めることができます。名前空間指定またはルックアップには使用されません。 |
232| `description` | string | プラグインの簡潔な説明 |
233| `version` | string | プラグインバージョン。設定されている場合(ここまたは `plugin.json` で)、プラグインはこの文字列にピン留めされ、ユーザーは変更時にのみ更新を受け取ります。[コマンドソース](#command-sources)を持つプラグインは、どちらのフィールドでもピン留めされません。[マーケットプレイスから所定の場所に読み込まれた](/docs/ja/plugins-reference#plugin-caching-and-file-resolution)プラグインもそうではありません。どちらにも設定されていない場合、バージョンは[バージョン管理](/docs/ja/plugins-reference#version-management)の次のソースから取得されます。 |
234| `author` | object | プラグイン作成者情報(`name` は必須、`email` と `url` はオプション) |
235| `homepage` | string | プラグインホームページまたはドキュメント URL |
236| `repository` | string | ソースコードリポジトリ URL |
237| `license` | string | SPDX ライセンス識別子(例:MIT、Apache-2.0) |
238| `keywords` | array | プラグイン検出と分類用のタグ |
239| `metadata` | object | エンタイトルメントやカタログデータなど、独自のフィールド用のフリーフォームオブジェクト。Claude Code はこれを読みません。v2.1.222 より前では、`claude plugin validate` はキーを認識されないフィールドとして報告していました。 |
240| `category` | string | 整理用のプラグインカテゴリ |
241| `tags` | array | 検索可能性用のタグ |
242| `strict` | boolean | `plugin.json` がコンポーネント定義の権限であるかどうかを制御します(デフォルト:true)。以下の[厳密モード](#strict-mode)を参照してください。 |
243| `relevance` | object | Claude Code がこのプラグインをユーザーに提案するタイミングを示すシグナル。管理者が管理設定でホワイトリストに登録したマーケットプレイスに対してのみ有効になります。[組織向けプラグインの推奨](/docs/ja/plugin-relevance)を参照してください。 |
244| `defaultEnabled` | boolean | プラグインがインストール後に有効になるかどうか(デフォルト:true)。ユーザーがオプトインするまでプラグインを無効にしてインストールする場合は `false` に設定します。プラグインの `plugin.json` 内の同じフィールドより優先されます。[デフォルト有効化](/docs/ja/plugins-reference#default-enablement)を参照してください。 |
245
246エントリとプラグイン自体の `plugin.json` の両方が、表示フィールド `displayName`、`description`、`author`、`homepage`、`repository`、`license`、および `keywords` を設定できます。プラグインリストと詳細では、インストール前後:
247
248* エントリで設定したフィールドについては、`plugin.json` が異なる値を設定している場合でも、ユーザーはエントリの値を表示されます。
249* エントリが設定していないフィールドについては、ユーザーは `plugin.json` の値を表示されます。
250
251インストール前に、Claude Code は[相対パスソース](#relative-paths)を持つエントリの `plugin.json` のみを読むことができます。そのプラグインファイルはマーケットプレイス内に存在します。他のソースタイプを持つエントリの場合、ユーザーはプラグインをインストールするまで、エントリ自体のフィールドのみを表示されます。
252
253**コンポーネント設定フィールド:**
254
255| フィールド | タイプ | 説明 |
256| :----------- | :------------- | :----------------------------------------- |
257| `skills` | string\|array | `<name>/SKILL.md` を含む skill ディレクトリへのカスタムパス |
258| `commands` | string\|array | フラットな `.md` skill ファイルまたはディレクトリへのカスタムパス |
259| `agents` | string\|array | agent ファイルへのカスタムパス |
260| `hooks` | string\|object | カスタム hooks 設定または hooks ファイルへのパス |
261| `mcpServers` | string\|object | MCP サーバー設定または MCP 設定ファイルへのパス |
262| `lspServers` | string\|object | LSP サーバー設定または LSP 設定ファイルへのパス |
263
264**アーカイブ認証フィールド:**
265
266エントリが認証情報を必要とするサーバー上の[`archive` ソース](#zip-archives)を持つ場合、これらを設定します。
267
268| フィールド | タイプ | 説明 |
269| :-------------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
270| `headers` | object | Claude Code がこのエントリのアーカイブをダウンロードするときに送信する HTTP ヘッダー。マーケットプレイスの同じ名前のヘッダーをオーバーライドします。Claude Code v2.1.238 以降が必要です。 |
271| `headersHelper` | string | このエントリのアーカイブダウンロード用の HTTP ヘッダーを 1 つの JSON オブジェクトとして出力するコマンド。有効期限が切れる認証情報用です。[アーカイブダウンロードの認証](#authenticate-archive-downloads)を参照してください。エントリは [`"strict": false`](#strict-mode) も設定する必要があります。Claude Code v2.1.238 以降が必要です。 |
272
273<h2 id="plugin-sources">
274 プラグインソース
275</h2>
276
277プラグインソースは、Claude Code にマーケットプレイスにリストされた各プラグインをどこから取得するかを指示します。これらは `marketplace.json` の各プラグインエントリの `source` フィールドで設定されます。
278
279Claude Code は、インストール済みの各プラグインをローカルバージョン管理されたプラグインキャッシュ(`~/.claude/plugins/cache`)にコピーします。ただし、プラグインがその場で読み込まれる場合は例外です。[リンクモードの `command` ソース](#copy-mode-and-link-mode)はその場で読み込まれ、[ローカルディレクトリから追加されたマーケットプレイスの相対パスソース](#relative-paths)も同様です。Claude Code はまた、[プラグインの対象となる Node.js パッケージ依存関係](/docs/ja/plugins-reference#node-js-package-dependencies)をキャッシュされたコピーにインストールします。ローカルディレクトリマーケットプレイスからその場で読み込まれたプラグインが編集内容を取得する方法については、[プラグインキャッシングとファイル解決](/docs/ja/plugins-reference#plugin-caching-and-file-resolution)を参照してください。
280
281| ソース | タイプ | フィールド | 注記 |
282| ------------ | --------------------------- | ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
283| 相対パス | `string`(例:`"./my-plugin"`) | なし | マーケットプレイスリポジトリ内のローカルディレクトリ。`./` で始まる必要があります。ただし、[`metadata.pluginRoot` の下に裸の名前を記述する](#relative-paths)場合は除きます。Claude Code はパスを `.claude-plugin/` ディレクトリではなく、マーケットプレイスルートを基準に解決します |
284| `github` | object | `repo`, `ref?`, `sha?` | |
285| `url` | object | `url`, `ref?`, `sha?` | Git URL ソース |
286| `git-subdir` | object | `url`, `path`, `ref?`, `sha?` | git リポジトリ内のサブディレクトリ。スパース部分クローンを使用して、モノレポの帯域幅を最小化します |
287| `npm` | object | `package`, `version?`, `registry?` | npm パッケージ。npm クライアントでフェッチされ、インストールスクリプトを実行せずに解凍されます |
288| `archive` | object | `url`, `sha256?` | HTTPS でダウンロードされた zip アーカイブ。ユーザーのマシンに git や npm がなくても動作します。Claude Code v2.1.224 以降が必要です |
289| `command` | object | `command`, `timeout?`, `mode?` | ローカルコマンドを実行して生成されたプラグインディレクトリ。セッションごとに 1 回再実行して変更を反映します。Claude Code v2.1.229 以降が必要です |
290
291<Note>
292 **マーケットプレイスソースとプラグインソース**: これらは異なる概念で、異なるものを制御します。
293
294 * **マーケットプレイスソース**: `marketplace.json` カタログ自体をどこから取得するか。ユーザーが `/plugin marketplace add` を実行するか、`extraKnownMarketplaces` 設定で設定されます。Git ベースのマーケットプレイスソースは `ref`(ブランチ/タグ)をサポートしますが、`sha` はサポートしません。
295 * **プラグインソース**: マーケットプレイスにリストされた個別プラグインをどこから取得するか。`marketplace.json` 内の各プラグインエントリの `source` フィールドで設定されます。Git ベースのプラグインソースは `ref`(ブランチ/タグ)と `sha`(正確なコミット)の両方をサポートします。
296
297 例えば、`acme-corp/plugin-catalog`(マーケットプレイスソース)でホストされているマーケットプレイスは、`acme-corp/code-formatter`(プラグインソース)から取得されたプラグインをリストできます。マーケットプレイスソースとプラグインソースは異なるリポジトリを指し、独立して固定されます。
298</Note>
299
300以下の Git ベースのソースタイプは `github`、`url`、および `git-subdir` です。`ref` と `sha` の両方が設定されている場合、`sha` が有効なピンになります。Claude Code はピンされたコミットを直接フェッチしてチェックアウトします。
301
302GitHub、GitLab、Bitbucket を含むほとんどの git ホストでは、ブランチまたはタグが `ref` で指定されていても、その後アップストリームで削除されていても、コミットがリポジトリから到達可能である限り、インストールは成功します。AWS CodeCommit などの一部のサーバーは、SHA でコミットをフェッチすることをサポートしていません。これらのサーバーでは、`ref` が存在し、ピンされたコミットがそこから到達可能である必要があります。
303
304**組織設定 > プラグイン** を通じてプラグインを配布する場合、一部のソースタイプのみが許可されます。[組織設定を通じた配布](#distribute-through-organization-settings)を参照してください。
305
306<h3 id="relative-paths">
307 相対パス
308</h3>
309
310同じリポジトリ内のプラグインの場合、`./` で始まるパスを使用します:
311
312```json theme={null}
313{
314 "name": "my-plugin",
315 "source": "./plugins/my-plugin"
316}
317```
318
319パスはマーケットプレイスルート(`.claude-plugin/` を含むディレクトリ)を基準に解決されます。上記の例では、`marketplace.json` が `<repo>/.claude-plugin/marketplace.json` にあっても、`./plugins/my-plugin` は `<repo>/plugins/my-plugin` を指します。マーケットプレイスルートの外のパスを参照するために `../` を使用しないでください。macOS と Linux では、Claude Code は先頭の `./` より後のどこかにバックスラッシュがあるエントリパスを拒否するため、すべてのプラットフォームで区切り文字を `/` として記述してください。
320
321裸の名前は、`"formatter"` のように `/` を含まない単一のディレクトリ名です。`./` パスの代わりに裸の名前を記述するには、[`metadata.pluginRoot`](#optional-fields) をそれらが解決されるディレクトリに設定します。`"pluginRoot": "./plugins"` の場合、Claude Code は `"source": "formatter"` を `./plugins/formatter` に解決します。Claude Code v2.1.239 以降が必要です。
322
323`metadata.pluginRoot` 自体はマーケットプレイス内の相対パスである必要があります。Claude Code は既に `./` で始まるソースに対しては無視します。`team-a/formatter` のように `/` を含むソースは裸の名前ではなく、`metadata.pluginRoot` が設定されていても `./` プレフィックスが必要です。
324
325<Note>
326 Claude Code は相対パスをマーケットプレイスのローカルコピーに対して解決するため、ユーザーが git ソースまたはローカルディレクトリからマーケットプレイスを追加する場合に機能します。ユーザーが `marketplace.json` ファイルへの直接 URL を使用してマーケットプレイスを追加する場合、Claude Code はそのファイルのみをダウンロードするため、相対パスは解決されません。URL ベースの配布の場合は、代わりに他の[プラグインソース](#plugin-sources)を使用してください。詳細は[トラブルシューティング](#plugins-with-relative-paths-fail-in-url-based-marketplaces)を参照してください。
327</Note>
328
329<h3 id="github-repositories">
330 GitHub リポジトリ
331</h3>
332
333```json theme={null}
334{
335 "name": "github-plugin",
336 "source": {
337 "source": "github",
338 "repo": "owner/plugin-repo"
339 }
340}
341```
342
343特定のブランチ、タグ、またはコミットにピンできます:
344
345```json theme={null}
346{
347 "name": "github-plugin",
348 "source": {
349 "source": "github",
350 "repo": "owner/plugin-repo",
351 "ref": "v2.0.0",
352 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
353 }
354}
355```
356
357| フィールド | タイプ | 説明 |
358| :----- | :----- | :-------------------------------------------- |
359| `repo` | string | 必須。`owner/repo` 形式の GitHub リポジトリ |
360| `ref` | string | オプション。Git ブランチまたはタグ(デフォルトはリポジトリのデフォルトブランチ) |
361| `sha` | string | オプション。正確なバージョンにピンするための 40 文字の完全な git コミット SHA |
362
363<h3 id="git-repositories">
364 Git リポジトリ
365</h3>
366
367```json theme={null}
368{
369 "name": "git-plugin",
370 "source": {
371 "source": "url",
372 "url": "https://gitlab.com/team/plugin.git"
373 }
374}
375```
376
377特定のブランチ、タグ、またはコミットにピンできます:
378
379```json theme={null}
380{
381 "name": "git-plugin",
382 "source": {
383 "source": "url",
384 "url": "https://gitlab.com/team/plugin.git",
385 "ref": "main",
386 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
387 }
388}
389```
390
391| フィールド | タイプ | 説明 |
392| :---- | :----- | :-------------------------------------------------------------------------------------------------------------------- |
393| `url` | string | 必須。完全な git リポジトリ URL(`https://` または `git@`)。`.git` サフィックスはオプションなので、サフィックスのない Azure DevOps と AWS CodeCommit URL が機能します |
394| `ref` | string | オプション。Git ブランチまたはタグ(デフォルトはリポジトリのデフォルトブランチ) |
395| `sha` | string | オプション。正確なバージョンにピンするための 40 文字の完全な git コミット SHA |
396
397<h3 id="git-subdirectories">
398 Git サブディレクトリ
399</h3>
400
401`git-subdir` を使用して、git リポジトリのサブディレクトリ内にあるプラグインを指します。Claude Code はスパース部分クローンを使用してサブディレクトリのみをフェッチし、大規模なモノレポの帯域幅を最小化します。
402
403```json theme={null}
404{
405 "name": "my-plugin",
406 "source": {
407 "source": "git-subdir",
408 "url": "https://github.com/acme-corp/monorepo.git",
409 "path": "tools/claude-plugin"
410 }
411}
412```
413
414特定のブランチ、タグ、またはコミットにピンできます:
415
416```json theme={null}
417{
418 "name": "my-plugin",
419 "source": {
420 "source": "git-subdir",
421 "url": "https://github.com/acme-corp/monorepo.git",
422 "path": "tools/claude-plugin",
423 "ref": "v2.0.0",
424 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
425 }
426}
427```
428
429`url` フィールドは GitHub ショートハンド(`owner/repo`)または SSH URL(`git@github.com:owner/repo.git`)も受け入れます。
430
431| フィールド | タイプ | 説明 |
432| :----- | :----- | :------------------------------------------------------- |
433| `url` | string | 必須。Git リポジトリ URL、GitHub `owner/repo` ショートハンド、または SSH URL |
434| `path` | string | 必須。プラグインを含むリポジトリ内のサブディレクトリパス(例:`"tools/claude-plugin"`) |
435| `ref` | string | オプション。Git ブランチまたはタグ(デフォルトはリポジトリのデフォルトブランチ) |
436| `sha` | string | オプション。正確なバージョンにピンするための 40 文字の完全な git コミット SHA |
437
438<h3 id="npm-packages">
439 npm パッケージ
440</h3>
441
442npm ソースは、公開 npm レジストリまたはチームがホストするプライベートレジストリ上の任意のパッケージに名前を付けることができます。Claude Code は npm クライアントでパッケージを解決し、tarball をダウンロードして、プラグインキャッシュに解凍します。
443
444パッケージのインストールスクリプト(`preinstall` や `postinstall` など)は実行されず、フェッチ中に依存関係はインストールされません。
445
446パッケージが `package.json` の隣にサポートされているロックファイルを配布する場合、Claude Code はそれらの[Node.js パッケージ依存関係](/docs/ja/plugins-reference#node-js-package-dependencies)を別のステップでインストールし、スクリプトも無効にします。そうでない場合は、必要なすべてのものが既に構築されたプラグインを公開します。他のパッケージが必要な MCP サーバーは、`npx` を通じて起動でき、最初の実行時にそれらをインストールします。
447
448```json theme={null}
449{
450 "name": "my-npm-plugin",
451 "source": {
452 "source": "npm",
453 "package": "@acme/claude-plugin"
454 }
455}
456```
457
458特定のバージョンにピンするには、`version` フィールドを追加します:
459
460```json theme={null}
461{
462 "name": "my-npm-plugin",
463 "source": {
464 "source": "npm",
465 "package": "@acme/claude-plugin",
466 "version": "2.1.0"
467 }
468}
469```
470
471プライベートまたは内部レジストリからインストールするには、`registry` フィールドを追加します:
472
473```json theme={null}
474{
475 "name": "my-npm-plugin",
476 "source": {
477 "source": "npm",
478 "package": "@acme/claude-plugin",
479 "version": "^2.0.0",
480 "registry": "https://npm.example.com"
481 }
482}
483```
484
485| フィールド | タイプ | 説明 |
486| :--------- | :----- | :----------------------------------------------------------- |
487| `package` | string | 必須。パッケージ名またはスコープ付きパッケージ(例:`@org/plugin`) |
488| `version` | string | オプション。バージョンまたはバージョン範囲(例:`2.1.0`、`^2.0.0`、`~1.5.0`) |
489| `registry` | string | オプション。カスタム npm レジストリ URL。デフォルトはシステム npm レジストリ(通常は npmjs.org) |
490
491<h3 id="zip-archives">
492 Zip アーカイブ
493</h3>
494
495`archive` を使用して、Claude Code が HTTPS でダウンロードする zip ファイルとしてプラグインを配布します。これにより、ユーザーのマシンに git や npm がなくてもインストールが機能します。S3 バケット、Artifactory 汎用リポジトリ、nginx などの静的ファイルサーバーまたはアーティファクトリポジトリでファイルをホストします。Claude Code v2.1.224 以降が必要です。v2.1.120 から v2.1.223 では、プラグインのインストールが `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.` で失敗します。より古いバージョンでは、`archive` エントリを含むマーケットプレイス全体がロードに失敗します。
496
497このエントリはアーティファクトサーバー上の zip ファイルからプラグインをインストールします:
498
499```json theme={null}
500{
501 "name": "my-plugin",
502 "source": {
503 "source": "archive",
504 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip"
505 }
506}
507```
508
509zip を構築するときは、プラグインのコンテンツを直接 zip するか、プラグインフォルダ自体を zip できます。Claude Code はアーカイブの最上部で `.claude-plugin/` を探し、次に単一の最上位フォルダ内を探すため、両方のレイアウトがインストールされます:
510
511```text theme={null}
512my-plugin.zip my-plugin.zip
513├── .claude-plugin/ └── my-plugin/
514│ └── plugin.json ├── .claude-plugin/
515└── commands/ │ └── plugin.json
516 └── commands/
517```
518
519Claude Code は 1 フォルダより深く探さないため、さらに下にネストされたプラグインはインストールに失敗します。Claude Code は 256 MiB より大きいアーカイブを拒否します。
520
521正確なファイルにピンするには、アーカイブのダイジェストを含む `sha256` フィールドを追加します:
522
523```json theme={null}
524{
525 "name": "my-plugin",
526 "source": {
527 "source": "archive",
528 "url": "https://artifacts.example.com/claude-plugins/my-plugin-2.1.0.zip",
529 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"
530 }
531}
532```
533
534ダウンロードされたファイルがピンと一致しない場合、Claude Code はインストールを拒否し、[`Plugin archive integrity check failed`](/docs/ja/errors#plugin-archive-integrity-check-failed) を報告します。
535
536アーカイブソースはこれらのフィールドを受け入れます:
537
538| フィールド | タイプ | 説明 |
539| :------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |
540| `url` | string | 必須。zip アーカイブの HTTPS URL。Claude Code は `http://` URL、ループバック、リンクローカル、クラウドメタデータホストを拒否します。すべてのリダイレクトホップが同じルールを満たす必要があります。そうでない場合、Claude Code はダウンロードを拒否します |
541| `sha256` | string | オプション。アーカイブの SHA-256 ダイジェスト(64 文字の 16 進数、大文字または小文字)。Claude Code はすべてのダウンロードに対してこれを検証し、不一致の場合はインストールを拒否します |
542
543`sha256` ダイジェストは、`plugin.json` またはマーケットプレイスエントリが宣言していない場合、プラグインのバージョンとしても機能します。[バージョン管理](/docs/ja/plugins-reference#version-management)を参照してください。`version` を宣言する場合、そのバージョン文字列が更新シグナルになるため、zip とそのダイジェストを変更した後、バージョンもバンプしてください。そうしないと、ユーザーはキャッシュされたコピーを保持し続けます。
544
545<h4 id="authenticate-archive-downloads">
546 アーカイブダウンロードの認証
547</h4>
548
549プライベートレジストリからのダウンロードなど、アーカイブダウンロードを認証するには、Claude Code が送信する HTTP ヘッダーを設定します。マーケットプレイスを登録した `url` ソース([`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) エントリなど)で `headers` を設定します。Claude Code v2.1.238 以降では、プラグインのエントリで `source` の隣に設定できます。
550
551`headers` に入れる値が短命の場合(レジストリがリクエストで生成するトークンなど)、代わりに同じ場所に `headersHelper` コマンドを設定します。Claude Code はコマンドを実行し、それが出力する JSON オブジェクトをその場所のヘッダーとして送信します。Claude Code v2.1.238 以降が必要です。
552
553選択した場所は、どのダウンロードがヘッダーを取得し、Claude Code がコマンドをいつ実行するかを決定します:
554
555| 場所 | ヘッダーを取得するダウンロード | Claude Code が `headersHelper` をそこで実行する時期 |
556| :------------------ | :----------------------------------------------- | :---------------------------------------------------------------------------------------------------- |
557| マーケットプレイス `url` ソース | マーケットプレイス URL のオリジン上のアーカイブダウンロード(同じスキーム、ホスト、ポート) | マーケットプレイスの `marketplace.json` の各フェッチの前と、そのオリジン上の各アーカイブダウンロードの前。Claude Code は 1 回の実行の出力を最大 60 秒間再利用します |
558| プラグインエントリ | そのエントリのダウンロードのみ | ユーザーがそのプラグインを単独でインストールまたは更新し、[コマンドを受け入れる](#how-users-accept-a-headershelper-command)場合のみ |
559
560両方の場所が同じ名前のヘッダーを設定する場合、Claude Code はエントリの値を送信します。1 つの場所内で、コマンドが出力するヘッダーは同じ名前のリストされたヘッダーをオーバーライドします。
561
562<h5 id="add-a-headershelper-to-a-plugin-entry">
563 プラグインエントリに headersHelper を追加
564</h5>
565
566このエントリは `headersHelper` を `source` の隣に設定します。また、`"strict": false` を設定します。これは Claude Code が `headersHelper` を設定する `marketplace.json` エントリに必要です。[`"strict": false`](#strict-mode) では、マーケットプレイスエントリはプラグインの完全な定義なので、ユーザーはコマンドを受け入れる前にプラグインに含まれるものを確認できます:
567
568```json theme={null}
569{
570 "name": "my-plugin",
571 "description": "Formatting commands for internal services",
572 "strict": false,
573 "commands": "./commands",
574 "source": {
575 "source": "archive",
576 "url": "https://registry.example.com/plugins/my-plugin-2.1.0.zip"
577 },
578 "headersHelper": "/opt/bin/mint-registry-token.sh"
579}
580```
581
582エントリを確認するには、`claude plugin install my-plugin@your-marketplace` を実行します。Claude Code はコマンドとアーカイブ URL を表示し、受け入れた後に zip をダウンロードします。
583
584v2.1.238 より前では、Claude Code はエントリのアーカイブを `headers` または `headersHelper` なしでダウンロードしたため、それらに依存するインストールは `HTTP 401 while downloading plugin archive from` で失敗し、その後に URL が続き、レジストリのステータスコードが 401 の代わりに表示されました。
585
586<h4 id="write-the-headershelper-command">
587 headersHelper コマンドを記述
588</h4>
589
590マーケットプレイスの `url` ソースまたはプラグインエントリで `headersHelper` を設定するかどうかに関わらず、コマンドがこれらの要件を満たすように記述します:
591
592* **コマンドテキスト**: 最大 500 文字の印字可能 ASCII、4 文字以上の連続スペースなし。
593* **出力**: ヘッダー名と文字列値の 1 つの JSON オブジェクトを stdout に出力し、10 秒以内に終了コード 0 で終了します。
594* **シェルと作業ディレクトリ**: Claude Code はコマンドを `sh` または Windows では `cmd.exe` を通じて実行し、設定ディレクトリ(`~/.claude` または [`CLAUDE_CONFIG_DIR`](/docs/ja/env-vars#variables))から実行します。相対パスはそのディレクトリに対して解決されるため(ユーザーのプロジェクトではなく)、絶対パスまたは `PATH` 上のコマンドを指定してください。
595* **Claude Code が削除する変数**: `marketplace.json` エントリまたはプロジェクトの `.claude/settings.json` または `.claude/settings.local.json` で設定されたコマンドの環境から、Claude Code は `TOKEN`、`SECRET`、`KEY`、`AUTH` などの単語を含む名前を持つすべての変数を削除します(`ANTHROPIC_API_KEY` を含む)。Claude Code はこの削除をユーザー設定、`--settings` ファイル、または管理設定で設定されたコマンドには適用しません。
596* **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 でマーケットプレイスを追加した後の最初のフェッチでは設定されません。そのフェッチが名前を提供するためです。
597
598ベアラートークンを生成するコマンドは、次のようなオブジェクトを出力します:
599
600```json theme={null}
601{"Authorization": "Bearer eyJhbGciOiJSUzI1NiJ9"}
602```
603
604<h4 id="when-claude-code-skips-a-headershelper-command-or-drops-its-output">
605 Claude Code が headersHelper コマンドをスキップするか、その出力をドロップする場合
606</h4>
607
608Claude Code は `headersHelper` コマンドを実行しないか、これらの状況で `headers` または コマンドの出力から来たヘッダーをドロップします:
609
610* **コマンド失敗**: コマンドが 0 以外で終了する、10 秒を超えて実行される、または JSON 文字列値のオブジェクト以外を出力する場合、Claude Code はそれが実行されたフェッチまたはダウンロードを実行しません。
611* **マーケットプレイス URL が `https://` で始まらない**: Claude Code はその `url` ソースのコマンドを実行せず、`headers` フィールドにリストされたヘッダーのみを送信します。
612* **リダイレクトがオリジンを離れる**: ダウンロードがアーカイブ URL のオリジンからリダイレクトされる場合、Claude Code はマーケットプレイス `url` ソースとプラグインエントリの両方の `headers` 値とコマンド出力をドロップします。
613* **エントリがルーティングまたはアイデンティティヘッダーを設定**: Claude Code は `Host`、`Cookie`、`X-Forwarded-*` などのリクエストルーティングおよびクライアントアイデンティティ名をエントリの `headers` とコマンド出力からドロップし、`Authorization` などの認証名を保持します。Claude Code はすべての `marketplace.json` エントリをこの方法でフィルタリングし、[インライン設定エントリ](/docs/ja/settings-reference#extraknownmarketplaces)はそれを宣言するファイルに応じて。
614* **`--add-dir` ディレクトリの設定で設定されたコマンド**: Claude Code はそれを無視し、`url` ソースと[インラインプラグインエントリ](/docs/ja/settings-reference#extraknownmarketplaces)の両方で、そのファイルの `headers` のみを送信します。
615* **管理設定がコマンドをブロック**: [`disableCommandPluginSources`](/docs/ja/settings-reference#disablecommandpluginsources) を `true` に設定すると `headersHelper` コマンドがブロックされ、[`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) も `disableCommandPluginSources` が明示的に `false` でない限りそれらをブロックします。どちらのブロックでも、Claude Code は管理設定自体が宣言するマーケットプレイスのコマンドを実行します。
616
617<h4 id="how-users-accept-a-headershelper-command">
618 ユーザーが headersHelper コマンドを受け入れる方法
619</h4>
620
621ユーザーはプラグインエントリのコマンドを、そのプラグインを単独でインストールまたは更新するたびに受け入れます。これは `/plugin` のプラグイン自体のビューから、または `claude plugin install` または `claude plugin update` で行われます。Claude Code はコマンドとアーカイブ URL を表示し、ユーザーが受け入れた後にのみコマンドを実行します。
622
623非対話型シェルでは、[`--yes`](/docs/ja/plugins-reference#plugin-install) を `claude plugin install` または `claude plugin update` に渡してコマンドを受け入れます。前の `--json` 実行が表示したコマンドのみを受け入れるには、[`--accept-command`](/docs/ja/plugins-reference#plugin-install) に `sha256` を渡します。
624
625Claude Code は表示したコマンドのみを実行し、表示したアーカイブ URL に対してのみ実行します。その間にエントリのコマンドまたはアーカイブ URL が変更された場合、Claude Code はインストールまたは更新を拒否します。クエリ文字列のみの変更はカウントされません。
626
627<h5 id="installs-and-updates-that-refuse-the-command-instead-of-asking">
628 コマンドを要求する代わりに拒否するインストールと更新
629</h5>
630
631単一プラグインのインストールまたは更新以外の操作では、Claude Code はエントリのコマンドを実行せず、そのアーカイブをダウンロードしないため、プラグインはインストール済みバージョンのままか、インストールされていないままです。ユーザーが見るものは操作によって異なります:
632
633* **複数のプラグインを一度にインストール、プラグイン提案からインストール、または別のプラグインの依存関係としてインストール**: Claude Code はコマンドを持つプラグインを拒否し、ユーザーをそのプラグインの `/plugin` 内の独自のビューに指します。一括インストール内の他のプラグインはまだインストールされます。拒否されたプラグインに依存するプラグインは、ユーザーが拒否されたプラグインを単独でインストールするまでインストールに失敗します。
634* **バックグラウンド自動更新、またはアーカイブがダウンロードされたことのないプラグインのセッション開始**: Claude Code は `/plugin` エラータブにプラグインをリストして、ユーザーが手動でインストールまたは更新することを知らせます。インストール済みバージョンをまだ宣伝している自動更新は何もリストしません。
635
636<h5 id="when-a-marketplace-url-source’s-command-runs">
637 マーケットプレイス `url` ソースのコマンドが実行される時期
638</h5>
639
640マーケットプレイス `url` ソースの `headersHelper` は、マーケットプレイスが公開するカタログではなく、[`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) エントリなどの設定ファイルで宣言されるため、Claude Code は各インストールまたは更新でユーザーに受け入れを求めません。それを宣言する設定ファイルが Claude Code がいつそれを実行するかを決定します:
641
642| 設定ファイル | Claude Code がコマンドを実行する時期 |
643| :---------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- |
644| ユーザー設定、`--settings` ファイル、またはマシン上の管理設定ファイル | バックグラウンドマーケットプレイス更新を含め、要求なし |
645| プロジェクトの `.claude/settings.json` または `.claude/settings.local.json` | ユーザーがそのフォルダ自体の[ワークスペーストラストダイアログ](/docs/ja/permissions#what-runs-before-you-trust-a-folder)を受け入れた後のみ。`-p` または SDK セッションはそれとしてカウントされず、親フォルダに付与された信頼もカウントされません |
646| サーバー管理設定 | ユーザーが[セキュリティ承認ダイアログ](/docs/ja/server-managed-settings#security-approval-dialogs)で配信された設定を承認した後のみ |
647
648`-p` または SDK セッションでは、Claude Code はセキュリティ承認ダイアログを表示できません。他の配信された設定を適用しますが、マーケットプレイスフェッチと、コマンドが必要なアーカイブダウンロードは、ユーザーが対話型セッションで承認するまで失敗します。
649
650これらのファイルの[インラインプラグインエントリ](/docs/ja/settings-reference#extraknownmarketplaces)の場合、Claude Code はそのファイル内のマーケットプレイスレベルのコマンドと同じフォルダ信頼または設定承認を要求し、ユーザーは各インストールまたは更新でエントリのコマンドも受け入れます。
651
652<h3 id="command-sources">
653 コマンドソース
654</h3>
655
656ローカルにインストールされたツールがプラグインディレクトリを生成する場合(現在選択されているツールチェーンのプラグインをレンダリングする IDE など)に `command` を使用します。Claude Code はユーザーがプラグインをインストールするときにコマンドを実行し、セッションごとに 1 回バックグラウンドで再実行するため、ユーザーは再インストールなしでツールの変更された出力を取得します。Claude Code v2.1.229 以降が必要です。v2.1.120 から v2.1.228 では、プラグインのインストールが `This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.` で失敗し、より古いバージョンではマーケットプレイス全体がロードに失敗します。
657
658このエントリはツールが出力するディレクトリからプラグインをインストールします:
659
660```json theme={null}
661{
662 "name": "my-plugin",
663 "source": {
664 "source": "command",
665 "command": "my-tool claude-plugin-path"
666 }
667}
668```
669
670Claude Code はプラットフォームシェル(macOS と Linux では `sh`、Windows では `cmd.exe`)を通じてコマンドを実行し、ユーザーのホームディレクトリから実行します。コマンドは stdout に正確に 1 行を出力し、終了コード 0 で終了する必要があります。その行は、コマンドが終了するまでに完全なプラグインを含むディレクトリの絶対パスであり、パスは実行間で変更される可能性があります。
671
672Claude Code は `timeout` 秒より長く実行されるコマンドを停止し、インストールまたは更新は失敗します。Claude Code はこれらの場合にも出力されたパスを拒否し、インストールまたは更新は同じ方法で失敗します:
673
674* ディレクトリの最上部にプラグインコンテンツがない(`.claude-plugin/` ディレクトリ、または `skills/`、`commands/`、`agents/`、`hooks/` ディレクトリなど)
675* ディレクトリは Claude Code が開始されたディレクトリ、またはその親の 1 つ
676* Windows では、パスは UNC パス
677
678コマンドソースはこれらのフィールドを受け入れます:
679
680| フィールド | タイプ | 説明 |
681| :-------- | :----- | :------------------------------------------------------------------------------------------------------------------------------------- |
682| `command` | string | 必須。プラグインディレクトリの絶対パスを stdout の単一行として出力し、0 で終了するシェルコマンド。ユーザーが受け入れるよう求められるコマンド全体を確認できるように、印字可能 ASCII で最大 500 文字、4 文字以上の連続スペースなし |
683| `timeout` | number | オプション。コマンドを待つ秒数(デフォルト:60、最大:600) |
684| `mode` | string | オプション。`"copy"`(デフォルト)は出力されたディレクトリをプラグインキャッシュにコピーします。`"link"` は出力されたディレクトリをその場で使用します。[コピーモードとリンクモード](#copy-mode-and-link-mode)を参照してください |
685
686<h4 id="copy-mode-and-link-mode">
687 コピーモードとリンクモード
688</h4>
689
690デフォルトの `"mode": "copy"` では、Claude Code は出力されたディレクトリをバージョン管理されたプラグインキャッシュにコピーし、ディレクトリのコンテンツのハッシュから[プラグインバージョン](/docs/ja/plugins-reference#version-management)を導出します。ツールはコマンドが終了した後にディレクトリを削除または上書きでき、同じコンテンツを生成する再実行は最新とカウントされます。Claude Code は 256 MiB より大きいディレクトリまたは 20,000 を超えるエントリを含むディレクトリのインストールを拒否します。
691
692大規模なプラグインディレクトリ(レンダリングされた SDK エクスポートなど)をコピーしてはいけない場合は、`"mode": "link"` を設定します。Claude Code は出力されたディレクトリの各最上位エントリへのリンクでプラグインのキャッシュエントリを埋め、ファイルをその場で使用するため、何もコピーされず、ファイルコンテンツはハッシュされず、サイズ制限は適用されません。最上位エントリが出力されたディレクトリの外を指すシンボリックリンクの場合、インストールは失敗します。Claude Code はリンクモードプラグインの[Node.js パッケージ依存関係インストール](/docs/ja/plugins-reference#node-js-package-dependencies)もスキップするため、プラグインが必要とする `node_modules` を既に含むディレクトリを出力します。
693
694プラグインがインストール状態を保つ限り、出力されたディレクトリをその場に保ちます。Claude Code はすべての起動でそれらのリンクを通じてプラグインをロードするためです。Claude Code は[プラグインバージョン](/docs/ja/plugins-reference#version-management)を出力されたディレクトリの実パスとその最上位エントリから導出し、内部のファイルからではないため、新しいコンテンツを通知するために異なるパスを出力します。出力されたディレクトリまたはその下のどこかで開始されたセッションでは、Claude Code はプラグインをロードしません。
695
696Claude Code は Windows でリンクモードをサポートしておらず、そこでリンクモードプラグインのインストールを拒否します。代わりに `"mode": "copy"` を宣言します。
697
698<h4 id="how-users-accept-the-command">
699 ユーザーがコマンドを受け入れる方法
700</h4>
701
702Claude Code はユーザーのマシンでコマンドを実行するため、すべての実行をユーザーの明示的な受け入れにバインドします:
703
704* ユーザーが `/plugin` のプラグインの詳細画面からプラグインをインストールするか、対話型ターミナルで `claude plugin install` または `claude plugin update` でインストールまたは更新する場合、Claude Code は最初に正確なコマンド文字列を表示し、そのインストールの受け入れられたコマンドを記録します。同じコマンドの受け入れで進行できる `claude plugin update` は何も表示しません。
705* 非対話型シェルでは、`claude plugin install` または `claude plugin update` に `--yes` を渡してコマンドを受け入れます。前の `--json` 実行が表示したコマンドのみを受け入れるには、[`--accept-command`](/docs/ja/plugins-reference#plugin-install) に `sha256` を渡します。
706* 他のすべてのパスはユーザーが既に受け入れたコマンドのみを実行します。これには `/plugin` から開始された更新と、[コマンドが再実行される場合](#when-claude-code-re-runs-the-command)のバックグラウンド実行が含まれます。何も受け入れられていない場合、Claude Code はコマンドの実行を拒否し、ユーザーにそれを確認する方法を指示します。Claude Code は別のプラグインの依存関係としてコマンドソースプラグインをインストールしないため、ユーザーは最初にそれを自分でインストールします。
707* エントリの `command` を変更するか、その `mode` を切り替える場合、ユーザーは既に持っているバージョンを保持し、Claude Code はコマンドの再実行を停止します。対話型セッションでは、`/plugin` エラータブは新しいコマンドを表示し、ユーザーが `claude plugin update <plugin>@<marketplace>` を実行して確認して受け入れるまで表示されます。
708
709管理者は管理設定 [`disableCommandPluginSources`](/docs/ja/settings-reference#disablecommandpluginsources) を使用して、組織全体でコマンドソースをブロックできます。組織が [`allowManagedHooksOnly`](/docs/ja/settings-reference#allowmanagedhooksonly) を設定する場合、Claude Code はデフォルトでコマンドソースをブロックします。
710
711<h4 id="when-claude-code-re-runs-the-command">
712 Claude Code がコマンドを再実行する場合
713</h4>
714
715出力されたディレクトリはコマンドが実行された時点でのツールの状態を反映するため、Claude Code はこれらの時間にコマンドを再実行します:
716
717* ユーザーがプラグインをインストールまたは更新するたびに
718* セッションごとに 1 回、有効な各コマンドソースプラグインに対して、セッション開始直後にバックグラウンドで。この実行はマーケットプレイス自動更新を通じて行われないため、マーケットプレイスの[自動更新設定](/docs/ja/discover-plugins#configure-auto-updates)に依存しません
719* 起動時または `/reload-plugins` で、有効なプラグインのインストール済みバージョンがプラグインキャッシュから欠落している場合
720
721ユーザーが [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ja/env-vars) を設定する場合、Claude Code は 2 つのバックグラウンド実行をスキップします。明示的なインストールと更新は、その変数が設定されていてもコマンドを実行します。
722
723コマンドのハッシュされた出力が変更された場合、Claude Code は結果を新しいバージョンとしてインストールし、実行中の対話型セッションでそれをリロードし、[`/reload-plugins` が切り替わるのと同じコンポーネント](/docs/ja/plugins-reference#environment-variables)を切り替えます。ユーザーはプラグインがリロードされたという通知を見ます。その場でリロードするとセッションのプロンプトキャッシュが無効になる場合、Claude Code は代わりにユーザーに `/reload-plugins` を実行するよう促し、[キャッシュコストについて警告し、`--force` で再実行すると適用されます](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin)。
724
725<h3 id="advanced-plugin-entries">
726 高度なプラグインエントリ
727</h3>
728
729この例は、コマンド、エージェント、フック、MCP サーバーのカスタムパスを含む、多くのオプションフィールドを使用するプラグインエントリを示しています:
730
731```json theme={null}
732{
733 "name": "enterprise-tools",
734 "source": {
735 "source": "github",
736 "repo": "company/enterprise-plugin"
737 },
738 "description": "Enterprise workflow automation tools",
739 "version": "2.1.0",
740 "author": {
741 "name": "Enterprise Team",
742 "email": "enterprise@example.com"
743 },
744 "homepage": "https://docs.example.com/plugins/enterprise-tools",
745 "repository": "https://github.com/company/enterprise-plugin",
746 "license": "MIT",
747 "keywords": ["enterprise", "workflow", "automation"],
748 "category": "productivity",
749 "commands": [
750 "./commands/core/",
751 "./commands/enterprise/",
752 "./commands/experimental/preview.md"
753 ],
754 "agents": ["./agents/security-reviewer.md", "./agents/compliance-checker.md"],
755 "hooks": {
756 "PostToolUse": [
757 {
758 "matcher": "Write|Edit",
759 "hooks": [
760 {
761 "type": "command",
762 "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"
763 }
764 ]
765 }
766 ]
767 },
768 "mcpServers": {
769 "enterprise-db": {
770 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
771 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]
772 }
773 },
774 "strict": false
775}
776```
777
778注意すべき重要な点:
779
780* **`commands` と `agents`**: 複数のディレクトリまたは個別のファイルを指定できます。パスはプラグインルートを基準にしており、その内部に留まる必要があります。
781 * Claude Code は、`./../shared.md` のようにプラグインディレクトリの外に解決されるパスを [`path escapes plugin directory`](/docs/ja/errors#path-escapes-plugin-directory) エラーで拒否し、そのコンポーネントなしでプラグインをロードします
782* **`${CLAUDE_PLUGIN_ROOT}`**: フックコマンドと MCP サーバー設定でこの変数を使用して、プラグインのインストールディレクトリ内のファイルを参照します。
783 * サーバータイプごとにどの設定フィールドがそれを置換するかについては、[置換テーブル](/docs/ja/plugins-reference#environment-variables)を参照してください
784 * プラグイン更新を生き残るべき依存関係または状態の場合は、代わりに [`${CLAUDE_PLUGIN_DATA}`](/docs/ja/plugins-reference#persistent-data-directory) を使用します
785* **`strict: false`**: これが false に設定されているため、プラグインは独自の `plugin.json` を必要としません。マーケットプレイスエントリがすべてを定義します。[厳密モード](#strict-mode)を参照してください。
786
787デフォルトでは、プラグインのスキルはそのソースの下の `skills/` ディレクトリからロードされます。`skills` フィールドにリストされたパスはそのスキャンに追加されます:
788
789```json theme={null}
790"skills": ["./skills/", "./extra-skills/"]
791```
792
793複数のプラグインエントリがマーケットプレイスルート(`source: "./"`) で 1 つの `skills/` フォルダを共有する場合、各エントリが独自のスキルのみをロードするように特定のサブディレクトリをリストします:
794
795```json theme={null}
796"source": "./",
797"skills": ["./skills/code-review", "./skills/docs"]
798```
799
800マーケットプレイスルート `source` では、リストされたパスはそのエントリの完全なセットであり、共有 `skills/` フォルダ内の他のディレクトリはロードされません。`./skills/` 自体またはプラグインルートをリストすると、完全なスキャンが保持されます。リストされたパスが存在しない場合、デフォルトスキャンが代わりに実行されます。
801
802<h3 id="strict-mode">
803 厳密モード
804</h3>
805
806`strict` フィールドは、`plugin.json` がコンポーネント定義(スキル、エージェント、フック、MCP サーバー、出力スタイル)の権限であるかどうかを制御します。
807
808| 値 | 動作 |
809| :------------ | :------------------------------------------------------------------------------------- |
810| `true`(デフォルト) | `plugin.json` が権限です。マーケットプレイスエントリは追加のコンポーネントで補足でき、両方のソースがマージされます。 |
811| `false` | マーケットプレイスエントリが完全な定義です。プラグインにコンポーネントを宣言する `plugin.json` もある場合、それは競合であり、プラグインはロードに失敗します。 |
812
813**各モードを使用する場合:**
814
815* **`strict: true`**: プラグインは独自の `plugin.json` を持ち、独自のコンポーネントを管理します。マーケットプレイスエントリは上に追加のスキルまたはフックを追加できます。これはデフォルトであり、ほとんどのプラグインで機能します。
816* **`strict: false`**: マーケットプレイスオペレーターが完全な制御を望みます。プラグインリポジトリは生ファイルを提供し、マーケットプレイスエントリはプラグイン作成者の意図と異なる方法でプラグインのコンポーネントを再構成またはキュレートする場合に便利です。
817
818<h2 id="host-and-distribute-marketplaces">
819 マーケットプレイスのホストと配布
820</h2>
821
822ユーザーが git リポジトリでホストされているマーケットプレイスを追加したり、そのマーケットプレイスがリストしている git ベースのプラグインをインストールしたりすると、Claude Code はそのマーケットプレイスまたはプラグインリポジトリをユーザーのマシンにクローンします。クローンは [Git LFS](https://git-lfs.com) コンテンツをダウンロードしないため、LFS で追跡されているファイルはポインタファイルとして到着します。プラグインが必要とするファイルを LFS の外に保つようにしてください。
823
824<h3 id="host-on-github-recommended">
825 GitHub でホストする(推奨)
826</h3>
827
828GitHub はマーケットプレイスをホストして配布するための推奨される方法です。
829
8301. **リポジトリを作成する**:マーケットプレイス用の新しいリポジトリを設定します
8312. **マーケットプレイスファイルを追加する**:プラグイン定義を含む `.claude-plugin/marketplace.json` を作成します
8323. **チームと共有する**:ユーザーは `/plugin marketplace add owner/repo` でマーケットプレイスを追加します
833
834**メリット**:組み込みのバージョン管理、issue トラッキング、チームコラボレーション機能があります。
835
836<h3 id="host-on-other-git-services">
837 他の git サービスでホストする
838</h3>
839
840GitLab、Bitbucket、自社ホストサーバーなど、任意の git ホスティングサービスが機能します。ユーザーは完全なリポジトリ URL で追加します。
841
842```shell theme={null}
843/plugin marketplace add https://gitlab.com/company/plugins.git
844```
845
846<h3 id="private-repositories">
847 プライベートリポジトリ
848</h3>
849
850Claude Code はプライベートリポジトリからプラグインをインストールすることをサポートしています。代わりに [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) を通じてマーケットプレイスを配布する場合、git 認証情報は関係ありません。organization sync は、claude.ai 上の organization の GitHub または GitLab 接続を通じてマーケットプレイスリポジトリを読み取ります。プライベートにできるプラグインソースについては、[Distribute through organization settings](#distribute-through-organization-settings) を参照してください。
851
852<h4 id="commands-you-run">
853 実行するコマンド
854</h4>
855
856`/plugin marketplace add`、`/plugin install`、`/plugin update`、または `/plugin marketplace update` を実行すると、Claude Code は既存の git 認証情報ヘルパーを使用するため、`gh auth login`、macOS Keychain、または `git-credential-store` 経由の HTTPS アクセスはターミナルと同じように機能します。SSH アクセスは、ホストが既に `known_hosts` ファイルにあり、キーが `ssh-agent` に読み込まれている限り機能します。Claude Code はホストフィンガープリントとキーパスフレーズの対話的な SSH プロンプトを抑制するためです。GitHub の `owner/repo` 短縮形ソースはデフォルトで SSH 経由でクローンされます。代わりに HTTPS 経由でクローンするには、[`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/ja/env-vars#variables) を設定してください。
857
858<h4 id="background-auto-updates">
859 バックグラウンド自動更新
860</h4>
861
862バックグラウンド更新チェックは、実行するコマンドと同じ方法で、設定された git 認証情報ヘルパーを使用してマーケットプレイスのリモートで新しいコミットをチェックします。SSH リモートの場合、`ssh-agent` に読み込まれたキーがチェックを認証します。Claude Code はチェックを非対話的に実行します。git のターミナルプロンプトと askpass プログラムをオフにし、認証情報ヘルパーにプロンプトを表示しないよう指示します。チェックが HTTPS 経由でプライベートリポジトリに認証できるかどうかは、ヘルパーに依存します。
863
864* プロンプトなしで保存された認証情報を提供できるヘルパーはチェックを認証します。Git Credential Manager、macOS Keychain ヘルパー、および `git-credential-store` は、ホストの認証情報を保持すると、このように機能します。
865* プロンプトが必要なヘルパーはバックグラウンドで応答できません。更新は静かに失敗し、既存のチェックアウトはそのままです。プラグインは最後に同期された状態から機能し続けます。`/plugin marketplace update <name>` を実行して、認証情報でマーケットプレイスを更新します。
866
867チェックがチェックアウトが最新であることを見つけた場合、Claude Code はそれをそのままにします。チェックが新しいコミットを見つけた場合、またはリモートに到達または認証できないために失敗した場合、Claude Code はマーケットプレイスを再度クローンして新しいクローンと交換します。そのクローンが失敗した場合、既存のチェックアウトはそのままです。再クローンは [大規模なリポジトリでタイムアウト](#git-operations-time-out) する可能性があります。
868
8692 つの設定により、プライベートマーケットプレイスは予測可能に動作します。
870
871* `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` を設定して、バックグラウンドチェックがリモートに到達または認証できない場合、再クローンを試みずに既存のチェックアウトを保持します。プラグインは最後に同期された状態から機能し続け、`/plugin marketplace update` による手動更新は引き続き認証情報で認証されます。
872* git 認証情報ヘルパーを設定します。例えば GitHub の場合は `gh auth setup-git` を使用して、バックグラウンドチェックと再クローンがプロンプトなしで認証できるようにします。
873
874環境に `GITHUB_TOKEN` などのプロバイダートークンを設定しても、それ自体ではバックグラウンド認証は有効になりません。トークンは設定された認証情報ヘルパー(例えば `gh` CLI のヘルパー)を通じてのみ有効になり、これは `GH_TOKEN` と `GITHUB_TOKEN` を読み取ります。
875
876<Note>
877 CI/CD 環境では、プライベートリポジトリからプラグインをインストールする前に git 認証情報ヘルパーを設定してください。GitHub Actions では、マーケットプレイスリポジトリへの読み取りアクセス権を持つトークンを `GH_TOKEN` としてエクスポートし、`gh auth setup-git` を実行します。デフォルトワークフロートークンはワークフロー自身のリポジトリにのみアクセスできるため、別のリポジトリ内のプライベートマーケットプレイスには個人用アクセストークンまたはアプリトークンが必要です。
878</Note>
879
880<h3 id="distribute-through-organization-settings">
881 organization settings を通じて配布する
882</h3>
883
884Team または Enterprise プランで [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) を通じてプラグインを配布する場合、これらのソースルールが適用されます。
885
886* github.com と gitlab.com では、マーケットプレイスリポジトリはプライベートまたは内部である必要があります。Organization sync はホストに一致する接続を通じてリポジトリを読み取ります。
887 * **github.com**:Claude GitHub App
888 * **Your GitHub Enterprise Server host**:organization の [GitHub Enterprise App](/docs/ja/github-enterprise-server#admin-setup)
889 * **gitlab.com または自社管理の GitLab インスタンス**:organization の [GitLab configuration](#sync-a-gitlab-hosted-marketplace) のそのホストのアクセストークン
890* 各プラグインソースは `github`、`url`、または `git-subdir` タイプ、または `./` で始まる [相対パス](#relative-paths) である必要があります。`metadata.pluginRoot` の下で裸の名前でプラグインをリストする場合、organization sync はそれをサポートされていないソースとして拒否するため、`./plugins/deploy-tools` などのパスを書き出してください。
891* プラグインソースは 3 つの場合にプライベートにできます。
892 * マーケットプレイスリポジトリの所有者を共有する github.com ソース
893 * GHE App がリポジトリにインストールされている organization の GitHub Enterprise ホスト上のソース
894 * マーケットプレイスリポジトリと同じ GitLab ホスト上の `url` または `git-subdir` ソース。gitlab.com では、ソースはマーケットプレイスリポジトリと同じトップレベルグループまたはユーザー名前空間の下にある必要があります。
895* その他のプラグインソースは、github.com、gitlab.com、または bitbucket.org 上のパブリックリポジトリである必要があり、organization sync は認証情報なしでフェッチします。Organization sync はこれらのルールがカバーしていないホスト上のプラグインソースを拒否します。
896
897admin ワークフローについては、[Manage plugins for your organization](https://support.claude.com/en/articles/13837433) を参照してください。
898
899プライベートプラグインを含めるには、プラグインフォルダをマーケットプレイスリポジトリ内に配置し、[相対パス](#relative-paths) で参照します。Organization sync は配布中に各プラグインをパッケージ化するため、ユーザーは別のソースリポジトリへのアクセスが必要ありません。
900
901例えば、この `marketplace.json` プラグインエントリは、マーケットプレイスリポジトリの `plugins/deploy-tools` にコミットしたプラグインを参照します。
902
903```json theme={null}
904{
905 "name": "deploy-tools",
906 "source": "./plugins/deploy-tools"
907}
908```
909
910<h4 id="sync-a-gitlab-hosted-marketplace">
911 GitLab でホストされているマーケットプレイスを同期する
912</h4>
913
914gitlab.com または自社管理の GitLab インスタンスからマーケットプレイスを同期するには、[Owner](/docs/ja/server-managed-settings#access-control) が最初に [**Organization settings > Claude Code**](https://claude.ai/admin-settings/claude-code) でそのホストの GitLab configuration を追加します。GitLab configuration はパブリックベータ版であり、プラグインマーケットプレイス同期にのみ適用されます。1 つを追加しても、GitLab リポジトリが [cloud sessions](/docs/ja/claude-code-on-the-web#limitations) で利用可能になることはありません。セットアップ手順については、[Manage plugins for your organization](https://support.claude.com/en/articles/13837433) を参照してください。
915
916マーケットプレイスを追加するときは、`https://gitlab.example.com/platform/claude-plugins` などのプロジェクトの HTTPS URL を入力します。ネストされたサブグループ内のプロジェクトが機能します。Organization sync はプロジェクトのデフォルトブランチを読み取ります。**Sync automatically** をオンにすると、デフォルトブランチへのプッシュのみが同期を開始します。
917
918<h4 id="keep-executables-out-of-the-top-level-bin-directory">
919 トップレベルの bin ディレクトリから実行可能ファイルを除外する
920</h4>
921
922organization settings を通じて配布するプラグインにトップレベルの `bin/` ディレクトリを含めないでください。マーケットプレイス同期または直接アップロードのいずれかでプラグインが到着するかどうかに関わらず、claude.ai はそのようなプラグインを拒否します。
923
924* **マーケットプレイス同期**:organization sync はそのプラグインを拒否し、マーケットプレイスの残りを同期します。エラーメッセージは `Plugin contains a top-level bin/ directory` で始まります。
925* **直接アップロード**:代わりに [**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) でプラグインをアップロードする場合、claude.ai は同じメッセージで拒否します。
926
927実行可能ファイルを `scripts/` などの別のディレクトリに保持し、[skills、hooks、または MCP サーバー configs](/docs/ja/plugins-reference#environment-variables) から `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` として参照してください。
928
929<h3 id="require-marketplaces-for-your-team">
930 チームのマーケットプレイスを必須にする
931</h3>
932
933リポジトリを設定して、Claude Code がチームメンバーが [プロジェクトフォルダを信頼](/docs/ja/permissions#what-runs-before-you-trust-a-folder) した後、マーケットプレイスを追加するようにできます。別のプロンプトはありません。マーケットプレイスを `.claude/settings.json` に追加します。
934
935```json theme={null}
936{
937 "extraKnownMarketplaces": {
938 "company-tools": {
939 "source": {
940 "source": "github",
941 "repo": "your-org/claude-plugins"
942 }
943 }
944 }
945}
946```
947
948デフォルトで有効にするプラグインを指定することもできます。
949
950```json theme={null}
951{
952 "enabledPlugins": {
953 "code-formatter@company-tools": true,
954 "deployment-tools@company-tools": true
955 }
956}
957```
958
959完全な設定オプションについては、[Plugin settings](/docs/ja/settings-reference#plugin-settings) を参照してください。
960
961<Note>
962 ローカル `directory` または `file` ソースを相対パスで使用する場合、パスはリポジトリのメインチェックアウトに対して解決されます。git worktree から Claude Code を実行する場合、パスはメインチェックアウトを指し続けるため、すべての worktree は同じマーケットプレイスの場所を共有します。マーケットプレイスの状態は、プロジェクトごとではなく、ユーザーごとに 1 回 `~/.claude/plugins/known_marketplaces.json` に保存されます。
963</Note>
964
965<h3 id="pre-populate-plugins-for-containers">
966 コンテナ用にプラグインを事前入力する
967</h3>
968
969コンテナイメージと CI 環境の場合、ビルド時にプラグインディレクトリを事前入力して、Claude Code がマーケットプレイスとプラグインを既に利用可能な状態で開始し、実行時にクローンしないようにできます。`CLAUDE_CODE_PLUGIN_SEED_DIR` 環境変数をこのディレクトリを指すように設定します。
970
971複数のシードディレクトリをレイヤーするには、Unix では `:` で、Windows では `;` でパスを区切ります。Claude Code は各ディレクトリを順番に検索し、特定のマーケットプレイスまたはプラグインキャッシュを含む最初のシードを使用します。
972
973シードディレクトリは `~/.claude/plugins` の構造をミラーリングします。
974
975```
976$CLAUDE_CODE_PLUGIN_SEED_DIR/
977 known_marketplaces.json
978 marketplaces/<name>/...
979 cache/<marketplace>/<plugin>/<version>/...
980```
981
982シードディレクトリを構築するには、イメージビルド中に Claude Code を 1 回実行し、必要なプラグインをインストールしてから、結果の `~/.claude/plugins` ディレクトリをイメージにコピーして、`CLAUDE_CODE_PLUGIN_SEED_DIR` をそれを指すように設定します。
983
984コピーステップをスキップするには、ビルド中に `CLAUDE_CODE_PLUGIN_CACHE_DIR` をターゲットシードパスに設定して、プラグインがそこに直接インストールされるようにします。
985
986```bash theme={null}
987CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin marketplace add your-org/plugins
988CLAUDE_CODE_PLUGIN_CACHE_DIR=/opt/claude-seed claude plugin install my-tool@your-plugins
989```
990
991次に、コンテナのランタイム環境で `CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed` を設定して、Claude Code がスタートアップ時にシードから読み取るようにします。
992
993スタートアップ時に、Claude Code はシードの `known_marketplaces.json` にあるマーケットプレイスをプライマリ設定に登録し、`cache/` の下にあるプラグインキャッシュを再クローンせずに使用します。これは対話モードと `-p` フラグを使用した非対話モードの両方で機能します。
994
995動作の詳細。
996
997* **読み取り専用**:Claude Code はシードディレクトリに書き込みません。
998* **自動更新が無効**:シードマーケットプレイスは自動更新されません。
999* **シードエントリが優先**:シードで宣言されたマーケットプレイスは、スタートアップのたびにユーザーの設定内の一致するエントリを上書きします。シードプラグインをオプトアウトするには、マーケットプレイスを削除する代わりに `/plugin disable` を使用します。
1000* **パス解決**:Claude Code はシードの JSON 内に保存されたパスを信頼するのではなく、実行時に `$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/` をプローブしてマーケットプレイスコンテンツを見つけます。これは、シードが構築された場所とは異なるパスにマウントされている場合でも、シードが正しく機能することを意味します。
1001* **ミューテーションがブロック**:シード管理マーケットプレイスに対して `/plugin marketplace remove` または `/plugin marketplace update` を実行すると、管理者にシードイメージを更新するよう求めるガイダンスで失敗します。
1002* **設定と構成**:`extraKnownMarketplaces` または `enabledPlugins` がシードに既に存在するマーケットプレイスを宣言する場合、Claude Code はクローンする代わりにシードコピーを使用します。
1003
1004<h3 id="managed-marketplace-restrictions">
1005 マネージドマーケットプレイスの制限
1006</h3>
1007
1008プラグインソースの厳密な制御を必要とする organization の場合、管理者はマネージド設定の [`strictKnownMarketplaces`](/docs/ja/settings-reference#strictknownmarketplaces) 設定を使用して、ユーザーが追加できるプラグインマーケットプレイスを制限できます。単一実行のためにプラグイン、エージェント、MCP サーバーをサイドロードする CLI フラグも拒否するには、[`disableSideloadFlags`](/docs/ja/settings-reference#disablesideloadflags) とペアにします。マーケットプレイスのプラグインがコンテキスト内インストール提案として表示されるかをホワイトリストするには、[`pluginSuggestionMarketplaces`](/docs/ja/settings-reference#pluginsuggestionmarketplaces) を設定します。
1009
1010`strictKnownMarketplaces` はプラグインが来るマーケットプレイスと一致し、その中のエントリではないため、ユーザーは許可されたマーケットプレイスから [`command` source](#command-sources) を持つプラグインをインストールできます。コマンドソースもブロックするには、[`disableCommandPluginSources`](/docs/ja/settings-reference#disablecommandpluginsources) を設定します。
1011
1012`strictKnownMarketplaces` がマネージド設定で設定されている場合、制限動作は値に依存します。
1013
1014| 値 | 動作 |
1015| ---------- | ----------------------------------------------------------- |
1016| 未定義(デフォルト) | 制限なし。ユーザーは任意のマーケットプレイスを追加できます |
1017| 空の配列 `[]` | 完全なロックダウン。公式 Anthropic マーケットプレイスを含むすべてのマーケットプレイスソースをブロックします |
1018| ソースのリスト | ホワイトリスト強制。ユーザーはエントリと一致するマーケットプレイスのみを追加できます |
1019
1020<h4 id="common-configurations">
1021 一般的な設定
1022</h4>
1023
1024公式 Anthropic マーケットプレイスを含むすべてのマーケットプレイス追加を無効にします。
1025
1026```json theme={null}
1027{
1028 "strictKnownMarketplaces": []
1029}
1030```
1031
1032Claude Code は [claude.ai から同期されたプラグイン](/docs/ja/plugins-reference#synced-plugins) をマーケットプレイスではなくアカウントからダウンロードするため、このロックダウンはそれらをカバーしません。それらも停止するには、マネージド設定で [`syncClaudeAiPlugins`](/docs/ja/settings-reference#syncclaudeaiplugins) を `false` に設定するか、claude.ai で organization の Skills をオフにします。
1033
1034公式 Anthropic マーケットプレイスのみを許可します。単一リポジトリエントリのマッチングは正確であるため、このエントリは同じリポジトリの `ref` または `path` バリアントをカバーしません。
1035
1036```json theme={null}
1037{
1038 "strictKnownMarketplaces": [
1039 {
1040 "source": "github",
1041 "repo": "anthropics/claude-plugins-official"
1042 }
1043 ]
1044}
1045```
1046
1047このエントリを使用すると、Claude Code は既に登録されている公式マーケットプレイスを利用可能に保ち、新しいマシンでは、Claude Code を対話的に初めて開始するときにマーケットプレイスを自動的に登録します。
1048
1049自動登録はすべてのマシンをカバーしていません。最も一般的に見落とされるのは。
1050
1051* マシンの最初の対話的な起動の前に実行される非対話環境。
1052* Claude Code が既に公式マーケットプレイスをブロックするポリシーの下で対話的に実行されたマシン(空の配列ロックダウンなど)。Claude Code はブロックされた試みを記録し、ポリシーが変更された後は再試行しません。
1053
1054これらのマシンでは、マーケットプレイスを同じ `managed-settings.json` の [`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) に追加して Claude Code が自動的に登録するようにするか、`claude plugin marketplace add anthropics/claude-plugins-official` を実行します。
1055
1056特定のマーケットプレイスのみを許可します。
1057
1058```json theme={null}
1059{
1060 "strictKnownMarketplaces": [
1061 {
1062 "source": "github",
1063 "repo": "acme-corp/approved-plugins"
1064 },
1065 {
1066 "source": "github",
1067 "repo": "acme-corp/security-tools",
1068 "ref": "v2.0"
1069 },
1070 {
1071 "source": "url",
1072 "url": "https://plugins.example.com/marketplace.json"
1073 }
1074 ]
1075}
1076```
1077
1078[owner-wildcard](/docs/ja/settings-reference#owner-wildcards) エントリを使用して GitHub organization の下のすべてのマーケットプレイスリポジトリを許可します。Owner wildcards には Claude Code v2.1.223 以降が必要です。
1079
1080```json theme={null}
1081{
1082 "strictKnownMarketplaces": [
1083 {
1084 "source": "github",
1085 "repo": "acme-corp/*"
1086 }
1087 ]
1088}
1089```
1090
1091ホストの正規表現パターンマッチングを使用して、内部 git サーバーからすべてのマーケットプレイスを許可します。これは [GitHub Enterprise Server](/docs/ja/github-enterprise-server#plugin-marketplaces-on-ghes) または自社ホスト GitLab インスタンスの推奨アプローチです。
1092
1093```json theme={null}
1094{
1095 "strictKnownMarketplaces": [
1096 {
1097 "source": "hostPattern",
1098 "hostPattern": "^github\\.example\\.com$"
1099 }
1100 ]
1101}
1102```
1103
1104パスの正規表現パターンマッチングを使用して、特定のディレクトリからファイルシステムベースのマーケットプレイスを許可します。
1105
1106```json theme={null}
1107{
1108 "strictKnownMarketplaces": [
1109 {
1110 "source": "pathPattern",
1111 "pathPattern": "^/opt/approved/"
1112 }
1113 ]
1114}
1115```
1116
1117`pathPattern` として `".*"` を使用して、ネットワークソースを `hostPattern` で制御しながら、任意のファイルシステムパスを許可します。
1118
1119<Note>
1120 `strictKnownMarketplaces` はユーザーが追加できるものを制限しますが、マーケットプレイスを登録しません。許可されたマーケットプレイスをユーザーに自動的に登録するには、同じ `managed-settings.json` の [`extraKnownMarketplaces`](/docs/ja/settings-reference#extraknownmarketplaces) に追加します。
1121
1122 公式 Anthropic マーケットプレイスは、Claude Code が独自に登録する唯一のマーケットプレイスであり、ホワイトリストがそれを許可する場合のみです。自動登録は非対話環境やポリシーがそれをブロックした場合など、一部のマシンも見落とします。これらのマシンをカバーするには、公式マーケットプレイスを `extraKnownMarketplaces` にも追加します。2 つの設定を並べて見るには、[`strictKnownMarketplaces` reference](/docs/ja/settings-reference#strictknownmarketplaces) を参照してください。
1123</Note>
1124
1125<h4 id="how-restrictions-work">
1126 制限がどのように機能するか
1127</h4>
1128
1129制限はネットワークまたはファイルシステム操作の前にチェックされます。チェックはマーケットプレイス追加時およびプラグインのインストール、更新、更新、自動更新時に実行されます。マーケットプレイスがポリシーが設定される前に追加され、そのソースがホワイトリストと一致しなくなった場合、Claude Code はそれからプラグインをインストールまたは更新することを拒否します。同じ強制が `blockedMarketplaces` に適用されます。
1130
11312 つのリストが強制される場所は、それらを設定する場所に依存します。
1132
1133* **claude.ai admin コンソール**:Claude Code は [server-managed settings](/docs/ja/managed-settings#where-and-when-a-policy-applies) を読み取るセッションで両方のリストを強制します。claude.ai は、organization 内の誰かが claude.ai から git リポジトリの新しいマーケットプレイスを追加するか、Claude Desktop app の Code タブの外から **Customize** を追加するときにもチェックします。これは、メンバーが自分のアカウント用に追加するマーケットプレイスと、[**Organization settings > Plugins**](https://claude.ai/admin-settings/plugins) の下で organization 全体に追加されるマーケットプレイスをカバーします。claude.ai はホワイトリストが許可しないリポジトリ、またはブロックリストが名前付けするリポジトリを拒否します。どちらかの場所で設定される前に追加されたマーケットプレイスを再チェックしません。アップロードされたプラグインはチェックしません。
1134* **マネージド設定ファイル、OS レベルのポリシー、または他のマネージドソース**:Claude Code はそのソースを読み取る場所で両方のリストを強制します。claude.ai はそれを読み取りません。
1135
1136GitHub 所有者の下のすべてのマーケットプレイスリポジトリをブロックするには、`blockedMarketplaces` エントリで owner-wildcard 形式を使用します。`{ "source": "github", "repo": "untrusted-org/*" }`。Claude Code v2.1.223 以降が必要です。マッチングルールについては、ブロックリストとホワイトリストの間で異なり、[Owner wildcards](/docs/ja/settings-reference#owner-wildcards) を参照してください。
1137
1138ユーザーが Claude Code が [フェッチするのではなくクローンする](/docs/ja/discover-plugins#add-from-other-git-hosts) `https://` リポジトリ URL(裸の `github.com` または `gitlab.com` リポジトリ URL など)を追加する場合、Claude Code は `blockedMarketplaces` の `url` エントリに対してもチェックします。Claude Code はエントリが同じ URL を名前付けする場合、追加をブロックします。その比較では、Claude Code は `.git` サフィックスと、ユーザーが `#` の後に追加する任意の ref を無視します。Claude Code v2.1.232 以降が必要です。v2.1.232 より前では、Claude Code は `url` エントリをホストされた `marketplace.json` ファイルとしてフェッチした URL に対してのみマッチしました。
1139
1140ホワイトリストは owner-wildcard `github` エントリを除き、ほとんどのソースタイプに対して正確なマッチングを使用します。マーケットプレイスが許可されるには、すべての指定されたフィールドが一致する必要があります。
1141
1142* GitHub ソースの場合:`repo` は必須であり、1 つのリポジトリを名前付けするか、owner-wildcard 形式 `owner/*` を使用してそのオーナーの下のすべてのリポジトリをカバーします。ワイルドカードエントリがどのようにマッチするか(大文字小文字ルールを含む)については、[Owner wildcards](/docs/ja/settings-reference#owner-wildcards) を参照してください。単一リポジトリエントリの場合、`ref` は正確に一致する必要があるか、マーケットプレイスソースとホワイトリストエントリの両方に存在しない必要があり、同じルールが `path` に適用されます。
1143* URL ソースの場合:完全な URL は正確に一致する必要があります。
1144* `hostPattern` ソースの場合:マーケットプレイスホストは正規表現パターンに対してマッチされます。
1145* `pathPattern` ソースの場合:マーケットプレイスのファイルシステムパスは正規表現パターンに対してマッチされます。
1146
1147ホワイトリストの正確なマッチングは、末尾のスラッシュ、`.git` サフィックス、または `ssh://` と `https://` スキームのみが異なる URL を異なる値として扱います。organization のマーケットプレイスが複数の URL 形式でクローンできる場合、リテラル URL よりも `hostPattern` エントリを優先して、`https://`、`ssh://`、および `user@host:path` 形式がすべてマッチするようにします。
1148
1149[claude.ai でホストされているマーケットプレイス](/docs/ja/discover-plugins#add-from-claude-ai) はホストでマッチされます。`hostPattern` エントリが `claude.ai` にマッチする場合、`strictKnownMarketplaces` と `blockedMarketplaces` の両方でそれを管理します。ホワイトリストでは、そのようなエントリはメンバーの個人的な claude.ai アップロードを許可しません。Claude Code v2.1.273 以降が必要です。
1150
1151`strictKnownMarketplaces` は [マネージド設定](/docs/ja/managed-settings) で設定されるため、個々のユーザーとプロジェクト設定はこれらの制限をオーバーライドできません。
1152
1153サポートされているすべてのソースタイプと `extraKnownMarketplaces` との比較を含む完全な設定詳細については、[strictKnownMarketplaces reference](/docs/ja/settings-reference#strictknownmarketplaces) を参照してください。
1154
1155<h3 id="version-resolution-and-release-channels">
1156 バージョン解決とリリースチャネル
1157</h3>
1158
1159プラグインバージョンはキャッシュパスと更新検出を決定します。解決されたバージョンがユーザーが既に持っているものと一致する場合、`/plugin update` と自動更新はプラグインをスキップします。git ベースのソースの場合、`version` を省略すると、Claude Code はソースの解決されたコミット SHA を使用するため、ユーザーはそのコミットが変更されるたびに更新を取得します。これは内部または積極的に開発されているプラグインの最も簡単なセットアップです。完全な解決順序(`archive` ソースを含む)については、[Version management](/docs/ja/plugins-reference#version-management) を参照してください。
1160
1161<Warning>
1162 `version` を設定すると、[`command`](#command-sources) を除くすべてのソースタイプのプラグインがピン留めされます。その version には常に、コマンドが生成したもののハッシュが含まれます。マーケットプレイスから追加されたローカルディレクトリから [in place で読み込まれた](/docs/ja/plugins-reference#plugin-caching-and-file-resolution) プラグインもピン留めされません。`plugin.json` で `"version": "1.0.0"` を宣言し、その文字列を変更せずに新しいコミットをプッシュする場合、これらのソースの既存ユーザーはキャッシュされたコピーを保持します。Claude Code は同じバージョンを見るためです。すべてのリリースでフィールドをバンプするか、解決されたバージョンにフォールバックするために省略します。
1163
1164 `plugin.json` とマーケットプレイスエントリの両方で `version` を設定することを避けてください。Claude Code は常に警告なしに `plugin.json` 値を使用するため、古いマニフェストバージョンは `marketplace.json` で設定したバージョンをマスクできます。
1165</Warning>
1166
1167<h4 id="set-up-release-channels">
1168 リリースチャネルを設定する
1169</h4>
1170
1171プラグインの「stable」と「latest」リリースチャネルをサポートするには、同じリポジトリの異なる ref または SHA を指す 2 つのマーケットプレイスを設定できます。その後、マネージド設定を通じて各ユーザーグループに独自のマーケットプレイスを提供できます。2 つの方法のいずれかで。
1172
1173* 各グループのデバイスに個別の [endpoint-managed settings](/docs/ja/managed-settings#delivery-mechanisms)(マネージド設定ファイルまたは MDM プロファイルなど)をデプロイします。[Claude Code がマネージドソースを組み合わせる方法](/docs/ja/managed-settings#precedence-within-the-managed-tier) は、organization 全体のソースも持つデバイスでグループごとのファイルまたはプロファイルが適用されるかどうかを示します。
1174* グループごとに 1 つの [Claude apps gateway policy](/docs/ja/claude-apps-gateway-config#managed) を定義します。ゲートウェイは一致ルールが適合する最初のポリシーを適用するため、各ユーザーがグループのポリシーに到達するようにポリシーを順序付けます。グループポリシーの `extraKnownMarketplaces` はキャッチオールポリシーのマップを置き換えるため、グループが必要とするすべてのマーケットプレイスをグループのポリシーにリストします。チャネルマーケットプレイスのみではなく。
1175
1176admin コンソールからのサーバー管理設定は [organization 内のすべてのユーザーに適用](/docs/ja/server-managed-settings#current-limitations) されるため、グループごとの割り当てを実行できません。
1177
1178<Warning>
1179 各チャネルは異なるバージョンに解決される必要があります。明示的なバージョンを使用する場合、`plugin.json` は各ピン留めされた ref で異なる `version` を宣言する必要があります。`version` を省略する場合、異なるコミット SHA は既にチャネルを区別します。2 つの ref が同じバージョン文字列に解決される場合、Claude Code はそれらを同一として扱い、更新をスキップします。
1180</Warning>
1181
1182<h5 id="example">
1183 例
1184</h5>
1185
1186```json theme={null}
1187{
1188 "name": "stable-tools",
1189 "plugins": [
1190 {
1191 "name": "code-formatter",
1192 "source": {
1193 "source": "github",
1194 "repo": "acme-corp/code-formatter",
1195 "ref": "stable"
1196 }
1197 }
1198 ]
1199}
1200```
1201
1202```json theme={null}
1203{
1204 "name": "latest-tools",
1205 "plugins": [
1206 {
1207 "name": "code-formatter",
1208 "source": {
1209 "source": "github",
1210 "repo": "acme-corp/code-formatter",
1211 "ref": "latest"
1212 }
1213 }
1214 ]
1215}
1216```
1217
1218<h5 id="assign-channels-to-user-groups">
1219 チャネルをユーザーグループに割り当てる
1220</h5>
1221
1222[リリースチャネルを設定する](#set-up-release-channels) の下で説明されているグループごとの endpoint-managed settings またはゲートウェイポリシーを通じて、各マーケットプレイスをそのユーザーグループに割り当てます。例えば、stable グループは以下を受け取ります。
1223
1224```json theme={null}
1225{
1226 "extraKnownMarketplaces": {
1227 "stable-tools": {
1228 "source": {
1229 "source": "github",
1230 "repo": "acme-corp/stable-tools"
1231 }
1232 }
1233 }
1234}
1235```
1236
1237早期アクセスグループは代わりに `latest-tools` を受け取ります。
1238
1239```json theme={null}
1240{
1241 "extraKnownMarketplaces": {
1242 "latest-tools": {
1243 "source": {
1244 "source": "github",
1245 "repo": "acme-corp/latest-tools"
1246 }
1247 }
1248 }
1249}
1250```
1251
1252<h4 id="pin-dependency-versions">
1253 依存関係バージョンをピン留めする
1254</h4>
1255
1256プラグインは依存関係を semver 範囲に制限して、依存関係への更新が依存プラグインを破壊しないようにできます。`{plugin-name}--v{version}` git-tag 規約、範囲構文、および同じ依存関係に対する複数の制約がどのように組み合わされるかについては、[Constrain plugin dependency versions](/docs/ja/plugin-dependencies) を参照してください。
1257
1258<h3 id="rename-or-remove-a-plugin">
1259 プラグインの名前を変更または削除する
1260</h3>
1261
1262プラグインの `name` はその安定識別子です。ユーザーは `enabledPlugins`、`pluginConfigs`、および `/plugin install` コマンドでそれを参照するため、それを変更するとすべての既存インストールが破壊されます。UI に表示されるラベルを既存インストールを破壊せずに変更するには、[`displayName`](#optional-plugin-fields) を設定して `name` を変更しないままにします。
1263
1264プラグインの `name` を変更する必要がある場合、または `plugins` 配列からプラグインを削除する場合、既存ユーザーが `plugin-not-found` エラーを見る代わりに移行するように、トップレベルの `renames` エントリを追加します。自動移行には Claude Code v2.1.193 以降が必要です。各前の名前を現在の名前にマップするか、プラグインが存在しなくなった場合は `null` にマップします。次の例は `formatter` を `code-formatter` に名前変更し、`legacy-linter` が削除されたことを記録します。
1265
1266```json theme={null}
1267{
1268 "name": "acme-tools",
1269 "owner": { "name": "Acme" },
1270 "plugins": [
1271 { "name": "code-formatter", "source": "./plugins/code-formatter" }
1272 ],
1273 "renames": {
1274 "formatter": "code-formatter",
1275 "legacy-linter": null
1276 }
1277}
1278```
1279
1280ユーザーが古い名前がまだ設定に含まれた状態で Claude Code を開始すると、Claude Code は `renames` マップに従います。
1281
1282* エントリが新しい名前を指す場合、Claude Code はプラグインを新しい名前の下で読み込み、`Renamed to "code-formatter" in the "acme-tools" marketplace` などの 1 行の通知を表示します。その後、ユーザー、プロジェクト、ローカル設定スコープで `enabledPlugins` と `pluginConfigs` の両方の古いキーを新しいキーに書き直すため、通知は 1 回表示されます。
1283* `null` エントリの場合、Claude Code は古いキーをドロップし、通知はプラグインがマーケットプレイスから削除されたことを報告します。
1284* 名前変更されたプラグインが `github` または `npm` などのリモートソースを使用する場合、Claude Code は名前変更後に `plugin-cache-miss` を報告し、ユーザーは新しい名前の下でそれをフェッチするために 1 回 `/plugin install` を実行する必要があります。
1285
1286`renames` を追加のみの履歴として扱います。すべてのユーザーが移行したと予想した後でも、古いエントリを所定の位置に保持します。Claude Code はチェーンに従うため、後で `code-formatter` を `formatter-pro` に名前変更する場合、最初のエントリを編集する代わりに 2 番目のエントリを追加します。元の `formatter` がまだ有効になっているユーザーは、両方のエントリを通じて `formatter-pro` に解決されます。
1287
1288マップを編集した後、`claude plugin validate .` を実行します。チェーンがサイクルを形成するか、`null` または `plugins` にリストされた名前で終了しないエントリを拒否します。
1289
1290<Note>
1291 マネージドおよびポリシー設定は Claude Code に対して読み取り専用であるため、そこで有効になっているプラグインは自動的に書き直すことができません。名前変更されたプラグインは各セッションで引き続き読み込まれますが、管理者がマネージド設定ファイルの `enabledPlugins` を新しい名前を使用するように更新するまで、名前変更通知は繰り返されます。同じことが `--add-dir` などの他の読み取り専用ソースを通じて有効になっているプラグインに適用されます。
1292</Note>
1293
1294Claude Code の以前のバージョンは `renames` フィールドを無視し、古い名前に対して `plugin-not-found` を報告します。
1295
1296<h2 id="validation-and-testing">
1297 検証とテスト
1298</h2>
1299
1300マーケットプレイスを共有する前にテストしてください。検証はファイル構造をチェックします。プラグインが現実的なプロンプトで Claude の動作を変更するかどうかをテストするには、新しいバージョンを公開する前に [`claude plugin eval`](/docs/ja/plugin-evals) を使用してその eval スイートを実行してください。
1301
1302マーケットプレイスディレクトリから JSON 構文を検証します:
1303
1304```bash theme={null}
1305claude plugin validate .
1306```
1307
1308または Claude Code 内から:
1309
1310```shell theme={null}
1311/plugin validate .
1312```
1313
1314テスト用にマーケットプレイスを追加します:
1315
1316```shell theme={null}
1317/plugin marketplace add ./path/to/marketplace
1318```
1319
1320すべてが機能することを確認するためにテストプラグインをインストールします:
1321
1322```shell theme={null}
1323/plugin install test-plugin@marketplace-name
1324```
1325
1326完全なプラグインテストワークフローについては、[プラグインをローカルでテスト](/docs/ja/plugins#test-your-plugins-locally)を参照してください。技術的なトラブルシューティングについては、[プラグインリファレンス](/docs/ja/plugins-reference)を参照してください。
1327
1328<h2 id="manage-marketplaces-from-the-cli">
1329 CLI からマーケットプレイスを管理する
1330</h2>
1331
1332Claude Code は、スクリプトと自動化のための非対話的な `claude plugin marketplace` サブコマンドを提供します。これらは、対話的なセッション内で利用可能な `/plugin marketplace` コマンドと同等です。
1333
1334<h3 id="plugin-marketplace-add">
1335 プラグインマーケットプレイス追加
1336</h3>
1337
1338GitHub リポジトリ、Git URL、リモート URL、またはローカルパスからマーケットプレイスを追加します。
1339
1340```bash theme={null}
1341claude plugin marketplace add <source> [options]
1342```
1343
1344**引数:**
1345
1346* `<source>`:GitHub `owner/repo` ショートハンド、Git URL、`marketplace.json` ファイルへのリモート URL、またはローカルディレクトリパス。ブランチまたはタグに固定するには、GitHub ショートハンドに `@ref` を追加するか、Git URL に `#ref` を追加します
1347
1348URL はスキームを含める必要があります。Claude Code v2.1.196 以降、`gitlab.example.com/team/plugins` のようにスキームなしで入力されたホストは、無効な `owner/repo` ショートハンドとして拒否され、エラーメッセージは `https://` を追加するか、ローカルパスに `./` を使用するよう指示します。以前のバージョンでは、これを GitHub リポジトリパスとして誤読し、GitHub の見つからないエラーでクローン時に失敗します。
1349
1350**オプション:**
1351
1352| オプション | 説明 | デフォルト |
1353| :-------------------- | :-------------------------------------------------------------------------------------------------------------------------- | :----- |
1354| `--scope <scope>` | マーケットプレイスを宣言する場所:`user`、`project`、または `local`。[プラグインインストールスコープ](/docs/ja/plugins-reference#plugin-installation-scopes)を参照してください | `user` |
1355| `--sparse <paths...>` | Git スパースチェックアウト経由で特定のディレクトリにチェックアウトを制限します。モノレポに便利です | |
1356| `--claudeai` | 引数をソースではなく、[claude.ai でホストされているマーケットプレイス](/docs/ja/discover-plugins#add-from-claude-ai)の名前として読み取ります。Claude Code v2.1.273 以降が必要です | |
1357
1358GitHub から `owner/repo` ショートハンドを使用してマーケットプレイスを追加します。
1359
1360```bash theme={null}
1361claude plugin marketplace add acme-corp/claude-plugins
1362```
1363
1364`@ref` を使用して特定のブランチまたはタグに固定します。
1365
1366```bash theme={null}
1367claude plugin marketplace add acme-corp/claude-plugins@v2.0
1368```
1369
1370非 GitHub ホスト上の Git URL から追加します。
1371
1372```bash theme={null}
1373claude plugin marketplace add https://gitlab.example.com/team/plugins.git
1374```
1375
1376`marketplace.json` ファイルを直接提供するリモート URL から追加します。
1377
1378```bash theme={null}
1379claude plugin marketplace add https://example.com/marketplace.json
1380```
1381
1382テスト用にローカルディレクトリから追加します。
1383
1384```bash theme={null}
1385claude plugin marketplace add ./my-marketplace
1386```
1387
1388マーケットプレイスをプロジェクトスコープで宣言して、`.claude/settings.json` 経由でチームと共有します。
1389
1390```bash theme={null}
1391claude plugin marketplace add acme-corp/claude-plugins --scope project
1392```
1393
1394モノレポの場合、プラグインコンテンツを含むディレクトリにチェックアウトを制限します。
1395
1396```bash theme={null}
1397claude plugin marketplace add acme-corp/monorepo --sparse .claude-plugin plugins
1398```
1399
1400`claude plugin marketplace list` の `From claude.ai:` セクションに表示されている名前で、[claude.ai でホストされているマーケットプレイス](/docs/ja/discover-plugins#add-from-claude-ai)を追加します。
1401
1402```bash theme={null}
1403claude plugin marketplace add --claudeai claudeai-organization-library
1404```
1405
1406`--claudeai` を使用すると、コマンドは `--scope` と `--sparse` を拒否します。マーケットプレイスはアカウント用にホストされており、設定ファイルで宣言されていないため、プロジェクトの `.claude/settings.json` 経由で共有することはできません。
1407
1408<h3 id="plugin-marketplace-list">
1409 プラグインマーケットプレイスリスト
1410</h3>
1411
1412設定されたすべてのマーケットプレイスをリストします。
1413
1414```bash theme={null}
1415claude plugin marketplace list [options]
1416```
1417
1418**オプション:**
1419
1420| オプション | 説明 |
1421| :------- | :--------- |
1422| `--json` | JSON として出力 |
1423
1424`--json` を使用すると、各エントリには `name`、`source`、マーケットプレイスが保存されているローカルキャッシュパスを含む `installLocation` フィールド、およびソース固有のフィールドが含まれます:GitHub ソースの場合は `repo`、Git および URL ソースの場合は `url`、ローカルソースの場合は `path`。GitHub および Git ソースには、マーケットプレイスが固定されたブランチまたはタグで追加された場合、`ref` フィールドも含まれます。
1425
1426追加された [claude.ai マーケットプレイス](/docs/ja/discover-plugins#add-from-claude-ai)にはローカルクローンがないため、そのエントリは `installLocation` の代わりに claude.ai 識別子である `marketplaceId` と `organizationUuid` を含みます。
1427
1428[プラグインが claude.ai アカウントから同期される](/docs/ja/plugins-reference#synced-plugins)ターミナルセッションでは、テキストリストの末尾に `From claude.ai:` セクションがあり、追加したマーケットプレイスを超えて claude.ai がアカウント用にリストしているものを名前で示します。それらの 1 つを追加するには、[claude.ai から追加](/docs/ja/discover-plugins#add-from-claude-ai)を参照してください。`--json` 出力は設定されたマーケットプレイスのみをカバーし、そのセクションは除外されます。Claude Code v2.1.273 以降が必要です。
1429
1430<h3 id="plugin-marketplace-remove">
1431 プラグインマーケットプレイス削除
1432</h3>
1433
1434設定されたマーケットプレイスを削除します。エイリアス `rm` も受け入れられます。
1435
1436```bash theme={null}
1437claude plugin marketplace remove <name> [options]
1438```
1439
1440**引数:**
1441
1442* `<name>`:削除するマーケットプレイス名。`claude plugin marketplace list` で表示されます。これは渡したソースではなく、`marketplace.json` の `name` です
1443
1444**オプション:**
1445
1446| オプション | 説明 | デフォルト |
1447| :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------- |
1448| `--scope <scope>` | 削除を単一の設定スコープに制限します:`user`、`project`、または `local`。[プラグインインストールスコープ](/docs/ja/plugins-reference#plugin-installation-scopes)を参照してください。省略した場合、宣言はすべての編集可能なスコープから削除されます。指定した場合、そのスコープの宣言のみが削除されます。マーケットプレイスが別のスコープで引き続き宣言されている場合、共有状態、キャッシュ、およびインストール済みプラグインデータは保持されます | (すべてのスコープ) |
1449
1450<Warning>
1451 マーケットプレイスを最後に残ったスコープから削除すると、そこからインストールしたプラグインもアンインストールされます。インストール済みプラグインを失わずにマーケットプレイスを更新するには、`claude plugin marketplace update` を使用してください。
1452</Warning>
1453
1454<h3 id="plugin-marketplace-update">
1455 プラグインマーケットプレイス更新
1456</h3>
1457
1458マーケットプレイスをソースから更新して、新しいプラグインとバージョン変更を取得します。ブランチまたはタグ `ref` で追加されたマーケットプレイスは、リポジトリのデフォルトブランチではなく、その ref の最新コミットに更新されます。
1459
1460```bash theme={null}
1461claude plugin marketplace update [name]
1462```
1463
1464**引数:**
1465
1466* `[name]`:更新するマーケットプレイス名。`claude plugin marketplace list` で表示されます。省略した場合はすべてのマーケットプレイスを更新します
1467
1468`remove` と `update` の両方は、読み取り専用のシード管理マーケットプレイスに対して実行すると失敗します。すべてのマーケットプレイスを更新する場合、シード管理エントリはスキップされ、他のマーケットプレイスは引き続き更新されます。シード提供プラグインを変更するには、管理者にシードイメージを更新するよう依頼してください。[コンテナ用にプラグインを事前入力する](#pre-populate-plugins-for-containers)を参照してください。
1469
1470<h2 id="troubleshooting">
1471 トラブルシューティング
1472</h2>
1473
1474<h3 id="marketplace-not-loading">
1475 マーケットプレイスが読み込まれない
1476</h3>
1477
1478**症状**: マーケットプレイスを追加できない、またはそこからプラグインが見えない
1479
1480**解決策**:
1481
1482* マーケットプレイス URL がアクセス可能であることを確認してください
1483* `.claude-plugin/marketplace.json` が指定されたパスに存在することを確認してください
1484* `claude plugin validate .` または `/plugin validate .` をマーケットプレイスディレクトリから実行して JSON 構文が有効であることを確認してください。スキル、エージェント、コマンドのフロントマターを確認するには、[マニフェストなしでプラグインまたはディレクトリを検証する](#validate-a-plugin-or-a-directory-without-a-manifest)を参照してください
1485* プライベートリポジトリの場合は、アクセス権限があることを確認してください
1486
1487<h3 id="marketplace-validation-errors">
1488 マーケットプレイス検証エラー
1489</h3>
1490
1491マーケットプレイスディレクトリから `claude plugin validate .` または `/plugin validate .` を実行して、問題がないか確認してください。マーケットプレイスディレクトリを指定すると、バリデーターは `marketplace.json` のスキーマエラー、重複するプラグイン名、ソースパストラバーサルをチェックします。`source` がローカルパスである各エントリについて、そのプラグイン自体の `plugin.json` も検証し、エントリの `version` が `plugin.json` のものと一致しない場合に警告します。プラグインの `plugin.json` で見つかった問題には、エントリインデックスが `plugins[2] plugin.json →` の形式で付与されます。
1492
1493Claude Code v2.1.196 以降、エントリごとのパスは以下も実行します:
1494
1495* `source` が `.` であるプラグインを含める
1496* `marketplace.json` が `.claude-plugin` ディレクトリの外にある場合に実行し、ソースをファイル自体のディレクトリに対して解決する
1497* ファイルの別の部分にスキーマエラーがある場合でも、各エントリの問題を報告する
1498
1499以前のバージョンではマーケットプレイスルートのプラグインをスキップし、`.claude-plugin/marketplace.json` からのみ下降します。
1500
1501マーケットプレイスディレクトリから、Claude Code はプラグインのスキル、エージェント、コマンド、またはフックファイルを開きません。これらのファイルのエラーを見つけるには、[マニフェストなしでプラグインまたはディレクトリを検証する](#validate-a-plugin-or-a-directory-without-a-manifest)を参照してください。以下の表は、マーケットプレイスディレクトリからの最も一般的なエラーと、それぞれの原因と修正方法を示しています:
1502
1503| エラー | 原因 | 解決策 |
1504| :------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- |
1505| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | 指定したディレクトリに `.claude-plugin/marketplace.json` または `plugin.json` がなく、チェックするスキル、エージェント、またはコマンドファイルもない | マーケットプレイスルートから実行するか、必須フィールドを含む `.claude-plugin/marketplace.json` を作成してください |
1506| `Invalid JSON syntax: Unexpected token...` | marketplace.json の JSON 構文エラー | 不足しているコンマ、余分なコンマ、またはクォートされていない文字列がないか確認してください |
1507| `Duplicate plugin name "x" found in marketplace` | 2 つのプラグインが同じ名前を共有している | 各プラグインに一意の `name` 値を付与してください |
1508| `plugins[0].source: Path contains ".."` | ソースパスに `..` が含まれている | マーケットプレイスルートに対する相対パスを使用し、`..` を含めないでください。[相対パス](#relative-paths)を参照してください |
1509| `Marketplace name cannot contain control or bidirectional-formatting characters` | マーケットプレイス `name` に Unicode 双方向フォーマット文字またはエスケープや改行などの制御文字が含まれている | 名前から文字を削除してください。v2.1.247 より前では、これらの文字は `Marketplace name impersonates an official Anthropic/Claude marketplace` エラーを生成していました |
1510| `Plugin name cannot contain control or bidirectional-formatting characters` | プラグイン `name` に Unicode 双方向フォーマット文字またはエスケープや改行などの制御文字が含まれている | 名前から文字を削除してください。v2.1.247 より前では、Claude Code はこのチェックを実行していませんでした |
1511
1512**警告** (ブロッキングなし):
1513
1514* `Marketplace has no plugins defined`: `plugins` 配列に少なくとも 1 つのプラグインを追加してください
1515* `No marketplace description provided`: ユーザーがマーケットプレイスを理解するのに役立つよう、トップレベルの `description` を追加してください
1516* `Plugin name "x" is not kebab-case`: 小文字、数字、ハイフンのみを使用して名前を変更してください(例: `my-plugin`)。Claude Code は他の形式を受け入れますが、claude.ai マーケットプレイス同期はそれらを拒否します。
1517* `Marketplace name "x" is reserved in Claude Desktop`: マーケットプレイスが `org`、`org-provisioned`、または `unknown` という名前である(大文字小文字は問わない)。Claude Code はこれらの名前を受け入れますが、Claude Desktop の管理マーケットプレイス同期はマーケットプレイス全体を拒否します。マーケットプレイスの名前を変更してください。v2.1.221 より前では、`claude plugin validate` はこのチェックを実行していませんでした。
1518* `Marketplace name "x" is not accepted by Claude Desktop` または `Plugin name "x" is not accepted by Claude Desktop`: Claude Desktop は、文字、数字、`.`、`_`、`-` で構成され、文字または数字で始まる最大 128 文字の名前を受け入れます。Claude Code は他の形式を受け入れますが、Claude Desktop の管理マーケットプレイス同期は名前チェックに失敗したマーケットプレイスを拒否し、名前チェックに失敗したプラグインエントリを静かにドロップします。マーケットプレイスまたはプラグインの名前を変更してください。v2.1.221 より前では、`claude plugin validate` はこれらのチェックを実行していませんでした。
1519
1520<h4 id="validate-a-plugin-or-a-directory-without-a-manifest">
1521 マニフェストなしでプラグインまたはディレクトリを検証する
1522</h4>
1523
1524フロントマターが解析されないスキル、エージェント、コマンドファイルを見つけるには、`claude plugin validate` を実行し、それらを保持するディレクトリを指定してください。Claude Code は指定したディレクトリの外を見ません。`plugin.json` を持つプラグインに対する 1 つを除くすべての実行には、Claude Code v2.1.233 以降が必要です。
1525
1526<h5 id="pick-the-directory-to-name">
1527 指定するディレクトリを選択する
1528</h5>
1529
1530Claude Code は、指定したディレクトリに応じて異なるファイルをチェックします。最初の列で確認したいものを見つけ、その行のコマンドを実行してください:
1531
1532| 確認対象 | 実行 | Claude Code がチェックする内容 |
1533| :--------------------------------------------------------- | :---------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |
1534| `plugin.json` を持つプラグイン | `claude plugin validate ./plugins/my-plugin` | `plugin.json`、`hooks/hooks.json`、およびプラグインルートの `skills`、`agents`、`commands` ディレクトリ |
1535| スキル、エージェント、またはコマンドの 1 つのディレクトリ(`plugin.json` がまだないプラグインなど) | `claude plugin validate .claude/skills`、`~/.claude/agents`、または `./my-plugin/agents` | そのディレクトリ内のすべてのスキル、エージェント、またはコマンドファイル |
1536| スキルがルート `SKILL.md` であるフォルダ | `claude plugin validate ./skills`(フォルダを保持する `skills` ディレクトリを指定) | 各フォルダのルート `SKILL.md`。保持するディレクトリは `skills` という名前である必要があります。`plugins/` などの別の名前の下のフォルダには、ルート `SKILL.md` をチェックする実行がありません |
1537| プロジェクトの 3 つのディレクトリを一度に | `claude plugin validate .claude`、またはマニフェスト `.claude-plugin/` がないプロジェクトルート | `.claude/skills`、`.claude/agents`、`.claude/commands` |
1538| ユーザーレベルディレクトリ | `claude plugin validate ~/.claude` | `~/.claude/skills`、`~/.claude/agents`、`~/.claude/commands` |
1539
1540<h5 id="check-a-plugin-whose-skill-is-its-root-skill-md">
1541 スキルがルート `SKILL.md` であるプラグインをチェックする
1542</h5>
1543
1544プラグインディレクトリに対して `claude plugin validate` を実行すると、Claude Code はプラグインルートの `SKILL.md` をチェックしません。プラグインが `skills` という名前のディレクトリにある場合は、コマンドを 2 回実行してください:
1545
1546* その `skills` ディレクトリを指定して、プラグインのルート `SKILL.md` をチェックしてください。
1547* プラグインディレクトリを指定して、残りをチェックしてください。
1548
1549プラグインが `plugins/` などの別の名前の下にある場合、`skills` ディレクトリの実行は利用できず、ルート `SKILL.md` をチェックする実行がありません。
1550
1551<h5 id="check-files-behind-symlinks">
1552 シンボリックリンクの背後にあるファイルをチェックする
1553</h5>
1554
1555`claude plugin validate` を実行すると、Claude Code は指定したディレクトリ内のシンボリックリンクをフォローしません。リンクがどこにあるかによって、実行内容が異なります:
1556
1557* **プラグインまたは `.claude` ルートの下にリンクされた `skills`、`agents`、または `commands` ディレクトリ**: Claude Code は、その中のものが何も読まれなかったことを警告します。
1558* **`skills`、`agents`、または `commands` ディレクトリ内のリンクされたエントリ**: Claude Code はそれをスキップし、ディレクトリごとにスキップしたエントリの数をセッションが読み込むことを警告します。
1559* **指定した `skills`、`agents`、または `commands` ディレクトリ自体がシンボリックリンク、またはその親 `.claude` ディレクトリがシンボリックリンク**: Claude Code はエラーを報告し、その中のものをチェックしません。代わりに実際のディレクトリを指定してください。
1560
15612 つのスキルケースでは、実行は警告付きで成功します。リンクされたファイルをチェックするには、再度実行し、それらを直接保持するディレクトリを指定してください:
1562
1563* **`skills` ディレクトリが[兄弟プラグインのスキルにリンク](/docs/ja/plugins-reference#share-files-within-a-marketplace-with-symlinks)しているプラグイン**: 兄弟プラグインのディレクトリを指定してください。
1564* **`~/.claude/skills` または `.claude/skills` の[シンボリックリンクされたスキルエントリ](/docs/ja/skills#where-skills-live)**: Claude Code はセッションでエントリをフォローします。チェックするには、実際のフォルダを保持する `skills` という名前のディレクトリを指定してください。
1565
1566<h5 id="read-the-validation-results">
1567 検証結果を読む
1568</h5>
1569
1570クリーンな実行は `Validation passed` で終了します。
1571
1572`No manifest found in directory` は、Claude Code がそこに `plugin.json` または `marketplace.json` を見つけず、その下で調査するディレクトリにスキル、エージェント、またはコマンドファイルがないことを意味します。代わりに、ファイルを保持する `skills`、`agents`、または `commands` ディレクトリを指定してください。
1573
1574Claude Code がこれらの実行から報告する 2 つのエラーと、それぞれの修正方法:
1575
1576* `YAML frontmatter failed to parse: ...`: スキル、エージェント、またはコマンドファイルのフロントマターブロック内の YAML を修正してください。修正するまで、セッションはそのファイルからフロントマターフィールドを読み込みません
1577* `Invalid JSON syntax: ...` on `hooks/hooks.json`: JSON 構文を修正してください。修正するまで、セッションはそのファイルのフックなしでプラグインを読み込みます。Claude Code はこのエラーをプラグイン実行でのみ報告します
1578
1579プラグイン実行では、Claude Code はプラグインルートの `CLAUDE.md` についても警告します。`plugin.json` の[コンポーネントパスフィールド](/docs/ja/plugins-reference#component-path-fields)を通じて設定したパスについては、Claude Code は各パスが存在することをチェックしますが、そこのファイルは読み込みません。
1580
1581<h3 id="plugin-installation-failures">
1582 プラグインインストール失敗
1583</h3>
1584
1585**症状**: マーケットプレイスは表示されるがプラグインのインストールが失敗する
1586
1587**解決策**:
1588
1589* プラグインソース URL がアクセス可能であることを確認してください
1590* プラグインディレクトリに必須ファイルが含まれていることを確認してください
1591* GitHub ソースの場合は、リポジトリがパブリックであるか、アクセス権限があることを確認してください
1592* プラグインソースを手動でテストしてクローン/ダウンロードしてください
1593* ソースが `ref` と `sha` の両方をピンしている場合、削除されたアップストリームブランチまたはタグは、GitHub、GitLab、Bitbucket を含むほとんどの git ホストでのインストールをブロックしません。AWS CodeCommit などの SHA でのコミット取得をサポートしないサーバーでは、`ref` は依然として存在する必要があり、ピンされたコミットはそこから到達可能である必要があります。インストールが依然として失敗する場合は、ピンされたコミットがリポジトリに依然として存在することを確認してください
1594
1595<h3 id="private-repository-authentication-fails">
1596 プライベートリポジトリ認証失敗
1597</h3>
1598
1599**症状**: プライベートリポジトリからプラグインをインストールするときに認証エラーが発生する
1600
1601**解決策**:
1602
1603手動インストールと更新の場合:
1604
1605* git プロバイダーで認証されていることを確認してください(例: GitHub の場合は `gh auth status` を実行)
1606* 認証情報ヘルパーが設定されていることを確認してください: `git config --global credential.helper`
1607* `git ls-remote <marketplace-url>` を実行して、git が単独で認証できるかテストしてください。git がユーザー名またはパスワードを要求する場合は、最初に認証情報を保存してください: GitHub over HTTPS の場合は `gh auth setup-git` を実行し、SSH リモートの場合はキーを `ssh-agent` に読み込んでください
1608
1609バックグラウンド自動更新の場合:
1610
1611* バックグラウンドチェックは設定された git 認証情報ヘルパーを使用しますが、プロンプトを表示しません。そのため、ヘルパーは保存された認証情報で応答できる必要があります。`ssh-agent` に読み込まれたキーを持つ SSH リモートも認証します
1612* ヘルパーがプロンプトを表示する必要がある場合、バックグラウンド更新は静かに失敗し、既存のチェックアウトが所定の位置に留まります。ヘルパーに最初にサインインして、ホストの認証情報を保持するようにしてください。GitHub の場合は、`gh auth login` を実行してから `gh auth setup-git` を実行してください
1613* チェックが新しいコミットを見つけた場合、またはリモートに到達または認証できない場合、Claude Code は同じ認証情報でマーケットプレイスを再クローンします。再クローンは大規模なリポジトリでタイムアウトする可能性があります
1614* `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` を設定して、バックグラウンドチェックがリモートに到達または認証できない場合に既存のチェックアウトを保持してください
1615* 大規模なリポジトリで再クローンがタイムアウトする場合は、[`CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS`](#git-operations-time-out)で制限を増やしてください
1616* または、認証情報を使用する `/plugin marketplace update <name>` でプライベートマーケットプレイスを手動で更新してください
1617
1618v2.1.280 より前では、バックグラウンドチェックは認証情報ヘルパーなしで実行され、HTTPS 経由でプライベートリポジトリに認証できませんでした。
1619
1620<h3 id="marketplace-updates-fail-in-offline-environments">
1621 オフライン環境でマーケットプレイス更新が失敗する
1622</h3>
1623
1624**症状**: オフラインまたはエアギャップ環境では、バックグラウンドマーケットプレイス更新がリモートに到達できず、Claude Code が成功できない再クローンを繰り返し試みます。
1625
1626**原因**: バックグラウンド更新はマーケットプレイスのリモートで新しいコミットをチェックし、チェックがリモートに到達できない場合、Claude Code はマーケットプレイスを再度クローンしようとします。オフラインでは、クローンは同じ方法で失敗し、既存のチェックアウトが所定の位置に留まります。v2.1.274 より前では、更新は既存のチェックアウトで `git pull` を実行し、プルが失敗したときにチェックアウトを脇に移動して再クローンし、その後ベストエフォートベースで復元していました。
1627
1628更新はスタートアップ後にバックグラウンドで実行されるため、スタートアップは遅延しません。各セッションは依然として失敗した試みを繰り返し、各 git 操作は[120 秒のタイムアウト](#git-operations-time-out)を待つことができます。
1629
1630**解決策**: `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1` を設定して、チェックがリモートに到達できない場合に再クローン試行をスキップし、既存のチェックアウトを使用し続けてください:
1631
1632```bash theme={null}
1633export CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1
1634```
1635
1636リポジトリが到達不可能になる完全オフラインデプロイメントの場合は、代わりに[`CLAUDE_CODE_PLUGIN_SEED_DIR`](#pre-populate-plugins-for-containers)を使用してビルド時にプラグインディレクトリを事前入力してください。
1637
1638<h3 id="git-operations-time-out">
1639 Git 操作がタイムアウトする
1640</h3>
1641
1642**症状**: プラグインのインストールまたはマーケットプレイスの更新が「Git clone timed out after 120s」などのタイムアウトエラーで失敗します。
1643
1644**原因**: Claude Code は、プラグインリポジトリのクローンやマーケットプレイスの更新を含むすべての git 操作に 120 秒のタイムアウトを使用します。大規模なリポジトリまたは遅いネットワーク接続はこの制限を超える可能性があります。
1645
1646**解決策**: `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` 環境変数を使用してタイムアウトを増やしてください。値はミリ秒単位です:
1647
1648```bash theme={null}
1649export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000 # 5 minutes
1650```
1651
1652<h3 id="plugins-with-relative-paths-fail-in-url-based-marketplaces">
1653 URL ベースのマーケットプレイスで相対パスを持つプラグインが失敗する
1654</h3>
1655
1656**症状**: `https://example.com/marketplace.json` などの URL を通じてマーケットプレイスを追加しましたが、`"./plugins/my-plugin"` などの相対パスソースを持つプラグインが `its marketplace entry path does not stay inside the marketplace directory` でインストールに失敗します。既にインストールされているプラグインは `Plugin source path refused` で読み込みに失敗します。両方のメッセージに[エラーリファレンスエントリ](/docs/ja/errors#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory)があります。
1657
1658**原因**: URL ベースのマーケットプレイスを追加すると、`marketplace.json` ファイル自体のみがダウンロードされ、Claude Code はそのサーバーから相対パスでプラグインファイルをフェッチしません。マーケットプレイスエントリの相対パスは、ダウンロードされなかったリモートサーバー上のファイルを参照します。
1659
1660**解決策**:
1661
1662* **外部ソースを使用**: プラグインエントリを相対パス以外の任意の[プラグインソース](#plugin-sources)に変更してください:
1663 ```json theme={null}
1664 { "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }
1665 ```
1666* **Git ベースのマーケットプレイスを使用**: マーケットプレイスを Git リポジトリでホストし、git URL で追加してください。Git ベースのマーケットプレイスはリポジトリ全体をクローンするため、相対パスが正しく機能します。
1667
1668<h3 id="files-not-found-after-installation">
1669 インストール後にファイルが見つからない
1670</h3>
1671
1672**症状**: プラグインはインストールされますが、ファイルへの参照が失敗します。特にプラグインディレクトリの外のファイル
1673
1674**原因**: プラグインは、[リンクモードの `command` ソース](#copy-mode-and-link-mode)を除き、その場で使用されるのではなく、キャッシュディレクトリにコピーされます。コピーされたプラグインのディレクトリの外のファイルを参照するパス(`../shared-utils` など)は、それらのファイルがコピーされないため機能しません。
1675
1676**解決策**: [プラグインキャッシングとファイル解決](/docs/ja/plugins-reference#plugin-caching-and-file-resolution)を参照して、シンボリックリンクとディレクトリ再構成を含む回避策を確認してください。
1677
1678追加のデバッグツールと一般的な問題については、[デバッグと開発ツール](/docs/ja/plugins-reference#debugging-and-development-tools)を参照してください。
1679
1680<h2 id="see-also">
1681 関連項目
1682</h2>
1683
1684* [既成プラグインの検出とインストール](/docs/ja/discover-plugins) - 既存のマーケットプレイスからプラグインをインストール
1685* [プラグイン](/docs/ja/plugins) - 独自のプラグインの作成
1686* [プラグインリファレンス](/docs/ja/plugins-reference) - 完全な技術仕様とスキーマ
1687* [プラグイン設定](/docs/ja/settings-reference#plugin-settings) - プラグイン設定オプション
1688* [strictKnownMarketplaces リファレンス](/docs/ja/settings-reference#strictknownmarketplaces) - 管理マーケットプレイス制限