plugins.md +0 −527 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> スキル、エージェント、フック、MCP サーバーで Claude Code を拡張するカスタムプラグインを作成します。
8
9プラグインを使用すると、Claude Code をカスタム機能で拡張でき、プロジェクトとチーム全体で共有できます。このガイドでは、スキル、エージェント、フック、MCP サーバーを使用して独自のプラグインを作成する方法について説明します。
10
11既存のプラグインをインストールしたいですか?[プラグインを検出してインストールする](/docs/ja/discover-plugins)を参照してください。完全な技術仕様については、[プラグインリファレンス](/docs/ja/plugins-reference)を参照してください。
12
13<h2 id="when-to-use-plugins-vs-standalone-configuration">
14 プラグインとスタンドアロン設定を使い分ける
15</h2>
16
17Claude Code では、カスタムスキル、エージェント、フックを追加する 2 つの方法をサポートしています。
18
19| アプローチ | スキル名 | 最適な用途 |
20| :------------------------------------------------------------------------------ | :------------------- | :--------------------------------------------------- |
21| **スタンドアロン**(`.claude/` ディレクトリ) | `/hello` | 個人的なワークフロー、プロジェクト固有のカスタマイズ、クイック実験 |
22| **プラグイン**(スキル、エージェント、フック、または `.claude-plugin/plugin.json` マニフェストを含む自己完結型ディレクトリ) | `/plugin-name:hello` | チームメンバーとの共有、コミュニティへの配布、バージョン管理されたリリース、プロジェクト全体で再利用可能 |
23
24<Tip>
25 `.claude/` でスタンドアロン設定を使用してクイック反復を行い、共有する準備ができたら[既存の設定をプラグインに変換](#convert-existing-configurations-to-plugins)してください。
26</Tip>
27
28<h2 id="quickstart">
29 クイックスタート
30</h2>
31
32このクイックスタートでは、カスタムスキルを使用してプラグインを作成する手順を説明します。マニフェスト(プラグインを定義する設定ファイル)を作成し、スキルを追加して、`--plugin-dir` フラグを使用してローカルでテストします。
33
34<h3 id="prerequisites">
35 前提条件
36</h3>
37
38* Claude Code [インストール済みで認証済み](/docs/ja/quickstart#step-1-install-claude-code)
39
40<h3 id="create-your-first-plugin">
41 最初のプラグインを作成する
42</h3>
43
44<Steps>
45 <Step title="プラグインディレクトリを作成する">
46 すべてのプラグインは、スキル、エージェント、またはフックを含む独自のディレクトリに存在し、オプションで `.claude-plugin/plugin.json` マニフェストと一緒に配置されます。このクイックスタートではテストステップで `--plugin-dir` を使用して Claude Code をディレクトリに指すため、場所は重要ではありません。スクラッチフォルダやプロジェクトディレクトリなど、便利な場所に作成してください。
47
48 ```bash theme={null}
49 mkdir my-first-plugin
50 ```
51
52 残りのステップは親ディレクトリから実行され、`my-first-plugin/...` のようなパスを相対的に参照します。
53 </Step>
54
55 <Step title="プラグインマニフェストを作成する">
56 `.claude-plugin/plugin.json` のマニフェストファイルは、プラグインの ID(名前、説明、バージョン)を定義します。Claude Code はこのメタデータを使用して、プラグインマネージャーにプラグインを表示します。
57
58 プラグインフォルダ内に `.claude-plugin` ディレクトリを作成します。
59
60 ```bash theme={null}
61 mkdir my-first-plugin/.claude-plugin
62 ```
63
64 次に、このコンテンツで `my-first-plugin/.claude-plugin/plugin.json` を作成します。
65
66 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}
67 {
68 "name": "my-first-plugin",
69 "description": "A greeting plugin to learn the basics",
70 "version": "1.0.0",
71 "author": {
72 "name": "Your Name"
73 }
74 }
75 ```
76
77 | フィールド | 目的 |
78 | :------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
79 | `name` | 一意の識別子とスキル名前空間。スキルにはこれが接頭辞として付きます(例:`/my-first-plugin:hello`)。 |
80 | `description` | プラグインマネージャーでプラグインを参照またはインストールするときに表示されます。 |
81 | `version` | オプション。設定されている場合、ユーザーはこのフィールドをバンプしたときにのみ更新を受け取ります。[`command` ソース](/docs/ja/plugin-marketplaces#command-sources)を除きます。[プラグインをその場で読み込む](/docs/ja/plugins-reference#plugin-caching-and-file-resolution)場合も除きます。[バージョン管理](/docs/ja/plugins-reference#version-management)を参照してください。省略された場合、バージョンは[バージョン管理](/docs/ja/plugins-reference#version-management)の次のソースから取得されます。 |
82 | `author` | オプション。属性に役立ちます。 |
83
84 `homepage`、`repository`、`license` などの追加フィールドについては、[完全なマニフェストスキーマ](/docs/ja/plugins-reference#plugin-manifest-schema)を参照してください。
85 </Step>
86
87 <Step title="スキルを追加する">
88 スキルは `skills/` ディレクトリに存在します。各スキルは `SKILL.md` ファイルを含むフォルダです。フォルダ名がスキル名になり、プラグインの名前空間が接頭辞として付きます(`my-first-plugin` という名前のプラグイン内の `hello/` は `/my-first-plugin:hello` を作成します)。
89
90 プラグインフォルダ内にスキルディレクトリを作成します。
91
92 ```bash theme={null}
93 mkdir -p my-first-plugin/skills/hello
94 ```
95
96 次に、このコンテンツで `my-first-plugin/skills/hello/SKILL.md` を作成します。
97
98 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}
99 ---
100 description: Greet the user with a friendly message
101 disable-model-invocation: true
102 ---
103
104 Greet the user warmly and ask how you can help them today.
105 ```
106 </Step>
107
108 <Step title="プラグインをテストする">
109 `--plugin-dir` フラグを使用して Claude Code を実行し、プラグインを読み込みます。
110
111 ```bash theme={null}
112 claude --plugin-dir ./my-first-plugin
113 ```
114
115 Claude Code が起動したら、新しいスキルを試してください。
116
117 ```shell theme={null}
118 /my-first-plugin:hello
119 ```
120
121 Claude がグリーティングで応答します。`/help` を実行して、**カスタムコマンド**タブを開き、プラグイン名前空間の下にリストされたスキルを確認してください。
122
123 <Note>
124 **名前空間を使う理由は?** プラグインスキルは常に名前空間が付きます(`/my-first-plugin:hello` など)。複数のプラグインが同じ名前のスキルを持つ場合の競合を防ぐためです。
125
126 名前空間プレフィックスを変更するには、`plugin.json` の `name` フィールドを更新してください。
127 </Note>
128 </Step>
129
130 <Step title="スキル引数を追加する">
131 `$ARGUMENTS` プレースホルダーを使用してユーザー入力をキャプチャすることで、スキルを動的にします。
132
133 `SKILL.md` ファイルを更新します。
134
135 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}
136 ---
137 description: Greet the user with a personalized message
138 ---
139
140 # Hello Skill
141
142 Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
143 ```
144
145 `/reload-plugins` を実行して変更を反映させ、スキルを名前で試してください。
146
147 ```shell theme={null}
148 /my-first-plugin:hello Alex
149 ```
150
151 Claude があなたを名前で挨拶します。スキルに引数を渡す方法の詳細については、[スキル](/docs/ja/skills#pass-arguments-to-skills)を参照してください。
152 </Step>
153</Steps>
154
155<Tip>
156 `--plugin-dir` フラグは開発とテストに役立ちます。プラグインを他のユーザーと共有する準備ができたら、[プラグインマーケットプレイスを作成して配布する](/docs/ja/plugin-marketplaces)を参照してください。
157</Tip>
158
159<h2 id="develop-a-plugin-in-your-skills-directory">
160 スキルディレクトリでプラグインを開発する
161</h2>
162
163毎回起動時に `--plugin-dir` を渡す代わりに、スキルディレクトリにプラグインを保持して、Claude Code に自動的に読み込ませることができます。`claude plugin init` がスキャフォルドします。
164
165```bash theme={null}
166claude plugin init my-tool
167```
168
169これにより、`.claude-plugin/plugin.json` マニフェストとスターター `SKILL.md` を含む `~/.claude/skills/my-tool/` が作成されます。次のセッションでは、マーケットプレイスやインストール手順なしで `my-tool@skills-dir` として読み込まれます。
170
171自動読み込みルール、個人スコープ対プロジェクトスコープ、ワークスペース信頼要件、および更新または削除方法については、[スキルディレクトリプラグイン](/docs/ja/plugins-reference#skills-directory-plugins)を参照してください。
172
173<h2 id="plugin-structure-overview">
174 プラグイン構造の概要
175</h2>
176
177スキルを使用してプラグインを作成しましたが、プラグインにはさらに多くの機能を含めることができます。カスタムエージェント、フック、MCP サーバー、LSP サーバー、バックグラウンドモニターです。
178
179<Warning>
180 **よくある間違い**:`commands/`、`agents/`、`skills/`、`hooks/` を `.claude-plugin/` ディレクトリ内に配置しないでください。`plugin.json` のみが `.claude-plugin/` 内に入ります。他のすべてのディレクトリはプラグインルートレベルにある必要があります。
181
182 プラグインルートは個別プラグイン自体のディレクトリです。例えば、[クイックスタート](#quickstart)の `my-first-plugin/` のようなものです。`~/.claude/` ではありません。例えば、Claude Code は `~/.claude/.mcp.json` に配置された `.mcp.json` を読み込みません。
183</Warning>
184
185| ディレクトリ | 場所 | 目的 |
186| :---------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
187| `.claude-plugin/` | プラグインルート | `plugin.json` マニフェストを含みます(コンポーネントがデフォルトの場所を使用する場合はオプション) |
188| `skills/` | プラグインルート | `<name>/SKILL.md` ディレクトリとしてのスキル |
189| `commands/` | プラグインルート | フラットな Markdown ファイルとしてのスキル。新しいプラグインには `skills/` を使用してください |
190| `agents/` | プラグインルート | カスタムエージェント定義 |
191| `hooks/` | プラグインルート | `hooks.json` のイベントハンドラー |
192| `.mcp.json` | プラグインルート | MCP サーバー設定 |
193| `.lsp.json` | プラグインルート | コード インテリジェンス用の LSP サーバー設定 |
194| `monitors/` | プラグインルート | `monitors.json` のバックグラウンドモニター設定 |
195| `bin/` | プラグインルート | プラグインが有効になっている間に Bash ツールの `PATH` に追加される実行可能ファイル。[Claude.ai 組織設定を通じて配布するプラグインにはこのディレクトリを含めることはできません](/docs/ja/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory) |
196| `settings.json` | プラグインルート | プラグインが有効になったときに適用されるデフォルト[設定](/docs/ja/settings) |
197
198正確に 1 つのスキルを含むプラグインは、`skills/` ディレクトリを作成する代わりに、`SKILL.md` をプラグインルートに直接配置できます。Claude Code はそれを単一のスキルとして読み込み、フロントマター `name` フィールドを呼び出し名として使用します。複数のスキルに成長する可能性があるプラグインには、`skills/` レイアウトを使用してください。
199
200<h2 id="develop-more-complex-plugins">
201 より複雑なプラグインを開発する
202</h2>
203
204基本的なプラグインに慣れたら、より高度な拡張機能を作成できます。
205
206<h3 id="add-skills-to-your-plugin">
207 プラグインに Skills を追加する
208</h3>
209
210プラグインは [Agent Skills](/docs/ja/skills) を含めることで、Claude の機能を拡張できます。Skills はモデルが呼び出すもので、Claude はタスクのコンテキストに基づいて自動的に使用します。
211
212プラグインのルートに `skills/` ディレクトリを追加し、`SKILL.md` ファイルを含む Skill フォルダを配置します。
213
214```text theme={null}
215my-plugin/
216├── .claude-plugin/
217│ └── plugin.json
218└── skills/
219 └── code-review/
220 └── SKILL.md
221```
222
223各 `SKILL.md` には YAML フロントマターと説明が含まれます。Claude がいつ Skill を使用するかを知るために `description` を含めます。
224
225```yaml theme={null}
226description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
227
228When reviewing code, check for:
2291. Code organization and structure
2302. Error handling
2313. Security concerns
2324. Test coverage
233```
234
235プラグインをインストール後、インストール概要を確認します。`Run /reload-plugins to activate.` と表示される場合は、[プラグインの変更を再起動なしで適用する](/docs/ja/discover-plugins#apply-plugin-changes-without-restarting) を参照して、現在のセッションで Skills を読み込みます。段階的な情報開示とツール制限を含む完全な Skill 作成ガイダンスについては、[Agent Skills](/docs/ja/skills) を参照してください。
236
237<h3 id="add-lsp-servers-to-your-plugin">
238 プラグインに LSP サーバーを追加する
239</h3>
240
241<Tip>
242 TypeScript、Python、Rust などの一般的な言語については、公式マーケットプレイスから事前構築された LSP プラグインをインストールしてください。カスタム LSP プラグインは、まだカバーされていない言語のサポートが必要な場合にのみ作成してください。
243</Tip>
244
245LSP(Language Server Protocol)プラグインは Claude にリアルタイムのコード インテリジェンスを提供します。公式 LSP プラグインがない言語をサポートする必要がある場合は、プラグインに `.lsp.json` ファイルを追加することで、独自のプラグインを作成できます。
246
247```json .lsp.json theme={null}
248{
249 "go": {
250 "command": "gopls",
251 "args": ["serve"],
252 "extensionToLanguage": {
253 ".go": "go"
254 }
255 }
256}
257```
258
259プラグインをインストールするユーザーは、言語サーバーのバイナリをマシンにインストールしておく必要があります。
260
261サーバーが起動することを確認するには、プラグインを有効にして Claude Code を起動し、`/plugin` Errors タブを確認します。起動に失敗した言語サーバーはそこに表示されます。例えば、バイナリがインストールされていない場合は `Executable not found in $PATH` と表示されます。無効な設定を持つエントリはスキップされます。理由を確認するには `claude --debug` を実行してください。
262
263完全な LSP 設定オプションについては、[LSP servers](/docs/ja/plugins-reference#lsp-servers) を参照してください。
264
265<h3 id="add-background-monitors-to-your-plugin">
266 プラグインにバックグラウンド モニターを追加する
267</h3>
268
269バックグラウンド モニターを使用すると、プラグインはログ、ファイル、または外部ステータスをバックグラウンドで監視し、イベントが到着したときに Claude に通知できます。Claude Code はプラグインがアクティブな場合、各モニターを自動的に起動するため、Claude にウォッチを開始するよう指示する必要はありません。
270
271プラグインのルートに `monitors/monitors.json` ファイルを追加し、モニター エントリの配列を含めます。
272
273```json monitors/monitors.json theme={null}
274[
275 {
276 "name": "error-log",
277 "command": "tail -F ./logs/error.log",
278 "description": "Application error log"
279 }
280]
281```
282
283`command` からの各 stdout 行は、セッション中に Claude への通知として配信されます。`when` トリガーと変数置換を含む完全なスキーマについては、[Monitors](/docs/ja/plugins-reference#monitors) を参照してください。
284
285<h3 id="ship-default-settings-with-your-plugin">
286 プラグインでデフォルト設定を配布する
287</h3>
288
289プラグインはプラグインのルートに `settings.json` ファイルを含めて、プラグインが有効になったときにデフォルト設定を適用できます。現在、`agent` と `subagentStatusLine` キーのみがサポートされています。
290
291`agent` を設定すると、プラグインの [custom agents](/docs/ja/sub-agents) の 1 つがメイン スレッドとしてアクティブになり、そのシステム プロンプト、ツール制限、およびモデルが適用されます。これにより、プラグインは有効になったときに Claude Code のデフォルトの動作を変更できます。
292
293```json settings.json theme={null}
294{
295 "agent": "security-reviewer"
296}
297```
298
299この例は、プラグインの `agents/` ディレクトリで定義された `security-reviewer` エージェントをアクティブにします。`settings.json` の設定は、`plugin.json` で宣言された `settings` よりも優先されます。不明なキーは無視されます。
300
301<h3 id="organize-complex-plugins">
302 複雑なプラグインを整理する
303</h3>
304
305多くのコンポーネントを持つプラグインの場合、機能別にディレクトリ構造を整理します。完全なディレクトリ レイアウトと整理パターンについては、[Plugin directory structure](/docs/ja/plugins-reference#plugin-directory-structure) を参照してください。
306
307<h3 id="test-your-plugins-locally">
308 プラグインをローカルでテストする
309</h3>
310
311`--plugin-dir` フラグを使用して、開発中にプラグインをテストします。これにより、インストールを必要とせずにプラグインを直接読み込みます。
312
313```bash theme={null}
314claude --plugin-dir ./my-plugin
315```
316
317このフラグはプラグイン ディレクトリの `.zip` アーカイブも受け入れます。
318
319```bash theme={null}
320claude --plugin-dir ./my-plugin.zip
321```
322
323`--plugin-dir` プラグインがインストール済みのマーケットプレイス プラグインと同じ名前を持つ場合、そのセッションではローカル コピーが優先されます。これにより、最初にアンインストールしなくても、既にインストール済みのプラグインへの変更をテストできます。例外は、管理設定によって強制的に有効にされたまたは強制的に無効にされたプラグインです。`--plugin-dir` はそれらをオーバーライドできません。
324
325プラグインに変更を加えると、`/reload-plugins` を実行して、再起動せずに更新を取得します。これにより、プラグイン、Skills、エージェント、hooks、プラグイン MCP サーバー、およびプラグイン LSP サーバーが再読み込みされます。インタラクティブ ターミナルのないセッションでは、プラグイン MCP サーバーの変更は [次のセッションまで待機](/docs/ja/discover-plugins#apply-plugin-changes-without-restarting) します。プラグイン コンポーネントをテストします。
326
327* `/plugin-name:skill-name` で Skills を試す
328* エージェントが `/context` の Custom Agents に表示されるか、またはスコープ付き名で @-mention できるかを確認する
329* `PostToolUse` hook の場合は Claude にファイルを編集するよう求めるなど、各 hook が一致するイベントをトリガーし、その効果を確認する。Claude Code は、一致した hooks、終了コード、および出力を [debug log](/docs/ja/hooks#debug-hooks) に記録します。
330
331<Tip>
332 複数のプラグインを一度に読み込むには、フラグを複数回指定します。
333
334 ```bash theme={null}
335 claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two
336 ```
337
338 プラグインとそれが依存するプラグインをテストするには、[プラグインとその依存関係をローカルでテストする](/docs/ja/plugin-dependencies#test-a-plugin-and-its-dependency-locally) を参照してください。
339</Tip>
340
341フラグを追加できないセッションでプラグインを読み込むには、[`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ja/env-vars#variables) 環境変数にそれらの絶対パスをリストします。Claude Code は各パスを `--plugin-dir` パスとして読み込みます。これらのプラグインは、`--plugin-dir` で渡したものに加えて読み込まれます。[プロジェクトとローカル設定はこの変数を設定できません](/docs/ja/settings-reference#variables-claude-code-ignores-in-env)。`CLAUDE_CODE_PLUGIN_DIRS` には Claude Code v2.1.280 以降が必要です。
342
343`--plugin-dir` でプラグインを試すことで、それが機能することがわかります。Claude が実際にどのくらいの頻度でそれに到達し、正しい結果を得るかを確認するには、[`claude plugin eval`](/docs/ja/plugin-evals) を使用してテスト プロンプトのセットに対して実行します。各プロンプトはプラグインが読み込まれた状態と読み込まれていない状態で複数回実行されるため、プラグインが何を貢献しているかを確認し、プラグインを変更したときまたは新しいモデルがリリースされたときの回帰を検出できます。
344
345複数のプラグインを 1 つの場所から読み込むには、それらを保持するフォルダを渡します(例:`--plugin-dir ./plugins`)。フォルダからプラグインを読み込むには Claude Code v2.1.265 以降が必要です。Claude Code はフォルダのトップ レベルを読み取り、どのプラグインを読み込むかを決定し、インタラクティブ セッションではフォルダの後の変更も監視します。
346
347* **読み込まれるもの**: フォルダにマニフェストまたはプラグイン コンポーネントがトップ レベルにない場合、Claude Code はそれをプラグインのフォルダとして扱います。`.claude-plugin/plugin.json` マニフェストを持つ各直下のサブフォルダは、別のプラグインとして読み込まれます。Claude Code はフォルダ内の他のすべてをスキップします。マニフェストのないプラグインを含め、エラーを報告せずにスキップします。
348* **インタラクティブ セッション中の変更**: 追加したサブフォルダは、マニフェストが配置されると新しいプラグインとして読み込まれ、サブフォルダを削除するとそのプラグインがアンロードされます。Claude Code は各変更についてセッションに行を出力します。変更を会話の途中で適用すると [プロンプト キャッシュが無効になる](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin) 場合、Claude Code はそれを保持し、行は `/reload-plugins` を実行して適用するよう指示します。
349
350既に `.zip` アーカイブとしてパッケージ化され、CI ビルド アーティファクトなどの URL でホストされているプラグインをテストするには、代わりに `--plugin-url` を使用します。Claude Code は起動時にアーカイブをフェッチし、そのセッションのみ読み込みます。Claude Code がアーカイブをフェッチできない場合、またはアーカイブが無効な場合、プラグインなしで起動し、`/plugin` マネージャーの **Errors** タブで確認できるプラグイン読み込みエラーを記録します。同じ [信頼に関する考慮事項](/docs/ja/discover-plugins#security) が、任意のプラグイン ソースに適用されます。このフラグは、制御または信頼するアーカイブのみを指します。
351
352複数のプラグインを読み込むには、各 URL に対してフラグを繰り返します。
353
354```bash theme={null}
355claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip
356```
357
358または、スペース区切りの URL を 1 つの引用符付き引数として渡します。
359
360```bash theme={null}
361claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"
362```
363
364<h3 id="debug-plugin-issues">
365 プラグインの問題をデバッグする
366</h3>
367
368プラグインが期待どおりに機能していない場合:
369
3701. **構造を確認する**: ディレクトリが `.claude-plugin/` 内ではなく、プラグイン ルートにあることを確認します。
3712. **コンポーネントを個別にテストする**: 各 Skill、エージェント、および hook を個別に確認します。
3723. **検証とデバッグ ツールを使用する**: CLI コマンドとトラブルシューティング技術については、[Debugging and development tools](/docs/ja/plugins-reference#debugging-and-development-tools) を参照してください。
373
374<h3 id="share-your-plugins">
375 プラグインを共有する
376</h3>
377
378プラグインを共有する準備ができたら:
379
3801. **ドキュメントを追加する**: インストールと使用方法の説明を含む `README.md` を含めます。
3812. **バージョン管理戦略を選択する**: 明示的な `version` を設定するか、[version management](/docs/ja/plugins-reference#version-management) で説明されているフォールバックに依存するかを決定します。
3823. **マーケットプレイスを作成または使用する**: [plugin marketplaces](/docs/ja/plugin-marketplaces) を通じて配布してインストールします。
3834. **他の人でテストする**: より広い配布の前に、チーム メンバーにプラグインをテストしてもらいます。
384
385プラグインがマーケットプレイスに登録されたら、他のユーザーは [Discover and install plugins](/docs/ja/discover-plugins) の説明を使用してインストールできます。プラグインをチーム内に保つには、[private repository](/docs/ja/plugin-marketplaces#private-repositories) でマーケットプレイスをホストします。
386
387<h3 id="submit-your-plugin-to-the-community-marketplace">
388 プラグインをコミュニティ マーケットプレイスに送信する
389</h3>
390
391Anthropic は Claude Code プラグイン用に 2 つの公開マーケットプレイスを管理しています。
392
393* **`claude-plugins-official`**: Anthropic によって管理されるキュレーションされたプラグイン セット。Claude Code は初めて対話的に Claude Code を起動するときに自動的に登録します。初回の対話的な起動の前に Claude Code を非対話的に実行した場合、または [marketplace policy](/docs/ja/plugin-marketplaces#managed-marketplace-restrictions) が以前の試行をブロックした場合は、`claude plugin marketplace add anthropics/claude-plugins-official` で自分で登録します。
394* **`claude-community`**: レビュー後にサードパーティの送信が行われる公開コミュニティ マーケットプレイス。ユーザーは `/plugin marketplace add anthropics/claude-plugins-community` で追加し、`@claude-community` としてインストールします。
395
396コミュニティ マーケットプレイスのレビューのためにプラグインを送信するには、アプリ内フォームの 1 つを使用します。
397
398* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)
399* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)
400
401claude.ai フォームには Team または Enterprise 組織とディレクトリ管理アクセスが必要です。組織の所有者はデフォルトでこのアクセス権を持っています。Team または Enterprise 組織に属していない個別の作成者は、代わりに Console フォームを使用できます。
402
403送信する前に、`claude plugin validate ./your-plugin` をローカルで実行します。`./your-plugin` をプラグイン ディレクトリへのパスに置き換えます。レビュー パイプラインはすべての送信に対して同じチェックを実行し、自動化されたセーフティ スクリーニングも実行します。検証が成功すると、Claude Code は `✔ Validation passed` を出力するか、警告がある場合は `✔ Validation passed with warnings` を出力します。警告は検証を失敗させません。警告をエラーとして扱うには `--strict` を追加します。
404
405承認されたプラグインは [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) カタログの特定のコミット SHA にピン留めされ、CI はリポジトリに新しいコミットをプッシュするときに自動的にピンをバンプします。公開カタログは毎晩レビュー パイプラインから同期されるため、承認と `marketplace.json` にプラグインが表示されるまでの間に遅延が生じる可能性があります。プラグインがインストール可能かどうかを確認するには、[community catalog](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json) でその名前を検索します。
406
407公式マーケットプレイス `claude-plugins-official` は別途キュレーションされています。Anthropic は、どのプラグインを含めるかを裁量で決定します。申請プロセスはなく、送信フォームは公式マーケットプレイスにプラグインを追加しません。
408
409Anthropic がプラグインを公式マーケットプレイスにリストしている場合、CLI は Claude Code ユーザーにインストールを促すことができます。[CLI からプラグインを推奨する](/docs/ja/plugin-hints) を参照してください。
410
411<h2 id="convert-existing-configurations-to-plugins">
412 既存の設定をプラグインに変換する
413</h2>
414
415`.claude/` ディレクトリにスキルまたはフックが既にある場合は、それらをプラグインに変換して、より簡単に共有および配布できます。
416
417<h3 id="migration-steps">
418 移行手順
419</h3>
420
421<Steps>
422 <Step title="プラグイン構造を作成する">
423 プロジェクトルートに新しいプラグインディレクトリを作成します。既存の `.claude/` フォルダの隣に配置することで、次のステップの相対 `cp` パスが解決されます。
424
425 ```bash theme={null}
426 mkdir -p my-plugin/.claude-plugin
427 ```
428
429 `my-plugin/.claude-plugin/plugin.json` にマニフェストファイルを作成します。
430
431 ```json my-plugin/.claude-plugin/plugin.json theme={null}
432 {
433 "name": "my-plugin",
434 "description": "Migrated from standalone configuration",
435 "version": "1.0.0"
436 }
437 ```
438 </Step>
439
440 <Step title="既存のファイルをコピーする">
441 既存の各設定ディレクトリをプラグインルートにコピーします。3 つすべてがない場合もあります。ディレクトリが存在しない場合、`cp` は `No such file or directory` を出力してコピーしないため、そのコマンドをスキップするか、エラーを無視してください。
442
443 ```bash theme={null}
444 cp -r .claude/commands my-plugin/
445
446 cp -r .claude/agents my-plugin/
447
448 cp -r .claude/skills my-plugin/
449 ```
450
451 プラグインには、`.claude/` の下にあったディレクトリのコピーが含まれるようになりました。`ls my-plugin` を実行して確認します。コピーした各ディレクトリが表示されるはずです。
452 </Step>
453
454 <Step title="フックを移行する">
455 設定にフックがある場合は、フックディレクトリを作成します。
456
457 ```bash theme={null}
458 mkdir my-plugin/hooks
459 ```
460
461 `my-plugin/hooks/hooks.json` をフック設定で作成します。`.claude/settings.json` または `settings.local.json` から `hooks` オブジェクトをコピーします。形式は同じです。コマンドはフック入力を stdin で JSON として受け取るため、`jq` を使用してファイルパスを抽出します。
462
463 ```json my-plugin/hooks/hooks.json theme={null}
464 {
465 "hooks": {
466 "PostToolUse": [
467 {
468 "matcher": "Write|Edit",
469 "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]
470 }
471 ]
472 }
473 }
474 ```
475 </Step>
476
477 <Step title="移行したプラグインをテストする">
478 プラグインを読み込んで、すべてが機能することを確認します。
479
480 ```bash theme={null}
481 claude --plugin-dir ./my-plugin
482 ```
483
484 各コンポーネントをテストします。コマンドを実行し、`/context` にエージェントが表示されることを確認し、フックが一致するイベントをトリガーして、その効果を確認します。Claude Code は、どのフックが一致し、どのように終了したかを [デバッグログ](/docs/ja/hooks#debug-hooks) に記録します。
485 </Step>
486</Steps>
487
488<h3 id="what-changes-when-migrating">
489 移行時の変更点
490</h3>
491
492| スタンドアロン(`.claude/`) | プラグイン |
493| :------------------------- | :----------------------------- |
494| 1 つのプロジェクトでのみ利用可能 | マーケットプレイス経由で共有可能 |
495| `.claude/commands/` 内のファイル | `plugin-name/commands/` 内のファイル |
496| `settings.json` のフック | `hooks/hooks.json` のフック |
497| 共有するには手動でコピーする必要がある | `/plugin install` でインストール |
498
499<Note>
500 移行後、重複を避けるために `.claude/` から元のファイルを削除してください。プロジェクトおよびユーザーの `.claude/agents/` 定義は、同じ名前のプラグインエージェントをオーバーライドするため、元のファイルを削除した後にのみプラグインバージョンが有効になります。プラグインスキルは `/plugin-name:skill-name` として名前空間化されるため、元の `/skill-name` とプラグインコピーの両方が利用可能なままになり、一方が他方をオーバーライドするのではなく両方が共存します。
501</Note>
502
503<h2 id="next-steps">
504 次のステップ
505</h2>
506
507Claude Code のプラグインシステムを理解したので、異なる目標のための推奨パスを以下に示します。
508
509<h3 id="for-plugin-users">
510 プラグインユーザー向け
511</h3>
512
513* [プラグインを検出してインストールする](/docs/ja/discover-plugins):マーケットプレイスを参照してプラグインをインストール
514* [チームマーケットプレイスを設定する](/docs/ja/discover-plugins#configure-team-marketplaces):チーム用のリポジトリレベルプラグインを設定
515
516<h3 id="for-plugin-developers">
517 プラグイン開発者向け
518</h3>
519
520* [evals でプラグインをテストする](/docs/ja/plugin-evals):プラグインが何を変更するかを測定し、CI でゲートする
521* [マーケットプレイスを作成して配布する](/docs/ja/plugin-marketplaces):プラグインをパッケージ化して共有
522* [プラグインリファレンス](/docs/ja/plugins-reference):完全な技術仕様
523* 特定のプラグインコンポーネントをさらに詳しく調べる:
524 * [Skills](/docs/ja/skills):スキル開発の詳細
525 * [Subagents](/docs/ja/sub-agents):エージェント設定と機能
526 * [Hooks](/docs/ja/hooks):イベント処理と自動化
527 * [MCP](/docs/ja/mcp):外部ツール統合