7> Claude Code プラグインシステムの完全な技術リファレンス。スキーマ、CLI コマンド、コンポーネント仕様を含みます。7> Claude Code プラグインシステムの完全な技術リファレンス。スキーマ、CLI コマンド、コンポーネント仕様を含みます。
8 8
9<Tip>9<Tip>
10 プラグインをインストールしたいですか?[プラグインの検出とインストール](/docs/ja/discover-plugins)を参照してください。プラグインの作成については、[プラグイン](/docs/ja/plugins)を参照してください。プラグインの配布については、[プラグインマーケットプレイス](/docs/ja/plugin-marketplaces)を参照してください。10 プラグインをインストールしたいですか?「[プラグインの検出とインストール](/docs/ja/discover-plugins)」を参照してください。プラグインの作成については、「[プラグイン](/docs/ja/plugins)」を参照してください。プラグインの配布については、「[プラグインマーケットプレイス](/docs/ja/plugin-marketplaces)」を参照してください。
11</Tip>11</Tip>
12 12
13このリファレンスは、Claude Code プラグインシステムの完全な技術仕様を提供します。コンポーネントスキーマ、CLI コマンド、開発ツールを含みます。13**プラグイン**は、Claude Code をカスタム機能で拡張する自己完結型のコンポーネントディレクトリです。プラグインコンポーネントには、skills、agents、hooks、MCP servers、LSP servers、および monitors が含まれます。
14
15**プラグイン**は、Claude Code をカスタム機能で拡張する自己完結型のコンポーネントディレクトリです。プラグインコンポーネントには、skills、agents、hooks、MCP servers、LSP servers、monitors が含まれます。
16 14
17<h2 id="plugin-components-reference">15<h2 id="plugin-components-reference">
18 プラグインコンポーネントリファレンス16 プラグインコンポーネントリファレンス
22 Skills20 Skills
23</h3>21</h3>
24 22
25プラグインは Claude Code に skills を追加し、`/name` ショートカットを作成します。これらは、あなたまたは Claude が呼び出すことができます。23プラグインは Claude Code に skills を追加し、`/name` ショートカットを作成します。これらは、ユーザーまたは Claude が呼び出すことができます。
26 24
27**場所**: プラグインルートの `skills/` または `commands/` ディレクトリ、またはプラグインルートの単一の `SKILL.md` ファイル25**場所**: プラグインルートの `skills/` または `commands/` ディレクトリ、またはプラグインルートの単一の `SKILL.md` ファイル
28 26
29**ファイル形式**: Skills はディレクトリで `SKILL.md` を含みます。commands はシンプルなマークダウンファイルです。27**ファイル形式**: Skills はディレクトリで `SKILL.md` を含みます。commands はシンプルな markdown ファイルです
30 28
31**Skill 構造**:29**Skill の構造**:
32 30
33```text theme={null}31```text theme={null}
34skills/32skills/
40 └── SKILL.md38 └── SKILL.md
41```39```
42 40
43**統合動作**:41Skills と commands は、プラグインがインストールされると自動的に検出されます。
44 42
45* Skills と commands はプラグインがインストールされると自動的に検出されます43プラグインに `skills/` ディレクトリがなく、`skills` マニフェストフィールドもない場合、プラグインルートの `SKILL.md` は単一の skill として読み込まれます。frontmatter の `name` フィールドを設定して、skill の呼び出し名を制御します。これがない場合、Claude Code はインストールディレクトリ名にフォールバックします。マーケットプレイスからインストールされたプラグインの場合、これは更新のたびに変わるバージョン文字列です。複数の skill を含むプラグインの場合は、上記の `skills/` ディレクトリレイアウトを使用します。
46* Claude はタスクコンテキストに基づいて自動的にそれらを呼び出すことができます
47* Skills は SKILL.md の横にサポートファイルを含めることができます
48 44
49プラグインに `skills/` ディレクトリがなく、`skills` manifest フィールドがない場合、プラグインルートの `SKILL.md` は単一の skill として読み込まれます。frontmatter の `name` フィールドを設定して、skill の呼び出し名を制御します。これがない場合、Claude Code はインストールディレクトリ名にフォールバックします。マーケットプレイスからインストールされたプラグインの場合、これは更新のたびに変わるバージョン文字列です。複数の skill を配布するプラグインの場合は、上記の `skills/` ディレクトリレイアウトを使用してください。45プラグイン skills と commands では、`disable-model-invocation` などのブール値 frontmatter フィールドが、`true` と `false` に加えて、任意の大文字小文字で `yes`、`no`、`on`、`off`、`1`、`0` を受け入れます。v2.1.218 より前では、Claude Code は `true` と `false` のみを認識していました。
50 46
51詳細については、[Skills](/docs/ja/skills)を参照してください。47詳細については、[Skills](/docs/ja/skills) を参照してください。
52 48
53<h3 id="agents">49<h3 id="agents">
54 Agents50 Agents
55</h3>51</h3>
56 52
57プラグインは、特定のタスク用の特化した subagents を提供できます。Claude は必要に応じて自動的にそれらを呼び出すことができます。53プラグインは、Claude が必要に応じて自動的に呼び出すことができる特定のタスク用の特化したサブエージェントを提供できます。
58 54
59**場所**: プラグインルートの `agents/` ディレクトリ55**場所**: プラグインルートの `agents/` ディレクトリ
60 56
61**ファイル形式**: エージェント機能を説明するマークダウンファイル57**ファイル形式**: エージェント機能を説明する markdown ファイル
62 58
63**Agent 構造**:59**エージェント構造**:
64 60
65```markdown theme={null}61```markdown theme={null}
66---62---
67name: agent-name63name: agent-name
68description: このエージェントが専門とする内容と、Claude がそれを呼び出すべき時期64description: このエージェントが専門とする内容と Claude がそれを呼び出すべき時期
69model: sonnet65model: sonnet
70effort: medium66effort: medium
71maxTurns: 2067maxTurns: 20
72disallowedTools: Write, Edit68disallowedTools: Write, Edit
73---69---
74 70
75エージェントの役割、専門知識、動作を説明する詳細なシステムプロンプト。71エージェントの役割、専門知識、および動作を説明する詳細なシステムプロンプト。
76```72```
77 73
78プラグインエージェントは `name`、`description`、`model`、`effort`、`maxTurns`、`tools`、`disallowedTools`、`skills`、`memory`、`background`、`isolation` frontmatter フィールドをサポートしています。唯一の有効な `isolation` 値は `"worktree"` です。セキュリティ上の理由から、`hooks`、`mcpServers`、`permissionMode` はプラグイン提供のエージェントではサポートされていません。74プラグインエージェントは、`name`、`description`、`model`、`effort`、`maxTurns`、`tools`、`disallowedTools`、`skills`、`memory`、`background`、および `isolation` frontmatter フィールドをサポートしています。唯一の有効な `isolation` 値は `"worktree"` です。セキュリティ上の理由から、`hooks`、`mcpServers`、および `permissionMode` はプラグイン提供エージェントではサポートされていません。
75
76Claude Code は、frontmatter に `name` がない場合またはパースに失敗した場合でも、プラグインエージェントを読み込みます。
77
78* `name` がない場合: Claude Code はファイル名に基づいてエージェントに名前を付けるため、`my-plugin` という名前のプラグイン内の `agents/reviewer.md` は `my-plugin:reviewer` として読み込まれます
79* Frontmatter がパースに失敗した場合: Claude Code はファイル名に基づいてエージェントに名前を付け、説明として `Agent from my-plugin plugin` を使用し、ファイル内のすべてのフィールドを無視します
80
81対照的に、Claude Code は、frontmatter に `name` がない場合またはパースに失敗した場合、プロジェクト、ユーザー、または管理エージェントファイルをスキップします。
82
83プラグインのデフォルト `agents/` ディレクトリ内で frontmatter がパースに失敗したファイルを見つけるには、`claude plugin validate` を実行します。渡すパスは、プラグインがマニフェストを持つかどうかによって異なり、両方の例では `./my-plugin` をプラグインディレクトリとして使用します。
79 84
80**統合ポイント**:85* マニフェスト付きプラグイン: `claude plugin validate ./my-plugin`
86* マニフェストなしプラグイン: `claude plugin validate ./my-plugin/agents`。Claude Code v2.1.233 以降が必要です。
81 87
82* Agents は [@-mention typeahead](/docs/ja/sub-agents#invoke-subagents-explicitly) に、`my-plugin:code-reviewer` などのスコープ付き名の下に表示されます。プラグインが有効になると88エージェントは、プラグインが有効になると、[@-mention typeahead](/docs/ja/sub-agents#invoke-subagents-explicitly) に `my-plugin:code-reviewer` などのスコープ付き名で表示されます。
83* Claude はタスクコンテキストに基づいて自動的にエージェントを呼び出すことができます
84* Agents はユーザーが手動で呼び出すことができます
85* プラグインエージェントは組み込みの Claude エージェントと一緒に動作します
86 89
87詳細については、[Subagents](/docs/ja/sub-agents)を参照してください。90詳細については、[Subagents](/docs/ja/sub-agents) を参照してください。
88 91
89<h3 id="hooks">92<h3 id="hooks">
90 Hooks93 Hooks
91</h3>94</h3>
92 95
93プラグインは Claude Code イベントに自動的に応答するイベントハンドラーを提供できます。96プラグインは、Claude Code イベントに自動的に応答するイベントハンドラーを提供できます。
94 97
95**場所**: プラグインルートの `hooks/hooks.json`、または plugin.json 内のインライン98**場所**: プラグインルートの `hooks/hooks.json`、または plugin.json 内のインライン
96 99
116}119}
117```120```
118 121
119プラグイン hooks は[ユーザー定義 hooks](/docs/ja/hooks)と同じライフサイクルイベントに応答します:122プラグイン hooks は、[ユーザー定義 hooks](/docs/ja/hooks) と同じライフサイクルイベントに応答します。
120 123
121| Event | When it fires |124| Event | When it fires |
122| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |125| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
158 161
159* `command`: シェルコマンドまたはスクリプトを実行162* `command`: シェルコマンドまたはスクリプトを実行
160* `http`: イベント JSON を URL への POST リクエストとして送信163* `http`: イベント JSON を URL への POST リクエストとして送信
161* `mcp_tool`: 設定された[MCP server](/docs/ja/mcp)上のツールを呼び出す164* `mcp_tool`: 設定された [MCP サーバー](/docs/ja/mcp) 上のツールを呼び出す
162* `prompt`: LLM でプロンプトを評価(コンテキストの `$ARGUMENTS` プレースホルダーを使用)165* `prompt`: LLM でプロンプトを評価(コンテキスト用に `$ARGUMENTS` プレースホルダーを使用)
163* `agent`: 複雑な検証タスク用のツール付き agentic verifier を実行166* `agent`: 複雑な検証タスク用にツール付きの agentic verifier を実行
164 167
165プラグイン自体の[バンドルされた MCP server](#mcp-servers)をターゲットとする Hooks は、スコープ付き名を使用する必要があります。ツールマッチャーと `if` フィールドはスコープ付きツール名 `mcp__plugin_<plugin-name>_<server-name>__<tool>` を取り、`mcp_tool` hook の `server` フィールドは `plugin:<plugin-name>:<server-name>` を取ります。ベアサーバーキーに対して記述されたマッチャーは発火しません。[MCP ツールをマッチ](/docs/ja/hooks#match-mcp-tools)および[プラグイン提供 MCP servers](/docs/ja/mcp#plugin-provided-mcp-servers)を参照してください。168プラグイン自身の [バンドルされた MCP サーバー](#mcp-servers) をターゲットとする hooks は、スコープ付き名を使用する必要があります。ツールマッチャーと `if` フィールドはスコープ付きツール名 `mcp__plugin_<plugin-name>_<server-name>__<tool>` を取り、`mcp_tool` hook の `server` フィールドは `plugin:<plugin-name>:<server-name>` を取ります。ベアサーバーキーに対して記述されたマッチャーは発火しません。[MCP ツールをマッチ](/docs/ja/hooks#match-mcp-tools) および [プラグイン提供 MCP サーバー](/docs/ja/mcp#plugin-provided-mcp-servers) を参照してください。
166 169
167<h3 id="mcp-servers">170<h3 id="mcp-servers">
168 MCP servers171 MCP servers
169</h3>172</h3>
170 173
171プラグインは Model Context Protocol(MCP)servers をバンドルして、Claude Code を外部ツールおよびサービスに接続できます。174プラグインは Model Context Protocol(MCP)サーバーをバンドルして、Claude Code を外部ツールおよびサービスに接続できます。
172 175
173**場所**: プラグインルートの `.mcp.json`、または plugin.json 内のインライン176**場所**: プラグインルートの `.mcp.json`、または plugin.json 内のインライン
174 177
196 199
197**統合動作**:200**統合動作**:
198 201
199* プラグイン MCP servers はプラグインが有効になると自動的に開始されます202* プラグイン MCP サーバーはプラグインが有効になると自動的に起動します
200* Servers は Claude のツールキットに標準 MCP ツールとして表示されます203* サーバーは Claude のツールキット内の標準 MCP ツールとして表示されます
201* サーバー機能は Claude の既存ツールとシームレスに統合されます204* プラグインサーバーはユーザー MCP サーバーとは独立して設定できます
202* プラグインサーバーはユーザー MCP servers とは独立して設定できます205* セッション中に [`/reload-plugins`](/docs/ja/discover-plugins#apply-plugin-changes-without-restarting) を実行する場合、Claude Code は設定が変わらないサーバーのライブ接続を保持します
203 206
204<h3 id="lsp-servers">207<h3 id="lsp-servers">
205 LSP servers208 LSP servers
209 LSP プラグインを使用したいですか?公式マーケットプレイスからインストールしてください。`/plugin` Discover タブで「lsp」を検索してください。このセクションでは、公式マーケットプレイスでカバーされていない言語用の LSP プラグインを作成する方法を説明しています。212 LSP プラグインを使用したいですか?公式マーケットプレイスからインストールしてください。`/plugin` Discover タブで「lsp」を検索してください。このセクションでは、公式マーケットプレイスでカバーされていない言語用の LSP プラグインを作成する方法を説明しています。
210</Tip>213</Tip>
211 214
212プラグインは [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)(LSP)servers を提供して、Claude がコードベースで作業する際にリアルタイムコード インテリジェンスを得ることができます。215プラグインは [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)(LSP)サーバーを提供して、コードベースで作業する際に Claude に [リアルタイムコード インテリジェンス](/docs/ja/discover-plugins#code-intelligence) を提供できます。
213
214LSP 統合は以下を提供します:
215
216* **即座の診断**: Claude は各編集後すぐにエラーと警告を確認できます
217* **コードナビゲーション**: 定義へのジャンプ、参照の検索、ホバー情報
218* **言語認識**: コードシンボルの型情報とドキュメント
219 216
220**場所**: プラグインルートの `.lsp.json`、または `plugin.json` 内のインライン217**場所**: プラグインルートの `.lsp.json`、または `plugin.json` 内のインライン
221 218
257| フィールド | 説明 |254| フィールド | 説明 |
258| :-------------------- | :--------------------------------- |255| :-------------------- | :--------------------------------- |
259| `command` | 実行する LSP バイナリ(PATH に含まれている必要があります) |256| `command` | 実行する LSP バイナリ(PATH に含まれている必要があります) |
260| `extensionToLanguage` | ファイル拡張子を言語識別子にマップ |257| `extensionToLanguage` | ファイル拡張子を言語識別子にマップします |
261 258
262**オプションフィールド:**259**オプションフィールド:**
263 260
264| フィールド | 説明 |261| フィールド | 説明 |
265| :---------------------- | :--------------------------------------------------------------------------------------------- |262| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------ |
266| `args` | LSP サーバーのコマンドライン引数 |263| `args` | LSP サーバーのコマンドライン引数 |
267| `transport` | 通信トランスポート: `stdio`(デフォルト)または `socket` |264| `transport` | 通信トランスポート: `stdio`(デフォルト)または `socket`。Claude Code は `socket` を受け入れますが、すべてのサーバーを stdio 経由で実行するため、stdout プロトコルルールがすべてのサーバーに適用されます |
268| `env` | サーバー起動時に設定する環境変数 |265| `env` | サーバー起動時に設定する環境変数 |
269| `initializationOptions` | 初期化中にサーバーに渡されるオプション |266| `initializationOptions` | 初期化中にサーバーに渡されるオプション |
270| `settings` | `workspace/didChangeConfiguration` 経由で渡される設定 |267| `settings` | `workspace/didChangeConfiguration` 経由で渡される設定 |
271| `workspaceFolder` | サーバーのワークスペースフォルダーパス |268| `workspaceFolder` | サーバーのワークスペースフォルダーパス |
272| `startupTimeout` | サーバー起動を待つ最大時間(ミリ秒) |269| `startupTimeout` | サーバー起動を待つ最大時間(ミリ秒) |
273| `shutdownTimeout` | グレースフルシャットダウンを待つ最大時間(ミリ秒)。タイムアウトが経過すると、Claude Code はサーバープロセスを終了します。設定されていない場合、タイムアウトは適用されません |270| `shutdownTimeout` | グレースフルシャットダウンを待つ最大時間(ミリ秒)。タイムアウトが経過すると、Claude Code はサーバープロセスを終了します。設定されていない場合、タイムアウトは適用されません |
274| `restartOnCrash` | クラッシュ後にサーバーを再起動するかどうか。デフォルトは `true` です。クラッシュしたサーバーを再起動する代わりに停止したままにするには `false` に設定します |271| `restartOnCrash` | クラッシュ後にサーバーを再起動するかどうか。デフォルトは `true`。クラッシュしたサーバーを再起動する代わりに停止したままにするには `false` に設定します |
275| `maxRestarts` | 諦める前の最大再起動試行回数 |272| `maxRestarts` | 諦める前の最大再起動試行回数 |
276| `diagnostics` | 編集後に診断を Claude のコンテキストにプッシュするかどうか(デフォルト `true`)。コードナビゲーションは保持しながら自動診断注入を抑制するには `false` に設定します。 |273| `diagnostics` | 編集後に診断を Claude のコンテキストにプッシュするかどうか(デフォルト `true`)。コード ナビゲーションは保持しながら自動診断注入を抑制するには `false` に設定します |
274
275`restartOnCrash` と `shutdownTimeout` には Claude Code v2.1.205 以降が必要です。v2.1.205 より前では、設定スキーマは両方のオプションを受け入れていましたが、どちらかを設定すると Claude Code はその LSP サーバーを起動時に完全にスキップしていました。理由は `claude --debug` 出力でのみ表示されます。
277 276
278`restartOnCrash` と `shutdownTimeout` には Claude Code v2.1.205 以降が必要です。v2.1.205 より前では、設定スキーマは両方のオプションを受け入れていましたが、どちらかを設定すると Claude Code は起動時にその LSP サーバーをスキップしていました。理由は `claude --debug` 出力でのみ表示されます。277**同じ拡張子の複数サーバー**: 複数の有効な LSP サーバーが `extensionToLanguage` で同じファイル拡張子を宣言する場合、サーバーが 1 つのプラグインから来ているか異なるプラグインから来ているかに関わらず、最初に登録されたサーバーがその拡張子のファイルを処理し、他のサーバーは起動しません。`/plugin` インターフェイスは、アクティブなサーバーを持つプラグインに名前を付ける警告を表示します。
279 278
280**同じ拡張子に対する複数のサーバー**: 複数の有効な LSP サーバーが `extensionToLanguage` で同じファイル拡張子を宣言する場合、サーバーが 1 つのプラグインから来ているか異なるプラグインから来ているかに関わらず、最初に登録されたサーバーがその拡張子を持つファイルを処理し、他のサーバーは起動しません。`/plugin` インターフェイスは、アクティブなサーバーを持つプラグインに名前を付ける警告を表示します。279**初期化に失敗したサーバー**: Claude Code は、`command` または `extensionToLanguage` が見つからないなど、設定が無効なサーバーをスキップし、他の設定されたサーバーは起動します。`claude --debug` を実行して、サーバーがスキップされた理由を確認します。
281 280
282**初期化に失敗するサーバー**: Claude Code は、`command` または `extensionToLanguage` が欠落しているなど、設定が無効なサーバーをスキップし、他の設定されたサーバーは引き続き起動します。`claude --debug` を実行して、サーバーがスキップされた理由を確認してください。281スキップされたサーバーはそのファイル拡張子を要求しないため、同じ拡張子を宣言する別の有効なサーバー(同じプラグインまたは異なるプラグインから)がそれらのファイルを処理します。
283 282
284スキップされたサーバーはそのファイル拡張子を要求しないため、同じ拡張子を宣言する別の有効なサーバーが、同じプラグインまたは異なるプラグインから来ていても、引き続きそれらのファイルを処理します。v2.1.205 より前では、初期化に失敗したサーバーは引き続きその拡張子を要求し、同じ拡張子に対する別の有効なサーバーをブロックしていました。283**ログ出力を stdout ではなく stderr に送信**: Claude Code はサーバーの stdout をプロトコルメッセージとしてのみ読み取り、メッセージヘッダーは最大 64 KiB、メッセージボディは最大 32 MiB を受け入れます。Claude Code は、どちらかの制限を超えるか、非プロトコル出力を stdout に書き込むサーバーを切断し、その切断を `restartOnCrash` と `maxRestarts` のクラッシュとしてカウントします。`--debug` で実行する場合、Claude Code は原因に名前を付けるエラーをデバッグログに書き込みます。
285 284
286<Warning>285<Warning>
287 **言語サーバーバイナリを別途インストールする必要があります。** LSP プラグインは Claude Code が言語サーバーに接続する方法を設定しますが、サーバー自体は含まれていません。`/plugin` Errors タブに `Executable not found in $PATH` が表示される場合は、言語に必要なバイナリをインストールしてください。286 **言語サーバーバイナリを別途インストールする必要があります。** LSP プラグインは Claude Code が言語サーバーに接続する方法を設定しますが、サーバー自体は含まれていません。`/plugin` Errors タブに `Executable not found in $PATH` が表示される場合は、言語に必要なバイナリをインストールしてください。
290**利用可能な LSP プラグイン:**289**利用可能な LSP プラグイン:**
291 290
292| プラグイン | 言語サーバー | インストールコマンド |291| プラグイン | 言語サーバー | インストールコマンド |
293| :------------------ | :------------------------- | :---------------------------------------------------------------------------------- |292| :------------------ | :------------------------- | :--------------------------------------------------------------------------------- |
294| `pyright-lsp` | Pyright(Python) | `pip install pyright` または `npm install -g pyright` |293| `pyright-lsp` | Pyright(Python) | `pip install pyright` または `npm install -g pyright` |
295| `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |294| `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |
296| `rust-analyzer-lsp` | rust-analyzer | [rust-analyzer インストールを参照](https://rust-analyzer.github.io/manual.html#installation) |295| `rust-analyzer-lsp` | rust-analyzer | [rust-analyzer インストール参照](https://rust-analyzer.github.io/manual.html#installation) |
297 296
298言語サーバーをまずインストールしてから、マーケットプレイスからプラグインをインストールしてください。297言語サーバーをインストールしてから、マーケットプレイスからプラグインをインストールします。
299 298
300<h3 id="monitors">299<h3 id="monitors">
301 Monitors300 Monitors
302</h3>301</h3>
303 302
304プラグインは、プラグインがアクティブな場合に Claude Code が自動的に開始するバックグラウンド monitors を宣言できます。各 monitor はセッションの期間中シェルコマンドを実行し、すべての stdout 行を Claude に通知として配信するため、Claude は自分自身に開始するよう求められることなく、ログエントリ、ステータス変更、またはポーリングされたイベントに反応できます。303プラグインは、プラグインがアクティブな場合に Claude Code が自動的に起動するバックグラウンドモニターを宣言できます。各モニターはセッションの期間中シェルコマンドを実行し、すべての stdout 行を Claude に通知として配信するため、Claude は自分自身でウォッチを開始するよう求められることなく、ログエントリ、ステータス変更、またはポーリングイベントに反応できます。
305 304
306プラグイン monitors は[Monitor tool](/docs/ja/tools-reference#monitor-tool)と同じメカニズムを使用し、その可用性制約を共有します。これらはインタラクティブ CLI セッションでのみ実行され、[hooks](#hooks)と同じ信頼レベルでサンドボックス化されずに実行され、Monitor tool が利用できないホストではスキップされます。305プラグインモニターは [Monitor ツール](/docs/ja/tools-reference#monitor-tool) と同じメカニズムを使用し、その可用性制約を共有します。これらはインタラクティブ CLI セッションでのみ実行され、[hooks](#hooks) と同じ信頼レベルでサンドボックス化されずに実行され、Monitor ツールが利用できないホストではスキップされます。
307 306
308**場所**: プラグインルートの `monitors/monitors.json`、または plugin.json 内のインライン307**場所**: プラグインルートの `monitors/monitors.json`、または plugin.json 内のインライン
309 308
310**形式**: monitor エントリの JSON 配列309**形式**: モニターエントリの JSON 配列
311 310
312次の `monitors/monitors.json` はデプロイメントステータスエンドポイントとローカルエラーログを監視します:311次の `monitors/monitors.json` はデプロイメントステータスエンドポイントとローカルエラーログを監視します。
313 312
314```json theme={null}313```json theme={null}
315[314[
327]326]
328```327```
329 328
330monitors をインラインで宣言するには、`plugin.json` の `experimental.monitors` を同じ配列に設定します。デフォルト以外のパスから読み込むには、`experimental.monitors` を `"./config/monitors.json"` などの相対パス文字列に設定します。Monitors は[実験的コンポーネント](#experimental-components)です。329モニターをインラインで宣言するには、`plugin.json` の `experimental.monitors` を同じ配列に設定します。デフォルト以外のパスから読み込むには、`experimental.monitors` を `"./config/monitors.json"` などの相対パス文字列に設定します。モニターは [実験的コンポーネント](#experimental-components) です。
331 330
332**必須フィールド:**331**必須フィールド:**
333 332
335| :------------ | :---------------------------------------------------------- |334| :------------ | :---------------------------------------------------------- |
336| `name` | プラグイン内で一意の識別子。プラグインが再読み込みされるか skill が再度呼び出されるときに重複プロセスを防ぎます |335| `name` | プラグイン内で一意の識別子。プラグインが再読み込みされるか skill が再度呼び出されるときに重複プロセスを防ぎます |
337| `command` | セッション作業ディレクトリで永続的なバックグラウンドプロセスとして実行されるシェルコマンド |336| `command` | セッション作業ディレクトリで永続的なバックグラウンドプロセスとして実行されるシェルコマンド |
338| `description` | 監視対象の簡潔な概要。タスクパネルと通知サマリーに表示されます |337| `description` | 監視対象の簡潔な説明。タスクパネルと通知サマリーに表示されます |
339 338
340**オプションフィールド:**339**オプションフィールド:**
341 340
342| フィールド | 説明 |341| フィールド | 説明 |
343| :----- | :---------------------------------------------------------------------------------------------------------------------------------------------- |342| :----- | :-------------------------------------------------------------------------------------------------------------------------------------------- |
344| `when` | monitor がいつ開始するかを制御します。`"always"` はセッション開始時とプラグイン再読み込み時に開始し、デフォルトです。`"on-skill-invoke:<skill-name>"` はこのプラグイン内の名前付き skill が最初にディスパッチされるときに開始します |343| `when` | モニターが開始するタイミングを制御します。`"always"` はセッション開始時とプラグイン再読み込み時に開始し、デフォルトです。`"on-skill-invoke:<skill-name>"` はこのプラグイン内の名前付き skill が最初にディスパッチされるときに開始します |
345 344
346`command` 値は[パス置換](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`、`${CLAUDE_PLUGIN_DATA}`、`${CLAUDE_PROJECT_DIR}`、および環境からの任意の `${ENV_VAR}` をサポートします。スクリプトがプラグイン自体のディレクトリから実行される必要がある場合は、コマンドの前に `cd "${CLAUDE_PLUGIN_ROOT}" && ` を付けます。345`command` 値は [パス置換](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`、`${CLAUDE_PLUGIN_DATA}`、および `${CLAUDE_PROJECT_DIR}` をサポートしており、環境からの任意の `${ENV_VAR}` もサポートしています。スクリプトがプラグイン自身のディレクトリから実行される必要がある場合は、コマンドの前に `cd "${CLAUDE_PLUGIN_ROOT}" && ` を付けます。
347 346
348monitor `command` は[`${user_config.*}`](#user-configuration)値を参照することはできません。コマンドはシェルを通じて実行されるため、Claude Code は値を置換する代わりに[エラー](/docs/ja/errors#plugin-command-references-user-config)でプラグインを拒否します。Monitor プロセスは `CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数を受け取らないため、monitor スクリプトが所有する設定ファイルから値を読み取るようにしてください。v2.1.207 より前では、monitor コマンドは `${user_config.*}` 値を置換していました。347モニター `command` は [`${user_config.*}`](#user-configuration) 値を参照できません。コマンドはシェルを通じて実行されるため、Claude Code は値を置換する代わりに [エラー](/docs/ja/errors#plugin-command-references-user-config) でモニターを拒否します。モニタープロセスは `CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数を受け取らないため、モニタースクリプトが所有する設定ファイルから値を読み取ります。
349 348
350セッション中にプラグインを無効にしても、既に実行中の monitors は停止しません。セッションが終了するときに停止します。349セッション中にプラグインを無効にする場合、Claude Code は既に実行中のモニターを停止しません。セッションが終了するときに停止します。
351 350
352<h3 id="themes">351<h3 id="themes">
353 Themes352 Themes
354</h3>353</h3>
355 354
356プラグインは、`/theme` に組み込みプリセットおよびユーザーのローカルテーマと一緒に表示される色テーマを配布できます。テーマは `themes/` 内の JSON ファイルで、`base` プリセットと色トークンのスパース `overrides` マップを持ちます。Themes は[実験的コンポーネント](#experimental-components)です。355プラグインは、`/theme` に組み込みプリセットおよびユーザーのローカルテーマと一緒に表示されるカラーテーマを配布できます。テーマは `themes/` 内の JSON ファイルで、`base` プリセットとカラートークンのスパース `overrides` マップを持ちます。テーマは [実験的コンポーネント](#experimental-components) です。
357 356
358```json theme={null}357```json theme={null}
359{358{
367}366}
368```367```
369 368
370プラグインテーマを選択すると、`custom:<plugin-name>:<slug>` がユーザーの設定に保持されます。プラグインテーマは読み取り専用です。`/theme` で `Ctrl+E` を押すと、それが `~/.claude/themes/` にコピーされるため、ユーザーはコピーを編集できます。369ユーザーがプラグインテーマを選択すると、Claude Code は `custom:<plugin-name>:<slug>` をその設定に保存します。プラグインテーマは読み取り専用です。ユーザーが `/theme` でそれに対して `Ctrl+E` を押すと、Claude Code はそれを `~/.claude/themes/` にコピーして、編集できるようにします。
371 370
372***371***
373 372
374<h2 id="plugin-installation-scopes">373<h2 id="plugin-installation-scopes">
375 プラグインインストールスコープ374 プラグインのインストールスコープ
376</h2>375</h2>
377 376
378プラグインをインストールするときは、プラグインが利用可能な場所と他のユーザーが使用できるかどうかを決定する**スコープ**を選択します。377プラグインをインストールする際に、プラグインが利用可能な場所と他のユーザーが使用できるかどうかを決定する**スコープ**を選択します。
379 378
380| スコープ | 設定ファイル | ユースケース |379| スコープ | 設定ファイル | ユースケース |
381| :-------- | :---------------------------------- | :------------------------------- |380| :-------- | :--------------------------------------- | :-------------------------------------------------- |
382| `user` | `~/.claude/settings.json` | すべてのプロジェクト全体で利用可能な個人プラグイン(デフォルト) |381| `user` | `~/.claude/settings.json` | すべてのプロジェクト全体で利用可能な個人用プラグイン(デフォルト) |
383| `project` | `.claude/settings.json` | バージョン管理経由で共有されるチームプラグイン |382| `project` | `.claude/settings.json` | バージョン管理を通じて共有されるチームプラグイン |
384| `local` | `.claude/settings.local.json` | プロジェクト固有のプラグイン、gitignored |383| `local` | `.claude/settings.local.json` | プロジェクト固有のプラグイン。Claude Code が設定を保存する際に gitignore される |
385| `managed` | [管理設定](/docs/ja/settings#settings-files) | 管理プラグイン(読み取り専用、更新のみ) |384| `managed` | [Managed settings](/docs/ja/managed-settings) | 管理されたプラグイン(読み取り専用、更新のみ) |
386 385
387プラグインは他の Claude Code 設定と同じスコープシステムを使用します。インストール手順とスコープフラグについては、[プラグインのインストール](/docs/ja/discover-plugins#install-plugins)を参照してください。スコープの完全な説明については、[設定スコープ](/docs/ja/settings#configuration-scopes)を参照してください。386プラグインは、他の Claude Code 設定と同じスコープシステムを使用します。インストール手順とスコープフラグについては、[プラグインのインストール](/docs/ja/discover-plugins#install-plugins)を参照してください。スコープの完全な説明については、[設定スコープ](/docs/ja/settings#where-settings-live)を参照してください。
388 387
389***388***
390 389
391<h2 id="skills-directory-plugins">390<h2 id="skills-directory-plugins">
392 Skills ディレクトリプラグイン391 スキルディレクトリプラグイン
393</h2>392</h2>
394 393
395`.claude-plugin/plugin.json` マニフェストを含む skills ディレクトリの下のフォルダは、次のセッションで `<name>@skills-dir` という名前のプラグインとして読み込まれます。マーケットプレイスもインストール手順もありません。[`plugin init`](#plugin-init)でスキャフォルドしてください。マーケットプレイスインストールとは異なり、プラグインはプラグインキャッシュにコピーされるのではなく、所定の場所で検出されます。394スキルディレクトリの下にあるフォルダで `.claude-plugin/plugin.json` マニフェストを含むフォルダは、次のセッションで `<name>@skills-dir` という名前のプラグインとして読み込まれます。マーケットプレイスもインストール手順もありません。[`plugin init`](#plugin-init) でスキャフォルドできます。コピーされたマーケットプレイスインストールとは異なり、プラグインはプラグインキャッシュにコピーされるのではなく、その場で検出されます。
396 395
397skills ディレクトリツリーは 3 つの異なるものをサポートします:396スキルディレクトリツリーは 3 つの異なるものをサポートしています。
398 397
399| 何を持っているか | それは何か |398| 内容 | 説明 |
400| :-------------------------------------------- | :--------------------------------------------------------- |399| :-------------------------------------------- | :----------------------------------------------------- |
401| `<skills-dir>/foo/SKILL.md` マニフェストなし | `foo` という名前の単純な[skill](/docs/ja/skills) |400| マニフェストなしの `<skills-dir>/foo/SKILL.md` | `foo` という名前の通常の [スキル](/docs/ja/skills) |
402| `<skills-dir>/foo/.claude-plugin/plugin.json` | プラグイン `foo@skills-dir`。独自の skills、agents、hooks などをバンドルできます |401| `<skills-dir>/foo/.claude-plugin/plugin.json` | プラグイン `foo@skills-dir`。独自のスキル、エージェント、hooks などをバンドルできます |
403| `<plugin>/skills/bar/SKILL.md` | プラグイン内にパッケージされた skill `bar` |402| `<plugin>/skills/bar/SKILL.md` | プラグイン内にパッケージされたスキル `bar` |
404 403
405<h3 id="choose-where-the-plugin-loads-from">404<h3 id="choose-where-the-plugin-loads-from">
406 プラグインが読み込まれる場所を選択405 プラグインの読み込み元を選択する
407</h3>406</h3>
408 407
409| Skills ディレクトリ | スコープ | 読み込み |408| スキルディレクトリ | スコープ | 読み込み |
410| :---------------------- | :------- | :--------------------------------------------- |409| :---------------------- | :----- | :-------------------------------------------------------------------------------------- |
411| `~/.claude/skills/` | personal | すべてのプロジェクトで。場所があなただけのものだから |410| `~/.claude/skills/` | 個人 | すべてのプロジェクトで読み込まれます。この場所はあなた自身のものだからです |
412| `<cwd>/.claude/skills/` | project | そのフォルダのワークスペース[信頼ダイアログ](/docs/ja/settings)を受け入れた後のみ |411| `<cwd>/.claude/skills/` | プロジェクト | そのフォルダのワークスペース [信頼ダイアログ](/docs/ja/permissions#what-runs-before-you-trust-a-folder) を受け入れた後のみ |
413 412
414プロジェクトスコープ プラグインはリポジトリにチェックインされ、クローンしたすべての共同作業者に到達します。そのコンテンツはあなたではなくリポジトリから来るため、`.claude/settings.json` を管理するのと同じ信頼ゲートの後にのみ読み込まれます。コードを実行するコンポーネントはさらに制限されます:413プロジェクトスコープのプラグインはリポジトリにチェックインされ、それをクローンしたすべての協力者に到達します。そのコンテンツはあなたではなくリポジトリから来ているため、`.claude/settings.json` のプロジェクト許可ルールを管理するのと同じ信頼ゲートの後にのみ読み込まれます。親フォルダを信頼したり `-p` で実行したりするだけでは不十分で、コードを実行するコンポーネントはさらに制限されます。
415 414
416* 宣言する MCP servers は、プロジェクト `.mcp.json` と同じ[サーバーごとの承認](/docs/ja/mcp)を通過します415* 宣言する MCP サーバーはプロジェクト `.mcp.json` と同じ [サーバーごとの承認](/docs/ja/mcp) を通過します
417* LSP servers はワークスペースを信頼した後にのみ開始します416* LSP サーバーはワークスペースを信頼した後にのみ開始します
418* [バックグラウンド monitors](#monitors)は読み込まれません417* [バックグラウンドモニター](#monitors) は読み込まれません
419 418
420個人スコープ プラグインにはこれらの制限はありません。419個人スコープのプラグインにはこれらの制限はありません。
421 420
422<Warning>421<Warning>
423 プロジェクトスコープ `@skills-dir` プラグインは、Claude Code を開始したディレクトリの `.claude/skills/` からのみ読み込まれます。plain skills と commands が行うように[リポジトリルートまでウォークアップ](/docs/ja/skills#automatic-discovery-from-parent-and-nested-directories)しません。そのため、サブディレクトリから起動するとリポジトリルートに存在するプラグインが見つかりません。リポジトリルートから起動するか、ディレクトリを変更した後に `/reload-plugins` を実行してください。422 プロジェクトスコープの `@skills-dir` プラグインはセッションの [プライマリワーキングディレクトリ](/docs/ja/permissions#working-directories) の `.claude/skills/` からのみ読み込まれます。通常のスキルとコマンドのように [リポジトリルートまで遡りません](/docs/ja/skills#discovery-from-parent-and-nested-directories)。そのため、サブディレクトリから起動するとリポジトリルートにあるプラグインが見つかりません。リポジトリルートから起動するか、[v2.1.246 以降で `/cd` でセッションをそこに移動](/docs/ja/permissions#move-the-session-to-another-directory) してください。
424</Warning>423</Warning>
425 424
426<h3 id="edit-reload-and-disable-a-skills-directory-plugin">425<h3 id="edit-reload-and-disable-a-skills-directory-plugin">
427 Skills ディレクトリプラグインを編集、再読み込み、無効化426 スキルディレクトリプラグインを編集、リロード、無効化する
428</h3>427</h3>
429 428
430skill の `SKILL.md` に加えた変更は現在のセッションで即座に有効になります。プラグインの他のコンポーネント(`hooks/`、`.mcp.json`、`agents/`、`output-styles/` など)への変更は有効になりません。`/reload-plugins` を実行するか Claude Code を再起動してそれらを取得してください。[ライブ変更検出](/docs/ja/skills#live-change-detection)を参照してください。429スキルの `SKILL.md` に加えた変更は現在のセッションで即座に有効になります。プラグインの他のコンポーネント(`hooks/`、`.mcp.json`、`agents/`、`output-styles/` など)への変更は有効になりません。`/reload-plugins` を実行するか Claude Code を再起動してそれらを反映させてください。[ライブ変更検出](/docs/ja/skills#live-change-detection) を参照してください。
431 430
432skills ディレクトリプラグインの読み込みを停止するには、そのフォルダを削除するか、名前で無効にしてください。マーケットプレイスから何もインストールされなかったため、`uninstall` ステップはありません。431スキルディレクトリプラグインの読み込みを停止するには、そのフォルダを削除するか、名前で無効化します。マーケットプレイスからインストールされていないため、`uninstall` ステップはありません。
433 432
434```bash theme={null}433```bash theme={null}
435claude plugin disable my-tool@skills-dir434claude plugin disable my-tool@skills-dir
437 436
438***437***
439 438
439<h2 id="synced-plugins">
440 claude.ai から同期されたプラグイン
441</h2>
442
443[Cowork](https://claude.com/product/cowork) と[クラウドセッション](/docs/ja/cloud-environments#what-carries-over-from-your-setup)では、Claude Code はカスタマーの claude.ai アカウント用に有効化されたプラグインをセッション独自の環境内の `~/.claude/plugins/synced/` にダウンロードし、各プラグインを `<name>@synced` として読み込みます。マーケットプレイスはなく、インストール記録もありません。Claude Code はカスタマーが独自のターミナルで開始したセッションではこれらのプラグインを読み込みません。その Cowork またはクラウド環境内では、`claude plugin list` はダウンロードされたコピーを `Synced from claude.ai` という見出しの下に表示します。v2.1.239 より前では、Claude Code はこれらのプラグインを `<name>@inline` として読み込んでいました。これは `--plugin-dir` プラグインが使用する ID です。
444
445同期されたプラグインを `claude plugin list` が出力する `<name>@synced` ID で管理します。
446
447* **プラグインをオフにする**: 同期されたセッション内で `claude plugin disable <name>@synced` を実行するか、Claude に実行するよう依頼します。Claude Code はこの選択を、その環境のユーザーレベルの [`enabledPlugins`](/docs/ja/settings-reference#enabledplugins) に `"<name>@synced": false` として保存します。プラグインを再度オンにするには、同じセッション内で `claude plugin enable <name>@synced` を実行します。すべての同期されたセッションからプラグインを除外するには、[claude.ai アカウント用にプラグインをオフにします](/docs/ja/desktop#extend-claude-code)。1 つのプロジェクトのすべての環境での同期されたセッションからプラグインを除外するには、そのプロジェクトのコミットされた `.claude/settings.json` の `enabledPlugins` の下に `"<name>@synced": false` を設定します。
448* **claude.ai でプラグイン自体を管理する**: `claude plugin install`、`update`、`uninstall` は同期されたプラグインには適用されません。プラグインを削除するには、claude.ai アカウント用にプラグインをオフにします。次の同期されたセッションはそれなしで開始されます。
449
450マーケットプレイスインストール、[スキルディレクトリプラグイン](#skills-directory-plugins)、または `--plugin-dir` プラグインなど、他のソースからの有効化されたプラグインが同期されたプラグインの名前と一致する場合、Claude Code はそのプラグインを読み込み、同期されたコピーが読み込まれていないと報告します。claude.ai のコピーを代わりに使用するには、独自のコピーを無効化します。v2.1.239 より前では、Claude Code は同じ名前のマーケットプレイスインストールの代わりに同期されたコピーを読み込んでいました。
451
452***
453
440<h2 id="plugin-manifest-schema">454<h2 id="plugin-manifest-schema">
441 プラグインマニフェストスキーマ455 プラグインマニフェストスキーマ
442</h2>456</h2>
443 457
444`.claude-plugin/plugin.json` ファイルはプラグインのメタデータと設定を定義します。このセクションでは、サポートされているすべてのフィールドとオプションを説明しています。458`.claude-plugin/plugin.json` ファイルは、プラグインのメタデータと設定を定義します。
445 459
446マニフェストはオプションです。省略された場合、Claude Code は[デフォルト場所](#file-locations-reference)のコンポーネントを自動検出し、ディレクトリ名からプラグイン名を導出します。メタデータを提供するか、カスタムコンポーネントパスが必要な場合はマニフェストを使用してください。460マニフェストはオプションです。省略した場合、Claude Code は[デフォルトの場所](#file-locations-reference)のコンポーネントを自動検出し、ディレクトリ名からプラグイン名を導出します。メタデータまたはカスタムコンポーネントパスを提供する必要がある場合は、マニフェストを使用してください。
447 461
448<h3 id="complete-schema">462<h3 id="complete-schema">
449 完全なスキーマ463 完全なスキーマ
464 "repository": "https://github.com/author/plugin",478 "repository": "https://github.com/author/plugin",
465 "license": "MIT",479 "license": "MIT",
466 "keywords": ["keyword1", "keyword2"],480 "keywords": ["keyword1", "keyword2"],
481 "metadata": { "catalogId": "cat-123", "tier": "pro" },
467 "skills": "./custom/skills/",482 "skills": "./custom/skills/",
468 "commands": ["./custom/commands/special.md"],483 "commands": ["./custom/commands/special.md"],
469 "agents": ["./custom/agents/reviewer.md"],484 "agents": ["./custom/agents/reviewer.md"],
489マニフェストを含める場合、`name` は唯一の必須フィールドです。504マニフェストを含める場合、`name` は唯一の必須フィールドです。
490 505
491| フィールド | 型 | 説明 | 例 |506| フィールド | 型 | 説明 | 例 |
492| :----- | :----- | :------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |507| :----- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |
493| `name` | string | 一意の識別子(kebab-case、スペースなし)。[マーケットプレイスエントリ](/docs/ja/plugin-marketplaces#plugin-entries)がプラグインを別の名前でリストする場合、マーケットプレイスエントリ名が `enabledPlugins` キーと `/plugin` で使用される名前です | `"deployment-tools"` |508| `name` | string | ケバブケースの一意の識別子。スペース、制御文字、双方向フォーマット文字を含みません。[マーケットプレイスエントリ](/docs/ja/plugin-marketplaces#plugin-entries)がプラグインを別の名前でリストする場合、マーケットプレイスエントリ名が `enabledPlugins` キーと `/plugin` で使用されます | `"deployment-tools"` |
494 509
495この名前はコンポーネントの名前空間に使用されます。たとえば、UI では、名前が `plugin-dev` のプラグインのエージェント `agent-creator` は `plugin-dev:agent-creator` として表示されます。510この名前はコンポーネントの名前空間に使用されます。たとえば、UI では、名前が `plugin-dev` のプラグインのエージェント `agent-creator` は `plugin-dev:agent-creator` として表示されます。
496 511
498 認識されないフィールド513 認識されないフィールド
499</h3>514</h3>
500 515
501Claude Code は認識しないトップレベルフィールドを無視します。別のエコシステムからのメタデータを `plugin.json` に保持でき、プラグインは引き続き読み込まれます。これにより、VS Code または Cursor 拡張マニフェスト、npm `package.json`、または MCPB/DXT バンドルマニフェストとしても機能する 1 つのマニフェストを保持することが実用的になります。516Claude Code は認識しないトップレベルフィールドを無視します。`plugin.json` に別のエコシステムからのメタデータを保持でき、プラグインは引き続き読み込まれます。これにより、VS Code または Cursor 拡張マニフェスト、npm `package.json`、または MCPB/DXT バンドルマニフェストとして機能する 1 つのマニフェストを保守することが実用的になります。
517
518`claude plugin validate` は認識されないフィールドを警告として報告し、エラーではありません。フィールドが認識されたフィールドから 1 文字または 2 文字異なる場合、警告は意図された名前を示唆します。認識されないフィールド警告のみを持つプラグインは検証に合格し、実行時に読み込まれます。
502 519
503`claude plugin validate` は認識されないフィールドを警告として報告し、エラーではありません。フィールドが認識されたフィールドから 1 文字または 2 文字異なる場合、警告は意図された可能性のある名前を提案します。認識されないフィールド警告のみを持つプラグインは検証に合格し、実行時に読み込まれます。520Claude Code が認識されたフィールドを処理する方法は、値の型が間違っている場合、フィールドによって異なります。
504 521
505型が間違っているフィールドは引き続き失敗します。たとえば、`keywords` 値が配列ではなく文字列である場合は読み込みエラーであり、`claude plugin validate` はそれをエラーとして報告します。522* **ほとんどのフィールド**: プラグインは読み込みに失敗します。たとえば、文字列の代わりに配列である `keywords` 値は読み込みエラーであり、`claude plugin validate` はそれをエラーとして報告します。
523* **`experimental` と `metadata`**: Claude Code は非オブジェクト値を無視し、`claude plugin validate` は警告を報告します。
506 524
507`--strict` を渡して警告をエラーとして扱います。CI で使用して、公開前に別のツールのマニフェストから残されたスペルミスのあるフィールド名またはフィールドをキャッチします。ただし、プラグインは実行時に読み込まれます。525`--strict` を渡して、警告をエラーとして扱います。CI で使用して、公開前に別のツールのマニフェストから残されたスペルミスのあるフィールド名またはフィールドをキャッチします。ただし、プラグインは実行時に読み込まれます。
508 526
509```bash theme={null}527```bash theme={null}
510claude plugin validate ./my-plugin --strict528claude plugin validate ./my-plugin --strict
515</h3>533</h3>
516 534
517| フィールド | 型 | 説明 | 例 |535| フィールド | 型 | 説明 | 例 |
518| :--------------- | :------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |536| :--------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |
519| `$schema` | string | エディタのオートコンプリートと検証用の JSON Schema URL。Claude Code はロード時にこのフィールドを無視します。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |537| `$schema` | string | エディタのオートコンプリートと検証用の JSON Schema URL。Claude Code は読み込み時にこのフィールドを無視します。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |
520| `displayName` | string | `/plugin` ピッカーおよび他の UI サーフェスに表示される人間が読める名前。省略された場合は `name` にフォールバックします。`name` とは異なり、スペースと任意の大文字小文字を含むことができます。名前空間またはルックアップには使用されません。Claude Code v2.1.143 以降が必要です。 | `"Deployment Tools"` |538| `displayName` | string | `/plugin` ピッカーおよび他の UI サーフェスに表示される人間が読める名前。省略した場合は `name` にフォールバックします。`name` とは異なり、スペースと任意の大文字小文字を含むことができます。名前空間またはルックアップには使用されません。 | `"Deployment Tools"` |
521| `version` | string | オプション。セマンティックバージョン。これを設定するとプラグインをそのバージョン文字列にピン留めするため、ユーザーはバージョンをバンプしたときのみ更新を受け取ります。省略された場合、Claude Code は git コミット SHA にフォールバックするため、すべてのコミットが新しいバージョンとして扱われます。マーケットプレイスエントリにも設定されている場合、`plugin.json` が優先されます。[バージョン管理](#version-management)を参照してください。 | `"2.1.0"` |539| `version` | string | オプション。セマンティックバージョン。これを設定するとプラグインをそのバージョン文字列にピンします。ユーザーはバージョンをバンプしたときのみ更新を受け取ります。[`command` ソース](/docs/ja/plugin-marketplaces#command-sources)を除きます。[バージョン管理](#version-management)を参照してください。マーケットプレイスエントリにも設定されている場合、`plugin.json` が優先されます。省略した場合、バージョンは[バージョン管理](#version-management)の次のソースから取得されます。 | `"2.1.0"` |
522| `description` | string | プラグインの目的の簡潔な説明 | `"Deployment automation tools"` |540| `description` | string | プラグインの目的の簡潔な説明 | `"Deployment automation tools"` |
523| `author` | object | 著者情報 | `{"name": "Dev Team", "email": "dev@company.com"}` |541| `author` | object | 著者情報 | `{"name": "Dev Team", "email": "dev@company.com"}` |
524| `homepage` | string | ドキュメント URL | `"https://docs.example.com"` |542| `homepage` | string | ドキュメント URL | `"https://docs.example.com"` |
525| `repository` | string | ソースコード URL | `"https://github.com/user/plugin"` |543| `repository` | string | ソースコード URL | `"https://github.com/user/plugin"` |
526| `license` | string | ライセンス識別子 | `"MIT"`、`"Apache-2.0"` |544| `license` | string | ライセンス識別子 | `"MIT"`、`"Apache-2.0"` |
527| `keywords` | array | 検出タグ | `["deployment", "ci-cd"]` |545| `keywords` | array | 検出タグ | `["deployment", "ci-cd"]` |
528| `defaultEnabled` | boolean | ユーザーが設定を設定していない場合、プラグインが有効な状態で開始するかどうか。デフォルトは `true`。[デフォルト有効化](#default-enablement)を参照してください。Claude Code v2.1.154 以降が必要です。 | `false` |546| `metadata` | object | 権利付与またはカタログフィールドなど、独自のデータ用のフリーフォームオブジェクト。Claude Code はこれを読まないため、値はプラグインの動作に影響しません。Claude Code は非オブジェクト値を無視し、`claude plugin validate` は警告として報告します。v2.1.222 より前では、Claude Code はキーを[認識されないフィールド](#unrecognized-fields)として扱いました。 | `{"catalogId": "cat-123"}` |
547| `defaultEnabled` | boolean | ユーザーが設定を設定していない場合、プラグインが有効な状態で開始するかどうか。デフォルトは `true` です。[デフォルト有効化](#default-enablement)を参照してください。 | `false` |
529 548
530<h3 id="default-enablement">549<h3 id="default-enablement">
531 デフォルト有効化550 デフォルト有効化
532</h3>551</h3>
533 552
534`plugin.json` で `defaultEnabled: false` を設定して、無効な状態でインストールされるプラグインを配布します。ユーザーは `claude plugin enable <plugin>` または `/plugin` インターフェイスでそれをオンにします。外部サービスに接続するプラグインなど、ユーザーがオプトインすべきコストまたはスコープを追加するプラグインに使用します。これには Claude Code v2.1.154 以降が必要です。以前のバージョンはフィールドを無視し、インストール時にプラグインを有効にします。553`plugin.json` で `defaultEnabled: false` を設定して、無効な状態でインストールされるプラグインを配布します。ユーザーは `claude plugin enable <plugin>` または `/plugin` インターフェースでオンにします。外部サービスに接続するなど、ユーザーがオプトインすべきコストまたはスコープを追加するプラグインに使用します。
535 554
536`defaultEnabled` は、他に何もプラグインの状態を決定していない場合のフォールバックです。2 つのことがそれより優先されます:555`defaultEnabled` は、他に何もプラグインの状態を決定していない場合のフォールバックです。2 つのことがそれより優先されます。
537 556
538* **ユーザーの設定**: 任意の設定スコープの `enabledPlugins` のプラグインのエントリ。書き込まれると、プラグイン更新と再インストール全体で保持されるため、後のリリースで `defaultEnabled` を変更しても既存ユーザーをフリップしません。557* **ユーザーの設定**: 任意の設定スコープで `enabledPlugins` のプラグインエントリ。一度書き込まれると、プラグイン更新と再インストール全体で永続化されるため、後のリリースで `defaultEnabled` を変更しても既存ユーザーは反転しません。
539* **依存関係要件**: プラグインがアクティブな別のプラグインによって必要とされる場合、Claude Code はインストール時または有効化時にそれに対して `true` を書き込みます。これにより明示的な設定が与えられるため、独自のデフォルトはもはや適用されません。[依存関係を持つプラグインを有効または無効にする](/docs/ja/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)を参照してください。558* **依存関係要件**: プラグインが別のアクティブなプラグインによって必要とされる場合、Claude Code はインストール時または有効化時に `true` を書き込みます。これにより明示的な設定が与えられるため、独自のデフォルトは適用されなくなります。[依存関係を持つプラグインを有効または無効にする](/docs/ja/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)を参照してください。
540 559
541同じフィールドはプラグインのマーケットプレイスエントリに表示でき、`plugin.json` の値より優先されます。[オプションプラグインフィールド](/docs/ja/plugin-marketplaces#optional-plugin-fields)を参照してください。560同じフィールドはプラグインのマーケットプレイスエントリに表示でき、`plugin.json` の値より優先されます。[オプションプラグインフィールド](/docs/ja/plugin-marketplaces#optional-plugin-fields)を参照してください。
542 561
545</h3>564</h3>
546 565
547| フィールド | 型 | 説明 | 例 |566| フィールド | 型 | 説明 | 例 |
548| :---------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- |567| :---------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |
549| `skills` | string\|array | `<name>/SKILL.md` を含むカスタム skill ディレクトリ(デフォルト `skills/` に加えて) | `"./custom/skills/"` |568| `skills` | string\|array | `<name>/SKILL.md` を含むカスタムスキルディレクトリ。デフォルト `skills/` スキャンに追加されます。マーケットプレイスルート例外については[パス動作ルール](#path-behavior-rules)を参照してください | `"./custom/skills/"` |
550| `commands` | string\|array | カスタムフラット `.md` skill ファイルまたはディレクトリ(デフォルト `commands/` を置き換え) | `"./custom/cmd.md"` または `["./cmd1.md"]` |569| `commands` | string\|array | カスタムフラット `.md` スキルファイルまたはディレクトリ(デフォルト `commands/` を置き換え) | `"./custom/cmd.md"` または `["./cmd1.md"]` |
551| `agents` | string\|array | カスタムエージェントファイル(デフォルト `agents/` を置き換え) | `"./custom/agents/reviewer.md"` |570| `agents` | string\|array | カスタムエージェントファイル(デフォルト `agents/` を置き換え) | `"./custom/agents/reviewer.md"` |
552| `hooks` | string\|array\|object | Hook 設定パスまたはインライン設定 | `"./my-extra-hooks.json"` |571| `workflows` | string\|array | カスタム[ワークフロー](/docs/ja/workflows)スクリプトファイルまたはディレクトリ(デフォルト `workflows/` を置き換え) | `"./custom/workflows/"` |
553| `mcpServers` | string\|array\|object | MCP 設定パスまたはインライン設定 | `"./my-extra-mcp-config.json"` |572| `hooks` | string\|array\|object | フックコンフィグパスまたはインラインコンフィグ | `"./my-extra-hooks.json"` |
573| `mcpServers` | string\|array\|object | MCP コンフィグパスまたはインラインコンフィグ | `"./my-extra-mcp-config.json"` |
554| `outputStyles` | string\|array | カスタム出力スタイルファイル/ディレクトリ(デフォルト `output-styles/` を置き換え) | `"./styles/"` |574| `outputStyles` | string\|array | カスタム出力スタイルファイル/ディレクトリ(デフォルト `output-styles/` を置き換え) | `"./styles/"` |
555| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)コード インテリジェンス用の設定(定義へのジャンプ、参照の検索など) | `"./.lsp.json"` |575| `lspServers` | string\|array\|object | コード知能(定義へ移動、参照を検索など)用の[Language Server Protocol](https://microsoft.github.io/language-server-protocol/)コンフィグ | `"./.lsp.json"` |
556| `experimental.themes` | string\|array | カラーテーマファイル/ディレクトリ(デフォルト `themes/` を置き換え)。[テーマ](#themes)を参照してください | `"./themes/"` |576| `experimental.themes` | string\|array | カラーテーマファイル/ディレクトリ(デフォルト `themes/` を置き換え)。[テーマ](#themes)を参照してください | `"./themes/"` |
557| `experimental.monitors` | string\|array | プラグインがアクティブな場合に自動的に開始されるバックグラウンド[Monitor](/docs/ja/tools-reference#monitor-tool)設定。[Monitors](#monitors)を参照してください | `"./monitors.json"` |577| `experimental.monitors` | string\|array | プラグインがアクティブな場合に自動的に開始されるバックグラウンド[Monitor](/docs/ja/tools-reference#monitor-tool)コンフィグ。[モニター](#monitors)を参照してください | `"./monitors.json"` |
558| `userConfig` | object | ユーザー設定可能な値は有効化時にプロンプトされます。[ユーザー設定](#user-configuration)を参照してください | 下記を参照 |578| `userConfig` | object | 有効化時にプロンプトされるユーザー設定可能な値。[ユーザー設定](#user-configuration)を参照してください | 以下を参照 |
559| `channels` | array | メッセージ注入用のチャネル宣言(Telegram、Slack、Discord スタイル)。[チャネル](#channels)を参照してください | 下記を参照 |579| `channels` | array | メッセージ注入用のチャネル宣言(Telegram、Slack、Discord スタイル)。[チャネル](#channels)を参照してください | 以下を参照 |
560| `dependencies` | array | このプラグインが必要とする他のプラグイン。オプションで semver バージョン制約付き。[プラグイン依存関係バージョンを制約](/docs/ja/plugin-dependencies)を参照してください | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |580| `dependencies` | array | このプラグインが必要とする他のプラグイン。オプションで semver バージョン制約付き。[プラグイン依存関係バージョンを制約する](/docs/ja/plugin-dependencies)を参照してください | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |
561 581
562<h3 id="experimental-components">582<h3 id="experimental-components">
563 実験的コンポーネント583 実験的コンポーネント
564</h3>584</h3>
565 585
566`experimental` キーの下のコンポーネント、`themes` と `monitors` は、安定化する間にリリース間でマニフェストスキーマが変更される可能性があります。それらを宣言する場所は別の移行です。トップレベルはまだ機能し、`claude plugin validate` は警告を表示し、将来のリリースでは `experimental.*` が必要になります。586`experimental` キー、`themes` および `monitors` の下のコンポーネントは、安定化中にリリース間でマニフェストスキーマが変更される可能性があります。それらを宣言する場所は別の移行です。トップレベルはまだ機能し、`claude plugin validate` は警告を出し、将来のリリースは `experimental.*` を必要とします。
567 587
568<h3 id="user-configuration">588<h3 id="user-configuration">
569 ユーザー設定589 ユーザー設定
570</h3>590</h3>
571 591
572`userConfig` フィールドは、プラグインが有効になったときに Claude Code がユーザーにプロンプトする値を宣言します。ユーザーに `settings.json` を手動で編集させる代わりにこれを使用してください。592`userConfig` フィールドは、プラグインが有効化されたときに Claude Code がユーザーにプロンプトする値を宣言します。ユーザーに `settings.json` を手動で編集させる代わりに、これを使用してください。
573 593
574```json theme={null}594```json theme={null}
575{595{
589}609}
590```610```
591 611
592キーは有効な識別子である必要があります。各オプションはこれらのフィールドをサポートします:612キーは有効な識別子である必要があります。各オプションはこれらのフィールドをサポートします。
593 613
594| フィールド | 必須 | 説明 |614| フィールド | 必須 | 説明 |
595| :------------ | :-- | :------------------------------------------------------- |615| :------------ | :-- | :--------------------------------------------------------- |
596| `type` | はい | `string`、`number`、`boolean`、`directory`、または `file` のいずれか |616| `type` | はい | `string`、`number`、`boolean`、`directory`、または `file` のいずれか |
597| `title` | はい | 設定ダイアログに表示されるラベル |617| `title` | はい | 設定ダイアログに表示されるラベル |
598| `description` | はい | フィールドの下に表示されるヘルプテキスト |618| `description` | はい | フィールドの下に表示されるヘルプテキスト |
599| `sensitive` | いいえ | `true` の場合、入力をマスクし、値を `settings.json` ではなくセキュアストレージに保存 |619| `sensitive` | いいえ | `true` の場合、入力をマスクし、値を `settings.json` の代わりにセキュアストレージに保存します |
600| `required` | いいえ | `true` の場合、フィールドが空のときに検証が失敗 |620| `required` | いいえ | `true` の場合、フィールドが空の場合は検証が失敗します |
601| `default` | いいえ | ユーザーが何も提供しない場合に使用される値 |621| `default` | いいえ | ユーザーが何も提供しない場合に使用される値 |
602| `multiple` | いいえ | `string` タイプの場合、文字列の配列を許可 |622| `multiple` | いいえ | `string` 型の場合、文字列の配列を許可します |
603| `min` / `max` | いいえ | `number` タイプの境界 |623| `min` / `max` | いいえ | `number` 型の境界 |
604 624
605各値は MCP および LSP サーバー設定と hook コマンドで `${user_config.KEY}` として置換可能です。機密でない値は skill とエージェントコンテンツでも置換できます。すべての値はプラグインサブプロセスに `CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数としてエクスポートされます。ここで `<KEY>` はオプションキーを大文字にしたものです。625各値は MCP および LSP サーバーコンフィグとフックコマンドで `${user_config.KEY}` として置換可能です。機密でない値はスキルおよびエージェントコンテンツでも置換できます。すべての値は `CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数としてフックプロセスにエクスポートされます。ここで `<KEY>` はオプションキーを大文字にしたものです。
606 626
607シェルで実行されるフィールドは `${user_config.*}` を拒否します: 設定された値をシェルコマンドに置換すると、シェルはその値が含むものを実行できるため、コンポーネントは[エラー](/docs/ja/errors#plugin-command-references-user-config)で失敗します。拒否された各フィールドには、値を渡す別の方法があります:627シェルで実行されるフィールドは `${user_config.*}` を拒否します。設定された値をシェルコマンドに置換すると、シェルはその値が含むものを実行できるため、コンポーネントは[エラー](/docs/ja/errors#plugin-command-references-user-config)で失敗します。拒否された各フィールドには、値を渡す別の方法があります。
608 628
609| 拒否されたフィールド | 値を渡す方法 |629| 拒否されたフィールド | 値を渡す方法 |
610| :--------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- |630| :--------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- |
611| Shell-form hook コマンド | [exec form](/docs/ja/hooks#exec-form-and-shell-form)を `args` で使用するか、hook の環境から `CLAUDE_PLUGIN_OPTION_<KEY>` を読み取ります |631| シェル形式フックコマンド | `args` で[exec 形式](/docs/ja/hooks#exec-form-and-shell-form)を使用するか、フックの環境から `CLAUDE_PLUGIN_OPTION_<KEY>` を読み取ります |
612| [Monitor](#monitors)コマンド | スクリプトの設定ファイルから値を読み取ります |632| [Monitor](#monitors)コマンド | スクリプトの設定ファイルから値を読み取ります |
613| MCP [`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) | スクリプトの設定ファイルから値を読み取ります |633| MCP [`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) | スクリプトの設定ファイルから値を読み取ります |
614 634
615v2.1.207 より前は、これらのフィールドは `${user_config.KEY}` 値を置換していました。これに依存していたプラグインを更新してください。635v2.1.207 より前では、これらのフィールドは `${user_config.KEY}` 値を置換しました。これに依存していたプラグインを更新してください。
636
637機密でない値は、ユーザー `settings.json` の [`pluginConfigs`](/docs/ja/settings-reference#pluginconfigs) キーの下に `pluginConfigs[<plugin-id>].options` として保存されます。
638
639macOS では、Claude Code は機密値を macOS キーチェーンに保存し、キーチェーンが書き込みを拒否した場合は `~/.claude/.credentials.json` にフォールバックします。サポートされているキーチェーンのないプラットフォームでは、`~/.claude/.credentials.json` に保存されます。キーチェーンストレージは OAuth トークンと共有され、約 2 KB の合計制限があるため、機密値は小さく保ってください。
640
641Claude Code は 3 つの設定ソースからのみすべての `pluginConfigs` 値を読み取ります。
616 642
617機密でない値は `settings.json` の [`pluginConfigs`](/docs/ja/settings#pluginconfigs) キーの下に `pluginConfigs[<plugin-id>].options` として保存されます。Claude Code はキーをユーザー設定に書き込み、ユーザー設定、`--settings` フラグ、および管理設定からそれを読み取ります。プロジェクトの `.claude/settings.json` または `.claude/settings.local.json` のエントリは無視されます。v2.1.207 より前は、Claude Code はプロジェクトおよびローカル設定も読み取っていました。643* **ユーザー設定**: `~/.claude/settings.json`。有効化時プロンプトが書き込むファイル
644* **`--settings`**: CLI フラグまたは SDK インライン設定
645* **管理設定**: [組織制御ポリシー](/docs/ja/permissions#managed-settings)
618 646
619機密値は macOS Keychain、またはサポートされているキーチェーンが利用できないプラットフォームでは `~/.claude/.credentials.json` に移動します。キーチェーンストレージは OAuth トークンと共有され、約 2 KB の合計制限があるため、機密値は小さく保ってください。647複数のソースが同じキーを設定する場合、管理設定が優先され、次に `--settings`、次にユーザー設定が優先されます。このリストから削除できる唯一のソースはユーザー設定です。`user` なしで [`--setting-sources`](/docs/ja/cli-reference#cli-flags) を渡すと、Claude Code はそれらをスキップします。管理設定と `--settings` は、渡すものが何であれ保持されます。SDK の [`settingSources`](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control)オプションは同じリストを設定します。
648
649プロジェクトの `.claude/settings.json` または `.claude/settings.local.json` のエントリは無視されます。両方のファイルはワークスペースに存在するため、クローンされたリポジトリはそこに値を提供でき、それらの値はプラグインフックコマンド、MCP サーバーコンフィグ、LSP コマンド、およびモニターコマンドに流れます。v2.1.207 より前では、これらのエントリが読み取られました。制限は `pluginConfigs` に固有です。[`enabledPlugins`](/docs/ja/settings-reference#enabledplugins)はまだプロジェクトおよびローカル設定を尊重します。
620 650
621<h3 id="channels">651<h3 id="channels">
622 チャネル652 チャネル
623</h3>653</h3>
624 654
625`channels` フィールドを使用すると、プラグインは 1 つ以上のメッセージチャネルを宣言して、会話にコンテンツを注入できます。各チャネルはプラグインが提供する MCP サーバーにバインドされます。655`channels` フィールドを使用すると、プラグインは 1 つ以上のメッセージチャネルを宣言でき、コンテンツを会話に注入します。各チャネルはプラグインが提供する MCP サーバーにバインドされます。
626 656
627```json theme={null}657```json theme={null}
628{658{
653 パス動作ルール683 パス動作ルール
654</h3>684</h3>
655 685
656カスタムパスがプラグインのデフォルトディレクトリを置き換えるか拡張するかは、フィールドによって異なります:686カスタムパスがプラグインのデフォルトディレクトリを置き換えるか拡張するかは、フィールドによって異なります。
657 687
658* **デフォルトを置き換える**: `commands`、`agents`、`outputStyles`、`experimental.themes`、`experimental.monitors`。たとえば、マニフェストが `commands` を指定する場合、デフォルト `commands/` ディレクトリはスキャンされません。デフォルトを保持してさらに追加するには、明示的にリストします: `"commands": ["./commands/", "./extras/"]`688* **デフォルトを置き換え**: `commands`、`agents`、`workflows`、`outputStyles`、`experimental.themes`、`experimental.monitors`。たとえば、マニフェストが `commands` を指定する場合、デフォルト `commands/` ディレクトリはスキャンされません。デフォルトを保持して追加するには、明示的にリストします。`"commands": ["./commands/", "./extras/"]`
659* **デフォルトに追加**: `skills`。デフォルト `skills/` ディレクトリは常にスキャンされ、`skills` にリストされているディレクトリはそれと一緒に読み込まれます。例外: [マーケットプレイスエントリの `source` がマーケットプレイスルートに解決される](/docs/ja/plugin-marketplaces#advanced-plugin-entries)場合、特定のサブディレクトリを宣言するとスキャンが置き換えられます689* **デフォルトに追加**: `skills`。デフォルト `skills/` ディレクトリは常にスキャンされ、`skills` にリストされているディレクトリはそれと一緒に読み込まれます。例外: [ソースがマーケットプレイスルートに解決される](/docs/ja/plugin-marketplaces#advanced-plugin-entries)マーケットプレイスエントリの場合、特定のサブディレクトリを宣言するとデフォルト `skills/` スキャンが置き換えられます
660* **独自のマージルール**: [hooks](#hooks)、[MCP servers](#mcp-servers)、[LSP servers](#lsp-servers)。各セクションで複数のソースがどのように結合されるかを参照してください690* **独自のマージルール**: [フック](#hooks)、[MCP サーバー](#mcp-servers)、および[LSP サーバー](#lsp-servers)。各セクションで複数のソースがどのように結合されるかを参照してください
661 691
662プラグインがデフォルトフォルダと一致するマニフェストキーの両方を持つ場合、Claude Code v2.1.140 以降は無視されたフォルダを `claude plugin list` および `/plugin` 詳細ビューで警告します。プラグインはマニフェストパスを使用して読み込まれます。マニフェストキーがデフォルトフォルダを指す場合(例: `"commands": ["./commands/deploy.md"]`)は警告は表示されません。その場合、フォルダは明示的にアドレス指定されているためです。692プラグインがデフォルトフォルダと一致するマニフェストキーの両方を持つ場合、Claude Code は `claude plugin list` と `/plugin` 詳細ビューで無視されたフォルダについて警告します。プラグインはマニフェストパスを使用して読み込まれます。マニフェストキーがデフォルトフォルダを指す場合、Claude Code は警告しません。たとえば `"commands": ["./commands/deploy.md"]` の場合、そのパスはフォルダを明示的に名前付けするためです。
663 693
664すべてのパスフィールドについて:694すべてのパスフィールドについて。
665 695
666* すべてのパスはプラグインルートに相対的で、`./` で始まる必要があります696* すべてのパスはプラグインルートに相対的で `./` で始まる必要があります。ただし、`skills` フィールドは `.` も受け入れます
667* カスタムパスからのコンポーネントは同じ命名と名前空間ルールを使用します697 * `"."` と `"./"` の両方はプラグインルート自体を示します
668* 複数のパスを配列として指定できます698 * v2.1.221 より前では、`"."` はマニフェスト検証に失敗し、プラグインは読み込まれなかったため、以前のバージョンをサポートするには `"./"` を使用してください
669* skill パスが `SKILL.md` を直接含むディレクトリを指す場合(例: `"skills": ["./"]` がプラグインルートを指す)、`SKILL.md` の frontmatter `name` フィールドが skill の呼び出し名を決定します。これはインストールディレクトリに関係なく安定した名前を提供します。frontmatter に `name` が設定されていない場合、ディレクトリ basename がフォールバックとして使用されます。699* カスタムパスのコンポーネントは同じ命名および名前空間ルールを使用します
700* 複数のパスは配列として指定できます
701* スキルパスは `SKILL.md` を直接含むディレクトリを指すことができます。たとえば、プラグインルートの場合は `"skills": ["."]`
702 * Claude Code はスキルの呼び出し名を `SKILL.md` のフロントマター `name` フィールドから取得するため、インストールディレクトリの名前が何であれ、名前は安定したままです
703 * フロントマターで `name` が設定されていない場合、Claude Code はディレクトリベース名にフォールバックします
670 704
671ルートに `SKILL.md` があり、`skills/` サブディレクトリがなく、`skills` マニフェストフィールドがないプラグインは、Claude Code v2.1.142 以降で単一 skill プラグインとして自動的に読み込まれます。このレイアウトの場合、`plugin.json` で `"skills": ["./"]` を設定する必要はありません。skill の呼び出し名は上記と同じルールに従います: frontmatter `name` フィールド、またはフォールバックとしてのディレクトリ basename。705プラグインがルートに `SKILL.md` を持ち、`skills/` サブディレクトリがなく、`skills` マニフェストフィールドがない場合、自動的に単一スキルプラグインとして読み込まれます。このレイアウトの場合、`plugin.json` で `"skills": ["./"]` を設定する必要はありません。
672 706
673**パスの例**:707**パスの例**:
674 708
689 環境変数723 環境変数
690</h3>724</h3>
691 725
692Claude Code は、プラグインパスを参照するための 3 つの変数を提供します:726Claude Code は 3 つのパス参照用変数を提供します。
693 727
694| 変数 | 解決先 | 用途 |728| 変数 | 解決先 | 用途 |
695| :---------------------- | :----------------------------------------------------------------- | :----------------------------------------------------------- |729| :---------------------- | :------------------------------------------------------------------ | :----------------------------------------------------------- |
696| `${CLAUDE_PLUGIN_ROOT}` | プラグインのインストールディレクトリへの絶対パス | プラグインにバンドルされたスクリプト、バイナリ、設定ファイル |730| `${CLAUDE_PLUGIN_ROOT}` | プラグインのインストールディレクトリへの絶対パス | プラグインにバンドルされたスクリプト、バイナリ、設定ファイル |
697| `${CLAUDE_PLUGIN_DATA}` | [永続ディレクトリ](#persistent-data-directory)は最初の参照時に作成され、プラグイン更新後も保持されます | `node_modules` または Python 仮想環境などのインストール済み依存関係、生成されたコード、キャッシュ |731| `${CLAUDE_PLUGIN_DATA}` | プラグイン更新を超えて存続する[永続ディレクトリ](#persistent-data-directory)。最初の参照時に作成されます | `node_modules` または Python 仮想環境などのインストール済み依存関係、生成されたコード、キャッシュ |
698| `${CLAUDE_PROJECT_DIR}` | プロジェクトルート | プロジェクトローカルスクリプトと設定ファイル |732| `${CLAUDE_PROJECT_DIR}` | プロジェクトルート | プロジェクトローカルスクリプトと設定ファイル |
699 733
7003 つすべてが hook プロセスおよび MCP と LSP サーバーサブプロセスに環境変数としてエクスポートされます。どのフィールドがそれらをインラインで置換するかは、プラグインコンポーネントによって異なります:7343 つすべてはフックプロセスおよび MCP と LSP サーバーサブプロセスに環境変数としてエクスポートされます。どのフィールドがそれらをインラインで置換するかは、プラグインコンポーネントによって異なります。
701 735
702| プラグインコンポーネント | プレースホルダーが解決されるフィールド |736| プラグインコンポーネント | プレースホルダーが解決されるフィールド |
703| :------------------------- | :--------------------------------------- |737| :------------------------- | :--------------------------------------- |
704| Skill とエージェントコンテンツ | プレースホルダーが表示される任意の場所 |738| スキルおよびエージェントコンテンツ | プレースホルダーが表示される任意の場所 |
705| Hook と monitor コマンド | プレースホルダーが表示される任意の場所 |739| フックおよびモニターコマンド | プレースホルダーが表示される任意の場所 |
706| MCP `stdio` サーバー | `command`、`args`、`env` |740| MCP `stdio` サーバー | `command`、`args`、`env` |
707| MCP `http`、`sse`、`ws` サーバー | `url`、`headers`、`headersHelper` |741| MCP `http`、`sse`、`ws` サーバー | `url`、`headers`、`headersHelper` |
708| LSP サーバー | `command`、`args`、`env`、`workspaceFolder` |742| LSP サーバー | `command`、`args`、`env`、`workspaceFolder` |
709 743
710hook コマンドでは、[exec form](/docs/ja/hooks#exec-form-and-shell-form)を `args` で使用して、各パスが 1 つの引数として引用符なしで渡されるようにしてください。shell-form hooks と monitor コマンドでは、`"${CLAUDE_PROJECT_DIR}/scripts/server.sh"` のようにダブルクォートで囲みます。この shell-form hook はプラグインにバンドルされたスクリプトを実行します:744フックコマンドでは、各パスが 1 つの引数として引用符なしで渡されるように、`args` で[exec 形式](/docs/ja/hooks#exec-form-and-shell-form)を使用してください。シェル形式フックおよびモニターコマンドでは、変数を二重引用符で囲みます。`"${CLAUDE_PROJECT_DIR}/scripts/server.sh"` のように。このシェル形式フックはプラグインにバンドルされたスクリプトを実行します。
711 745
712```json theme={null}746```json theme={null}
713{747{
726}760}
727```761```
728 762
729`${CLAUDE_PLUGIN_ROOT}` はプラグインが更新されると変更されます。前のバージョンのディレクトリは更新後約 7 日間ディスク上に残りますが、これを一時的なものとして扱い、ここに状態を書き込まないでください。763`${CLAUDE_PLUGIN_ROOT}` はプラグインが更新されるときに変更されます。前のバージョンのディレクトリは更新後の猶予期間ディスク上に残りますが、それを一時的なものとして扱い、そこに状態を書き込まないでください。クリーンアップセマンティクスについては[プラグインキャッシング](#plugin-caching-and-file-resolution)を参照してください。
764
765プラグインがセッション中に更新される場合、フックコマンド、モニター、MCP サーバー、および LSP サーバーは前のバージョンのパスを使用し続けます。`/reload-plugins` を実行して、フック、MCP サーバー、および LSP サーバーを新しいパスに切り替えます。モニターはセッション再開が必要です。インタラクティブターミナルのないセッションでは、リロードはプラグイン MCP サーバーを次のセッションまで古いパスに残します。
730 766
731プラグインがセッション中に更新されると、hook コマンド、monitors、MCP サーバー、LSP サーバーは前のバージョンのパスを使用し続けます。`/reload-plugins` を実行して、hook、MCP サーバー、LSP サーバーを新しいパスに切り替えます。monitors はセッション再起動が必要です。767`command` ソースを持つプラグインの場合、Claude Code は[プラグイン自体を再実行](/docs/ja/plugin-marketplaces#when-claude-code-re-runs-the-command)できます。
732 768
733MCP サーバーは `roots/list` リクエストを呼び出すこともでき、セッションの作業ディレクトリを実行時に読み取ることができます。[`roots/list` が返すもの、および Claude Code がサーバーに変更を通知するタイミング](/docs/ja/mcp#option-3-add-a-local-stdio-server)を参照してください。769MCP サーバーは実行時にセッションの作業ディレクトリを読み取るために `roots/list` リクエストを呼び出すこともできます。[`roots/list` が返すもの、および Claude Code がサーバーに変更を通知するタイミング](/docs/ja/mcp#option-3-add-a-local-stdio-server)を参照してください。
734 770
735<h4 id="persistent-data-directory">771<h4 id="persistent-data-directory">
736 永続データディレクトリ772 永続データディレクトリ
737</h4>773</h4>
738 774
739`${CLAUDE_PLUGIN_DATA}` ディレクトリは `~/.claude/plugins/data/{id}/` に解決されます。ここで `{id}` はプラグイン識別子で、`a-z`、`A-Z`、`0-9`、`_`、`-` 以外の文字が `-` に置き換えられます。`formatter@my-marketplace` としてインストールされたプラグインの場合、ディレクトリは `~/.claude/plugins/data/formatter-my-marketplace/` です。775`${CLAUDE_PLUGIN_DATA}` ディレクトリは `~/.claude/plugins/data/{id}/` に解決されます。ここで `{id}` はプラグイン識別子で、`a-z`、`A-Z`、`0-9`、`_`、および `-` 以外の文字は `-` に置き換えられます。`formatter@my-marketplace` としてインストールされたプラグインの場合、ディレクトリは `~/.claude/plugins/data/formatter-my-marketplace/` です。
776
777一般的な用途は、言語依存関係を 1 回インストールし、セッションとプラグイン更新全体で再利用することです。Python 依存関係、Yarn または pnpm でロックされた依存関係、およびライフサイクルスクリプトを実行する必要があるパッケージに使用します。マーケットプレイスインストール済みプラグインの場合、それが必要ない場合があります。Claude Code はプラグインをキャッシュするときに、適格な[Node.js パッケージ依存関係](#node-js-package-dependencies)を自動的にインストールします。
740 778
741一般的な使用法は、言語依存関係を 1 回インストールしてセッションとプラグイン更新全体で再利用することです。データディレクトリは単一のプラグインバージョンより長く存在するため、ディレクトリ存在チェックだけでは、更新がプラグインの依存関係マニフェストを変更したときを検出できません。推奨パターンはバンドルされたマニフェストをデータディレクトリのコピーと比較し、異なる場合は再インストールします。779データディレクトリは単一のプラグインバージョンより長く存続するため、ディレクトリ存在チェックのみでは、更新がプラグインの依存関係マニフェストを変更したときを検出できません。推奨パターンはバンドルされたマニフェストをデータディレクトリのコピーと比較し、異なる場合は再インストールします。
742 780
743この `SessionStart` hook は最初の実行時に `node_modules` をインストールし、プラグイン更新に変更された `package.json` が含まれるたびに再度インストールします:781この `SessionStart` フックは最初の実行時に `node_modules` をインストールし、プラグイン更新に変更された `package.json` が含まれるたびに再度インストールします。
744 782
745```json theme={null}783```json theme={null}
746{784{
759}797}
760```798```
761 799
762`diff` は保存されたコピーが不足しているか、バンドルされたコピーと異なる場合にゼロ以外で終了し、最初の実行と依存関係変更更新の両方をカバーします。`npm install` が失敗した場合、末尾の `rm` はコピーされたマニフェストを削除して、次のセッションが再試行します。800`diff` はストレージコピーが見つからないか、バンドルされたものと異なる場合にゼロ以外で終了し、最初の実行と依存関係変更更新の両方をカバーします。`npm install` が失敗した場合、末尾の `rm` はコピーされたマニフェストを削除して、次のセッションが再試行されるようにします。
763 801
764`${CLAUDE_PLUGIN_ROOT}` にバンドルされたスクリプトは、永続化された `node_modules` に対して実行できます:802`${CLAUDE_PLUGIN_ROOT}` にバンドルされたスクリプトは、永続化された `node_modules` に対して実行できます。
765 803
766```json theme={null}804```json theme={null}
767{805{
777}815}
778```816```
779 817
780データディレクトリは、インストールされている最後のスコープからプラグインをアンインストールするときに自動的に削除されます。`/plugin` インターフェイスはディレクトリサイズを表示し、削除前にプロンプトします。CLI はデフォルトで削除します。[`--keep-data`](#plugin-uninstall)を渡して保持します。818データディレクトリは、プラグインをインストールされている最後のスコープからアンインストールするときに自動的に削除されます。`/plugin` インターフェースはディレクトリサイズを表示し、削除前にプロンプトします。CLI はデフォルトで削除します。[`--keep-data`](#plugin-uninstall)を渡して保持します。
781 819
782***820***
783 821
784<h2 id="plugin-caching-and-file-resolution">822<h2 id="plugin-caching-and-file-resolution">
785 プラグインキャッシングとファイル解決823 プラグインのキャッシングとファイル解決
786</h2>824</h2>
787 825
788プラグインは 2 つの方法で指定されます:826プラグインは以下の 2 つの方法のいずれかで指定されます。
789 827
790* `claude --plugin-dir` または `claude --plugin-url` を通じて、セッションの期間。828* `claude --plugin-dir` または `claude --plugin-url` を通じて、セッションの期間中。
791* マーケットプレイスを通じて、将来のセッション用にインストール。829* マーケットプレイスを通じて、今後のセッション用にインストール。
792 830
793セキュリティと検証の目的で、Claude Code は\_マーケットプレイス\_プラグインをユーザーのローカル**プラグインキャッシュ**(`~/.claude/plugins/cache`)にコピーします。これらを所定の場所で使用するのではなく。この動作を理解することは、外部ファイルを参照するプラグインを開発する際に重要です。831セキュリティと検証の目的で、Claude Code はマーケットプレイス プラグインをユーザーのローカル **プラグインキャッシュ** (`~/.claude/plugins/cache`)にコピーします。ただし、[リンクモードの `command` ソース](/docs/ja/plugin-marketplaces#copy-mode-and-link-mode)は例外で、Claude Code はキャッシュエントリ内のリンクを通じてこれらをインプレイスで使用します。
794 832
795各インストール済みバージョンはキャッシュ内の別のディレクトリです。プラグインを更新またはアンインストールすると、前のバージョンディレクトリは孤立したものとしてマークされ、7 日後に自動的に削除されます。猶予期間により、既に古いバージョンを読み込んだ同時実行 Claude Code セッションがエラーなく実行を続けることができます。833コピーされたプラグインの場合、インストールされた各バージョンはキャッシュ内の個別のディレクトリであり、マーケットプレイスとプラグインでグループ化され、解決されたバージョンに対して名前が付けられ、プラグインのファイルと [Node.js パッケージ依存関係](#node-js-package-dependencies)の独自のコピーを持ちます。[リリースタグ](/docs/ja/plugin-dependencies#tag-plugin-releases-for-version-resolution)から解決された依存関係は、コミット SHA サフィックス付きのディレクトリ名を取得します。
834
835プラグインを更新またはアンインストールすると、Claude Code は前のバージョンディレクトリを孤立したものとしてマークし、約 14 日後のバックグラウンドスイープで削除します。猶予期間により、既に古いバージョンをロードした同時実行中の Claude Code セッションがエラーなく実行を続けることができます。Claude Code はスイープを実行するのは、少なくとも 1 つのプラグインがインストールされている場合のみです。最後のプラグインをアンインストールした後、孤立したディレクトリはディスク上に残り、プラグインを再度インストールするまで保持されます。
836
837Claude Code は、プラグインまたはマーケットプレイスフォルダをキャッシュから削除するのは、ディレクトリまたはシンボリックリンクが含まれなくなった場合のみです。開発チェックアウトをキャッシュにシンボリックリンクとしてプラグインのバージョンエントリにリンクする場合、Claude Code はリンクを孤立したものとしてマークすることはなく、削除することもなく、それを保持するフォルダも削除しません。Claude Code はリンクされたチェックアウト内にバージョン追跡ファイルを書き込むこともありません。
796 838
797Claude の Glob および Grep ツールは検索中に孤立したバージョンディレクトリをスキップするため、ファイル結果には古いプラグインコードが含まれません。839Claude の Glob および Grep ツールは検索中に孤立したバージョンディレクトリをスキップするため、ファイル結果には古いプラグインコードが含まれません。
798 840
841<h3 id="node-js-package-dependencies">
842 Node.js パッケージ依存関係
843</h3>
844
845Claude Code がプラグインをキャッシュにコピーするとき、プラグインの Node.js パッケージ依存関係もそこにインストールするため、プラグインのフック と MCP サーバーはそれらをロードできます。このセクションでは、プラグインが独自の `package.json` で宣言する npm および Bun パッケージについて説明します。他のプラグインに依存するプラグインについては、[プラグイン依存関係バージョン](/docs/ja/plugin-dependencies)を参照してください。
846
847Claude Code は、コピーされたバージョンディレクトリを作成するたびに、その内部でインストールを実行します。プラグインをインストールするとき、Claude Code がプラグインを新しいバージョンに更新するとき、および有効なプラグインがまだキャッシュされていない場合のセッション開始時(新しいマシンなど)です。インストールは、プラグインのルートディレクトリに `package.json` とサポートされているロックファイルの両方が含まれている場合にのみ実行されます。
848
849| ロックファイル | コマンド |
850| :-------------------------------------------- | :----------------------------------------------- |
851| `bun.lock` または `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |
852| `npm-shrinkwrap.json` または `package-lock.json` | `npm ci --ignore-scripts` |
853
854プラグインにこれらのロックファイルが複数含まれている場合、Claude Code は最初のマッチを使用し、順序をチェックします。`bun.lock`、`bun.lockb`、`npm-shrinkwrap.json`、`package-lock.json`。Claude Code は `yarn.lock` と `pnpm-lock.yaml` をスキップします。Yarn と pnpm は `--ignore-scripts` をバイパスする解決時間設定フックをサポートしているためです。
855
856最も広いリーチのために npm ロックファイルを配布してください。Claude Code はマッチされたロックファイルのパッケージマネージャーをユーザーの PATH から実行し、ロックファイルが見つからない場合は他のロックファイルにフォールバックしません。npm ソースを通じて配布されるプラグインの場合は、`npm-shrinkwrap.json` を使用してください。npm は公開されたパッケージから `package-lock.json` を除外します。
857
858Claude Code はこの依存関係インストールを制約して、プラグインまたはそのパッケージからのコードがインストール中に実行されず、実行時間が制限されます。
859
860* **凍結された解決:** Bun と npm はロックファイルがピンしたものを正確にインストールし、`package.json` とロックファイルが一致しない場合は再解決するのではなく失敗します。
861* **ライフサイクルスクリプトなし:** `--ignore-scripts` は `preinstall`、`install`、および `postinstall` スクリプトが実行されないようにするため、これらのスクリプトでネイティブモジュールをビルドする依存関係はダウンロードされますが、このインストール中にはコンパイルされません。
862* **60 秒のタイムアウト:** Claude Code は実行時間が長いインストールを停止し、失敗として扱います。
863
864npm ソースプラグイン自体をフェッチすると、この依存関係インストールが実行される前に、ライフサイクルスクリプルが有効な状態で `npm install` が実行されます。
865
866失敗またはスキップされたインストールはプラグインをブロックすることはありません。インストールが失敗した場合、または Claude Code が yarn または pnpm ロックファイルをスキップした場合、理由は [デバッグ出力](#debugging-commands)の警告として記録されます。`package.json` とロックファイルがないプラグインはログエントリなしでスキップされます。タイムアウトしたインストールは、キャッシュされたコピーに部分的な `node_modules` ツリーを残すことができます。
867
868自動インストールをオフにすることはできません。設定または環境変数はそれを無効にしません。制限されたネットワークでは、[ネットワークアクセス要件](/docs/ja/network-config#network-access-requirements)を参照して、許可するホストを確認してください。
869
870自動インストールが提供できない依存関係(ライフサイクルスクリプトをビルドする必要があるパッケージ、Python 依存関係、または Yarn または pnpm でロックされたプラグインなど)については、[永続データディレクトリ](#persistent-data-directory)へのフックからインストールしてください。
871
799<h3 id="path-traversal-limitations">872<h3 id="path-traversal-limitations">
800 パストラバーサル制限873 パストラバーサルの制限
801</h3>874</h3>
802 875
803インストールされたプラグインはディレクトリの外側のファイルを参照できません。プラグインルートの外側をトラバースするパス(`../shared-utils` など)は、これらの外部ファイルがキャッシュにコピーされないため、インストール後は機能しません。876Claude Code はプラグインが独自のディレクトリ外のファイルを参照することを許可しません。プラグインルートの外に解決されるコンポーネントパスを拒否します。パスが `plugin.json` で宣言されているか、[マーケットプレイスエントリ](/docs/ja/plugin-marketplaces#plugin-entries)で宣言されているかに関わらず。これは、`../shared-utils` などのように書かれたプラグインの外を指すパス、および [1 つのマーケットプレイス内のリンク](#share-files-within-a-marketplace-with-symlinks)以外のプラグインの外につながるシンボリックリンクをカバーします。
877
878Claude Code がパスを拒否すると、[`path escapes plugin directory`](/docs/ja/errors#path-escapes-plugin-directory) エラーを報告し、そのコンポーネントなしでプラグインをロードします。
879
880Claude Code はプラグインをインストールするときにプラグインディレクトリ外のファイルをキャッシュにコピーしないため、コピーされたプラグイン内のスクリプトがプラグインルート上のパスを読み取る場合、それらのファイルも見つかりません。
804 881
805<h3 id="share-files-within-a-marketplace-with-symlinks">882<h3 id="share-files-within-a-marketplace-with-symlinks">
806 マーケットプレイス内でシンボリックリンクを使用してファイルを共有883 シンボリックリンクを使用してマーケットプレイス内でファイルを共有する
807</h3>884</h3>
808 885
809プラグインが同じマーケットプレイスの他の部分とファイルを共有する必要がある場合、プラグインディレクトリ内にシンボリックリンクを作成できます。プラグインがキャッシュにコピーされるときにシンボリックリンクがどのように処理されるかは、そのターゲットがどこに解決されるかによって異なります:886プラグインが同じマーケットプレイスの他の部分とファイルを共有する必要がある場合は、プラグインディレクトリ内にシンボリックリンクを作成できます。プラグインがキャッシュにコピーされるときにシンボリックリンクがどのように処理されるかは、そのターゲットがどこに解決されるかによって異なります。
810 887
811* **プラグイン自体のディレクトリ内:** シンボリックリンクはキャッシュ内の相対シンボリックリンクとして保持されるため、実行時にコピーされたターゲットへの解決を続けます。888* **プラグイン独自のディレクトリ内:** シンボリックリンクはキャッシュ内の相対シンボリックリンクとして保持されるため、実行時にコピーされたターゲットへの解決を続けます。
812* **同じマーケットプレイス内の他の場所:** シンボリックリンクは逆参照されます。ターゲットのコンテンツはキャッシュにコピーされます。これにより、メタプラグインの `skills/` ディレクトリがマーケットプレイス内の他のプラグインで定義されたスキルにリンクできます。889* **同じマーケットプレイス内の他の場所:** シンボリックリンクは逆参照されます。ターゲットのコンテンツはキャッシュにコピーされます。これにより、メタプラグインの `skills/` ディレクトリがマーケットプレイス内の他のプラグインで定義されたスキルにリンクできます。
813* **マーケットプレイス外:** シンボリックリンクはセキュリティのためにスキップされます。これにより、プラグインがシステムパスなどの任意のホストファイルをキャッシュに取り込むことを防ぎます。890* **マーケットプレイス外:** シンボリックリンクはセキュリティのためスキップされます。これにより、プラグインがシステムパスなどの任意のホストファイルをキャッシュに取り込むことを防ぎます。
814 891
815`--plugin-dir` でインストールされたプラグイン、またはローカルパスからのプラグインの場合、プラグイン自体のディレクトリ内で解決されるシンボリックリンクのみが保持されます。その他はすべてスキップされます。892`--plugin-dir` でインストールされたプラグイン、ローカルパスから、または [コピーモードの `command` ソース](/docs/ja/plugin-marketplaces#copy-mode-and-link-mode)から、プラグイン独自のディレクトリ内で解決されるシンボリックリンクのみが保持されます。その他はすべてスキップされます。
816 893
817次のコマンドは、マーケットプレイスプラグイン内から兄弟プラグインで定義された共有スキルへのリンクを作成します。Windows では、昇格されたコマンドプロンプトから `mklink /D` を使用するか、開発者モードを有効にします:894次のコマンドは、マーケットプレイスプラグイン内から、兄弟プラグインで定義された共有スキルへのリンクを作成します。Windows では、昇格されたコマンドプロンプトから `mklink /D` を使用するか、開発者モードを有効にしてください。
818 895
819```bash theme={null}896```bash theme={null}
820ln -s ../../shared-plugin/skills/foo ./skills/foo897ln -s ../../shared-plugin/skills/foo ./skills/foo
821```898```
822 899
823これはキャッシングシステムのセキュリティ上の利点を維持しながら柔軟性を提供します。
824
825***900***
826 901
827<h2 id="plugin-directory-structure">902<h2 id="plugin-directory-structure">
832 標準プラグインレイアウト907 標準プラグインレイアウト
833</h3>908</h3>
834 909
835完全なプラグインは次の構造に従います:910完全なプラグインは以下の構造に従います:
836 911
837```text theme={null}912```text theme={null}
838enterprise-plugin/913enterprise-plugin/
844│ └── pdf-processor/919│ └── pdf-processor/
845│ ├── SKILL.md920│ ├── SKILL.md
846│ └── scripts/921│ └── scripts/
847├── commands/ # フラット .md ファイルとしての Skills922├── commands/ # Skills をフラット .md ファイルとして
848│ ├── status.md923│ ├── status.md
849│ └── logs.md924│ └── logs.md
850├── agents/ # Subagent 定義925├── agents/ # Subagent 定義
851│ ├── security-reviewer.md926│ ├── security-reviewer.md
852│ ├── performance-tester.md927│ ├── performance-tester.md
853│ └── compliance-checker.md928│ └── compliance-checker.md
929├── workflows/ # ワークフロースクリプト
930│ └── release-audit.js
854├── output-styles/ # 出力スタイル定義931├── output-styles/ # 出力スタイル定義
855│ └── terse.md932│ └── terse.md
856├── themes/ # カラーテーマ定義933├── themes/ # カラーテーマ定義
857│ └── dracula.json934│ └── dracula.json
858├── monitors/ # バックグラウンド monitor 設定935├── monitors/ # バックグラウンドモニター設定
859│ └── monitors.json936│ └── monitors.json
860├── hooks/ # Hook 設定937├── hooks/ # Hook 設定
861│ ├── hooks.json # メイン hook 設定938│ ├── hooks.json # メイン hook 設定
862│ └── security-hooks.json # 追加 hooks939│ └── security-hooks.json # 追加 hooks
863├── bin/ # PATH に追加されるプラグイン実行可能ファイル940├── bin/ # プラグイン実行ファイルが PATH に追加される
864│ └── my-tool # Bash tool で裸のコマンドとして呼び出し可能941│ └── my-tool # Bash tool で裸のコマンドとして呼び出し可能
865├── settings.json # プラグインのデフォルト設定942├── settings.json # プラグインのデフォルト設定
866├── .mcp.json # MCP サーバー定義943├── .mcp.json # MCP サーバー定義
874```951```
875 952
876<Warning>953<Warning>
877 `.claude-plugin/` ディレクトリは `plugin.json` ファイルを含みます。他のすべてのディレクトリ(commands/、agents/、skills/、output-styles/、themes/、monitors/、hooks/)は `.claude-plugin/` 内ではなく、プラグインルートにある必要があります。954 `.claude-plugin/` ディレクトリには `plugin.json` ファイルが含まれます。その他すべてのディレクトリ(commands/、agents/、skills/、workflows/、output-styles/、themes/、monitors/、hooks/)は `.claude-plugin/` 内ではなく、プラグインルートに配置する必要があります。
878</Warning>955</Warning>
879 956
880プラグインルートの `CLAUDE.md` ファイルはプロジェクトコンテキストとして読み込まれません。プラグインは CLAUDE.md ではなく、skills、agents、hooks を通じてコンテキストを提供します。Claude のコンテキストに読み込まれる命令を配布するには、[skill](#skills) に配置してください。957プラグインルートの `CLAUDE.md` ファイルはプロジェクトコンテキストとして読み込まれません。プラグインは CLAUDE.md ではなく、skills、agents、hooks を通じてコンテキストを提供します。Claude のコンテキストに読み込まれる命令を配布するには、[skill](#skills) に配置してください。
881 958
882<h3 id="file-locations-reference">959<h3 id="file-locations-reference">
883 ファイル場所リファレンス960 ファイルロケーション参照
884</h3>961</h3>
885 962
886| コンポーネント | デフォルト場所 | 目的 |963| コンポーネント | デフォルトロケーション | 目的 |
887| :-------------- | :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |964| :----------- | :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
888| **マニフェスト** | `.claude-plugin/plugin.json` | プラグインメタデータと設定(オプション) |965| **マニフェスト** | `.claude-plugin/plugin.json` | プラグインメタデータと設定(オプション) |
889| **Skills** | `skills/` | `<name>/SKILL.md` 構造の Skills |966| **Skills** | `skills/` | `<name>/SKILL.md` 構造の Skills |
890| **コマンド** | `commands/` | フラット Markdown ファイルとしての Skills。新しいプラグインには `skills/` を使用 |967| **コマンド** | `commands/` | フラット Markdown ファイルとしての Skills。新しいプラグインには `skills/` を使用してください |
891| **Agents** | `agents/` | Subagent Markdown ファイル |968| **Agents** | `agents/` | Subagent Markdown ファイル |
969| **ワークフロー** | `workflows/` | [ワークフロー](/docs/ja/workflows) スクリプトファイル |
892| **出力スタイル** | `output-styles/` | 出力スタイル定義 |970| **出力スタイル** | `output-styles/` | 出力スタイル定義 |
893| **テーマ** | `themes/` | カラーテーマ定義 |971| **テーマ** | `themes/` | カラーテーマ定義 |
894| **Hooks** | `hooks/hooks.json` | Hook 設定 |972| **Hooks** | `hooks/hooks.json` | Hook 設定 |
895| **MCP servers** | `.mcp.json` | MCP サーバー定義 |973| **MCP サーバー** | `.mcp.json` | MCP サーバー定義 |
896| **LSP servers** | `.lsp.json` | 言語サーバー設定 |974| **LSP サーバー** | `.lsp.json` | 言語サーバー設定 |
897| **Monitors** | `monitors/monitors.json` | バックグラウンド monitor 設定 |975| **モニター** | `monitors/monitors.json` | バックグラウンドモニター設定 |
898| **実行可能ファイル** | `bin/` | Bash tool の `PATH` に追加される実行可能ファイル。ここのファイルはプラグインが有効な場合、任意の Bash tool 呼び出しで裸のコマンドとして呼び出し可能 |976| **実行ファイル** | `bin/` | Bash tool の `PATH` に追加され、プラグインが有効な間は裸のコマンドとして呼び出し可能な実行ファイル。[claude.ai 組織設定を通じて配布するプラグイン](/docs/ja/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory)にはこのディレクトリを含めることはできません |
899| **設定** | `settings.json` | プラグインが有効になったときに適用されるデフォルト設定。現在、[`agent`](/docs/ja/sub-agents)および[`subagentStatusLine`](/docs/ja/statusline#subagent-status-lines)キーのみがサポートされています |977| **設定** | `settings.json` | プラグインが有効になったときに適用されるデフォルト設定。[`agent`](/docs/ja/sub-agents) と [`subagentStatusLine`](/docs/ja/statusline#subagent-status-lines) キーのみがサポートされています |
900 978
901***979***
902 980
904 CLI コマンドリファレンス982 CLI コマンドリファレンス
905</h2>983</h2>
906 984
907Claude Code は非対話的なプラグイン管理用の CLI コマンドを提供します。スクリプトと自動化に役立ちます。985Claude Code は、非対話的なプラグイン管理用の CLI コマンドを提供します。スクリプトとオートメーションに便利です。
908 986
909<h3 id="plugin-init">987<h3 id="plugin-init">
910 plugin init988 plugin init
911</h3>989</h3>
912 990
913`~/.claude/skills/<name>/` に新しいプラグインをスキャフォルドします。次の Claude Code セッションで、`<name>@skills-dir` として自動的に読み込まれ、インストール手順なしで `/plugin` と `claude plugin list` に表示されます。991`~/.claude/skills/<name>/` に新しいプラグインをスキャフォルドします。次の Claude Code セッションで、`<name>@skills-dir` として自動的に読み込まれ、`/plugin` と `claude plugin list` に表示されます。インストール手順は不要です。
914 992
915[Skills ディレクトリプラグイン](#skills-directory-plugins)のスコープと信頼要件を参照してください。993[スキルディレクトリプラグイン](#skills-directory-plugins)のスコープと信頼要件を参照してください。
916 994
917```bash theme={null}995```bash theme={null}
918claude plugin init <name> [options]996claude plugin init <name> [options]
920 998
921**引数:**999**引数:**
922 1000
923* `<name>`: プラグイン名。skill 名前空間と `~/.claude/skills/` の下のディレクトリ名になるため、スペースやパス区切り文字を含むことはできません。1001* `<name>`: プラグイン名。スキル名前空間と `~/.claude/skills/` の下のディレクトリ名になるため、スペースやパス区切り文字を含めることはできません。
924 1002
925**オプション:**1003**オプション:**
926 1004
927| オプション | 説明 | デフォルト |1005| オプション | 説明 | デフォルト |
928| :----------------------- | :--------------------------------------------------------------------------------------- | :---------------------- |1006| :----------------------- | :------------------------------------------------------------------------------------------ | :---------------------- |
929| `--description <text>` | マニフェスト説明 | |1007| `--description <text>` | マニフェストの説明 | |
930| `--author <name>` | 著者名 | `git config user.name` |1008| `--author <name>` | 作成者名 | `git config user.name` |
931| `--author-email <email>` | 著者メール | `git config user.email` |1009| `--author-email <email>` | 作成者メール | `git config user.email` |
932| `--with <components...>` | コンポーネントフォルダもスキャフォルド。有効な値: `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style`、`channel` | |1010| `--with <components...>` | コンポーネントフォルダもスキャフォルドします。有効な値: `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style`、`channel` | |
933| `-f, --force` | ターゲットの既存 `.claude-plugin/` を上書き | |1011| `-f, --force` | ターゲットの既存 `.claude-plugin/` を上書きします | |
934| `-h, --help` | コマンドのヘルプを表示 | |1012| `-h, --help` | コマンドのヘルプを表示 | |
935 1013
936**エイリアス:** `new`1014**エイリアス:** `new`
937 1015
938各 `--with` 値は、そのコンポーネントのスターターファイルを追加し、編集準備ができています:1016各 `--with` 値は、そのコンポーネント用のスターターファイルを追加し、編集可能な状態にします:
939 1017
940| コンポーネント | スキャフォルドされるもの |1018| コンポーネント | スキャフォルドされるもの |
941| :------------- | :-------------------------------------------------------------------------------------- |1019| :------------- | :-------------------------------------------------------------------------------------- |
942| `skills` | デフォルトの横に追加の名前空間 `<name>:example` skill |1020| `skills` | デフォルトのスキルと並んで、追加の名前空間付き `<name>:example` スキル |
943| `agents` | `agents/` subagent 定義 |1021| `agents` | `agents/` サブエージェント定義 |
944| `hooks` | サンプルイベントハンドラー付き `hooks/hooks.json` |1022| `hooks` | サンプルイベントハンドラを含む `hooks/hooks.json` |
945| `mcp` | HTTP と stdio サーバーの例を含む `.mcp.json` |1023| `mcp` | HTTP と stdio サーバーの例を含む `.mcp.json` |
946| `lsp` | `.lsp.json` 言語サーバーの例 |1024| `lsp` | `.lsp.json` 言語サーバーの例 |
947| `output-style` | プラグインが有効な場合に自動的に適用される `output-styles/<name>.md` |1025| `output-style` | プラグインが有効な間に自動的に適用される `output-styles/<name>.md` |
948| `channel` | MCP ベースの[チャネル](/docs/ja/channels): stdio サーバー(`server.ts`)、その `.mcp.json`、および `package.json` |1026| `channel` | MCP ベースの[チャネル](/docs/ja/channels): stdio サーバー(`server.ts`)、その `.mcp.json`、および `package.json` |
949 1027
950スキャフォルドされたプラグインはマーケットプレイスではなく `@skills-dir` ソースを使用します。管理者は `strictKnownMarketplaces` でこのソースをブロックするか、[管理設定](/docs/ja/plugin-marketplaces#managed-marketplace-restrictions)の `blockedMarketplaces` に `{"source": "skills-dir"}` を追加することでブロックできます。ブロックされると、`plugin init` は書き込み前に失敗します。1028スキャフォルドされたプラグインは、マーケットプレイスではなく `@skills-dir` ソースを使用します。管理者は `strictKnownMarketplaces` でこのソースをブロックするか、[管理設定](/docs/ja/plugin-marketplaces#managed-marketplace-restrictions)の `blockedMarketplaces` に `{"source": "skills-dir"}` を追加することでブロックできます。ブロックされている場合、`plugin init` は書き込み前に失敗します。
951 1029
952**例:**1030**例:**
953 1031
955# 最小限のプラグインをスキャフォルド1033# 最小限のプラグインをスキャフォルド
956claude plugin init my-helper1034claude plugin init my-helper
957 1035
958# skill と hook フォルダでスキャフォルド1036# スキルとフックフォルダを含めてスキャフォルド
959claude plugin init my-helper --with skills hooks1037claude plugin init my-helper --with skills hooks
960 1038
961# 既存のスキャフォルドを上書き1039# 既存のスキャフォルドを上書き
974 1052
975**引数:**1053**引数:**
976 1054
977* `<plugin>`: プラグイン名または特定のマーケットプレイス用の `plugin-name@marketplace-name`1055* `<plugin>`: プラグイン名、または特定のマーケットプレイス用の `plugin-name@marketplace-name`
978 1056
979**オプション:**1057**オプション:**
980 1058
981| オプション | 説明 | デフォルト |1059| オプション | 説明 | デフォルト |
982| :-------------------- | :--------------------------------------- | :----- |1060| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |
983| `-s, --scope <scope>` | インストールスコープ: `user`、`project`、または `local` | `user` |1061| `-s, --scope <scope>` | インストールスコープ: `user`、`project`、または `local` | `user` |
1062| `--config <key=value>` | プラグインのマニフェストで宣言された[`userConfig`](#user-configuration)オプションを設定します。複数のオプションを設定するにはフラグを繰り返します | |
1063| `-y, --yes` | 確認プロンプトなしで、プラグインのマーケットプレイスが宣言するコマンドを受け入れます: [`command` ソース](/docs/ja/plugin-marketplaces#command-sources)を持つプラグインを生成するコマンド、またはアーカイブダウンロードを認証する[`headersHelper`](/docs/ja/plugin-marketplaces#authenticate-archive-downloads)。`headersHelper` を受け入れるには Claude Code v2.1.238 以降が必要です。Claude Code はまずコマンドを出力します。stdin または stdout が TTY でない場合は必須です。Claude Code セッション内では効果がないため、独自のターミナルからコマンドを実行してください | |
984| `-h, --help` | コマンドのヘルプを表示 | |1064| `-h, --help` | コマンドのヘルプを表示 | |
985 1065
986スコープはインストールされたプラグインが追加される設定ファイルを決定します。たとえば、`--scope project` は `.claude/settings.json` の `enabledPlugins` に書き込み、プロジェクトリポジトリをクローンした全員がプラグインを利用できるようにします。1066スコープは、インストールされたプラグインが追加される設定ファイルを決定します。たとえば、`--scope project` は .claude/settings.json の `enabledPlugins` に書き込み、プロジェクトリポジトリをクローンした全員がプラグインを利用できるようにします。
987 1067
988**例:**1068**例:**
989 1069
994# プロジェクトスコープにインストール(チームと共有)1074# プロジェクトスコープにインストール(チームと共有)
995claude plugin install formatter@my-marketplace --scope project1075claude plugin install formatter@my-marketplace --scope project
996 1076
997# ローカルスコープにインストール(gitignored)1077# ローカルスコープにインストール(チームと共有しない)
998claude plugin install formatter@my-marketplace --scope local1078claude plugin install formatter@my-marketplace --scope local
999```1079```
1000 1080
1010 1090
1011**引数:**1091**引数:**
1012 1092
1013* `<plugin>`: プラグイン名または `plugin-name@marketplace-name`1093* `<plugin>`: プラグイン名、または `plugin-name@marketplace-name`
1014 1094
1015**オプション:**1095**オプション:**
1016 1096
1017| オプション | 説明 | デフォルト |1097| オプション | 説明 | デフォルト |
1018| :-------------------- | :----------------------------------------------------------------------- | :----- |1098| :-------------------- | :----------------------------------------------------------------- | :----- |
1019| `-s, --scope <scope>` | スコープからアンインストール: `user`、`project`、または `local` | `user` |1099| `-s, --scope <scope>` | スコープからアンインストール: `user`、`project`、または `local` | `user` |
1020| `--keep-data` | プラグインの[永続データディレクトリ](#persistent-data-directory)を保持 | |1100| `--keep-data` | プラグインの[永続データディレクトリ](#persistent-data-directory)を保持します | |
1021| `--prune` | 他のプラグインが必要としない自動インストール依存関係も削除します。[plugin prune](#plugin-prune) を参照してください | |1101| `--prune` | 他のプラグインが必要としない自動インストール依存関係も削除します。[plugin prune](#plugin-prune) を参照 | |
1022| `-y, --yes` | `--prune` 確認プロンプトをスキップします。stdin が TTY でない場合は必須です | |1102| `-y, --yes` | `--prune` 確認プロンプトをスキップします。stdin または stdout が TTY でない場合は必須 | |
1023| `-h, --help` | コマンドのヘルプを表示 | |1103| `-h, --help` | コマンドのヘルプを表示 | |
1024 1104
1025**エイリアス:** `remove`、`rm`1105**エイリアス:** `remove`、`rm`
1026 1106
1027デフォルトでは、最後に残っているスコープからアンインストールすると、プラグインの `${CLAUDE_PLUGIN_DATA}` ディレクトリも削除されます。たとえば、新しいバージョンをテストした後に再インストールする場合は、`--keep-data` を使用して保持します。1107デフォルトでは、最後に残ったスコープからアンインストールすると、プラグインの `${CLAUDE_PLUGIN_DATA}` ディレクトリも削除されます。新しいバージョンをテストした後に再インストールする場合など、保持するには `--keep-data` を使用します。
1108
1109<Note>
1110 異なるマーケットプレイスからインストールされたプラグインが同じ名前を共有する場合、`plugin-name@marketplace-name` 形式は指定されたマーケットプレイスからのプラグインのみをアンインストールします。v2.1.212 より前は、修飾形式は異なるマーケットプレイスから同じ名前のプラグインにマッチしてアンインストールする可能性がありました。
1111</Note>
1028 1112
1029<h3 id="plugin-prune">1113<h3 id="plugin-prune">
1030 plugin prune1114 plugin prune
1031</h3>1115</h3>
1032 1116
1033インストール済みプラグインによって不要になった自動インストール プラグイン依存関係を削除します。Claude Code が別のプラグインの [`dependencies`](/docs/ja/plugin-dependencies) フィールドを満たすために取得した依存関係は削除されます。直接インストールしたプラグインは決して削除されません。1117インストール済みプラグインによって不要になった自動インストール依存関係を削除します。Claude Code が別のプラグインの[`dependencies`](/docs/ja/plugin-dependencies)フィールドを満たすために取得した依存関係は削除されます。直接インストールしたプラグインは決して削除されません。
1034 1118
1035```bash theme={null}1119```bash theme={null}
1036claude plugin prune [options]1120claude plugin prune [options]
1039**オプション:**1123**オプション:**
1040 1124
1041| オプション | 説明 | デフォルト |1125| オプション | 説明 | デフォルト |
1042| :-------------------- | :-------------------------------------- | :----- |1126| :-------------------- | :---------------------------------------------- | :----- |
1043| `-s, --scope <scope>` | スコープでプルーン: `user`、`project`、または `local` | `user` |1127| `-s, --scope <scope>` | スコープでプルーン: `user`、`project`、または `local` | `user` |
1044| `--dry-run` | 削除されるものをリストアップします。実際には削除しません | |1128| `--dry-run` | 削除せずに削除されるものをリストします | |
1045| `-y, --yes` | 確認プロンプトをスキップします。stdin が TTY でない場合は必須です | |1129| `-y, --yes` | 確認プロンプトをスキップします。stdin または stdout が TTY でない場合は必須 | |
1046| `-h, --help` | コマンドのヘルプを表示 | |1130| `-h, --help` | コマンドのヘルプを表示 | |
1047 1131
1048**エイリアス:** `autoremove`1132**エイリアス:** `autoremove`
1049 1133
1050このコマンドは孤立した依存関係をリストアップし、削除する前に確認を求めます。プラグインを削除し、その依存関係をクリーンアップする場合は、1 ステップで `claude plugin uninstall <plugin> --prune` を実行します。1134コマンドは孤立した依存関係をリストし、削除前に確認を求めます。プラグインを削除し、その依存関係をワンステップでクリーンアップするには、`claude plugin uninstall <plugin> --prune` を実行します。
1051
1052<Note>
1053 `claude plugin prune` には Claude Code v2.1.121 以降が必要です。
1054</Note>
1055 1135
1056<h3 id="plugin-enable">1136<h3 id="plugin-enable">
1057 plugin enable1137 plugin enable
1058</h3>1138</h3>
1059 1139
1060無効なプラグインを有効にします。プラグインが [dependencies](/docs/ja/plugin-dependencies) を宣言している場合、Claude Code はそれらを同じスコープで推移的に有効にし、依存関係がインストールされていない場合はコマンドが失敗します。1140無効なプラグインを有効にします。ターゲットがマーケットプレイスからインストールされ、[依存関係](/docs/ja/plugin-dependencies)を宣言している場合、Claude Code は同じスコープで推移的にそれらを有効にします。コマンドは[依存関係を持つプラグインを有効または無効にする](/docs/ja/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)がリストする条件下で失敗します。
1061 1141
1062```bash theme={null}1142```bash theme={null}
1063claude plugin enable <plugin> [options]1143claude plugin enable <plugin> [options]
1065 1145
1066**引数:**1146**引数:**
1067 1147
1068* `<plugin>`: プラグイン名または `plugin-name@marketplace-name`1148* `<plugin>`: プラグイン名、または `plugin-name@marketplace-name`
1069 1149
1070**オプション:**1150**オプション:**
1071 1151
1072| オプション | 説明 | デフォルト |1152| オプション | 説明 | デフォルト |
1073| :-------------------- | :-------------------------------------- | :----- |1153| :-------------------- | :-------------------------------------------------------------------------------------- | :---- |
1074| `-s, --scope <scope>` | 有効にするスコープ: `user`、`project`、または `local` | `user` |1154| `-s, --scope <scope>` | 有効にするスコープ: `user`、`project`、または `local`。省略した場合、Claude Code はプラグインがインストールされているスコープを検出します | 自動検出 |
1075| `-h, --help` | コマンドのヘルプを表示 | |1155| `-h, --help` | コマンドのヘルプを表示 | |
1076 1156
1077<h3 id="plugin-disable">1157<h3 id="plugin-disable">
1078 plugin disable1158 plugin disable
1079</h3>1159</h3>
1080 1160
1081プラグインをアンインストールせずに無効にします。別の有効なプラグインが [ターゲットに依存している](/docs/ja/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies) 場合は失敗します。エラーメッセージには、最初にすべての依存プラグインを無効にするチェーンコマンドが含まれます。1161プラグインをアンインストールせずに無効にします。ターゲットがマーケットプレイスからインストールされている場合、別の有効なプラグインが[それに依存](/docs/ja/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)している場合、コマンドは失敗します。エラーメッセージには、最初にすべての依存プラグインを無効にするチェーンコマンドが含まれます。
1082 1162
1083```bash theme={null}1163```bash theme={null}
1084claude plugin disable <plugin> [options]1164claude plugin disable [plugin] [options]
1085```1165```
1086 1166
1087**引数:**1167**引数:**
1088 1168
1089* `<plugin>`: プラグイン名または `plugin-name@marketplace-name`1169* `[plugin]`: プラグイン名、または `plugin-name@marketplace-name`。`--all` を使用する場合はオプション
1090 1170
1091**オプション:**1171**オプション:**
1092 1172
1093| オプション | 説明 | デフォルト |1173| オプション | 説明 | デフォルト |
1094| :-------------------- | :-------------------------------------- | :----- |1174| :-------------------- | :-------------------------------------------------------------------------------------- | :---- |
1095| `-s, --scope <scope>` | 無効にするスコープ: `user`、`project`、または `local` | `user` |1175| `-a, --all` | すべての有効なプラグインを無効にします。`--scope` と組み合わせることはできません | |
1176| `-s, --scope <scope>` | 無効にするスコープ: `user`、`project`、または `local`。省略した場合、Claude Code はプラグインがインストールされているスコープを検出します | 自動検出 |
1096| `-h, --help` | コマンドのヘルプを表示 | |1177| `-h, --help` | コマンドのヘルプを表示 | |
1097 1178
1098<h3 id="plugin-update">1179<h3 id="plugin-update">
1107 1188
1108**引数:**1189**引数:**
1109 1190
1110* `<plugin>`: プラグイン名または `plugin-name@marketplace-name`1191* `<plugin>`: プラグイン名、または `plugin-name@marketplace-name`
1111 1192
1112**オプション:**1193**オプション:**
1113 1194
1114| オプション | 説明 | デフォルト |1195| オプション | 説明 | デフォルト |
1115| :-------------------- | :----------------------------------------------- | :----- |1196| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |
1116| `-s, --scope <scope>` | 更新するスコープ: `user`、`project`、`local`、または `managed` | `user` |1197| `-s, --scope <scope>` | 更新するスコープ: `user`、`project`、`local`、または `managed` | `user` |
1198| `-y, --yes` | 確認プロンプトなしで、プラグインのマーケットプレイスが宣言するコマンドを受け入れます: [`command` ソース](/docs/ja/plugin-marketplaces#command-sources)を持つプラグインを生成するコマンド、またはアーカイブダウンロードを認証する[`headersHelper`](/docs/ja/plugin-marketplaces#authenticate-archive-downloads)。`headersHelper` を受け入れるには Claude Code v2.1.238 以降が必要です。Claude Code はまずコマンドを出力します。stdin または stdout が TTY でない場合は必須です。Claude Code セッション内では効果がないため、独自のターミナルからコマンドを実行してください | |
1117| `-h, --help` | コマンドのヘルプを表示 | |1199| `-h, --help` | コマンドのヘルプを表示 | |
1118 1200
1201<Note>
1202 Claude Code は、インストール済みプラグインに対して修飾されていないプラグイン名を解決します。異なるマーケットプレイスからインストールされたプラグインが名前を共有する場合、Claude Code は更新を拒否し、代わりに実行する修飾 `plugin-name@marketplace-name` コマンドをリストします。v2.1.246 より前は、Claude Code は修飾形式のみを受け入れ、修飾されていない名前を見つからないものとして拒否していました。
1203</Note>
1204
1119***1205***
1120 1206
1121<h3 id="plugin-list">1207<h3 id="plugin-list">
1122 plugin list1208 plugin list
1123</h3>1209</h3>
1124 1210
1125インストール済みプラグインをバージョン、ソースマーケットプレイス、有効状態とともにリストします。1211インストール済みプラグインをバージョン、ソースマーケットプレイス、および有効状態と共にリストします。
1126 1212
1127```bash theme={null}1213```bash theme={null}
1128claude plugin list [options]1214claude plugin list [options]
1131**オプション:**1217**オプション:**
1132 1218
1133| オプション | 説明 | デフォルト |1219| オプション | 説明 | デフォルト |
1134| :------------ | :---------------------------------------- | :---- |1220| :------------ | :-------------------------------------- | :---- |
1135| `--json` | JSON として出力 | |1221| `--json` | JSON として出力 | |
1136| `--available` | マーケットプレイスから利用可能なプラグインを含めます。`--json` が必要です | |1222| `--available` | マーケットプレイスから利用可能なプラグインを含めます。`--json` が必須 | |
1137| `-h, --help` | コマンドのヘルプを表示 | |1223| `-h, --help` | コマンドのヘルプを表示 | |
1138 1224
1139対話型セッション内では、`/plugin list` は同じリストをインラインで出力します。対話型フォームは `--enabled` または `--disabled` を受け入れて、その状態のプラグインのみを表示し、`ls` を `list` の短縮形として使用できます。1225対話的セッション内では、`/plugin list` は同様のリストをインラインで出力しますが、マーケットプレイスからインストールされたプラグインのみをカバーします:
1226
1227* スキルディレクトリから読み込まれたプラグインは `/plugin` インターフェイスと `claude plugin list` に表示されますが、インラインの `/plugin list` 出力には表示されません。
1228* Claude Code v2.1.239 以降では、[claude.ai から同期されたプラグイン](#synced-plugins)は、同期されたセッションがそれらをダウンロードした環境で `claude plugin list` を実行するときに表示されます。インラインの `/plugin list` 出力には表示されません。
1229* `--plugin-dir` または `--plugin-url` でセッション用に読み込まれたプラグインは `/plugin` インターフェイスに表示され、`claude --plugin-dir <dir> plugin list` のように同じフラグがサブコマンドの前にある場合にのみ `claude plugin list` に表示されます。フラグ名のみがそれらの場所を指定するため、修飾されていない `claude plugin list` は同期されたプラグインとスキルディレクトリプラグインとは異なり、Claude Code がスキャンする固定ディレクトリを持たないため、それらを見つけることができません。
1230
1231対話的形式は、`--enabled` または `--disabled` を受け入れてそのスタイルのプラグインのみを表示し、`ls` を `list` の短縮形として受け入れます。
1140 1232
1141<h3 id="plugin-details">1233<h3 id="plugin-details">
1142 plugin details1234 plugin details
1143</h3>1235</h3>
1144 1236
1145プラグインのコンポーネントインベントリと予想トークンコストを表示します。出力には、プラグインが提供するすべてのコンポーネントがリストアップされ、Skills、Agents、Hooks、MCP サーバー、LSP サーバーとしてグループ化され、各セッションに追加されるトークン数の推定値が表示されます。Skills グループには `skills/` と `commands/` エントリの両方が含まれます。1237プラグインのコンポーネント在庫と予想トークンコストを表示します。出力は、プラグインが提供するすべてのコンポーネントをスキル、エージェント、フック、MCP サーバー、および LSP サーバーとしてグループ化し、各セッションに追加するトークン数の推定値を含めてリストします。スキルグループには `skills/` と `commands/` エントリの両方が含まれます。
1146 1238
1147```bash theme={null}1239```bash theme={null}
1148claude plugin details <name>1240claude plugin details <name>
1150 1242
1151**引数:**1243**引数:**
1152 1244
1153* `<name>`: プラグイン名または `plugin-name@marketplace-name`1245* `<name>`: プラグイン名、または `plugin-name@marketplace-name`
1154 1246
1155**オプション:**1247**オプション:**
1156 1248
1158| :----------- | :---------- | :---- |1250| :----------- | :---------- | :---- |
1159| `-h, --help` | コマンドのヘルプを表示 | |1251| `-h, --help` | コマンドのヘルプを表示 | |
1160 1252
1161出力には、各コンポーネントの 2 つのコスト数値が表示されます:1253出力は各コンポーネントの 2 つのコスト数値を表示します:
1162 1254
1163* **Always-on:** スキルの説明、エージェントの説明、コマンド名など、プラグインのリスティングテキストによってすべてのセッションに追加されるトークン。コンポーネントが実行されるかどうかに関係なく追加されます。1255* **常時オン:** スキル説明、エージェント説明、コマンド名など、プラグインのリストテキストによってすべてのセッションに追加されるトークン。コンポーネントが発火するかどうかに関係なく。
1164* **On-invoke:** コンポーネントが実行されるときのコンポーネントのコスト。プラグイン全体ではなくコンポーネントごとに表示されます。これは、典型的なセッションではコンポーネントのサブセットのみを呼び出すためです。1256* **呼び出し時:** コンポーネントが発火するときにコンポーネントがコストするトークン。プラグイン全体ではなくコンポーネントごとに表示されます。典型的なセッションはコンポーネントのサブセットのみを呼び出すため。
1165 1257
1166この例は、2 つのスキルを持つプラグインの出力がどのように見えるかを示しています:1258この例は、2 つのスキルを持つプラグインの出力がどのように見えるかを示しています:
1167 1259
1173Component inventory1265Component inventory
1174 Skills (2) scan-dependencies, review-changes1266 Skills (2) scan-dependencies, review-changes
1175 Agents (0)1267 Agents (0)
1176 Hooks (1) (harness-only — no model context cost)1268 Hooks (1) SessionStart (harness-only — no model context cost)
1177 MCP servers (0)1269 MCP servers (0)
1178 LSP servers (0)1270 LSP servers (0)
1179 1271
1189 Token counts are estimates and may differ from actual usage.1281 Token counts are estimates and may differ from actual usage.
1190```1282```
1191 1283
1192Always-on の合計は、アクティブなモデルの `count_tokens` API を使用して計算されます。コンポーネントごとの数値は、その合計から比例的にスケーリングされます。API に到達できない場合、コマンドは文字ベースの推定値にフォールバックします。1284常時オンの合計は、アクティブなモデルの `count_tokens` API を介して計算されます。コンポーネントごとの数値はその合計から比例的にスケーリングされます。API に到達できない場合、コマンドは文字ベースの推定値にフォールバックします。
1285
1286<h3 id="plugin-validate">
1287 plugin validate
1288</h3>
1289
1290公開前にプラグインまたはマーケットプレイスの構文とスキーマエラーをチェックします。
1291
1292検証が成功すると終了コード 0、失敗すると 1、検証実行自体が失敗した場合(渡したパスが読み取り不可能な場合など)は 2 で終了します。
1293
1294```bash theme={null}
1295claude plugin validate <path> [options]
1296```
1297
1298**引数:**
1299
1300* `<path>`: プラグインディレクトリまたはマーケットプレイスディレクトリへのパス。プラグイン実行がカバーするファイルについては、[マニフェストなしでプラグインまたはディレクトリを検証](/docs/ja/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)を参照してください。
1301
1302**オプション:**
1303
1304| オプション | 説明 | デフォルト |
1305| :----------- | :------------------------------------------------------------------------------------------------- | :---- |
1306| `--strict` | 警告をエラーとして扱い、それらで終了コード 1 で終了します。CI で使用して、[認識されないフィールド](#unrecognized-fields)など、ランタイムが許容する問題をキャッチします | |
1307| `--json` | 検証レポートを同じ終了コードを持つ 1 つの JSON オブジェクトとして出力します。Claude Code v2.1.259 以降が必須 | |
1308| `-h, --help` | コマンドのヘルプを表示 | |
1309
1310`--json` を使用すると、Claude Code はレポートを stdout に 1 つの JSON オブジェクトとして書き込み、これらのトップレベルフィールドを持ちます:
1311
1312* `success`: 終了コードが与える同じ判定
1313* `strict`: 実行が警告をエラーとして扱ったかどうか
1314* `target`: Claude Code が検証した解決されたパス
1315* `manifest`: マニフェスト自体の結果、または[マニフェストなしの実行](/docs/ja/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)の場合は `null`
1316* `contents`: ファイルごとの結果。各結果は `file` を指定し、`errors`、`warnings`、および `notes` 配列を含みます
1317
1318終了コード 2 では、コマンドは stdout に何も書き込みません。エラーメッセージは stderr に送られます。
1319
1320対話的セッション内では、`/plugin validate <path>` は同じチェックをインラインで実行します。
1193 1321
1194<h3 id="plugin-tag">1322<h3 id="plugin-tag">
1195 plugin tag1323 plugin tag
1196</h3>1324</h3>
1197 1325
1198現在のディレクトリ内のプラグインのリリース git タグを作成します。プラグインのフォルダ内から実行してください。[プラグインリリースにタグを付ける](/docs/ja/plugin-dependencies#tag-plugin-releases-for-version-resolution)を参照してください。1326プラグインのリリース git タグを作成します。デフォルトではコマンドは現在のディレクトリのプラグインにタグを付けます。別の場所のプラグインにタグを付けるにはパスを渡します。[プラグインリリースにタグを付ける](/docs/ja/plugin-dependencies#tag-plugin-releases-for-version-resolution)を参照してください。
1199 1327
1200```bash theme={null}1328```bash theme={null}
1201claude plugin tag [options]1329claude plugin tag [path] [options]
1202```1330```
1203 1331
1332**引数:**
1333
1334* `[path]`: プラグインディレクトリへのパス。デフォルトは現在のディレクトリです。
1335
1204**オプション:**1336**オプション:**
1205 1337
1206| オプション | 説明 | デフォルト |1338| オプション | 説明 | デフォルト |
1207| :------------ | :-------------------------------------- | :---- |1339| :-------------------- | :------------------------------------------- | :------- |
1208| `--push` | タグを作成した後、リモートにプッシュします | |1340| `--push` | タグを作成した後、リモートにプッシュします | |
1209| `--dry-run` | タグを作成せずに、タグ付けされる内容を出力します | |1341| `--dry-run` | タグを作成せずにタグ付けされるものを出力します | |
1210| `-f, --force` | ワーキングツリーがダーティであるか、タグが既に存在する場合でもタグを作成します | |1342| `-f, --force` | ワーキングツリーがダーティであるか、タグが既に存在する場合でもタグを作成します | |
1343| `-m, --message <msg>` | タグアノテーションメッセージ。バージョンのプレースホルダーとして `%s` を使用します | |
1344| `--remote <name>` | `--push` でプッシュするリモート | `origin` |
1211| `-h, --help` | コマンドのヘルプを表示 | |1345| `-h, --help` | コマンドのヘルプを表示 | |
1212 1346
1213***1347***
1220 デバッグコマンド1354 デバッグコマンド
1221</h3>1355</h3>
1222 1356
1223`claude --debug` を使用してプラグイン読み込みの詳細を確認します:1357`claude --debug` を使用してプラグインの読み込み詳細を確認します:
1224 1358
1225これは以下を表示します:1359これにより以下が表示されます:
1226 1360
1227* どのプラグインが読み込まれているか1361* どのプラグインが読み込まれているか
1228* プラグインマニフェストのエラー1362* プラグインマニフェストのエラー
1229* Skill、agent、hook 登録1363* Skill、agent、hook の登録
1230* MCP サーバー初期化1364* MCP サーバーの初期化
1231 1365
1232<h3 id="common-issues">1366<h3 id="common-issues">
1233 一般的な問題1367 よくある問題
1234</h3>1368</h3>
1235 1369
1236| 問題 | 原因 | 解決策 |1370| 問題 | 原因 | 解決策 |
1237| :---------------------------------- | :-------------------------- | :----------------------------------------------------------------------------------------------------------------------------- |1371| :---------------------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1238| プラグインが読み込まれない | 無効な `plugin.json` | `claude plugin validate` または `/plugin validate` で `plugin.json`、skill/agent/command frontmatter、`hooks/hooks.json` の構文とスキーマを確認 |1372| プラグインが読み込まれない | 無効な `plugin.json` | `claude plugin validate ./my-plugin` または `/plugin validate ./my-plugin` を実行します。ここで `./my-plugin` はプラグインディレクトリです。`plugin.json`、`hooks/hooks.json`、およびプラグインのデフォルトディレクトリ内の skill、agent、command のフロントマターの構文とスキーマエラーをチェックします。実行内容については [プラグインまたはマニフェストなしのディレクトリを検証する](/docs/ja/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) を参照してください |
1239| Skills が表示されない | ディレクトリ構造が間違っている | `skills/` または `commands/` がプラグインルートにあることを確認。`.claude-plugin/` 内ではない |1373| Skill が表示されない | ディレクトリ構造が間違っている | `skills/` または `commands/` がプラグインルートにあることを確認します。`.claude-plugin/` 内にはありません |
1240| Hooks が発火しない | スクリプトが実行可能でない | `chmod +x script.sh` を実行 |1374| Hook が発火しない | スクリプトが実行可能でない | `chmod +x script.sh` を実行します |
1241| MCP サーバーが失敗 | `${CLAUDE_PLUGIN_ROOT}` が不足 | すべてのプラグインパスに変数を使用 |1375| MCP サーバーが失敗する | `${CLAUDE_PLUGIN_ROOT}` が見つからない | すべてのプラグインパスに変数を使用します |
1242| パスエラー | 絶対パスが使用されている | すべてのパスは相対的で `./` で始まる必要があります |1376| パスエラー | 絶対パスが使用されている | パスを相対パスにします。`./` で始まります。[パス動作ルール](#path-behavior-rules) を参照してください。これは `skills` フィールドの `"."` 例外をカバーしています |
1243| LSP `Executable not found in $PATH` | 言語サーバーがインストールされていない | バイナリをインストール(例: `npm install -g typescript-language-server typescript`) |1377| LSP `Executable not found in $PATH` | 言語サーバーがインストールされていない | バイナリをインストールします(例:`npm install -g typescript-language-server typescript`) |
1244 1378
1245<h3 id="example-error-messages">1379<h3 id="example-error-messages">
1246 エラーメッセージの例1380 エラーメッセージの例
1247</h3>1381</h3>
1248 1382
1249**マニフェスト検証エラー**:1383**マニフェスト検証エラー**:
1250 1384
1251* `Invalid JSON syntax: Unexpected token } in JSON at position 142`: コンマの欠落、余分なコンマ、またはクォートされていない文字列を確認1385* `Invalid JSON syntax: Unexpected token } in JSON at position 142`:コンマの欠落、余分なコンマ、またはクォートされていない文字列がないか確認してください
1252* `Plugin has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Required`: 必須フィールドが不足1386* `Plugin <name> has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Invalid input: expected string, received undefined`:必須フィールドが見つかりません
1253* `Plugin has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...`: JSON 構文エラー1387* `Plugin <name> has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...`:JSON 構文エラー。v2.1.246 より前では、Claude Code は UTF-8 で保存され、バイト順マーク(BOM)が先頭にある `plugin.json` に対してもこのエラーを生成していました。JSON が有効な場合でも同様です。
1254 1388
1255**プラグイン読み込みエラー**:1389**プラグイン読み込みエラー**:
1256 1390
1257* `Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.`: コマンドパスが存在するが有効なコマンドファイルが含まれていない1391* `Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.`:コマンドパスは存在しますが、有効なコマンドファイルが含まれていません
1258* `Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.`: marketplace.json の `source` パスが存在しないディレクトリを指している1392* `Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.`:marketplace.json の `source` パスが存在しないディレクトリを指しています
1259* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`: 重複するコンポーネント定義を削除するか、marketplace エントリから `strict: false` を削除1393* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`:重複するコンポーネント定義を削除するか、marketplace エントリから `strict: false` を削除します
1260 1394
1261<h3 id="hook-troubleshooting">1395<h3 id="hook-troubleshooting">
1262 Hook トラブルシューティング1396 Hook のトラブルシューティング
1263</h3>1397</h3>
1264 1398
1265**Hook スクリプトが実行されない**:1399**Hook スクリプトが実行されない**:
1266 1400
12671. スクリプトが実行可能であることを確認: `chmod +x ./scripts/your-script.sh`14011. スクリプトが実行可能であることを確認します:`chmod +x ./scripts/your-script.sh`
12682. shebang 行を確認: 最初の行は `#!/bin/bash` または `#!/usr/bin/env bash` である必要があります14022. shebang 行を確認します:最初の行は `#!/bin/bash` または `#!/usr/bin/env bash` である必要があります
12693. パスが `${CLAUDE_PLUGIN_ROOT}` を使用していることを確認: `"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/your-script.sh"`14033. パスが `${CLAUDE_PLUGIN_ROOT}` を使用していることを確認します:`"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/your-script.sh"`
12704. スクリプトを手動でテスト: `./scripts/your-script.sh`14044. スクリプトを手動でテストします:`./scripts/your-script.sh`
1271 1405
1272**Hook が予期されたイベントでトリガーされない**:1406**Hook が予期されたイベントでトリガーされない**:
1273 1407
12741. イベント名が正しいことを確認(大文字小文字を区別): `PostToolUse`、`postToolUse` ではない14081. イベント名が正しいことを確認します(大文字と小文字を区別):`postToolUse` ではなく `PostToolUse`
12752. マッチャーパターンがツールと一致することを確認: ファイル操作の場合 `"matcher": "Write|Edit"`14092. マッチャーパターンがツールと一致することを確認します:ファイル操作の場合は `"matcher": "Write|Edit"`
12763. hook タイプが有効であることを確認: `command`、`http`、`mcp_tool`、`prompt`、または `agent`14103. hook タイプが有効であることを確認します:`command`、`http`、`mcp_tool`、`prompt`、または `agent`
1277 1411
1278<h3 id="mcp-server-troubleshooting">1412<h3 id="mcp-server-troubleshooting">
1279 MCP サーバートラブルシューティング1413 MCP サーバーのトラブルシューティング
1280</h3>1414</h3>
1281 1415
1282**サーバーが起動しない**:1416**サーバーが起動しない**:
1283 1417
12841. コマンドが存在し、実行可能であることを確認14181. コマンドが存在し、実行可能であることを確認します
12852. すべてのパスが `${CLAUDE_PLUGIN_ROOT}` 変数を使用していることを確認14192. すべてのパスが `${CLAUDE_PLUGIN_ROOT}` 変数を使用していることを確認します
12863. MCP サーバーログを確認: `claude --debug` は初期化エラーを表示14203. MCP サーバーログを確認します:`claude --debug` は初期化エラーを表示します
12874. Claude Code の外部でサーバーを手動でテスト14214. Claude Code の外部でサーバーを手動でテストします
1288 1422
1289**サーバーツールが表示されない**:1423**サーバーツールが表示されない**:
1290 1424
12911. サーバーが `.mcp.json` または `plugin.json` で正しく設定されていることを確認14251. サーバーが `.mcp.json` または `plugin.json` で正しく設定されていることを確認します
12922. サーバーが MCP プロトコルを正しく実装していることを確認14262. サーバーが MCP プロトコルを正しく実装していることを確認します
12933. デバッグ出力で接続タイムアウトを確認14273. デバッグ出力で接続タイムアウトを確認します
1294 1428
1295<h3 id="directory-structure-mistakes">1429<h3 id="directory-structure-mistakes">
1296 ディレクトリ構造の間違い1430 ディレクトリ構造の間違い
1297</h3>1431</h3>
1298 1432
1299**症状**: プラグインは読み込まれるがコンポーネント(skills、agents、hooks)が不足している。1433**症状**:プラグインは読み込まれますが、コンポーネント(skill、agent、hook)が見つかりません。
1300
1301**正しい構造**: コンポーネントはプラグインルートにある必要があり、`.claude-plugin/` 内ではありません。`.claude-plugin/` には `plugin.json` のみが属します。
1302 1434
1303```text theme={null}1435**正しい構造**:コンポーネントはプラグインルートにある必要があります。`.claude-plugin/` 内にはありません。`plugin.json` のみが `.claude-plugin/` に属します。
1304my-plugin/
1305├── .claude-plugin/
1306│ └── plugin.json ← マニフェストのみここ
1307├── commands/ ← ルートレベル
1308├── agents/ ← ルートレベル
1309└── hooks/ ← ルートレベル
1310```
1311
1312コンポーネントが `.claude-plugin/` 内にある場合は、プラグインルートに移動してください。
1313 1436
1314**デバッグチェックリスト**:1437**デバッグチェックリスト**:
1315 1438
13161. `claude --debug` を実行し、「loading plugin」メッセージを探す14391. `claude --debug` を実行し、「loading plugin」メッセージを探します
13172. 各コンポーネントディレクトリがデバッグ出力にリストされていることを確認14402. 各コンポーネントディレクトリがデバッグ出力に表示されていることを確認します
13183. プラグインファイルを読み取ることができるファイルパーミッションを確認14413. ファイルのアクセス許可がプラグインファイルの読み取りを許可していることを確認します
1319 1442
1320***1443***
1321 1444
1327 バージョン管理1450 バージョン管理
1328</h3>1451</h3>
1329 1452
1330Claude Code はプラグインのバージョンをキャッシュキーとして使用し、更新が利用可能かどうかを判断します。`/plugin update` を実行するか自動更新が実行されると、Claude Code は現在のバージョンを計算し、既にインストールされているものと一致する場合は更新をスキップします。1453Claude Code はプラグインのバージョンをキャッシュキーとして使用し、アップデートが利用可能かどうかを判断します。`/plugin update` を実行するか自動アップデートが実行されると、Claude Code は現在のバージョンを計算し、既にインストールされているものと一致する場合はアップデートをスキップします。
1331 1454
1332バージョンは、設定されている最初のものから解決されます:1455`command` 以外のすべてのソースタイプについて、Claude Code は以下の最初に設定されたものからバージョンを解決します。
1333 1456
13341. プラグインの `plugin.json` の `version` フィールド14571. プラグインの `plugin.json` の `version` フィールド
13352. `marketplace.json` のプラグインのマーケットプレイスエントリの `version` フィールド14582. `marketplace.json` のプラグインのマーケットプレイスエントリの `version` フィールド
13363. git でホストされているマーケットプレイスの `github`、`url`、`git-subdir`、および相対パスソースのプラグインソースの git コミット SHA14593. git ホストマーケットプレイス内の `github`、`url`、`git-subdir`、および相対パスソースのプラグインの git コミット SHA
13374. npm ソースまたは git リポジトリ内にないローカルディレクトリの場合は `unknown`14604. [`archive` ソース](/docs/ja/plugin-marketplaces#zip-archives)の SHA-256 ダイジェスト。マーケットプレイスエントリの `sha256` ピン、またはピンを設定しない場合はダウンロードされたファイルのダイジェスト。Claude Code はこれを最初の 12 文字に短縮します
14615. `npm` ソースまたは git リポジトリ内にないローカルディレクトリの場合は `unknown`
1338 1462
1339これにより、プラグインをバージョン管理する 2 つの方法が提供されます:1463[`command` ソース](/docs/ja/plugin-marketplaces#command-sources)の場合、Claude Code は常にコマンドが生成したものからバージョンを導出します。単独の 12 文字のコンテンツハッシュ、または 1 つが設定されている場合は `plugin.json` バージョンに `<version>-<hash>` として追加されます。Claude Code はコマンドソースのマーケットプレイスエントリの `version` フィールドを無視します。ハッシュされた出力が変更されるコマンドは、作成されたバージョン文字列が同じままでも、新しいバージョンを生成します。[リンクモード](/docs/ja/plugin-marketplaces#copy-mode-and-link-mode)では、ハッシュはファイルコンテンツではなく、印刷されたディレクトリの実際のパスとそのトップレベルエントリをカバーします。
1340 1464
1341| アプローチ | 方法 | 更新動作 | 最適な用途 |1465これらのソースタイプについて、プラグインをバージョン管理する 3 つの方法があります。
1342| :----------------- | :---------------------------------------------- | :-------------------------------------------------------------------------------------------------- | :--------------------- |
1343| **明示的バージョン** | `plugin.json` で `"version": "2.1.0"` を設定 | ユーザーはこのフィールドをバンプした場合のみ更新を取得します。新しいコミットをプッシュしてもバンプしない場合は効果がなく、`/plugin update` は「既に最新バージョンです」と報告します。 | 安定したリリースサイクルを持つ公開プラグイン |
1344| **コミット SHA バージョン** | `plugin.json` とマーケットプレイスエントリの両方から `version` を省略 | ユーザーはプラグインの git ソースへの新しいコミットのたびに更新を取得します | 積極的に開発中の内部またはチームプラグイン |
1345 1466
1346<Warning>1467| アプローチ | 方法 | アップデート動作 | 最適な用途 |
1347 `plugin.json` で `version` を設定する場合、ユーザーが変更を受け取るたびにバンプする必要があります。新しいコミットをプッシュするだけでは不十分です。Claude Code は同じバージョン文字列を認識し、キャッシュされたコピーを保持するためです。迅速に反復している場合は、`version` を設定しないままにして、代わりに git コミット SHA が使用されるようにしてください。1468| :----------------- | :-------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------- | :-------------------------------------------- |
1348</Warning>1469| **明示的なバージョン** | `plugin.json` で `"version": "2.1.0"` を設定 | ユーザーはこのフィールドをバンプした場合のみアップデートを取得します。バンプせずに新しいコミットをプッシュしても効果がなく、`/plugin update` は「既に最新バージョンです」と報告します。 | 安定したリリースサイクルを持つ公開プラグイン |
1470| **コミット SHA バージョン** | `plugin.json` とマーケットプレイスエントリの両方から `version` を省略 | ユーザーはソースの解決されたコミットが変更されるたびにアップデートを取得します | アクティブに開発中の内部またはチームプラグイン |
1471| **ダイジェストバージョン** | [`archive` ソース](/docs/ja/plugin-marketplaces#zip-archives)を使用し、`plugin.json` とマーケットプレイスエントリの両方から `version` を省略 | `sha256` ピンを使用する場合、ユーザーはピンを変更するとアップデートを取得します。ピンがない場合、ユーザーはホストされている zip ファイルのバイトが変更されるたびにアップデートを取得します | 静的サーバーまたはアーティファクトリポジトリに zip ファイルとして公開されるプラグイン |
1349 1472
1350明示的なバージョンを使用する場合は、[semantic versioning](https://semver.org)(`MAJOR.MINOR.PATCH`)に従ってください:破壊的変更の場合は MAJOR をバンプし、新機能の場合は MINOR をバンプし、バグ修正の場合は PATCH をバンプしてください。`CHANGELOG.md` で変更を文書化してください。1473明示的なバージョンを使用する場合は、[セマンティックバージョニング](https://semver.org)(`MAJOR.MINOR.PATCH`)に従ってください。破壊的な変更の場合は MAJOR をバンプし、新機能の場合は MINOR をバンプし、バグ修正の場合は PATCH をバンプします。`CHANGELOG.md` で変更を文書化します。
1351 1474
1352***1475***
1353 1476