plugins-reference.md +0 −1645 deleted
File Deleted View Diff
1> ## Documentation Index
2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
3> Use this file to discover all available pages before exploring further.
4
5# プラグインリファレンス
6
7> Claude Code プラグインシステムの完全な技術リファレンス。スキーマ、CLI コマンド、コンポーネント仕様を含みます。
8
9<Tip>
10 プラグインをインストールしたいですか?「[プラグインの検出とインストール](/docs/ja/discover-plugins)」を参照してください。プラグインの作成については、「[プラグイン](/docs/ja/plugins)」を参照してください。プラグインの配布については、「[プラグインマーケットプレイス](/docs/ja/plugin-marketplaces)」を参照してください。
11</Tip>
12
13**プラグイン**は、Claude Code をカスタム機能で拡張する自己完結型のコンポーネントディレクトリです。プラグインコンポーネントには、skills、agents、hooks、MCP servers、LSP servers、および monitors が含まれます。
14
15<h2 id="plugin-components-reference">
16 プラグインコンポーネントリファレンス
17</h2>
18
19<h3 id="skills">
20 Skills
21</h3>
22
23プラグインは Claude Code に skills を追加し、`/name` ショートカットを作成します。これらは、ユーザーまたは Claude が呼び出すことができます。
24
25**場所**: プラグインルートの `skills/` または `commands/` ディレクトリ、またはプラグインルートの単一の `SKILL.md` ファイル
26
27**ファイル形式**: Skills はディレクトリで `SKILL.md` を含みます。commands はシンプルな markdown ファイルです
28
29**Skill の構造**:
30
31```text theme={null}
32skills/
33├── pdf-processor/
34│ ├── SKILL.md
35│ ├── reference.md (optional)
36│ └── scripts/ (optional)
37└── code-reviewer/
38 └── SKILL.md
39```
40
41Skills と commands は、プラグインがインストールされると自動的に検出されます。
42
43プラグインに `skills/` ディレクトリがなく、`skills` マニフェストフィールドもない場合、プラグインルートの `SKILL.md` は単一の skill として読み込まれます。frontmatter の `name` フィールドを設定して、skill の呼び出し名を制御します。これがない場合、Claude Code はインストールディレクトリ名にフォールバックします。[キャッシュにコピーされたプラグイン](#plugin-caching-and-file-resolution)の場合、その名前は更新のたびに変わるバージョン文字列です。複数の skill を含むプラグインの場合は、上記の `skills/` ディレクトリレイアウトを使用します。
44
45プラグイン skills と commands では、`disable-model-invocation` などのブール値 frontmatter フィールドが、`true` と `false` に加えて、任意の大文字小文字で `yes`、`no`、`on`、`off`、`1`、`0` を受け入れます。v2.1.218 より前では、Claude Code は `true` と `false` のみを認識していました。
46
47詳細については、[Skills](/docs/ja/skills) を参照してください。
48
49<h3 id="agents">
50 Agents
51</h3>
52
53プラグインは、Claude が必要に応じて自動的に呼び出すことができる特定のタスク用の特化したサブエージェントを提供できます。
54
55**場所**: プラグインルートの `agents/` ディレクトリ
56
57**ファイル形式**: エージェント機能を説明する markdown ファイル
58
59**エージェント構造**:
60
61```markdown theme={null}
62name: agent-name
63description: このエージェントが専門とする内容と Claude がそれを呼び出すべき時期
64model: sonnet
65effort: medium
66maxTurns: 20
67disallowedTools: Write, Edit
68
69エージェントの役割、専門知識、および動作を説明する詳細なシステムプロンプト。
70```
71
72<h4 id="plugin-agent-frontmatter">
73 プラグインエージェント frontmatter
74</h4>
75
76プラグインエージェントファイルは、[サブエージェントファイルと同じ frontmatter フィールド](/docs/ja/sub-agents#supported-frontmatter-fields)を使用しますが、Claude Code はプラグインから来たエージェントの場合、そのうちのいくつかのみを尊重します。
77
78* **サポート対象**: `name`、`description`、`model`、`effort`、`maxTurns`、`tools`、`disallowedTools`、`skills`、`memory`、`background`、`omitClaudeMd`、`isolation`、`color`、および `experimental`。唯一の有効な `isolation` 値は `"worktree"` です。
79* **セキュリティ上の理由からサポート対象外**: `hooks`、`mcpServers`、および `permissionMode`。Claude Code はプラグインからエージェントを読み込む場合、これらを無視します。これらを使用するには、エージェントファイルを `.claude/agents/` または `~/.claude/agents/` にコピーします。
80* **サポート対象外**: `initialPrompt`。
81
82プラグインエージェントファイルを `agents/` のサブフォルダーに配置できます。Claude Code は [それらを再帰的に読み込み](/docs/ja/sub-agents#choose-the-subagent-scope)、プラグイン名、各サブフォルダー名、およびファイル名をコロンで結合して、エージェントのスコープ付き名を形成します。たとえば、`my-plugin` という名前のプラグイン内の `agents/review/security.md` は `my-plugin:review:security` として読み込まれます。2 つの設定がその名前を変更します。
83
84* Frontmatter `name`: ファイル名のみを置き換えるため、`agents/review/security.md` の `name: audit` は `my-plugin:review:audit` として読み込まれます
85* マニフェスト [`agents`](#component-path-fields) フィールド: そこにリストされているファイルはサブフォルダー名なしで読み込まれるため、`"agents": "./custom/review/security.md"` は `my-plugin:security` として読み込まれます
86
87Claude Code は、frontmatter に `name` がない場合またはパースに失敗した場合でも、プラグインエージェントを読み込みます。
88
89* `name` がない場合: Claude Code はファイル名に基づいてエージェントに名前を付けるため、`my-plugin` という名前のプラグイン内の `agents/reviewer.md` は `my-plugin:reviewer` として読み込まれます
90* Frontmatter がパースに失敗した場合: Claude Code はファイル名に基づいてエージェントに名前を付け、説明として `Agent from my-plugin plugin` を使用し、ファイル内のすべてのフィールドを無視します
91
92対照的に、Claude Code は、frontmatter に `name` がない場合またはパースに失敗した場合、プロジェクト、ユーザー、または管理エージェントファイルをスキップします。
93
94プラグインのデフォルト `agents/` ディレクトリ内で frontmatter がパースに失敗したファイルを見つけるには、`claude plugin validate` を実行します。渡すパスは、プラグインがマニフェストを持つかどうかによって異なり、両方の例では `./my-plugin` をプラグインディレクトリとして使用します。
95
96* マニフェスト付きプラグイン: `claude plugin validate ./my-plugin`
97* マニフェストなしプラグイン: `claude plugin validate ./my-plugin/agents`。Claude Code v2.1.233 以降が必要です。
98
99エージェントは、プラグインが有効になると、[@-mention typeahead](/docs/ja/sub-agents#invoke-subagents-explicitly) に `my-plugin:code-reviewer` などのスコープ付き名で表示されます。
100
101詳細については、[Subagents](/docs/ja/sub-agents) を参照してください。
102
103<h3 id="hooks">
104 Hooks
105</h3>
106
107プラグインは、Claude Code イベントに自動的に応答するイベントハンドラーを提供できます。
108
109**場所**: プラグインルートの `hooks/hooks.json`、または plugin.json 内のインライン
110
111**形式**: イベントマッチャーとアクションを含む JSON 設定
112
113`hooks/hooks.json` は、エディターのオートコンプリートと検証用に JSON Schema URL を指定する最上位の `$schema` キーを含むことができます。Claude Code は読み込み時にこのキーを無視します。
114
115**Hook 設定**:
116
117```json theme={null}
118{
119 "hooks": {
120 "PostToolUse": [
121 {
122 "matcher": "Write|Edit",
123 "hooks": [
124 {
125 "type": "command",
126 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/format-code.sh"
127 }
128 ]
129 }
130 ]
131 }
132}
133```
134
135プラグイン hooks は、[ユーザー定義 hooks](/docs/ja/hooks) と同じライフサイクルイベントに応答します。
136
137| イベント | 発火するタイミング |
138| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
139| `SessionStart` | セッションが開始または再開されたとき |
140| `Setup` | `--init-only` で Claude Code を起動するとき、または `-p` モードで `--init` または `--maintenance` を使用するとき。CI またはスクリプトでの 1 回限りの準備用 |
141| `UserPromptSubmit` | プロンプトを送信するとき、Claude が処理する前 |
142| `UserPromptExpansion` | ユーザーが入力したコマンドがプロンプトに展開されるとき、Claude に到達する前。展開をブロックできます |
143| `PreToolUse` | ツール呼び出しが実行される前。ブロックできます |
144| `PermissionRequest` | ツール呼び出しが権限決定を必要とするとき |
145| `PermissionDenied` | オートモードがツール呼び出しを拒否するとき、分類器の判定がない拒否を含みます。JSON `hookSpecificOutput.retry: true` を使用して、モデルが拒否されたツール呼び出しを再試行できることを伝えます。Claude Code は分類器が判定を出さなかった場合、`retry` を無視します |
146| `PostToolUse` | ツール呼び出しが成功した後 |
147| `PostToolUseFailure` | ツール呼び出しが失敗した後 |
148| `PostToolBatch` | 並列ツール呼び出しの完全なバッチが解決した後、次のモデル呼び出しの前 |
149| `Notification` | Claude Code が通知を送信するとき |
150| `MessageDisplay` | アシスタントメッセージテキストが表示されている間 |
151| `SubagentStart` | サブエージェントがスポーンされるとき |
152| `SubagentStop` | サブエージェントが終了するとき |
153| `TaskCreated` | `TaskCreate` 経由でタスクが作成されるとき |
154| `TaskCompleted` | タスクが完了としてマークされるとき |
155| `Stop` | Claude が応答を終了するとき |
156| `StopFailure` | API エラーが原因でターンが終了するとき |
157| `TeammateIdle` | [エージェントチーム](/docs/ja/agent-teams) のチームメイトがアイドル状態になろうとするとき |
158| `InstructionsLoaded` | CLAUDE.md または `.claude/rules/*.md` ファイルがコンテキストに読み込まれるとき。セッション開始時およびセッション中にファイルが遅延読み込みされるときに発火します |
159| `ConfigChange` | セッション中に設定ファイルが変更されるとき |
160| `CwdChanged` | 作業ディレクトリが変更されるとき、例えば Claude が `cd` コマンドを実行するとき。direnv などのツールを使用したリアクティブな環境管理に便利です |
161| `DirectoryAdded` | `/add-dir` または SDK `register_repo_root` コントロールリクエスト経由でセッション中盤に作業ディレクトリが追加されるとき |
162| `FileChanged` | 監視対象ファイルがディスク上で変更されるとき。`matcher` フィールドは監視するファイル名を指定します |
163| `WorktreeCreate` | `--worktree`、`isolation: "worktree"`、またはバックグラウンドセッション経由で worktree が作成されるとき。デフォルトの git 動作を置き換えます |
164| `WorktreeRemove` | セッション終了時、サブエージェント終了時、またはバックグラウンドセッションを削除するときに worktree が削除されるとき |
165| `PreCompact` | コンテキスト圧縮の前 |
166| `PostCompact` | コンテキスト圧縮が完了した後 |
167| `PreModelSwitch` | Claude Code があなたまたはクライアントがリクエストしたモデルスイッチを適用する前。スイッチをブロックできます |
168| `PostModelSwitch` | セッションのモデルが変更された後、Claude Code が独自に行う変更(セッションを再開するときのモデル復元など)を含みます |
169| `Elicitation` | MCP サーバーがツール呼び出し中にユーザー入力をリクエストするとき |
170| `ElicitationResult` | ユーザーが MCP エリシテーションに応答した後、レスポンスがサーバーに送り返される前 |
171| `SessionEnd` | セッションが終了するとき |
172
173**Hook タイプ**:
174
175* `command`: シェルコマンドまたはスクリプトを実行
176* `http`: イベント JSON を URL への POST リクエストとして送信
177* `mcp_tool`: 設定された [MCP サーバー](/docs/ja/mcp) 上のツールを呼び出す
178* `prompt`: LLM でプロンプトを評価(コンテキスト用に `$ARGUMENTS` プレースホルダーを使用)
179* `agent`: 複雑な検証タスク用にツール付きの agentic verifier を実行
180
181プラグイン自身の [バンドルされた 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) を参照してください。
182
183<h3 id="mcp-servers">
184 MCP servers
185</h3>
186
187プラグインは Model Context Protocol(MCP)サーバーをバンドルして、Claude Code を外部ツールおよびサービスに接続できます。
188
189**場所**: プラグインルートの `.mcp.json`、または plugin.json 内のインライン
190
191**形式**: 標準 MCP サーバー設定
192
193**MCP サーバー設定**:
194
195```json theme={null}
196{
197 "mcpServers": {
198 "plugin-database": {
199 "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
200 "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
201 "env": {
202 "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"
203 }
204 },
205 "plugin-api-client": {
206 "command": "npx",
207 "args": ["@company/mcp-server", "--plugin-mode"]
208 }
209 }
210}
211```
212
213**統合動作**:
214
215* プラグイン MCP サーバーはプラグインが有効になると自動的に起動します
216* サーバーは Claude のツールキット内の標準 MCP ツールとして表示されます
217* プラグインサーバーはユーザー MCP サーバーとは独立して設定できます
218* セッション中に [`/reload-plugins`](/docs/ja/discover-plugins#apply-plugin-changes-without-restarting) を実行する場合、Claude Code は設定が変わらないサーバーのライブ接続を保持します
219
220<h3 id="lsp-servers">
221 LSP servers
222</h3>
223
224<Tip>
225 LSP プラグインを使用したいですか?公式マーケットプレイスからインストールしてください。`/plugin` Discover タブで「lsp」を検索してください。このセクションでは、公式マーケットプレイスでカバーされていない言語用の LSP プラグインを作成する方法を説明しています。
226</Tip>
227
228プラグインは [Language Server Protocol](https://microsoft.github.io/language-server-protocol/)(LSP)サーバーを提供して、コードベースで作業する際に Claude に [リアルタイムコード インテリジェンス](/docs/ja/discover-plugins#code-intelligence) を提供できます。
229
230**場所**: プラグインルートの `.lsp.json`、または `plugin.json` 内のインライン
231
232**形式**: 言語サーバー名をその設定にマップする JSON 設定
233
234**`.lsp.json` ファイル形式**:
235
236```json theme={null}
237{
238 "go": {
239 "command": "gopls",
240 "args": ["serve"],
241 "extensionToLanguage": {
242 ".go": "go"
243 }
244 }
245}
246```
247
248**`plugin.json` 内のインライン**:
249
250```json theme={null}
251{
252 "name": "my-plugin",
253 "lspServers": {
254 "go": {
255 "command": "gopls",
256 "args": ["serve"],
257 "extensionToLanguage": {
258 ".go": "go"
259 }
260 }
261 }
262}
263```
264
265**必須フィールド:**
266
267| フィールド | 説明 |
268| :-------------------- | :--------------------------------- |
269| `command` | 実行する LSP バイナリ(PATH に含まれている必要があります) |
270| `extensionToLanguage` | ファイル拡張子を言語識別子にマップします |
271
272**オプションフィールド:**
273
274| フィールド | 説明 |
275| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------ |
276| `args` | LSP サーバーのコマンドライン引数 |
277| `transport` | 通信トランスポート: `stdio`(デフォルト)または `socket`。Claude Code は `socket` を受け入れますが、すべてのサーバーを stdio 経由で実行するため、stdout プロトコルルールがすべてのサーバーに適用されます |
278| `env` | サーバー起動時に設定する環境変数 |
279| `initializationOptions` | 初期化中にサーバーに渡されるオプション |
280| `settings` | `workspace/didChangeConfiguration` 経由で渡される設定 |
281| `workspaceFolder` | サーバーのワークスペースフォルダーパス |
282| `startupTimeout` | サーバー起動を待つ最大時間(ミリ秒) |
283| `shutdownTimeout` | グレースフルシャットダウンを待つ最大時間(ミリ秒)。タイムアウトが経過すると、Claude Code はサーバープロセスを終了します。設定されていない場合、タイムアウトは適用されません |
284| `restartOnCrash` | クラッシュ後にサーバーを再起動するかどうか。デフォルトは `true`。クラッシュしたサーバーを再起動する代わりに停止したままにするには `false` に設定します |
285| `maxRestarts` | 諦める前の最大再起動試行回数 |
286| `diagnostics` | 編集後に診断を Claude のコンテキストにプッシュするかどうか(デフォルト `true`)。コード ナビゲーションは保持しながら自動診断注入を抑制するには `false` に設定します |
287
288`restartOnCrash` と `shutdownTimeout` には Claude Code v2.1.205 以降が必要です。v2.1.205 より前では、設定スキーマは両方のオプションを受け入れていましたが、どちらかを設定すると Claude Code はその LSP サーバーを起動時に完全にスキップしていました。理由は `claude --debug` 出力でのみ表示されます。
289
290**同じ拡張子の複数サーバー**: 複数の有効な LSP サーバーが `extensionToLanguage` で同じファイル拡張子を宣言する場合、サーバーが 1 つのプラグインから来ているか異なるプラグインから来ているかに関わらず、最初に登録されたサーバーがその拡張子のファイルを処理し、他のサーバーは起動しません。`/plugin` インターフェイスは、アクティブなサーバーを持つプラグインに名前を付ける警告を表示します。
291
292**初期化に失敗したサーバー**: Claude Code は、`command` または `extensionToLanguage` が見つからないなど、設定が無効なサーバーをスキップし、他の設定されたサーバーは起動します。`claude --debug` を実行して、サーバーがスキップされた理由を確認します。
293
294スキップされたサーバーはそのファイル拡張子を要求しないため、同じ拡張子を宣言する別の有効なサーバー(同じプラグインまたは異なるプラグインから)がそれらのファイルを処理します。
295
296**ログ出力を stdout ではなく stderr に送信**: Claude Code はサーバーの stdout をプロトコルメッセージとしてのみ読み取り、メッセージヘッダーは最大 64 KiB、メッセージボディは最大 32 MiB を受け入れます。Claude Code は、どちらかの制限を超えるか、非プロトコル出力を stdout に書き込むサーバーを切断し、その切断を `restartOnCrash` と `maxRestarts` のクラッシュとしてカウントします。`--debug` で実行する場合、Claude Code は原因に名前を付けるエラーをデバッグログに書き込みます。
297
298<Warning>
299 **言語サーバーバイナリを別途インストールする必要があります。** LSP プラグインは Claude Code が言語サーバーに接続する方法を設定しますが、サーバー自体は含まれていません。`/plugin` Errors タブに `Executable not found in $PATH` が表示される場合は、言語に必要なバイナリをインストールしてください。
300</Warning>
301
302**利用可能な LSP プラグイン:**
303
304| プラグイン | 言語サーバー | インストールコマンド |
305| :------------------ | :------------------------- | :--------------------------------------------------------------------------------- |
306| `pyright-lsp` | Pyright(Python) | `pip install pyright` または `npm install -g pyright` |
307| `typescript-lsp` | TypeScript Language Server | `npm install -g typescript-language-server typescript` |
308| `rust-analyzer-lsp` | rust-analyzer | [rust-analyzer インストール参照](https://rust-analyzer.github.io/manual.html#installation) |
309
310言語サーバーをインストールしてから、マーケットプレイスからプラグインをインストールします。
311
312<h3 id="monitors">
313 Monitors
314</h3>
315
316プラグインは、プラグインがアクティブな場合に Claude Code が自動的に起動するバックグラウンドモニターを宣言できます。各モニターはセッションの期間中シェルコマンドを実行し、すべての stdout 行を Claude に通知として配信するため、Claude は自分自身でウォッチを開始するよう求められることなく、ログエントリ、ステータス変更、またはポーリングイベントに反応できます。
317
318プラグインモニターは [Monitor ツール](/docs/ja/tools-reference#monitor-tool) と同じメカニズムを使用し、その可用性制約を共有します。これらはインタラクティブ CLI セッションでのみ実行され、[hooks](#hooks) と同じ信頼レベルでサンドボックス化されずに実行され、Monitor ツールが利用できないホストではスキップされます。
319
320**場所**: プラグインルートの `monitors/monitors.json`、または plugin.json 内のインライン
321
322**形式**: モニターエントリの JSON 配列
323
324次の `monitors/monitors.json` はデプロイメントステータスエンドポイントとローカルエラーログを監視します。
325
326```json theme={null}
327[
328 {
329 "name": "deploy-status",
330 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/poll-deploy.sh",
331 "description": "Deployment status changes"
332 },
333 {
334 "name": "error-log",
335 "command": "tail -F ./logs/error.log",
336 "description": "Application error log",
337 "when": "on-skill-invoke:debug"
338 }
339]
340```
341
342モニターをインラインで宣言するには、`plugin.json` の `experimental.monitors` を同じ配列に設定します。デフォルト以外のパスから読み込むには、`experimental.monitors` を `"./config/monitors.json"` などの相対パス文字列に設定します。モニターは [実験的コンポーネント](#experimental-components) です。
343
344**必須フィールド:**
345
346| フィールド | 説明 |
347| :------------ | :---------------------------------------------------------- |
348| `name` | プラグイン内で一意の識別子。プラグインが再読み込みされるか skill が再度呼び出されるときに重複プロセスを防ぎます |
349| `command` | セッション作業ディレクトリで永続的なバックグラウンドプロセスとして実行されるシェルコマンド |
350| `description` | 監視対象の簡潔な説明。タスクパネルと通知サマリーに表示されます |
351
352**オプションフィールド:**
353
354| フィールド | 説明 |
355| :----- | :-------------------------------------------------------------------------------------------------------------------------------------------- |
356| `when` | モニターが開始するタイミングを制御します。`"always"` はセッション開始時とプラグイン再読み込み時に開始し、デフォルトです。`"on-skill-invoke:<skill-name>"` はこのプラグイン内の名前付き skill が最初にディスパッチされるときに開始します |
357
358`command` 値は [パス置換](#environment-variables) `${CLAUDE_PLUGIN_ROOT}`、`${CLAUDE_PLUGIN_DATA}`、および `${CLAUDE_PROJECT_DIR}` をサポートしており、環境からの任意の `${ENV_VAR}` もサポートしています。スクリプトがプラグイン自身のディレクトリから実行される必要がある場合は、コマンドの前に `cd "${CLAUDE_PLUGIN_ROOT}" && ` を付けます。
359
360モニター `command` は [`${user_config.*}`](#user-configuration) 値を参照できません。コマンドはシェルを通じて実行されるため、Claude Code は値を置換する代わりに [エラー](/docs/ja/errors#plugin-command-references-user-config) でモニターを拒否します。モニタープロセスは `CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数を受け取らないため、モニタースクリプトが所有する設定ファイルから値を読み取ります。
361
362セッション中にプラグインを無効にする場合、Claude Code は既に実行中のモニターを停止しません。セッションが終了するときに停止します。
363
364<h3 id="themes">
365 Themes
366</h3>
367
368プラグインは、`/theme` に組み込みプリセットおよびユーザーのローカルテーマと一緒に表示されるカラーテーマを配布できます。テーマは `themes/` 内の JSON ファイルで、`base` プリセットとカラートークンのスパース `overrides` マップを持ちます。テーマは [実験的コンポーネント](#experimental-components) です。
369
370```json theme={null}
371{
372 "name": "Dracula",
373 "base": "dark",
374 "overrides": {
375 "claude": "#bd93f9",
376 "error": "#ff5555",
377 "success": "#50fa7b"
378 }
379}
380```
381
382ユーザーがプラグインテーマを選択すると、Claude Code は `custom:<plugin-name>:<slug>` をその設定に保存します。プラグインテーマは読み取り専用です。ユーザーが `/theme` でそれに対して `Ctrl+E` を押すと、Claude Code はそれを `~/.claude/themes/` にコピーして、編集できるようにします。
383
384***
385
386<h2 id="plugin-installation-scopes">
387 プラグインのインストールスコープ
388</h2>
389
390プラグインをインストールする際に、プラグインが利用可能な場所と他のユーザーが使用できるかどうかを決定する**スコープ**を選択します。
391
392| スコープ | 設定ファイル | ユースケース |
393| :-------- | :--------------------------------------- | :-------------------------------------------------- |
394| `user` | `~/.claude/settings.json` | すべてのプロジェクト全体で利用可能な個人用プラグイン(デフォルト) |
395| `project` | `.claude/settings.json` | バージョン管理を通じて共有されるチームプラグイン |
396| `local` | `.claude/settings.local.json` | プロジェクト固有のプラグイン。Claude Code が設定を保存する際に gitignore される |
397| `managed` | [Managed settings](/docs/ja/managed-settings) | 管理されたプラグイン(読み取り専用、更新のみ) |
398
399プラグインは、他の Claude Code 設定と同じスコープシステムを使用します。インストール手順とスコープフラグについては、[プラグインのインストール](/docs/ja/discover-plugins#install-plugins)を参照してください。スコープの完全な説明については、[設定スコープ](/docs/ja/settings#where-settings-live)を参照してください。
400
401***
402
403<h2 id="skills-directory-plugins">
404 スキルディレクトリプラグイン
405</h2>
406
407スキルディレクトリの下にあるフォルダで `.claude-plugin/plugin.json` マニフェストを含むフォルダは、次のセッションで `<name>@skills-dir` という名前のプラグインとして読み込まれます。マーケットプレイスもインストール手順もありません。[`plugin init`](#plugin-init) でスキャフォルドできます。コピーされたマーケットプレイスインストールとは異なり、プラグインはプラグインキャッシュにコピーされるのではなく、その場で検出されます。
408
409スキルディレクトリツリーは 3 つの異なるものをサポートしています。
410
411| 内容 | 説明 |
412| :-------------------------------------------- | :----------------------------------------------------- |
413| マニフェストなしの `<skills-dir>/foo/SKILL.md` | `foo` という名前の通常の [スキル](/docs/ja/skills) |
414| `<skills-dir>/foo/.claude-plugin/plugin.json` | プラグイン `foo@skills-dir`。独自のスキル、エージェント、hooks などをバンドルできます |
415| `<plugin>/skills/bar/SKILL.md` | プラグイン内にパッケージされたスキル `bar` |
416
417<h3 id="choose-where-the-plugin-loads-from">
418 プラグインの読み込み元を選択する
419</h3>
420
421| スキルディレクトリ | スコープ | 読み込み |
422| :---------------------- | :----- | :-------------------------------------------------------------------------------------- |
423| `~/.claude/skills/` | 個人 | すべてのプロジェクトで読み込まれます。この場所はあなた自身のものだからです |
424| `<cwd>/.claude/skills/` | プロジェクト | そのフォルダのワークスペース [信頼ダイアログ](/docs/ja/permissions#what-runs-before-you-trust-a-folder) を受け入れた後のみ |
425
426プロジェクトスコープのプラグインはリポジトリにチェックインされ、それをクローンしたすべての協力者に到達します。そのコンテンツはあなたではなくリポジトリから来ているため、`.claude/settings.json` のプロジェクト許可ルールを管理するのと同じ信頼ゲートの後にのみ読み込まれます。親フォルダを信頼したり `-p` で実行したりするだけでは不十分で、コードを実行するコンポーネントはさらに制限されます。
427
428* 宣言する MCP サーバーはプロジェクト `.mcp.json` と同じ [サーバーごとの承認](/docs/ja/mcp) を通過します
429* LSP サーバーはワークスペースを信頼した後にのみ開始します
430* [バックグラウンドモニター](#monitors) は読み込まれません
431
432個人スコープのプラグインにはこれらの制限はありません。
433
434<Warning>
435 プロジェクトスコープの `@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) してください。
436</Warning>
437
438<h3 id="edit-reload-and-disable-a-skills-directory-plugin">
439 スキルディレクトリプラグインを編集、リロード、無効化する
440</h3>
441
442スキルの `SKILL.md` に加えた変更は現在のセッションで即座に有効になります。プラグインの他のコンポーネント(`hooks/`、`.mcp.json`、`agents/`、`output-styles/` など)への変更は有効になりません。`/reload-plugins` を実行するか Claude Code を再起動してそれらを反映させてください。[ライブ変更検出](/docs/ja/skills#live-change-detection) を参照してください。
443
444スキルディレクトリプラグインの読み込みを停止するには、そのフォルダを削除するか、名前で無効化します。マーケットプレイスからインストールされていないため、`uninstall` ステップはありません。
445
446```bash theme={null}
447claude plugin disable my-tool@skills-dir
448```
449
450***
451
452<h2 id="synced-plugins">
453 claude.ai から同期されたプラグイン
454</h2>
455
456Claude Code は claude.ai アカウント用に有効化されたプラグインを読み込みます。これには、組織がメンバー向けに有効化するプラグインと、マーケットプレイスからインストールするプラグインが含まれます。各プラグインを `~/.claude/plugins/synced/` にダウンロードし、`<name>@synced` として読み込みます。マーケットプレイスはなく、インストール記録もありません。同期されたプラグインは、インストールしたマーケットプレイスプラグインと同じ信頼レベルで実行されます。スキル、エージェント、フック、MCP サーバー、LSP サーバーはすべて読み込まれます。
457
458Claude Code がこれらのプラグインを同期する場所はセッションによって異なります。
459
460* [Cowork](https://claude.com/product/cowork) と[クラウドセッション](/docs/ja/cloud-environments#what-carries-over-from-your-setup)では、Claude Code はセッション開始時にセッション独自の環境にダウンロードします。v2.1.239 より前では、Claude Code はこれらのプラグインを `<name>@inline` として読み込んでいました。これは `--plugin-dir` プラグインが使用する ID です。
461* claude.ai アカウントでサインインするターミナルセッションでは、Claude Code は起動時にアカウントを 1 回チェックし、新しいプラグインと更新されたプラグインをダウンロードし、ユーザーまたは組織がオフにしたプラグインを削除します。すべてバックグラウンドで実行されます。ターミナルセッションでの同期には Claude Code v2.1.273 以降が必要です。
462
463起動チェックはバックグラウンドで実行されるため、セッション開始後に完了することがあります。インタラクティブセッションで同期されたプラグインを追加、更新、または削除する場合、Claude Code は `Plugins changed. Run /reload-plugins to activate.` と表示します。[`/reload-plugins`](/docs/ja/discover-plugins#apply-plugin-changes-without-restarting) を実行してそのセッションで変更を読み込むか、次回 Claude Code を起動するまで待つことができます。セッション実行中に claude.ai でプラグインを有効化した場合、Claude Code は次回起動時にダウンロードします。
464
465ターミナルセッションでのプラグイン同期は、[claude.ai から同期されたスキル](/docs/ja/skills#where-synced-skills-load)と同じサインイン条件下で実行されます。また、Claude Code がアカウントのプラグインにアクセスできるようにするサインインが必要です。
466
467Claude Code の以前のバージョンからのサインインは、Claude Code がバックグラウンドでそのサインインを更新する次回(数時間以内)、または `/login` を再度実行した場合はすぐに、プラグインアクセスを取得します。その後、Claude Code を起動する次回にプラグイン同期が開始されます。
468
469`claude plugin list` は同期されたプラグインを `Synced from claude.ai` という見出しの下に表示し、`/plugin` **Installed** タブはソースとして `synced` を使用してリストアップします。`claude plugin list` が出力する `<name>@synced` ID で同期されたプラグインを管理します。
470
471* **1 つをオフにする**: `claude plugin disable <name>@synced` を実行するか、`/plugin` **Installed** タブから無効化します。Claude Code はこの選択をユーザーレベルの [`enabledPlugins`](/docs/ja/settings-reference#enabledplugins) に `"<name>@synced": false` として保存します。プラグインを再度オンにするには、`claude plugin enable <name>@synced` を実行します。
472* **すべての場所から除外する**: [claude.ai アカウント用にプラグインをオフにします](/docs/ja/desktop#extend-claude-code)。すべての環境で 1 つのプロジェクトから除外するには、そのプロジェクトのコミットされた `.claude/settings.json` の `enabledPlugins` の下に `"<name>@synced": false` を設定します。
473* **claude.ai でプラグイン自体を管理する**: `claude plugin install`、`update`、`uninstall` は同期されたプラグインには適用されません。Claude Code はプラグインの更新を次の同期時にダウンロードします。削除するには、claude.ai アカウント用にプラグインをオフにし、Claude Code は次の同期時に削除します。
474* **マシンでの同期を停止する**: ユーザー設定で [`syncClaudeAiPlugins`](/docs/ja/settings-reference#syncclaudeaiplugins) を `false` に設定します。Claude Code はダウンロードを停止し、次回起動時に既に同期したプラグインを `~/.claude/plugins/.trash/` に移動し、それ以上読み込みません。組織は[マネージド設定](/docs/ja/managed-settings)で同じキーを設定するか、claude.ai でスキルをオフにすることができます。これはプラグインの同期も停止します。
475
476組織が claude.ai で必須とマークしたプラグインをオフにすることはできません。Claude Code は以前無効化した場合でも読み込み、`claude plugin disable` は `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.` で拒否します。`claude plugin list` では、これらのプラグインは `required by your org` とマークされています。
477
478他のソースからの有効化されたプラグインが同期されたプラグインの名前と一致する場合、Claude Code はそのプラグインを読み込み、同期されたコピーが読み込まれていないと報告します。他のソースにはマーケットプレイスインストール、[スキルディレクトリプラグイン](#skills-directory-plugins)、`--plugin-dir` プラグイン、Claude Code に組み込まれたプラグインが含まれます。claude.ai のコピーを代わりに使用するには、独自のコピーを無効化します。v2.1.239 より前では、Claude Code は同じ名前のマーケットプレイスインストールの代わりに同期されたコピーを読み込んでいました。
479
480***
481
482<h2 id="plugin-manifest-schema">
483 プラグインマニフェストスキーマ
484</h2>
485
486`.claude-plugin/plugin.json` ファイルはプラグインのメタデータと設定を定義します。
487
488マニフェストはオプションです。省略した場合、Claude Code は[デフォルトの場所](#file-locations-reference)のコンポーネントを自動検出し、ディレクトリ名からプラグイン名を導出します。メタデータまたはカスタムコンポーネントパスを提供する必要がある場合は、マニフェストを使用してください。
489
490<h3 id="complete-schema">
491 完全なスキーマ
492</h3>
493
494```json theme={null}
495{
496 "name": "plugin-name",
497 "displayName": "Plugin Name",
498 "version": "1.2.0",
499 "description": "Brief plugin description",
500 "author": {
501 "name": "Author Name",
502 "email": "author@example.com",
503 "url": "https://github.com/author"
504 },
505 "homepage": "https://docs.example.com/plugin",
506 "repository": "https://github.com/author/plugin",
507 "license": "MIT",
508 "keywords": ["keyword1", "keyword2"],
509 "metadata": { "catalogId": "cat-123", "tier": "pro" },
510 "skills": "./custom/skills/",
511 "commands": ["./custom/commands/special.md"],
512 "agents": ["./custom/agents/reviewer.md"],
513 "hooks": "./config/hooks.json",
514 "mcpServers": "./mcp-config.json",
515 "outputStyles": "./styles/",
516 "lspServers": "./.lsp.json",
517 "experimental": {
518 "themes": "./themes/",
519 "monitors": "./monitors.json",
520 "evals": "quality/evals"
521 },
522 "dependencies": [
523 "helper-lib",
524 { "name": "secrets-vault", "version": "~2.1.0" }
525 ]
526}
527```
528
529<h3 id="required-fields">
530 必須フィールド
531</h3>
532
533マニフェストを含める場合、`name` は唯一の必須フィールドです。
534
535| フィールド | 型 | 説明 | 例 |
536| :----- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |
537| `name` | string | ケバブケースの一意の識別子。スペース、制御文字、双方向フォーマット文字を含みません。[マーケットプレイスエントリ](/docs/ja/plugin-marketplaces#plugin-entries)がプラグインを別の名前でリストする場合、マーケットプレイスエントリ名が `enabledPlugins` キーと `/plugin` で使用されます | `"deployment-tools"` |
538
539この名前はコンポーネントの名前空間化に使用されます。たとえば、UI では、名前が `plugin-dev` のプラグインのエージェント `agent-creator` は `plugin-dev:agent-creator` として表示されます。
540
541<h3 id="unrecognized-fields">
542 認識されないフィールド
543</h3>
544
545Claude Code は認識しないトップレベルフィールドを無視します。別のエコシステムからのメタデータを `plugin.json` に保持でき、プラグインは引き続き読み込まれます。これにより、VS Code または Cursor 拡張マニフェスト、npm `package.json`、または MCPB/DXT バンドルマニフェストとして機能する 1 つのマニフェストを保守することが実用的になります。
546
547`claude plugin validate` は認識されないフィールドを警告として報告し、エラーではありません。フィールドが認識されたフィールドから 1 文字または 2 文字異なる場合、警告は意図された名前を示唆します。認識されないフィールド警告のみを持つプラグインは検証に合格し、実行時に読み込まれます。
548
549Claude Code が値の型が間違っている認識されたフィールドを処理する方法は、フィールドによって異なります。
550
551* **ほとんどのフィールド**: プラグインは読み込みに失敗します。たとえば、文字列の代わりに配列である `keywords` 値は読み込みエラーであり、`claude plugin validate` はそれをエラーとして報告します。
552* **`experimental` と `metadata`**: Claude Code は非オブジェクト値を無視し、`claude plugin validate` は警告を報告します。
553
554`--strict` を渡して、警告をエラーとして扱います。CI で使用して、公開前に別のツールのマニフェストから残された綴り間違いのフィールド名またはフィールドをキャッチします。プラグインは実行時に読み込まれますが。
555
556```bash theme={null}
557claude plugin validate ./my-plugin --strict
558```
559
560<h3 id="metadata-fields">
561 メタデータフィールド
562</h3>
563
564| フィールド | 型 | 説明 | 例 |
565| :--------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------- |
566| `$schema` | string | エディタのオートコンプリートと検証用の JSON Schema URL。Claude Code は読み込み時にこのフィールドを無視します。 | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |
567| `displayName` | string | `/plugin` ピッカーおよび他の UI サーフェスに表示される人間が読める名前。マーケットプレイスにインストールされたプラグインの場合、[マーケットプレイスエントリ](/docs/ja/plugin-marketplaces#optional-plugin-fields)の `displayName` はこの値より優先されます。どちらの場所にも表示名が設定されていない場合、ユーザーは `name` を見ます。`name` とは異なり、スペースと任意の大文字小文字を含むことができます。名前空間化またはルックアップには使用されません。 | `"Deployment Tools"` |
568| `version` | string | オプション。セマンティックバージョン。これを設定するとプラグインをそのバージョン文字列にピン留めするため、ユーザーはバージョンをバンプしたときにのみ更新を受け取ります。[`command` ソース](/docs/ja/plugin-marketplaces#command-sources)またはプラグイン[読み込み中](#plugin-caching-and-file-resolution)を除きます。[バージョン管理](#version-management)を参照してください。マーケットプレイスエントリにも設定されている場合、`plugin.json` が優先されます。省略した場合、バージョンは[バージョン管理](#version-management)の次のソースから取得されます。 | `"2.1.0"` |
569| `description` | string | プラグインの目的の簡潔な説明 | `"Deployment automation tools"` |
570| `author` | object | 著者情報 | `{"name": "Dev Team", "email": "dev@company.com"}` |
571| `homepage` | string | ドキュメント URL | `"https://docs.example.com"` |
572| `repository` | string | ソースコード URL | `"https://github.com/user/plugin"` |
573| `license` | string | ライセンス識別子 | `"MIT"`、`"Apache-2.0"` |
574| `keywords` | array | 検出タグ | `["deployment", "ci-cd"]` |
575| `metadata` | object | 権利付与またはカタログフィールドなど、独自のデータ用の自由形式オブジェクト。Claude Code はこれを読まないため、値はプラグインの動作に影響しません。Claude Code は非オブジェクト値を無視し、`claude plugin validate` は警告として報告します。v2.1.222 より前では、Claude Code はキーを[認識されないフィールド](#unrecognized-fields)として扱いました。 | `{"catalogId": "cat-123"}` |
576| `defaultEnabled` | boolean | ユーザーが設定を設定していない場合、プラグインが有効な状態で開始するかどうか。デフォルトは `true` です。[デフォルト有効化](#default-enablement)を参照してください。 | `false` |
577
578<h3 id="default-enablement">
579 デフォルト有効化
580</h3>
581
582`plugin.json` で `defaultEnabled: false` を設定して、無効な状態でインストールされるプラグインを配布します。ユーザーは `claude plugin enable <plugin>` または `/plugin` インターフェースでオンにします。外部サービスに接続するものなど、ユーザーがオプトインすべきコストまたはスコープを追加するプラグインに使用します。
583
584`defaultEnabled` は、他に何もプラグインの状態を決定していない場合のフォールバックです。ユーザーの設定と依存関係の要件が優先されます。
585
586* **ユーザーの設定**: 任意の設定スコープで `enabledPlugins` のプラグインのエントリ。一度書き込まれると、プラグイン更新と再インストール全体で永続化されるため、後のリリースで `defaultEnabled` を変更しても既存ユーザーは反転しません。
587* **依存関係の要件**: プラグインがアクティブな別のプラグインによって必要とされる場合、Claude Code はインストール時または有効化時に `true` を書き込みます。これにより明示的な設定が与えられるため、独自のデフォルトはもはや適用されません。[依存関係を持つプラグインを有効または無効にする](/docs/ja/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)を参照してください。
588
589同じフィールドはプラグインのマーケットプレイスエントリに表示でき、`plugin.json` の値より優先されます。[オプションプラグインフィールド](/docs/ja/plugin-marketplaces#optional-plugin-fields)を参照してください。
590
591<h3 id="component-path-fields">
592 コンポーネントパスフィールド
593</h3>
594
595| フィールド | 型 | 説明 | 例 |
596| :---------------------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |
597| `skills` | string\|array | `<name>/SKILL.md` を含むカスタムスキルディレクトリ。デフォルト `skills/` スキャンに追加します。マーケットプレイスルート例外については[パス動作ルール](#path-behavior-rules)を参照してください | `"./custom/skills/"` |
598| `commands` | string\|array | カスタムフラット `.md` スキルファイルまたはディレクトリ(デフォルト `commands/` を置き換え) | `"./custom/cmd.md"` または `["./cmd1.md"]` |
599| `agents` | string\|array | カスタムエージェントファイル(デフォルト `agents/` を置き換え) | `"./custom/agents/reviewer.md"` |
600| `workflows` | string\|array | カスタム[ワークフロー](/docs/ja/workflows)スクリプトファイルまたはディレクトリ(デフォルト `workflows/` を置き換え) | `"./custom/workflows/"` |
601| `hooks` | string\|array\|object | フック設定パスまたはインライン設定 | `"./my-extra-hooks.json"` |
602| `mcpServers` | string\|array\|object | MCP 設定パスまたはインライン設定 | `"./my-extra-mcp-config.json"` |
603| `outputStyles` | string\|array | カスタム出力スタイルファイル/ディレクトリ(デフォルト `output-styles/` を置き換え) | `"./styles/"` |
604| `lspServers` | string\|array\|object | コード知能(定義へのジャンプ、参照の検索など)用の[言語サーバープロトコル](https://microsoft.github.io/language-server-protocol/)設定 | `"./.lsp.json"` |
605| `experimental.themes` | string\|array | カラーテーマファイル/ディレクトリ(デフォルト `themes/` を置き換え)。[テーマ](#themes)を参照してください | `"./themes/"` |
606| `experimental.monitors` | string\|array | プラグインがアクティブな場合に自動的に開始するバックグラウンド[Monitor](/docs/ja/tools-reference#monitor-tool)設定。[モニター](#monitors)を参照してください | `"./monitors.json"` |
607| `experimental.evals` | string\|array | デフォルト `evals/` ではない場合、プラグインの[eval ケース](/docs/ja/plugin-evals#use-a-different-eval-directory)を保持するプラグインルート下のディレクトリ。`claude plugin eval --eval-dir` はこれをオーバーライドします | `"quality/evals"` |
608| `userConfig` | object | ユーザーが有効化時にプロンプトされる設定可能な値。[ユーザー設定](#user-configuration)を参照してください | |
609| `channels` | array | メッセージ注入用のチャネル宣言(Telegram、Slack、Discord スタイル)。[チャネル](#channels)を参照してください | |
610| `dependencies` | array | このプラグインが必要とする他のプラグイン。オプションで semver バージョン制約付き。[プラグイン依存関係バージョンを制約する](/docs/ja/plugin-dependencies)を参照してください | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |
611
612<h3 id="experimental-components">
613 実験的コンポーネント
614</h3>
615
616`experimental` キー、`themes` および `monitors` の下のコンポーネントは、安定化中にリリース間でマニフェストスキーマが変更される可能性があります。それらを宣言する場所は別の移行です。トップレベルはまだ機能し、`claude plugin validate` は警告を出し、将来のリリースは `experimental.*` を必要とします。
617
618<h3 id="user-configuration">
619 ユーザー設定
620</h3>
621
622`userConfig` フィールドは、プラグインが有効化されたときに Claude Code がユーザーにプロンプトする値を宣言します。ユーザーに `settings.json` を手動で編集させる代わりにこれを使用してください。
623
624```json theme={null}
625{
626 "userConfig": {
627 "api_endpoint": {
628 "type": "string",
629 "title": "API endpoint",
630 "description": "Your team's API endpoint"
631 },
632 "api_token": {
633 "type": "string",
634 "title": "API token",
635 "description": "API authentication token",
636 "sensitive": true
637 }
638 }
639}
640```
641
642キーは有効な識別子である必要があります。各オプションはこれらのフィールドをサポートします。
643
644| フィールド | 必須 | 説明 |
645| :------------ | :-- | :---------------------------------------------------------------------------------------------------------------------------------------------- |
646| `type` | はい | `string`、`number`、`boolean`、`directory`、または `file` のいずれか |
647| `title` | はい | 設定ダイアログに表示されるラベル |
648| `description` | はい | フィールドの下に表示されるヘルプテキスト |
649| `sensitive` | いいえ | `true` の場合、入力をマスクし、値を `settings.json` の代わりにセキュアストレージに保存します |
650| `required` | いいえ | `true` の場合、フィールドが空の場合は検証が失敗します |
651| `default` | いいえ | ユーザーが何も提供しない場合に使用される値 |
652| `options` | いいえ | `string` 型の場合、フィールドが受け入れる値。`/config` にピッカーとして表示されます。[フィールドを固定オプションに制限する](#limit-a-field-to-fixed-options)を参照してください。Claude Code v2.1.271 以降が必要です |
653| `multiple` | いいえ | `string` 型の場合、文字列の配列を許可します |
654| `min` / `max` | いいえ | `number` 型の境界 |
655
656`sensitive` フィールドと `multiple` リストを除き、有効な各プラグインの各フィールドは `/config` パネルの行としても表示されます。行には Claude Code v2.1.269 以降が必要です。
657
658各値は MCP および LSP サーバー設定とフックコマンドで `${user_config.KEY}` として置換可能です。機密でない値はスキルおよびエージェントコンテンツでも置換できます。すべての値は、`<KEY>` がオプションキーを大文字にしたフックプロセスに `CLAUDE_PLUGIN_OPTION_<KEY>` 環境変数としてエクスポートされます。
659
660シェルで実行されるフィールドは `${user_config.*}` を拒否します。設定された値をシェルコマンドに置換すると、シェルはその値に含まれるものを実行できるため、コンポーネントは[エラー](/docs/ja/errors#plugin-command-references-user-config)で失敗します。拒否された各フィールドには、値を渡す別の方法があります。
661
662| 拒否されたフィールド | 値を渡す方法 |
663| :--------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------- |
664| シェル形式フックコマンド | [exec 形式](/docs/ja/hooks#exec-form-and-shell-form)を `args` で使用するか、フックの環境から `CLAUDE_PLUGIN_OPTION_<KEY>` を読み取ります |
665| [Monitor](#monitors)コマンド | スクリプトの設定ファイルから値を読み取ります |
666| MCP [`headersHelper`](/docs/ja/mcp#use-dynamic-headers-for-custom-authentication) | スクリプトの設定ファイルから値を読み取ります |
667
668v2.1.207 より前では、これらのフィールドは `${user_config.KEY}` 値を置換しました。これに依存していたプラグインを更新してください。
669
670機密でない値は、ユーザー `settings.json` の [`pluginConfigs`](/docs/ja/settings-reference#pluginconfigs) キーの下に `pluginConfigs[<plugin-id>].options` として保存されます。
671
672macOS では、Claude Code は macOS キーチェーンに機密値を保存し、キーチェーンが書き込みを拒否した場合は `~/.claude/.credentials.json` にフォールバックします。サポートされているキーチェーンのないプラットフォームでは、`~/.claude/.credentials.json` に保存されます。キーチェーンストレージは OAuth トークンと共有され、約 2 KB の合計制限があるため、機密値を小さく保ちます。
673
674Claude Code は 3 つの設定ソースからのみすべての `pluginConfigs` 値を読み取ります。
675
676* **ユーザー設定**: `~/.claude/settings.json`。有効化時プロンプトが書き込むファイル
677* **`--settings`**: CLI フラグまたは SDK インライン設定
678* **管理設定**: [組織制御ポリシー](/docs/ja/permissions#managed-settings)
679
680複数のソースが同じキーを設定する場合、管理設定が優先され、次に `--settings`、次にユーザー設定が優先されます。このリストから削除できる唯一のソースはユーザー設定です。[`--setting-sources`](/docs/ja/cli-reference#cli-flags)を `user` なしで渡し、Claude Code はそれらをスキップします。管理設定と `--settings` は渡すものが何であれ保持されます。SDK の [`settingSources`](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control)オプションは同じリストを設定します。
681
682プロジェクトの `.claude/settings.json` または `.claude/settings.local.json` のエントリは無視されます。両方のファイルはワークスペースに存在するため、クローンされたリポジトリはそこに値を提供でき、それらの値はプラグインフックコマンド、MCP サーバー設定、LSP コマンド、およびモニターコマンドに流れます。v2.1.207 より前では、これらのエントリが読み取られました。制限は `pluginConfigs` に固有です。[`enabledPlugins`](/docs/ja/settings-reference#enabledplugins)はまだプロジェクトおよびローカル設定を尊重します。
683
684<h4 id="limit-a-field-to-fixed-options">
685 フィールドを固定オプションに制限する
686</h4>
687
688`userConfig` フィールドに `options` を設定して、ユーザーが固定リストからその値を選択するようにします。
689
690`tone` フィールドを 3 つのオプションに制限するには、`options` にそれらをリストし、`default` をそのうちの 1 つに設定します。
691
692```json theme={null}
693{
694 "userConfig": {
695 "tone": {
696 "type": "string",
697 "title": "Tone",
698 "description": "Voice for generated replies",
699 "options": ["neutral", "warm", "formal"],
700 "default": "neutral"
701 }
702 }
703}
704```
705
706任意のフィールドで `options` を宣言する場合、Claude Code v2.1.271 より前のバージョンのユーザーはプラグインを読み込むことができません。
707
708フィールドに `options` を設定する場合、これらのルールに従います。
709
710* `type` を `string` に設定します
711* `multiple` または `sensitive` を `true` に設定しません
712* `default` をオプションの 1 つに設定します
713* `default` を設定しない場合は、`required` を `true` に設定します
714* 少なくとも 1 つのオプションをリストし、各 1 〜 64 文字の長さです
715* オプションをスペースで開始または終了しません
716* 制御文字、非表示文字、テキスト方向を変更する文字、またはオプション内の通常のスペース以外のスペースを使用しません
717* 異なる大文字小文字でも同じオプションを 2 回リストしません
718
719これらのルールのいずれかを破った場合、プラグインは読み込みに失敗します。`claude plugin validate` を実行して、どのフィールドがどのルールを破るかを確認してください。
720
721<h3 id="channels">
722 チャネル
723</h3>
724
725`channels` フィールドを使用すると、プラグインは会話にコンテンツを注入する 1 つ以上のメッセージチャネルを宣言できます。各チャネルはプラグインが提供する MCP サーバーにバインドされます。
726
727```json theme={null}
728{
729 "channels": [
730 {
731 "server": "telegram",
732 "userConfig": {
733 "bot_token": {
734 "type": "string",
735 "title": "Bot token",
736 "description": "Telegram bot token",
737 "sensitive": true
738 },
739 "owner_id": {
740 "type": "string",
741 "title": "Owner ID",
742 "description": "Your Telegram user ID"
743 }
744 }
745 }
746 ]
747}
748```
749
750`server` フィールドは必須で、プラグインの `mcpServers` のキーと一致する必要があります。オプションのチャネルごとの `userConfig` はトップレベルフィールドと同じスキーマを使用し、プラグインがプラグイン有効化時にボットトークンまたはオーナー ID をプロンプトできるようにします。
751
752<h3 id="path-behavior-rules">
753 パス動作ルール
754</h3>
755
756カスタムパスがプラグインのデフォルトディレクトリを置き換えるか拡張するかは、フィールドによって異なります。
757
758* **デフォルトを置き換え**: `commands`、`agents`、`workflows`、`outputStyles`、`experimental.themes`、`experimental.monitors`。たとえば、マニフェストが `commands` を指定する場合、デフォルト `commands/` ディレクトリはスキャンされません。デフォルトを保持してさらに追加するには、明示的にリストします。`"commands": ["./commands/", "./extras/"]`
759* **デフォルトに追加**: `skills`。デフォルト `skills/` ディレクトリは常にスキャンされ、`skills` にリストされているディレクトリはそれと一緒に読み込まれます。例外: [ソースがマーケットプレイスルートに解決される](/docs/ja/plugin-marketplaces#advanced-plugin-entries)マーケットプレイスエントリの場合、特定のサブディレクトリを宣言するとデフォルト `skills/` スキャンが置き換わります
760* **独自のマージルール**: [フック](#hooks)、[MCP サーバー](#mcp-servers)、および [LSP サーバー](#lsp-servers)。各セクションで複数のソースがどのように結合されるかを参照してください
761
762プラグインにデフォルトフォルダと一致するマニフェストキーの両方がある場合、Claude Code は `claude plugin list` と `/plugin` 詳細ビューで無視されたフォルダについて警告します。プラグインはマニフェストパスを使用して引き続き読み込まれます。マニフェストキーがデフォルトフォルダを指す場合、Claude Code は警告しません。たとえば `"commands": ["./commands/deploy.md"]` は、そのパスがフォルダを明示的に名前付けするためです。
763
764すべてのパスフィールドについて。
765
766* すべてのパスはプラグインルートに相対的で `./` で始まる必要があります。ただし、`skills` フィールドは `.` も受け入れます
767 * `"."` と `"./"` の両方はプラグインルート自体を示します
768 * v2.1.221 より前では、`"."` はマニフェスト検証に失敗し、プラグインは読み込まれなかったため、`"./"` を使用して以前のバージョンをサポートします
769* カスタムパスのコンポーネントは、エージェントファイルを除き、同じ命名および名前空間化ルールを使用します。エージェント名がどのように機能するかについては[エージェント](#agents)を参照してください
770* 複数のパスは配列として指定できます
771* スキルパスは `SKILL.md` を直接含むディレクトリを指すことができます。たとえば、プラグインルートの場合は `"skills": ["."]`
772 * Claude Code は `SKILL.md` のフロントマター `name` フィールドからスキルの呼び出し名を取得するため、インストールディレクトリの名前が何であれ、名前は安定したままです
773 * フロントマターで `name` が設定されていない場合、Claude Code はディレクトリベース名にフォールバックします
774
775ルートに `SKILL.md` があり、`skills/` サブディレクトリがなく、`skills` マニフェストフィールドがないプラグインは、単一スキルプラグインとして自動的に読み込まれます。このレイアウトの場合、`plugin.json` で `"skills": ["./"]` を設定する必要はありません。
776
777**パスの例**:
778
779```json theme={null}
780{
781 "commands": [
782 "./specialized/deploy.md",
783 "./utilities/batch-process.md"
784 ],
785 "agents": [
786 "./custom-agents/reviewer.md",
787 "./custom-agents/tester.md"
788 ]
789}
790```
791
792<h3 id="environment-variables">
793 環境変数
794</h3>
795
796Claude Code はパスを参照するための 3 つの変数を提供します。
797
798| 変数 | 解決先 | 用途 |
799| :---------------------- | :------------------------------------------------------------------ | :-------------------------------------------------------------- |
800| `${CLAUDE_PLUGIN_ROOT}` | プラグインのインストールディレクトリへの絶対パス | プラグインにバンドルされたスクリプト、バイナリ、および設定ファイル |
801| `${CLAUDE_PLUGIN_DATA}` | プラグイン更新を超えて存続する[永続ディレクトリ](#persistent-data-directory)。最初の参照時に作成されます | `node_modules` または Python 仮想環境などのインストール済み依存関係、生成されたコード、およびキャッシュ |
802| `${CLAUDE_PROJECT_DIR}` | プロジェクトルート | プロジェクトローカルスクリプトおよび設定ファイル |
803
8043 つすべてが環境変数としてフックプロセスおよび MCP と LSP サーバーサブプロセスにエクスポートされます。これらはメインセッションまたはサブエージェントで Bash ツールを通じて Claude が実行するコマンドの環境には存在しません。プラグインコンテンツで、プレースホルダーを書き込み、Claude Code はコンテンツを読み込むときにパスをインラインで置換します。どのフィールドがそれらをインラインで置換するかは、プラグインコンポーネントによって異なります。
805
806| プラグインコンポーネント | プレースホルダーが解決されるフィールド |
807| :------------------------- | :--------------------------------------- |
808| スキルおよびエージェントコンテンツ | プレースホルダーが表示される任意の場所 |
809| フックおよびモニターコマンド | プレースホルダーが表示される任意の場所 |
810| MCP `stdio` サーバー | `command`、`args`、`env` |
811| MCP `http`、`sse`、`ws` サーバー | `url`、`headers`、`headersHelper` |
812| LSP サーバー | `command`、`args`、`env`、`workspaceFolder` |
813
814フックコマンドで、[exec 形式](/docs/ja/hooks#exec-form-and-shell-form)を `args` で使用して、各パスが引用符なしで 1 つの引数として渡されるようにします。シェル形式フックおよびモニターコマンドで、`"${CLAUDE_PROJECT_DIR}/scripts/server.sh"` のように変数をダブルクォートで囲みます。このシェル形式フックはプラグインにバンドルされたスクリプトを実行します。
815
816```json theme={null}
817{
818 "hooks": {
819 "PostToolUse": [
820 {
821 "hooks": [
822 {
823 "type": "command",
824 "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/process.sh"
825 }
826 ]
827 }
828 ]
829 }
830}
831```
832
833コピーされたプラグインの場合、`${CLAUDE_PLUGIN_ROOT}` はプラグインが更新されるときに変更されます。前のバージョンのディレクトリは更新後の猶予期間ディスク上に残りますが、それを一時的なものとして扱い、そこに状態を書き込まないでください。ローカルディレクトリマーケットプレイスから読み込まれたプラグインの場合、変数は安定したソースディレクトリを指します。どのプラグインがコピーされるか、およびクリーンアップセマンティクスについては、[プラグインキャッシング](#plugin-caching-and-file-resolution)を参照してください。
834
835コピーされたプラグインがセッション中に更新される場合、フックコマンド、モニター、MCP サーバー、および LSP サーバーは前のバージョンのパスを使用し続けます。`/reload-plugins` を実行して、フック、MCP サーバー、および LSP サーバーを新しいパスに切り替えます。モニターはセッション再開が必要です。インタラクティブターミナルのないセッションでは、リロードはプラグイン MCP サーバーを次のセッションまで古いパスに残します。
836
837`command` ソースを持つプラグインの場合、Claude Code は[プラグイン自体を再読み込みできます](/docs/ja/plugin-marketplaces#when-claude-code-re-runs-the-command)。
838
839MCP サーバーは `roots/list` リクエストを呼び出して、実行時にセッションの作業ディレクトリを読み取ることもできます。[`roots/list` が返すもの、および Claude Code がサーバーに変更を通知するとき](/docs/ja/mcp#option-3-add-a-local-stdio-server)を参照してください。
840
841<h4 id="persistent-data-directory">
842 永続データディレクトリ
843</h4>
844
845`${CLAUDE_PLUGIN_DATA}` ディレクトリは `~/.claude/plugins/data/{id}/` に解決されます。ここで `{id}` はプラグイン識別子で、`a-z`、`A-Z`、`0-9`、`_`、および `-` の外の文字は `-` に置き換えられます。`formatter@my-marketplace` としてインストールされたプラグインの場合、ディレクトリは `~/.claude/plugins/data/formatter-my-marketplace/` です。
846
847一般的な用途は、言語依存関係を 1 回インストールし、セッションとプラグイン更新全体で再利用することです。Python 依存関係、Yarn または pnpm でロックされた依存関係、およびライフサイクルスクリプトを実行する必要があるパッケージに使用します。マーケットプレイスにインストールされたプラグインの場合、それをまったく必要としない場合があります。Claude Code はキャッシュ時に適格な[Node.js パッケージ依存関係](#node-js-package-dependencies)を自動的にインストールします。
848
849データディレクトリは単一のプラグインバージョンより長く存続するため、ディレクトリ存在チェックだけでは、更新がプラグインの依存関係マニフェストを変更したときを検出できません。推奨パターンはバンドルされたマニフェストをデータディレクトリのコピーと比較し、異なる場合は再インストールします。
850
851この `SessionStart` フックは最初の実行時に `node_modules` をインストールし、プラグイン更新に変更された `package.json` が含まれるたびに再度インストールします。
852
853```json theme={null}
854{
855 "hooks": {
856 "SessionStart": [
857 {
858 "hooks": [
859 {
860 "type": "command",
861 "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""
862 }
863 ]
864 }
865 ]
866 }
867}
868```
869
870`diff` は保存されたコピーが見つからないか、バンドルされたコピーと異なる場合にゼロ以外で終了し、最初の実行と依存関係変更更新の両方をカバーします。`npm install` が失敗した場合、末尾の `rm` はコピーされたマニフェストを削除して、次のセッションが再試行されるようにします。
871
872`${CLAUDE_PLUGIN_ROOT}` にバンドルされたスクリプトは、永続化された `node_modules` に対して実行できます。
873
874```json theme={null}
875{
876 "mcpServers": {
877 "routines": {
878 "command": "node",
879 "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],
880 "env": {
881 "NODE_PATH": "${CLAUDE_PLUGIN_DATA}/node_modules"
882 }
883 }
884 }
885}
886```
887
888データディレクトリは、最後のスコープからプラグインをアンインストールするときに自動的に削除されます。`/plugin` インターフェースはディレクトリサイズを表示し、削除前にプロンプトします。CLI はデフォルトで削除します。[`--keep-data`](#plugin-uninstall)を渡して保持します。
889
890***
891
892<h2 id="plugin-caching-and-file-resolution">
893 プラグインのキャッシングとファイル解決
894</h2>
895
896プラグインは以下の 3 つの方法のいずれかで指定されます。
897
898* `claude --plugin-dir` または `claude --plugin-url` を通じて、セッションの期間中。
899* マーケットプレイスを通じて、今後のセッション用にインストール。
900* claude.ai アカウントを通じて、[同期](#synced-plugins)されて `~/.claude/plugins/synced/` に。
901
902セキュリティと検証の目的で、Claude Code はマーケットプレイス プラグインをユーザーのローカル **プラグインキャッシュ** (`~/.claude/plugins/cache`)にコピーします。ただし、プラグインがインプレイスでロードされる場合を除きます。[リンクモードの `command` ソース](/docs/ja/plugin-marketplaces#copy-mode-and-link-mode)はキャッシュエントリ内のリンクを通じてインプレイスでロードされます。[ローカルディレクトリから追加されたマーケットプレイスの相対パスソース](/docs/ja/plugin-marketplaces#relative-paths)はマーケットプレイスフォルダからインプレイスでロードされます。
903
904ローカルディレクトリマーケットプレイスからインプレイスでロードされたプラグインの場合、ソースディレクトリへの編集は次のセッション開始時または `/reload-plugins` で有効になります。バージョンバンプは不要です。プラグインのフックプロセスと MCP および LSP サーバーは、ソースディレクトリを指す `CLAUDE_PLUGIN_ROOT` を受け取ります。Claude Code はプラグインの [Node.js パッケージ依存関係](#node-js-package-dependencies)をソースディレクトリにインストールしません。それらを自分でインストールするか、[永続データディレクトリ](#persistent-data-directory)へのフックからインストールしてください。
905
906コピーされたプラグインの場合、インストールされた各バージョンはキャッシュ内の個別のディレクトリであり、マーケットプレイスとプラグインでグループ化され、解決されたバージョンに対して名前が付けられ、プラグインのファイルと [Node.js パッケージ依存関係](#node-js-package-dependencies)の独自のコピーを持ちます。[リリースタグ](/docs/ja/plugin-dependencies#tag-plugin-releases-for-version-resolution)から解決された依存関係は、コミット SHA サフィックス付きのディレクトリ名を取得します。
907
908プラグインを更新またはアンインストールすると、Claude Code は前のバージョンディレクトリを孤立したものとしてマークし、約 14 日後のバックグラウンドスイープで削除します。猶予期間により、既に古いバージョンをロードした同時実行中の Claude Code セッションがエラーなく実行を続けることができます。Claude Code はスイープを実行するのは、少なくとも 1 つのプラグインがインストールされている場合のみです。最後のプラグインをアンインストールした後、孤立したディレクトリはディスク上に残り、プラグインを再度インストールするまで保持されます。
909
910Claude Code は、プラグインまたはマーケットプレイスフォルダをキャッシュから削除するのは、ディレクトリまたはシンボリックリンクが含まれなくなった場合のみです。開発チェックアウトをキャッシュにシンボリックリンクとしてプラグインのバージョンエントリにリンクする場合、Claude Code はリンクを孤立したものとしてマークすることはなく、削除することもなく、それを保持するフォルダも削除しません。Claude Code はリンクされたチェックアウト内にバージョン追跡ファイルを書き込むこともありません。
911
912Claude の Glob および Grep ツールは検索中に孤立したバージョンディレクトリをスキップするため、ファイル結果には古いプラグインコードが含まれません。
913
914<h3 id="node-js-package-dependencies">
915 Node.js パッケージ依存関係
916</h3>
917
918Claude Code がプラグインをキャッシュにコピーするとき、プラグインの Node.js パッケージ依存関係もそこにインストールするため、プラグインのフックと MCP サーバーはそれらをロードできます。このセクションでは、プラグインが独自の `package.json` で宣言する npm および Bun パッケージについて説明します。他のプラグインに依存するプラグインについては、[プラグイン依存関係バージョン](/docs/ja/plugin-dependencies)を参照してください。
919
920Claude Code は、コピーされたバージョンディレクトリを作成するたびに、その内部でインストールを実行します。プラグインをインストールするとき、Claude Code がプラグインを新しいバージョンに更新するとき、および有効なプラグインがまだキャッシュされていない場合のセッション開始時(新しいマシンなど)です。インストールは、プラグインのルートディレクトリに `package.json` とサポートされているロックファイルの両方が含まれている場合にのみ実行されます。
921
922| ロックファイル | コマンド |
923| :-------------------------------------------- | :----------------------------------------------- |
924| `bun.lock` または `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |
925| `npm-shrinkwrap.json` または `package-lock.json` | `npm ci --ignore-scripts` |
926
927プラグインにこれらのロックファイルが複数含まれている場合、Claude Code は最初のマッチを使用し、順序をチェックします。`bun.lock`、`bun.lockb`、`npm-shrinkwrap.json`、`package-lock.json`。
928
929Claude Code は 2 つのケースでインストールをスキップします。それぞれ独自の修正があります。
930
931* プラグインが `yarn.lock` または `pnpm-lock.yaml` のみを配布している場合は、npm ロックファイルに置き換えてください。
932* `bunfig.toml` が bun ロックファイルの横にある場合は、`bunfig.toml` を削除するか、bun ロックファイルを npm ロックファイルに置き換えてください。
933
934最も広いリーチのために npm ロックファイルを配布してください。Claude Code はマッチされたロックファイルのパッケージマネージャーをユーザーの PATH から実行し、ロックファイルが見つからない場合は他のロックファイルにフォールバックしません。npm ソースを通じて配布されるプラグインの場合は、`npm-shrinkwrap.json` を使用してください。npm は公開されたパッケージから `package-lock.json` を除外します。
935
936Claude Code はこの依存関係インストールを制約して、プラグインまたはそのパッケージからのコードがインストール中に実行されず、実行時間が制限されます。
937
938* **凍結された解決:** Bun と npm はロックファイルがピンしたものを正確にインストールし、`package.json` とロックファイルが一致しない場合は再解決するのではなく失敗します。
939* **ライフサイクルスクリプトなし:** `--ignore-scripts` は `preinstall`、`install`、および `postinstall` スクリプトが実行されないようにするため、これらのスクリプトでネイティブモジュールをビルドする依存関係はダウンロードされますが、このインストール中にはコンパイルされません。
940* **60 秒のタイムアウト:** Claude Code は実行時間が長いインストールを停止し、失敗として扱います。
941
942Claude Code は npm ソースプラグインをこの依存関係インストールの前にフェッチし、このフェッチ中にパッケージ独自のインストールスクリプトは実行されません。[npm パッケージ](/docs/ja/plugin-marketplaces#npm-packages)を参照してください。
943
944失敗またはスキップされたインストールはプラグインをブロックすることはありません。インストールが失敗した場合、または Claude Code が yarn または pnpm ロックファイルをスキップした場合、または `bunfig.toml` が横にある場合、理由は [デバッグ出力](#debugging-commands)の警告として記録されます。`package.json` とロックファイルがないプラグインはログエントリなしでスキップされます。タイムアウトしたインストールは、キャッシュされたコピーに部分的な `node_modules` ツリーを残すことができます。
945
946自動インストールをオフにすることはできません。設定または環境変数はそれを無効にしません。制限されたネットワークでは、[ネットワークアクセス要件](/docs/ja/network-config#network-access-requirements)を参照して、許可するホストを確認してください。
947
948自動インストールが提供できない依存関係(ライフサイクルスクリプトをビルドする必要があるパッケージ、Python 依存関係、または Yarn または pnpm でロックされたプラグインなど)については、[永続データディレクトリ](#persistent-data-directory)へのフックからインストールしてください。
949
950<h3 id="path-traversal-limitations">
951 パストラバーサルの制限
952</h3>
953
954Claude Code はプラグインが独自のディレクトリ外のファイルを参照することを許可しません。プラグインルートの外に解決されるコンポーネントパスを拒否します。パスが `plugin.json` で宣言されているか、[マーケットプレイスエントリ](/docs/ja/plugin-marketplaces#plugin-entries)で宣言されているかに関わらず。これは、`../shared-utils` などのように書かれたプラグインの外を指すパス、および [1 つのマーケットプレイス内のリンク](#share-files-within-a-marketplace-with-symlinks)以外のプラグインの外につながるシンボリックリンクをカバーします。
955
956macOS と Linux では、Claude Code はコンポーネントパスにバックスラッシュが含まれている場合も拒否します。バックスラッシュパスで宣言されたコンポーネントは、Windows でのみロードされます。`./commands/deploy.md` などのようにフォワードスラッシュを使用してコンポーネントパスを記述してください。
957
958Claude Code がパスを拒否すると、[`path escapes plugin directory`](/docs/ja/errors#path-escapes-plugin-directory) エラーを報告し、そのコンポーネントなしでプラグインをロードします。
959
960Claude Code はプラグインをインストールするときにプラグインディレクトリ外のファイルをキャッシュにコピーしないため、コピーされたプラグイン内のスクリプトがプラグインルート上のパスを読み取る場合、それらのファイルも見つかりません。
961
962<h3 id="share-files-within-a-marketplace-with-symlinks">
963 シンボリックリンクを使用してマーケットプレイス内でファイルを共有する
964</h3>
965
966プラグインが同じマーケットプレイスの他の部分とファイルを共有する必要がある場合は、プラグインディレクトリ内にシンボリックリンクを作成できます。プラグインがキャッシュにコピーされるときにシンボリックリンクがどのように処理されるかは、そのターゲットがどこに解決されるかによって異なります。
967
968* **プラグイン独自のディレクトリ内:** シンボリックリンクはキャッシュ内の相対シンボリックリンクとして保持されるため、実行時にコピーされたターゲットへの解決を続けます。
969* **同じマーケットプレイス内の他の場所:** シンボリックリンクは逆参照されます。ターゲットのコンテンツはキャッシュにコピーされます。これにより、メタプラグインの `skills/` ディレクトリがマーケットプレイス内の他のプラグインで定義されたスキルにリンクできます。
970* **マーケットプレイス外:** シンボリックリンクはセキュリティのためスキップされます。これにより、プラグインがシステムパスなどの任意のホストファイルをキャッシュに取り込むことを防ぎます。
971
972`--plugin-dir` でインストールされたプラグイン、ローカルパスから、または [コピーモードの `command` ソース](/docs/ja/plugin-marketplaces#copy-mode-and-link-mode)から、プラグイン独自のディレクトリ内で解決されるシンボリックリンクのみが保持されます。その他はすべてスキップされます。
973
974次のコマンドは、マーケットプレイスプラグイン内から、兄弟プラグインで定義された共有スキルへのリンクを作成します。Windows では、昇格されたコマンドプロンプトから `mklink /D` を使用するか、開発者モードを有効にしてください。
975
976```bash theme={null}
977ln -s ../../shared-plugin/skills/foo ./skills/foo
978```
979
980***
981
982<h2 id="plugin-directory-structure">
983 プラグインディレクトリ構造
984</h2>
985
986<h3 id="standard-plugin-layout">
987 標準プラグインレイアウト
988</h3>
989
990完全なプラグインは以下の構造に従います:
991
992```text theme={null}
993enterprise-plugin/
994├── .claude-plugin/ # メタデータディレクトリ(オプション)
995│ └── plugin.json # プラグインマニフェスト
996├── skills/ # Skills
997│ ├── code-reviewer/
998│ │ └── SKILL.md
999│ └── pdf-processor/
1000│ ├── SKILL.md
1001│ └── scripts/
1002├── commands/ # Skills をフラット .md ファイルとして
1003│ ├── status.md
1004│ └── logs.md
1005├── agents/ # Subagent 定義
1006│ ├── security-reviewer.md
1007│ ├── performance-tester.md
1008│ ├── compliance-checker.md
1009│ └── review/ # ここのエージェントは enterprise-plugin:review:<name> として読み込まれます
1010│ └── accessibility.md
1011├── workflows/ # ワークフロースクリプト
1012│ └── release-audit.js
1013├── output-styles/ # 出力スタイル定義
1014│ └── terse.md
1015├── themes/ # カラーテーマ定義
1016│ └── dracula.json
1017├── monitors/ # バックグラウンドモニター設定
1018│ └── monitors.json
1019├── hooks/ # Hook 設定
1020│ ├── hooks.json # メイン hook 設定
1021│ └── security-hooks.json # 追加 hooks
1022├── bin/ # プラグイン実行ファイルが PATH に追加される
1023│ └── my-tool # Bash tool で裸のコマンドとして呼び出し可能
1024├── settings.json # プラグインのデフォルト設定
1025├── .mcp.json # MCP サーバー定義
1026├── .lsp.json # LSP サーバー設定
1027├── scripts/ # Hook とユーティリティスクリプト
1028│ ├── security-scan.sh
1029│ ├── format-code.py
1030│ └── deploy.js
1031├── LICENSE # ライセンスファイル
1032└── CHANGELOG.md # バージョン履歴
1033```
1034
1035<Warning>
1036 `.claude-plugin/` ディレクトリには `plugin.json` ファイルが含まれます。その他すべてのディレクトリ(commands/、agents/、skills/、workflows/、output-styles/、themes/、monitors/、hooks/)は `.claude-plugin/` 内ではなく、プラグインルートに配置する必要があります。
1037</Warning>
1038
1039プラグインルートの `CLAUDE.md` ファイルはプロジェクトコンテキストとして読み込まれません。プラグインは CLAUDE.md ではなく、skills、agents、hooks を通じてコンテキストを提供します。Claude のコンテキストに読み込まれる命令を配布するには、[skill](#skills) に配置してください。
1040
1041<h3 id="file-locations-reference">
1042 ファイルロケーション参照
1043</h3>
1044
1045| コンポーネント | デフォルトロケーション | 目的 |
1046| :----------- | :--------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1047| **マニフェスト** | `.claude-plugin/plugin.json` | プラグインメタデータと設定(オプション) |
1048| **Skills** | `skills/` | `<name>/SKILL.md` 構造の Skills |
1049| **コマンド** | `commands/` | フラット Markdown ファイルとしての Skills。新しいプラグインには `skills/` を使用してください |
1050| **Agents** | `agents/` | Subagent Markdown ファイル。サブフォルダは[エージェント名](#agents)の一部です |
1051| **ワークフロー** | `workflows/` | [ワークフロー](/docs/ja/workflows) スクリプトファイル |
1052| **出力スタイル** | `output-styles/` | 出力スタイル定義 |
1053| **テーマ** | `themes/` | カラーテーマ定義 |
1054| **Hooks** | `hooks/hooks.json` | Hook 設定 |
1055| **MCP サーバー** | `.mcp.json` | MCP サーバー定義 |
1056| **LSP サーバー** | `.lsp.json` | 言語サーバー設定 |
1057| **モニター** | `monitors/monitors.json` | バックグラウンドモニター設定 |
1058| **実行ファイル** | `bin/` | Bash tool の `PATH` に追加され、プラグインが有効な間は裸のコマンドとして呼び出し可能な実行ファイル。[claude.ai 組織設定を通じて配布するプラグイン](/docs/ja/plugin-marketplaces#keep-executables-out-of-the-top-level-bin-directory)にはこのディレクトリを含めることはできません |
1059| **設定** | `settings.json` | プラグインが有効になったときに適用されるデフォルト設定。[`agent`](/docs/ja/sub-agents) と [`subagentStatusLine`](/docs/ja/statusline#subagent-status-lines) キーのみがサポートされています |
1060
1061***
1062
1063<h2 id="cli-commands-reference">
1064 CLI コマンドリファレンス
1065</h2>
1066
1067Claude Code は、非対話的なプラグイン管理用の CLI コマンドを提供します。スクリプトとオートメーションに便利です。
1068
1069<h3 id="plugin-init">
1070 plugin init
1071</h3>
1072
1073`~/.claude/skills/<name>/` に新しいプラグインをスキャフォルドします。次の Claude Code セッションで、`<name>@skills-dir` として自動的に読み込まれ、`/plugin` と `claude plugin list` に表示されます。インストール手順は不要です。
1074
1075[スキルディレクトリプラグイン](#skills-directory-plugins)のスコープと信頼要件を参照してください。
1076
1077```bash theme={null}
1078claude plugin init <name> [options]
1079```
1080
1081コマンドは以下の引数を取ります:
1082
1083* `<name>`: プラグイン名。スキル名前空間と `~/.claude/skills/` の下のディレクトリ名になるため、スペースやパス区切り文字を含めることはできません。
1084
1085コマンドは以下のオプションを受け入れます:
1086
1087| オプション | 説明 | デフォルト |
1088| :----------------------- | :------------------------------------------------------------------------------------------ | :---------------------- |
1089| `--description <text>` | マニフェストの説明 | |
1090| `--author <name>` | 作成者名 | `git config user.name` |
1091| `--author-email <email>` | 作成者メール | `git config user.email` |
1092| `--with <components...>` | コンポーネントフォルダもスキャフォルドします。有効な値: `skills`、`agents`、`hooks`、`mcp`、`lsp`、`output-style`、`channel` | |
1093| `-f, --force` | ターゲットの既存 `.claude-plugin/` を上書きします | |
1094| `-h, --help` | コマンドのヘルプを表示 | |
1095
1096`claude plugin new` はこのコマンドのエイリアスです。
1097
1098各 `--with` 値は、そのコンポーネント用のスターターファイルを追加し、編集可能な状態にします:
1099
1100| コンポーネント | スキャフォルドされるもの |
1101| :------------- | :-------------------------------------------------------------------------------------- |
1102| `skills` | デフォルトのスキルと並んで、追加の名前空間付き `<name>:example` スキル |
1103| `agents` | `agents/` サブエージェント定義 |
1104| `hooks` | サンプルイベントハンドラを含む `hooks/hooks.json` |
1105| `mcp` | HTTP と stdio サーバーの例を含む `.mcp.json` |
1106| `lsp` | `.lsp.json` 言語サーバーの例 |
1107| `output-style` | プラグインが有効な間に自動的に適用される `output-styles/<name>.md` |
1108| `channel` | MCP ベースの[チャネル](/docs/ja/channels): stdio サーバー(`server.ts`)、その `.mcp.json`、および `package.json` |
1109
1110スキャフォルドされたプラグインは、マーケットプレイスではなく `@skills-dir` ソースを使用します。管理者は `strictKnownMarketplaces` でこのソースをブロックするか、[管理設定](/docs/ja/plugin-marketplaces#managed-marketplace-restrictions)の `blockedMarketplaces` に `{"source": "skills-dir"}` を追加することでブロックできます。ブロックされている場合、`plugin init` は書き込み前に失敗します。
1111
1112これらの例は一般的な呼び出しを示しています:
1113
1114```bash theme={null}
1115# 最小限のプラグインをスキャフォルド
1116claude plugin init my-helper
1117
1118# スキルとフックフォルダを含めてスキャフォルド
1119claude plugin init my-helper --with skills hooks
1120
1121# 既存のスキャフォルドを上書き
1122claude plugin init my-helper --force
1123```
1124
1125<h3 id="plugin-install">
1126 plugin install
1127</h3>
1128
1129利用可能なマーケットプレイスからプラグインをインストールします。
1130
1131```bash theme={null}
1132claude plugin install <plugin> [options]
1133```
1134
1135コマンドは以下の引数を取ります:
1136
1137* `<plugin>`: プラグイン名、または特定のマーケットプレイス用の `plugin-name@marketplace-name`
1138
1139コマンドは以下のオプションを受け入れます:
1140
1141| オプション | 説明 | デフォルト |
1142| :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |
1143| `-s, --scope <scope>` | インストールスコープ: `user`、`project`、または `local` | `user` |
1144| `--config <key=value>` | プラグインのマニフェストで宣言された[`userConfig`](#user-configuration)オプションを設定します。複数のオプションを設定するにはフラグを繰り返します | |
1145| `-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 セッション内では効果がないため、独自のターミナルからコマンドを実行してください | |
1146| `--accept-command <sha256>` | 前の[`--json` 実行](#plugin-json-result)が `shownCommand` で報告した `sha256` を持つマーケットプレイス宣言コマンドを受け入れます。`-y` の代わりに使用します。受け入れは、正確にそのコマンド、プラグイン、およびマーケットプレイスカタログに対してカウントされます。コマンドが表示されてから変更された場合(実行自体のマーケットプレイス更新を含む)、Claude Code はダイジェストを受け入れず、コマンドを再度表示します。`-y` と組み合わせることはできません。Claude Code セッション内では効果がないため、独自のターミナルからコマンドを実行してください。Claude Code v2.1.271 以降が必須です | |
1147| `--json` | 結果を stdout の最後の行に 1 つの JSON オブジェクトとして出力します。スクリプトで使用するための人間が読める形式の代わりに。[JSON 結果形式](#plugin-json-result)を参照してください。Claude Code v2.1.268 以降が必須です | |
1148| `-h, --help` | コマンドのヘルプを表示 | |
1149
1150スコープは、インストールされたプラグインが追加される設定ファイルを決定します。たとえば、`--scope project` は .claude/settings.json の `enabledPlugins` に書き込み、プロジェクトリポジトリをクローンした全員がプラグインを利用できるようにします。
1151
1152<span id="plugin-json-result" />`--json` を使用すると、stdout の最後の行は 1 つの JSON オブジェクトです。マーケットプレイスが宣言するコマンドが前に出力される可能性があるため、その行のみを解析してください。3 つのフィールドは常に存在します:
1153
1154* `command`: 実行されたサブコマンド(`install` など)
1155* `outcome`: `ok` または `failed`
1156* `message`: 結果の人間が読める説明
1157
1158`pluginId`、`scope`、`failureCode` などの他のフィールドは、適用される場合にのみ表示されます。`plugin uninstall`、`plugin update`、`plugin enable`、および `plugin disable` の `--json` オプションは、そのサブコマンド独自のフィールドを持つ同じオブジェクトを出力します。`--scope` が無効な場合などの使用エラーは、結果行を出力せず、終了コード 1 で理由を stderr に出力します。
1159
1160実行がマーケットプレイス宣言コマンドを表示し、それを実行しない場合、`failed` 結果は、表示されたコマンド、それが属するプラグイン、およびコマンドの `sha256` を含むフィールドを持つ `shownCommand` オブジェクトも含みます。正確にそのコマンドを受け入れるには、その `sha256` を `--accept-command` として再実行します。Claude Code v2.1.271 以降が必須です。
1161
1162`shownCommand.acceptCommandMatched` が `false` の場合、渡したダイジェストは現在表示されているコマンドと一致しません。そのコマンドを人に見せてから、その `sha256` を渡してください。
1163
1164これらの例は一般的な呼び出しを示しています:
1165
1166```bash theme={null}
1167# ユーザースコープにインストール(デフォルト)
1168claude plugin install formatter@my-marketplace
1169
1170# プロジェクトスコープにインストール(チームと共有)
1171claude plugin install formatter@my-marketplace --scope project
1172
1173# ローカルスコープにインストール(チームと共有しない)
1174claude plugin install formatter@my-marketplace --scope local
1175```
1176
1177<h3 id="plugin-uninstall">
1178 plugin uninstall
1179</h3>
1180
1181インストール済みプラグインを削除します。
1182
1183```bash theme={null}
1184claude plugin uninstall <plugin> [options]
1185```
1186
1187コマンドは以下の引数を取ります:
1188
1189* `<plugin>`: プラグイン名、または `plugin-name@marketplace-name`
1190
1191コマンドは以下のオプションを受け入れます:
1192
1193| オプション | 説明 | デフォルト |
1194| :-------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |
1195| `-s, --scope <scope>` | スコープからアンインストール: `user`、`project`、または `local` | `user` |
1196| `--keep-data` | プラグインの[永続データディレクトリ](#persistent-data-directory)を保持します | |
1197| `--prune` | 他のプラグインが必要としない自動インストール依存関係も削除します。[plugin prune](#plugin-prune) を参照 | |
1198| `-y, --yes` | `--prune` 確認プロンプトをスキップします。stdin または stdout が TTY でない場合は必須 | |
1199| `--json` | 結果を stdout の最後の行に 1 つの JSON オブジェクトとして出力します。[`plugin install --json`](#plugin-json-result)と同じ形式で。`--prune` と組み合わせることはできません。Claude Code v2.1.268 以降が必須です | |
1200| `-h, --help` | コマンドのヘルプを表示 | |
1201
1202`claude plugin remove` と `claude plugin rm` はこのコマンドのエイリアスです。
1203
1204デフォルトでは、最後に残ったスコープからアンインストールすると、プラグインの `${CLAUDE_PLUGIN_DATA}` ディレクトリも削除されます。新しいバージョンをテストした後に再インストールする場合など、保持するには `--keep-data` を使用します。
1205
1206<Note>
1207 異なるマーケットプレイスからインストールされたプラグインが同じ名前を共有する場合、`plugin-name@marketplace-name` 形式は指定されたマーケットプレイスからのプラグインのみをアンインストールします。v2.1.212 より前は、修飾形式は異なるマーケットプレイスから同じ名前のプラグインにマッチしてアンインストールする可能性がありました。
1208</Note>
1209
1210<h3 id="plugin-prune">
1211 plugin prune
1212</h3>
1213
1214インストール済みプラグインによって不要になった自動インストール依存関係を削除します。Claude Code が別のプラグインの[`dependencies`](/docs/ja/plugin-dependencies)フィールドを満たすために取得した依存関係は削除されます。直接インストールしたプラグインは決して削除されません。
1215
1216```bash theme={null}
1217claude plugin prune [options]
1218```
1219
1220コマンドは以下のオプションを受け入れます:
1221
1222| オプション | 説明 | デフォルト |
1223| :-------------------- | :---------------------------------------------- | :----- |
1224| `-s, --scope <scope>` | スコープでプルーン: `user`、`project`、または `local` | `user` |
1225| `--dry-run` | 削除せずに削除されるものをリストします | |
1226| `-y, --yes` | 確認プロンプトをスキップします。stdin または stdout が TTY でない場合は必須 | |
1227| `-h, --help` | コマンドのヘルプを表示 | |
1228
1229`claude plugin autoremove` はこのコマンドのエイリアスです。
1230
1231コマンドは孤立した依存関係をリストし、削除前に確認を求めます。プラグインを削除し、その依存関係をワンステップでクリーンアップするには、`claude plugin uninstall <plugin> --prune` を実行します。
1232
1233<h3 id="plugin-enable">
1234 plugin enable
1235</h3>
1236
1237無効なプラグインを有効にします。ターゲットがマーケットプレイスからインストールされ、[依存関係](/docs/ja/plugin-dependencies)を宣言している場合、Claude Code は同じスコープで推移的にそれらを有効にします。コマンドは[依存関係を持つプラグインを有効または無効にする](/docs/ja/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)がリストする条件下で失敗します。
1238
1239```bash theme={null}
1240claude plugin enable <plugin> [options]
1241```
1242
1243コマンドは以下の引数を取ります:
1244
1245* `<plugin>`: プラグイン名、`plugin-name@marketplace-name`、または[claude.ai から同期されたプラグイン](#synced-plugins)用の `plugin-name@synced`
1246
1247コマンドは以下のオプションを受け入れます:
1248
1249| オプション | 説明 | デフォルト |
1250| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------- | :---- |
1251| `-s, --scope <scope>` | 有効にするスコープ: `user`、`project`、または `local`。省略した場合、Claude Code はプラグインがインストールされているスコープを検出します | 自動検出 |
1252| `--json` | 結果を stdout の最後の行に 1 つの JSON オブジェクトとして出力します。[`plugin install --json`](#plugin-json-result)と同じ形式で。Claude Code v2.1.268 以降が必須です | |
1253| `-h, --help` | コマンドのヘルプを表示 | |
1254
1255<h3 id="plugin-disable">
1256 plugin disable
1257</h3>
1258
1259プラグインをアンインストールせずに無効にします。
1260
1261ターゲットがマーケットプレイスからインストールされている場合、別の有効なプラグインが[それに依存](/docs/ja/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies)している場合、コマンドは失敗します。エラーメッセージには、最初にすべての依存プラグインを無効にするチェーンコマンドが含まれます。
1262
1263組織が必須とする[同期プラグイン](#synced-plugins)の場合、コマンドは失敗し、何も保存しません。
1264
1265```bash theme={null}
1266claude plugin disable [plugin] [options]
1267```
1268
1269コマンドは以下の引数を取ります:
1270
1271* `[plugin]`: プラグイン名、`plugin-name@marketplace-name`、または[claude.ai から同期されたプラグイン](#synced-plugins)用の `plugin-name@synced`。`--all` を使用する場合はオプション
1272
1273コマンドは以下のオプションを受け入れます:
1274
1275| オプション | 説明 | デフォルト |
1276| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------- | :---- |
1277| `-a, --all` | すべての有効なプラグインを無効にします。`--scope` と組み合わせることはできません | |
1278| `-s, --scope <scope>` | 無効にするスコープ: `user`、`project`、または `local`。省略した場合、Claude Code はプラグインがインストールされているスコープを検出します | 自動検出 |
1279| `--json` | 結果を stdout の最後の行に 1 つの JSON オブジェクトとして出力します。[`plugin install --json`](#plugin-json-result)と同じ形式で。Claude Code v2.1.268 以降が必須です | |
1280| `-h, --help` | コマンドのヘルプを表示 | |
1281
1282<h3 id="plugin-update">
1283 plugin update
1284</h3>
1285
1286プラグインを最新バージョンに更新します。
1287
1288```bash theme={null}
1289claude plugin update <plugin> [options]
1290```
1291
1292コマンドは以下の引数を取ります:
1293
1294* `<plugin>`: プラグイン名、または `plugin-name@marketplace-name`
1295
1296コマンドは以下のオプションを受け入れます:
1297
1298| オプション | 説明 | デフォルト |
1299| :-------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----- |
1300| `-s, --scope <scope>` | 更新するスコープ: `user`、`project`、`local`、または `managed` | `user` |
1301| `-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 セッション内では効果がないため、独自のターミナルからコマンドを実行してください | |
1302| `--accept-command <sha256>` | 前の[`--json` 実行](#plugin-json-result)が `shownCommand` で報告した `sha256` を持つマーケットプレイス宣言コマンドを受け入れます。`-y` の代わりに使用します。受け入れは、正確にそのコマンド、プラグイン、およびマーケットプレイスカタログに対してカウントされます。コマンドが表示されてから変更された場合(実行自体のマーケットプレイス更新を含む)、Claude Code はダイジェストを受け入れず、コマンドを再度表示します。`-y` と組み合わせることはできません。Claude Code セッション内では効果がないため、独自のターミナルからコマンドを実行してください。Claude Code v2.1.271 以降が必須です | |
1303| `--json` | 結果を stdout の最後の行に 1 つの JSON オブジェクトとして出力します。[`plugin install --json`](#plugin-json-result)と同じ形式で。Claude Code v2.1.268 以降が必須です | |
1304| `-h, --help` | コマンドのヘルプを表示 | |
1305
1306<Note>
1307 Claude Code は、インストール済みプラグインに対して修飾されていないプラグイン名を解決します。異なるマーケットプレイスからインストールされたプラグインが名前を共有する場合、Claude Code は更新を拒否し、代わりに実行する修飾 `plugin-name@marketplace-name` コマンドをリストします。v2.1.246 より前は、Claude Code は修飾形式のみを受け入れ、修飾されていない名前を見つからないものとして拒否していました。
1308</Note>
1309
1310***
1311
1312<h3 id="plugin-list">
1313 plugin list
1314</h3>
1315
1316インストール済みプラグインをバージョン、ソースマーケットプレイス、および有効状態と共にリストします。
1317
1318```bash theme={null}
1319claude plugin list [options]
1320```
1321
1322コマンドは以下のオプションを受け入れます:
1323
1324| オプション | 説明 | デフォルト |
1325| :------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---- |
1326| `--json` | JSON として出力します。読み込み問題またはオーサリング警告を含むプラグイン行は `errors` または `notes` 文字列配列を含みます。Claude Code v2.1.268 以降では、並列 `errorDetails` および `noteDetails` 配列は各エントリの診断 `type` と、プラグイン、マーケットプレイス、サーバー、またはファイルなど、それが参照する名前を提供します | |
1327| `--available` | マーケットプレイスから利用可能なプラグインを含めます。`--json` が必須 | |
1328| `-h, --help` | コマンドのヘルプを表示 | |
1329
1330対話的セッション内では、`/plugin list` は同様のリストをインラインで出力しますが、マーケットプレイスからインストールされたプラグインのみをカバーします:
1331
1332* スキルディレクトリから読み込まれたプラグインは `/plugin` インターフェイスと `claude plugin list` に表示されますが、インラインの `/plugin list` 出力には表示されません。
1333* [claude.ai から同期されたプラグイン](#synced-plugins)は Claude Code v2.1.239 以降で `claude plugin list` に表示され、`/plugin` インターフェイスに表示されますが、インラインの `/plugin list` 出力には表示されません。
1334* `--plugin-dir` または `--plugin-url` でセッション用に読み込まれたプラグインは `/plugin` インターフェイスに表示され、`claude --plugin-dir <dir> plugin list` のように同じフラグがサブコマンドの前にある場合にのみ `claude plugin list` に表示されます。フラグ名のみがそれらの場所を指定するため、修飾されていない `claude plugin list` は同期されたプラグインとスキルディレクトリプラグインとは異なり、Claude Code がスキャンする固定ディレクトリを持たないため、それらを見つけることができません。
1335
1336対話的形式は、`--enabled` または `--disabled` を受け入れてそのスタイルのプラグインのみを表示し、`ls` を `list` の短縮形として受け入れます。
1337
1338<h3 id="plugin-details">
1339 plugin details
1340</h3>
1341
1342プラグインのコンポーネント在庫と予想トークンコストを表示します。出力は、プラグインが提供するすべてのコンポーネントをスキル、エージェント、フック、MCP サーバー、および LSP サーバーとしてグループ化し、各セッションに追加するトークン数の推定値を含めてリストします。スキルグループには `skills/` と `commands/` エントリの両方が含まれます。
1343
1344```bash theme={null}
1345claude plugin details <name>
1346```
1347
1348コマンドは以下の引数を取ります:
1349
1350* `<name>`: プラグイン名、または `plugin-name@marketplace-name`
1351
1352コマンドは以下のオプションを受け入れます:
1353
1354| オプション | 説明 | デフォルト |
1355| :----------- | :---------- | :---- |
1356| `-h, --help` | コマンドのヘルプを表示 | |
1357
1358出力は各コンポーネントの 2 つのコスト数値を表示します:
1359
1360* **常時オン:** スキル説明、エージェント説明、コマンド名など、プラグインのリストテキストによってすべてのセッションに追加されるトークン。コンポーネントが発火するかどうかに関係なく。
1361* **呼び出し時:** コンポーネントが発火するときにコンポーネントがコストするトークン。プラグイン全体ではなくコンポーネントごとに表示されます。典型的なセッションはコンポーネントのサブセットのみを呼び出すため。
1362
1363この例は、2 つのスキルを持つプラグインの出力がどのように見えるかを示しています:
1364
1365```
1366dependency-guard 1.2.0
1367 Dependency analysis for Claude Code sessions
1368 Source: dependency-guard@example-marketplace
1369
1370Component inventory
1371 Skills (2) scan-dependencies, review-changes
1372 Agents (0)
1373 Hooks (1) SessionStart (harness-only — no model context cost)
1374 MCP servers (0)
1375 LSP servers (0)
1376
1377Projected token cost
1378 Always-on: ~180 tok added to every session
1379
1380Per-component (rounded)
1381 component always-on on-invoke
1382 scan-dependencies ~100 ~2400
1383 review-changes ~80 ~1800
1384
1385 On-invoke cost is paid each time a skill or agent fires.
1386 Token counts are estimates and may differ from actual usage.
1387```
1388
1389常時オンの合計は、アクティブなモデルの `count_tokens` API を介して計算されます。コンポーネントごとの数値はその合計から比例的にスケーリングされます。API に到達できない場合、コマンドは文字ベースの推定値にフォールバックします。
1390
1391<h3 id="plugin-validate">
1392 plugin validate
1393</h3>
1394
1395公開前にプラグインまたはマーケットプレイスの構文とスキーマエラーをチェックします。
1396
1397検証が成功すると終了コード 0、失敗すると 1、検証実行自体が失敗した場合(渡したパスが読み取り不可能な場合など)は 2 で終了します。
1398
1399```bash theme={null}
1400claude plugin validate <path> [options]
1401```
1402
1403コマンドは以下の引数を取ります:
1404
1405* `<path>`: プラグインディレクトリまたはマーケットプレイスディレクトリへのパス。プラグイン実行がカバーするファイルについては、[マニフェストなしでプラグインまたはディレクトリを検証](/docs/ja/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)を参照してください。
1406
1407コマンドは以下のオプションを受け入れます:
1408
1409| オプション | 説明 | デフォルト |
1410| :----------- | :------------------------------------------------------------------------------------------------- | :---- |
1411| `--strict` | 警告をエラーとして扱い、それらで終了コード 1 で終了します。CI で使用して、[認識されないフィールド](#unrecognized-fields)など、ランタイムが許容する問題をキャッチします | |
1412| `--json` | 検証レポートを同じ終了コードを持つ 1 つの JSON オブジェクトとして出力します。Claude Code v2.1.259 以降が必須 | |
1413| `-h, --help` | コマンドのヘルプを表示 | |
1414
1415`--json` を使用すると、Claude Code はレポートを stdout に 1 つの JSON オブジェクトとして書き込み、これらのトップレベルフィールドを持ちます:
1416
1417* `success`: 終了コードが与える同じ判定
1418* `strict`: 実行が警告をエラーとして扱ったかどうか
1419* `target`: Claude Code が検証した解決されたパス
1420* `manifest`: マニフェスト自体の結果、または[マニフェストなしの実行](/docs/ja/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest)の場合は `null`
1421* `contents`: ファイルごとの結果。各結果は `file` を指定し、`errors`、`warnings`、および `notes` 配列を含みます
1422
1423終了コード 2 では、コマンドは stdout に何も書き込みません。エラーメッセージは stderr に送られます。
1424
1425対話的セッション内では、`/plugin validate <path>` は同じチェックをインラインで実行します。
1426
1427<h3 id="plugin-eval">
1428 plugin eval
1429</h3>
1430
1431プラグインの[eval ケース](/docs/ja/plugin-evals)を実行し、スコア付き結果をレポートします。Claude Code v2.1.269 以降が必須です。各ケースはプロンプトとグレーダーです。Claude Code はターゲットプラグインのみが読み込まれた分離されたセッションで複数回実行し、デフォルトではプラグインなしでも実行するため、レポートは差を示します。ケース形式、グレーダー、結果、および CI 使用については、[プラグインを eval でテストする](/docs/ja/plugin-evals)を参照してください。
1432
1433```bash theme={null}
1434claude plugin eval [target] [options]
1435```
1436
1437オプションの `target` は、プラグインディレクトリ、単一の `prompt.md` または `case.yaml` ファイル、`name` または `name@marketplace` としてインストールされたプラグイン、または `name@skills-dir` であり、デフォルトは現在のディレクトリです。`--tag`、`--allow-tools`、および `--json` の前に配置します。
1438
1439このテーブルは、ほとんどの実行が使用するオプションをリストします。`claude plugin eval --help` を実行して、`--case`、`--tag`、`--output-dir`、`--report`、`--allow-real-servers`、`--keep-temp`、および `--verbose` を含む完全なセットを確認してください。
1440
1441| オプション | 説明 | デフォルト |
1442| :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- |
1443| `--runs <n>` | アーム当たりケース当たりの実行 | 各ケースの `runs`、それ以外は 3 |
1444| `-j, --concurrency <n>` | 一度に実行するエージェントセッション、1 から 8。レート制限を共有します | `1` |
1445| `--model <model>` | テスト対象のエージェント用モデル | 各ケースの `model`、それ以外は `ANTHROPIC_MODEL` が設定されている場合はそれ、それ以外は Claude Code のデフォルト |
1446| `--judge-model <model>` | `llm` および `baseline` グレーダー用モデル | 小さく高速なモデル |
1447| `--ablation <mode>` | `none` または `with-without`。[プラグインなしベースラインと比較する](/docs/ja/plugin-evals#compare-against-a-no-plugin-baseline)を参照 | プラグインが解決される場合は `with-without`、それ以外は `none` |
1448| `--threshold <0..1>` | いずれかのケースがこれ以下でスコアされた場合は終了コード 1 | `1.0` |
1449| `--max-cost-usd <usd>` | 支出がこれに達したら次の実行前に停止し、終了コード 2 を返し、部分的な結果をレポート | 上限なし |
1450| `--allow-tools <tools...>` | `Bash`、`Write`、`Edit`、または `"mcp__plugin_<plugin>_<server>__*"` など、読み取り専用セット以外のツールを付与します。[ツールを付与する](/docs/ja/plugin-evals#grant-tools)を参照 | |
1451| `--scaffold` | 各ケースの[`scaffold_script`](/docs/ja/plugin-evals#add-setup-or-history-with-case-yaml)を実行 | オフ |
1452| `--trust-plugin` | 最初の実行信頼プロンプトをスキップします。CI 用。[実行がアクセスできるもの](/docs/ja/plugin-evals#security)を参照 | オフ |
1453| `--mocks <mode>` | `record` または `off`。[MCP サーバーをモック](/docs/ja/plugin-evals#mock-mcp-servers)を参照 | `record` |
1454| `--eval-dir <dir>` | ケースを保持するプラグイン下のディレクトリ | マニフェストの `experimental.evals`、それ以外は `evals` |
1455| `--json [path]` | [結果ドキュメント](/docs/ja/plugin-evals#json-result)を stdout に出力するか、`.json` パスに書き込み | |
1456| `--no-publish` | HTML レポートをローカルに保持 | |
1457| `-h, --help` | コマンドのヘルプを表示 | |
1458
1459コマンドは、すべてのケースがしきい値を満たす場合は終了コード 0、失敗したケース、読み込みエラー、または信頼されていないプラグインディレクトリの場合は 1、部分的な実行の場合は 2、中断された場合は 130、終了された場合は 143 で終了します。[CI で eval を実行する](/docs/ja/plugin-evals#run-evals-in-ci)を参照してください。
1460
1461<h3 id="plugin-eval-init">
1462 plugin eval init
1463</h3>
1464
1465現在のディレクトリのプラグイン用の eval スイートを作成します。Claude Code v2.1.269 以降が必須です。ターミナルでは、これはプラグインを読み取り、ケースとグレーダーを提案し、それらをパイロットし、ファイルを書き込むオーサリングインタビューを開始します。`--bare` を使用するか、ターミナルなしで、代わりに空白の単一ケーステンプレートを書き込みます。対話的な Claude Code セッション内から実行すると、そのセッションが従うべきインタビュー指示を出力します。[最初の eval スイートを作成する](/docs/ja/plugin-evals#create-your-first-eval-suite)を参照してください。
1466
1467```bash theme={null}
1468claude plugin eval init [name] [options]
1469```
1470
1471オプションの `name` はケース名です: インタビューは 1 つを必要としませんが、`--bare` とターミナルなしテンプレートパスはそれを必要とします。これらのオプションを受け入れます:
1472
1473| オプション | 説明 | デフォルト |
1474| :------------------ | :----------------------------------------------------------------------- | :----------------------------------------- |
1475| `--bare` | インタビューを実行する代わりに、`<name>` 用の空白の `prompt.md` と `graders/criteria.md` を書き込み | |
1476| `-i, --interactive` | インタビューを必須にします。テンプレートを書き込む代わりにターミナルなしで失敗 | |
1477| `--eval-dir <dir>` | ケースを書き込む現在のディレクトリ下のディレクトリ | マニフェストの `experimental.evals`、それ以外は `evals` |
1478| `-h, --help` | コマンドのヘルプを表示 | |
1479
1480<h3 id="plugin-tag">
1481 plugin tag
1482</h3>
1483
1484プラグインのリリース git タグを作成します。デフォルトではコマンドは現在のディレクトリのプラグインにタグを付けます。別の場所のプラグインにタグを付けるにはパスを渡します。[プラグインリリースにタグを付ける](/docs/ja/plugin-dependencies#tag-plugin-releases-for-version-resolution)を参照してください。
1485
1486```bash theme={null}
1487claude plugin tag [path] [options]
1488```
1489
1490コマンドは以下の引数を取ります:
1491
1492* `[path]`: プラグインディレクトリへのパス。デフォルトは現在のディレクトリです。
1493
1494コマンドは以下のオプションを受け入れます:
1495
1496| オプション | 説明 | デフォルト |
1497| :-------------------- | :------------------------------------------- | :------- |
1498| `--push` | タグを作成した後、リモートにプッシュします | |
1499| `--dry-run` | タグを作成せずにタグ付けされるものを出力します | |
1500| `-f, --force` | ワーキングツリーがダーティであるか、タグが既に存在する場合でもタグを作成します | |
1501| `-m, --message <msg>` | タグアノテーションメッセージ。バージョンのプレースホルダーとして `%s` を使用します | |
1502| `--remote <name>` | `--push` でプッシュするリモート | `origin` |
1503| `-h, --help` | コマンドのヘルプを表示 | |
1504
1505***
1506
1507<h2 id="debugging-and-development-tools">
1508 デバッグと開発ツール
1509</h2>
1510
1511<h3 id="debugging-commands">
1512 デバッグコマンド
1513</h3>
1514
1515`claude --debug` を使用してプラグインの読み込み詳細を確認します:
1516
1517これにより以下が表示されます:
1518
1519* どのプラグインが読み込まれているか
1520* プラグインマニフェストのエラー
1521* Skill、agent、hook の登録
1522* MCP サーバーの初期化
1523
1524<h3 id="common-issues">
1525 よくある問題
1526</h3>
1527
1528| 問題 | 原因 | 解決策 |
1529| :---------------------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
1530| プラグインが読み込まれない | 無効な `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) を参照してください |
1531| Skill が表示されない | ディレクトリ構造が間違っている | `skills/` または `commands/` がプラグインルートにあることを確認します。`.claude-plugin/` 内にはありません |
1532| Hook が発火しない | スクリプトが実行可能でない | `chmod +x script.sh` を実行します |
1533| MCP サーバーが失敗する | `${CLAUDE_PLUGIN_ROOT}` が見つからない | すべてのプラグインパスに変数を使用します |
1534| パスエラー | 絶対パスが使用されている | パスを相対パスにします。`./` で始まります。[パス動作ルール](#path-behavior-rules) を参照してください。これは `skills` フィールドの `"."` 例外をカバーしています |
1535| LSP `Executable not found in $PATH` | 言語サーバーがインストールされていない | バイナリをインストールします(例:`npm install -g typescript-language-server typescript`) |
1536
1537<h3 id="example-error-messages">
1538 エラーメッセージの例
1539</h3>
1540
1541**マニフェスト検証エラー**:
1542
1543* `Invalid JSON syntax: Unexpected token } in JSON at position 142`:コンマの欠落、余分なコンマ、またはクォートされていない文字列がないか確認してください
1544* `Plugin <name> has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Invalid input: expected string, received undefined`:必須フィールドが見つかりません
1545* `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 が有効な場合でも同様です。
1546
1547**プラグイン読み込みエラー**:
1548
1549* `Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.`:コマンドパスは存在しますが、有効なコマンドファイルが含まれていません
1550* `Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.`:marketplace.json の `source` パスが存在しないディレクトリを指しています
1551* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`:重複するコンポーネント定義を削除するか、marketplace エントリから `strict: false` を削除します
1552
1553<h3 id="hook-troubleshooting">
1554 Hook のトラブルシューティング
1555</h3>
1556
1557**Hook スクリプトが実行されない**:
1558
15591. スクリプトが実行可能であることを確認します:`chmod +x ./scripts/your-script.sh`
15602. shebang 行を確認します:最初の行は `#!/bin/bash` または `#!/usr/bin/env bash` である必要があります
15613. パスが `${CLAUDE_PLUGIN_ROOT}` を使用していることを確認します:`"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/your-script.sh"`
15624. スクリプトを手動でテストします:`./scripts/your-script.sh`
1563
1564**Hook が予期されたイベントでトリガーされない**:
1565
15661. イベント名が正しいことを確認します(大文字と小文字を区別):`postToolUse` ではなく `PostToolUse`
15672. マッチャーパターンがツールと一致することを確認します:ファイル操作の場合は `"matcher": "Write|Edit"`
15683. hook タイプが有効であることを確認します:`command`、`http`、`mcp_tool`、`prompt`、または `agent`
1569
1570<h3 id="mcp-server-troubleshooting">
1571 MCP サーバーのトラブルシューティング
1572</h3>
1573
1574**サーバーが起動しない**:
1575
15761. コマンドが存在し、実行可能であることを確認します
15772. すべてのパスが `${CLAUDE_PLUGIN_ROOT}` 変数を使用していることを確認します
15783. MCP サーバーログを確認します:`claude --debug` は初期化エラーを表示します
15794. Claude Code の外部でサーバーを手動でテストします
1580
1581**サーバーツールが表示されない**:
1582
15831. サーバーが `.mcp.json` または `plugin.json` で正しく設定されていることを確認します
15842. サーバーが MCP プロトコルを正しく実装していることを確認します
15853. デバッグ出力で接続タイムアウトを確認します
1586
1587<h3 id="directory-structure-mistakes">
1588 ディレクトリ構造の間違い
1589</h3>
1590
1591**症状**:プラグインは読み込まれますが、コンポーネント(skill、agent、hook)が見つかりません。
1592
1593**正しい構造**:コンポーネントはプラグインルートにある必要があります。`.claude-plugin/` 内にはありません。`plugin.json` のみが `.claude-plugin/` に属します。
1594
1595**デバッグチェックリスト**:
1596
15971. `claude --debug` を実行し、「loading plugin」メッセージを探します
15982. 各コンポーネントディレクトリがデバッグ出力に表示されていることを確認します
15993. ファイルのアクセス許可がプラグインファイルの読み取りを許可していることを確認します
1600
1601***
1602
1603<h2 id="distribution-and-versioning-reference">
1604 配布とバージョン管理リファレンス
1605</h2>
1606
1607<h3 id="version-management">
1608 バージョン管理
1609</h3>
1610
1611Claude Code はプラグインのバージョンをキャッシュキーとして使用し、アップデートが利用可能かどうかを判断します。`/plugin update` を実行するか自動アップデートが実行されると、Claude Code は現在のバージョンを計算し、既にインストールされているものと一致する場合はアップデートをスキップします。[ローカルディレクトリマーケットプレイスから所定の場所に読み込まれた](#plugin-caching-and-file-resolution)プラグインは、バージョン文字列が何を示していても、セッション開始時に現在のソースファイルを読み込みます。
1612
1613`command` 以外のすべてのソースタイプについて、Claude Code は以下の最初に設定されたものからバージョンを解決します。
1614
16151. プラグインの `plugin.json` の `version` フィールド
16162. `marketplace.json` のプラグインのマーケットプレイスエントリの `version` フィールド
16173. git ホストマーケットプレイス内の `github`、`url`、`git-subdir`、および相対パスソースのプラグインの git コミット SHA
16184. [`archive` ソース](/docs/ja/plugin-marketplaces#zip-archives)の SHA-256 ダイジェスト。マーケットプレイスエントリの `sha256` ピン、またはピンを設定しない場合はダウンロードされたファイルのダイジェスト。Claude Code はこれを最初の 12 文字に短縮します
16195. `npm` ソースまたは git リポジトリ内にないローカルディレクトリの場合は `unknown`。Claude Code は、`~/.claude` のような git 管理されたインストールパスを囲むリポジトリからバージョンを取得しません
1620
1621[`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)では、ハッシュはファイルコンテンツではなく、印刷されたディレクトリの実際のパスとそのトップレベルエントリをカバーします。
1622
1623これらのソースタイプについて、プラグインをバージョン管理する 3 つの方法があります。
1624
1625| アプローチ | 方法 | アップデート動作 | 最適な用途 |
1626| :----------------- | :-------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------- |
1627| **明示的なバージョン** | `plugin.json` で `"version": "2.1.0"` を設定 | ユーザーはこのフィールドをバンプした場合のみアップデートを取得します。バンプせずに新しいコミットをプッシュしても効果がなく、`/plugin update` は「既に最新バージョンです」と報告します。[所定の場所に読み込まれたプラグイン](#plugin-caching-and-file-resolution)の場合、新しいコンテンツは読み込まれます。 | 安定したリリースサイクルを持つ公開プラグイン |
1628| **コミット SHA バージョン** | `plugin.json` とマーケットプレイスエントリの両方から `version` を省略 | ユーザーはソースの解決されたコミットが変更されるたびにアップデートを取得します | アクティブに開発中の内部またはチームプラグイン |
1629| **ダイジェストバージョン** | [`archive` ソース](/docs/ja/plugin-marketplaces#zip-archives)を使用し、`plugin.json` とマーケットプレイスエントリの両方から `version` を省略 | `sha256` ピンを使用する場合、ユーザーはピンを変更するとアップデートを取得します。ピンがない場合、ユーザーはホストされている zip ファイルのバイトが変更されるたびにアップデートを取得します | 静的サーバーまたはアーティファクトリポジトリに zip ファイルとして公開されるプラグイン |
1630
1631明示的なバージョンを使用する場合は、[セマンティックバージョニング](https://semver.org)(`MAJOR.MINOR.PATCH`)に従ってください。破壊的な変更の場合は MAJOR をバンプし、新機能の場合は MINOR をバンプし、バグ修正の場合は PATCH をバンプします。`CHANGELOG.md` で変更を文書化します。
1632
1633***
1634
1635<h2 id="see-also">
1636 関連項目
1637</h2>
1638
1639* [プラグイン](/docs/ja/plugins) - チュートリアルと実践的な使用法
1640* [プラグインマーケットプレイス](/docs/ja/plugin-marketplaces) - マーケットプレイスの作成と管理
1641* [Skills](/docs/ja/skills) - Skill 開発の詳細
1642* [Subagents](/docs/ja/sub-agents) - エージェント設定と機能
1643* [Hooks](/docs/ja/hooks) - イベント処理と自動化
1644* [MCP](/docs/ja/mcp) - 外部ツール統合
1645* [設定](/docs/ja/settings) - プラグインの設定オプション