10 10
11このページは、独自のプラグインを作成する人向けです。11このページは、独自のプラグインを作成する人向けです。
12 12
13<Note>13> [!NOTE]
14 これらのケースは他のページで説明されています。14>
15 15> これらのケースは他のページで説明されています。
16 * **他の人のプラグインをインストールする**: [プラグインをインストールする](/docs/ja/plugins/install)を参照してください16>
17 * **プラグインが必要かどうか確実でない**: 概要の[プラグインが必要かどうかを判断する](/docs/ja/plugins/overview#decide-whether-you-need-a-plugin)を参照してください17> * **他の人のプラグインをインストールする**: [プラグインをインストールする](/docs/ja/plugins/install)を参照してください
18 * **プラグインのユーザーが claude.ai または Cowork にいる**: 同じフォルダがコンポーネントの異なるサブセットでそこにインストールされます。[プラグインの構造とテスト](https://claude.com/docs/plugins/build)と[コンポーネント サポート テーブル](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)を参照してください18> * **プラグインが必要かどうか確実でない**: 概要の[プラグインが必要かどうかを判断する](/docs/ja/plugins/overview#decide-whether-you-need-a-plugin)を参照してください
19</Note>19> * **プラグインのユーザーが claude.ai または Cowork にいる**: 同じフォルダがコンポーネントの異なるサブセットでそこにインストールされます。[プラグインの構造とテスト](https://claude.com/docs/plugins/build)と[コンポーネント サポート テーブル](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)を参照してください
20 20
21既に持っているものに一致するセクションから開始してください。21既に持っているものに一致するセクションから開始してください。
22 22
23* **まだ何もない**: [最初のプラグインを作成する](#create-your-first-plugin)に従い、次に[マーケットプレイスなしで開発する](#develop-without-a-marketplace)と[テストとデバッグ](#test-and-debug)に従ってください。23* **まだ何もない**: [最初のプラグインを作成する](#create-your-first-plugin)に従い、次に[マーケットプレイスなしで開発する](#develop-without-a-marketplace)と[テストとデバッグ](#test-and-debug)に従ってください。
24* **既に `.claude/` の下にファイルがある**: 最初のプラグインのウォークスルーを一度実行してレイアウトを学び、次に[既存の `.claude/` セットアップを変換する](#convert-an-existing-claude-setup)に従ってください。24* **既に `.claude/` の下にファイルがある**: 最初のプラグインのウォークスルーを一度実行してレイアウトを学び、次に[既存の `.claude/` セットアップを変換する](#convert-an-existing-claude-setup)に従ってください。
25 25
26<h2 id="decide-when-to-use-a-plugin">26## プラグインを使用する時期を決定する
27 プラグインを使用する時期を決定する
28</h2>
29 27
30スキル、エージェント、フック、MCP サーバーはすべて、プロジェクトまたはホームディレクトリでスタンドアロンで機能します。1 つのプロジェクトまたは自分だけに対応している間は、そのスタンドアロンセットアップを保持してください。チームメイトと共有したい場合、複数のプロジェクトにインストールしたい場合、またはバージョン付きリリースを公開したい場合は、プラグインを作成してください。28スキル、エージェント、フック、MCP サーバーはすべて、プロジェクトまたはホームディレクトリでスタンドアロンで機能します。1 つのプロジェクトまたは自分だけに対応している間は、そのスタンドアロンセットアップを保持してください。チームメイトと共有したい場合、複数のプロジェクトにインストールしたい場合、またはバージョン付きリリースを公開したい場合は、プラグインを作成してください。
31 29
36 34
37既存のセットアップをプラグインに移動するには、[既存の `.claude/` セットアップを変換する](#convert-an-existing-claude-setup)を参照してください。35既存のセットアップをプラグインに移動するには、[既存の `.claude/` セットアップを変換する](#convert-an-existing-claude-setup)を参照してください。
38 36
39<h2 id="create-your-first-plugin">37## 最初のプラグインを作成する
40 最初のプラグインを作成する
41</h2>
42 38
43このウォークスルーでは、唯一のコンポーネントが 1 つのスキル(グリーティング)であるプラグインを作成し、`--plugin-dir` で実行します。これはインストールせずに 1 つのセッションのためにプラグインを読み込みます。プラグインは、スキル、エージェント、フック、MCP サーバーなどの[コンポーネント](/docs/ja/plugins/components)の任意の組み合わせを保持でき、どれも必須ではありません。1 つのスキルはレイアウトを示す最小限の例です。39このウォークスルーでは、唯一のコンポーネントが 1 つのスキル(グリーティング)であるプラグインを作成し、`--plugin-dir` で実行します。これはインストールせずに 1 つのセッションのためにプラグインを読み込みます。プラグインは、スキル、エージェント、フック、MCP サーバーなどの[コンポーネント](/docs/ja/plugins/components)の任意の組み合わせを保持でき、どれも必須ではありません。1 つのスキルはレイアウトを示す最小限の例です。
44 40
46 42
47プラグインを保持したいディレクトリ(例えば `~/projects`)でターミナルを開き、これらのステップのコマンドをそこから実行してください。プラグインはどこにでも保持できます。セッションを開始するときにそのパスを Claude Code に渡すためです。43プラグインを保持したいディレクトリ(例えば `~/projects`)でターミナルを開き、これらのステップのコマンドをそこから実行してください。プラグインはどこにでも保持できます。セッションを開始するときにそのパスを Claude Code に渡すためです。
48 44
49<Steps>45**1. プラグインディレクトリを作成する**
50 <Step title="プラグインディレクトリを作成する">46
51 プラグインディレクトリを作成し、マニフェストを保持するための `.claude-plugin/` フォルダをその中に作成します。47プラグインディレクトリを作成し、マニフェストを保持するための `.claude-plugin/` フォルダをその中に作成します。
48
49```bash theme={null}
50mkdir -p my-first-plugin/.claude-plugin
51```
52 52
53 ```bash theme={null}53**2. マニフェストを書く**
54 mkdir -p my-first-plugin/.claude-plugin
55 ```
56 </Step>
57 54
58 <Step title="マニフェストを書く">55[マニフェスト](/docs/ja/plugins/manifest-reference)は `plugin.json` という名前の JSON ファイルで、Claude Code にプラグインの名前を伝え、それを説明します。これを `my-first-plugin/.claude-plugin/plugin.json` として保存してください。
59 [マニフェスト](/docs/ja/plugins/manifest-reference)は `plugin.json` という名前の JSON ファイルで、Claude Code にプラグインの名前を伝え、それを説明します。これを `my-first-plugin/.claude-plugin/plugin.json` として保存してください。
60 56
61 ```json my-first-plugin/.claude-plugin/plugin.json theme={null}57```json my-first-plugin/.claude-plugin/plugin.json theme={null}
62 {58{
63 "name": "my-first-plugin",59 "name": "my-first-plugin",
64 "description": "A greeting plugin to learn the basics",60 "description": "A greeting plugin to learn the basics",
65 "version": "1.0.0",61 "version": "1.0.0",
66 "author": {62 "author": {
67 "name": "Your Name"63 "name": "Your Name"
68 }64 }
69 }65}
70 ```66```
71 67
72 4 つのフィールドは以下のことを行います。684 つのフィールドは以下のことを行います。
73 69
74 * **`name`**: 必須。プラグインを識別し、プラグインが提供するすべてのスキルとエージェントのプレフィックスになります。スペースを入れないでください。70* **`name`**: 必須。プラグインを識別し、プラグインが提供するすべてのスキルとエージェントのプレフィックスになります。スペースを入れないでください。
75 * **`description`**: ユーザーが `/plugin` でプラグインに対して見るテキスト。71* **`description`**: ユーザーが `/plugin` でプラグインに対して見るテキスト。
76 * **`version`**: オプション。これを設定すると、ユーザーはそれを変更するまでそのバージョンに留まります。[新しいバージョンをリリースする](/docs/ja/plugins/host-marketplace#release-a-new-version)は、いつそれを設定または省略するかを説明しています。72* **`version`**: オプション。これを設定すると、ユーザーはそれを変更するまでそのバージョンに留まります。[新しいバージョンをリリースする](/docs/ja/plugins/host-marketplace#release-a-new-version)は、いつそれを設定または省略するかを説明しています。
77 * **`author`**: クレジットする人。その中の `name` は必須です。`email` と `url` はオプションです。73* **`author`**: クレジットする人。その中の `name` は必須です。`email` と `url` はオプションです。
78 74
79 他のすべてのフィールドは[マニフェストリファレンス](/docs/ja/plugins/manifest-reference#fields)にあります。75他のすべてのフィールドは[マニフェストリファレンス](/docs/ja/plugins/manifest-reference#fields)にあります。
80 76
81 `.claude-plugin/` の中には `plugin.json` だけが入ります。次に追加するスキルは `my-first-plugin/` の直下に、そのフォルダの隣に入ります。77`.claude-plugin/` の中には `plugin.json` だけが入ります。次に追加するスキルは `my-first-plugin/` の直下に、そのフォルダの隣に入ります。
82 </Step>
83 78
84 <Step title="スキルを追加する">79**3. スキルを追加する**
85 このプラグインの唯一のコンポーネントはスキルです。各スキルは `skills/` の下のディレクトリで、`SKILL.md` ファイルを含みます。スキルのディレクトリを作成してください。
86 80
87 ```bash theme={null}81このプラグインの唯一のコンポーネントはスキルです。各スキルは `skills/` の下のディレクトリで、`SKILL.md` ファイルを含みます。スキルのディレクトリを作成してください。
88 mkdir -p my-first-plugin/skills/hello
89 ```
90 82
91 次に、このコンテンツで `my-first-plugin/skills/hello/SKILL.md` を作成してください。83```bash theme={null}
84mkdir -p my-first-plugin/skills/hello
85```
92 86
93 ```markdown my-first-plugin/skills/hello/SKILL.md theme={null}87次に、このコンテンツで `my-first-plugin/skills/hello/SKILL.md` を作成してください。
94 ---
95 name: hello
96 description: Greet the user with a friendly message
97 disable-model-invocation: true
98 ---
99 88
100 Greet the user warmly and ask how you can help them today.89```markdown my-first-plugin/skills/hello/SKILL.md theme={null}
101 ```90---
91name: hello
92description: Greet the user with a friendly message
93disable-model-invocation: true
94---
102 95
103 `disable-model-invocation: true` の行は、Claude がスキルを独自に実行しないことを意味します。Claude が独自に実行したいスキルからはその行を削除してください。スキルのコマンドはプラグイン名とスキルの名前を組み合わせるため、これを `/my-first-plugin:hello` として実行します。他のフロントマターフィールドについては、[スキルフロントマターリファレンス](/docs/ja/skills#frontmatter-reference)を参照してください。96Greet the user warmly and ask how you can help them today.
104 </Step>97```
105 98
106 <Step title="プラグインを検証する">99`disable-model-invocation: true` の行は、Claude がスキルを独自に実行しないことを意味します。Claude が独自に実行したいスキルからはその行を削除してください。スキルのコマンドはプラグイン名とスキルの名前を組み合わせるため、これを `/my-first-plugin:hello` として実行します。他のフロントマターフィールドについては、[スキルフロントマターリファレンス](/docs/ja/skills#frontmatter-reference)を参照してください。
107 何かを実行する前に、マニフェストとスキルのフロントマターをチェックしてください。
108 100
109 ```bash theme={null}101**4. プラグインを検証する**
110 claude plugin validate ./my-first-plugin
111 ```
112 102
113 コマンドはチェックしたマニフェストパスと `✔ Validation passed` を出力します。代わりに `✘ Validation failed` を出力する場合、その結果行の上の各行は修正するフィールドに名前を付けます。[`claude plugin validate` がエラーを報告する](/docs/ja/plugins/troubleshooting#claude-plugin-validate-reports-errors)の下で各メッセージを調べてください。103何かを実行する前に、マニフェストとスキルのフロントマターをチェックしてください。
114 </Step>
115 104
116 <Step title="プラグインで Claude Code を実行する">105```bash theme={null}
117 プラグインが読み込まれたセッションを開始してください。106claude plugin validate ./my-first-plugin
107```
108
109コマンドはチェックしたマニフェストパスと `✔ Validation passed` を出力します。代わりに `✘ Validation failed` を出力する場合、その結果行の上の各行は修正するフィールドに名前を付けます。[`claude plugin validate` がエラーを報告する](/docs/ja/plugins/troubleshooting#claude-plugin-validate-reports-errors)の下で各メッセージを調べてください。
110
111**5. プラグインで Claude Code を実行する**
118 112
119 ```bash theme={null}113プラグインが読み込まれたセッションを開始してください。
120 claude --plugin-dir ./my-first-plugin
121 ```
122 114
123 Claude Code が開始したら、スキルを実行してください。115```bash theme={null}
116claude --plugin-dir ./my-first-plugin
117```
124 118
125 ```text theme={null}119Claude Code が開始したら、スキルを実行してください。
126 /my-first-plugin:hello
127 ```
128 120
129 Claude はグリーティングで返信します。121```text theme={null}
130 </Step>122/my-first-plugin:hello
131</Steps>123```
124
125Claude はグリーティングで返信します。
132 126
133プラグインは `--plugin-dir` で開始したセッションでのみ読み込まれます。フラグなしで作業を続けるか、`.zip` ビルドをテストするには、[マーケットプレイスなしで開発する](#develop-without-a-marketplace)を参照してください。127プラグインは `--plugin-dir` で開始したセッションでのみ読み込まれます。フラグなしで作業を続けるか、`.zip` ビルドをテストするには、[マーケットプレイスなしで開発する](#develop-without-a-marketplace)を参照してください。
134 128
135Claude が大規模なプラグインをスキャフォールドしてチェックするのを支援してもらうには、`claude-plugins-official` マーケットプレイスから Anthropic の `plugin-dev` プラグインを[インストール](/docs/ja/plugins/install#install-a-plugin)してください。これはスキル、フック、MCP サーバーなどのコンポーネントを書くためのスキルとエージェント、および完成したプラグインを検証するためのスキルとエージェントを追加します。インストール後、`/plugin-dev:create-plugin` に続けて、作成したいプラグインの説明を実行すると、Claude が設計、作成、検証を通じてあなたをガイドします。129Claude が大規模なプラグインをスキャフォールドしてチェックするのを支援してもらうには、`claude-plugins-official` マーケットプレイスから Anthropic の `plugin-dev` プラグインを[インストール](/docs/ja/plugins/install#install-a-plugin)してください。これはスキル、フック、MCP サーバーなどのコンポーネントを書くためのスキルとエージェント、および完成したプラグインを検証するためのスキルとエージェントを追加します。インストール後、`/plugin-dev:create-plugin` に続けて、作成したいプラグインの説明を実行すると、Claude が設計、作成、検証を通じてあなたをガイドします。
136 130
137<h3 id="share-the-plugin">131### プラグインを共有する
138 プラグインを共有する
139</h3>
140 132
141[最初のプラグインを作成する](#create-your-first-plugin)で構築したプラグインはマシンにのみ存在します。他の人が使用する準備ができたら、それを取得する 3 つの方法があります。133[最初のプラグインを作成する](#create-your-first-plugin)で構築したプラグインはマシンにのみ存在します。他の人が使用する準備ができたら、それを取得する 3 つの方法があります。
142 134
144* **独自のマーケットプレイスにリストする**: チームメイトはマーケットプレイスを一度追加し、プラグインを名前でインストールし、更新を受け取ります。[独自のマーケットプレイスを通じて公開する](/docs/ja/plugins/publish#publish-through-your-own-marketplace)を参照してください。136* **独自のマーケットプレイスにリストする**: チームメイトはマーケットプレイスを一度追加し、プラグインを名前でインストールし、更新を受け取ります。[独自のマーケットプレイスを通じて公開する](/docs/ja/plugins/publish#publish-through-your-own-marketplace)を参照してください。
145* **Anthropic のディレクトリに送信する**: レビューに合格した後、人々は claude.ai と Cowork でそれを追加でき、Claude Code を通じてそのアカウントに到達します。[Anthropic のディレクトリに送信する](/docs/ja/plugins/publish#submit-to-anthropics-directory)を参照してください。137* **Anthropic のディレクトリに送信する**: レビューに合格した後、人々は claude.ai と Cowork でそれを追加でき、Claude Code を通じてそのアカウントに到達します。[Anthropic のディレクトリに送信する](/docs/ja/plugins/publish#submit-to-anthropics-directory)を参照してください。
146 138
147<h3 id="plugin-layout">139### プラグインレイアウト
148 プラグインレイアウト
149</h3>
150 140
151スキル、エージェント、フック、MCP サーバーなどの各種[コンポーネント](/docs/ja/plugins/components)は、プラグインルートの下の固定ディレクトリに入ります。プラグインルートは `--plugin-dir` に渡すディレクトリです。使用するディレクトリのみを追加してください。完全なプラグインディレクトリをクリックして、各ファイルが何をするかを読むには、[プラグインエクスプローラー](/docs/ja/plugins/components#explore-the-plugin-directory)を開いてください。141スキル、エージェント、フック、MCP サーバーなどの各種[コンポーネント](/docs/ja/plugins/components)は、プラグインルートの下の固定ディレクトリに入ります。プラグインルートは `--plugin-dir` に渡すディレクトリです。使用するディレクトリのみを追加してください。完全なプラグインディレクトリをクリックして、各ファイルが何をするかを読むには、[プラグインエクスプローラー](/docs/ja/plugins/components#explore-the-plugin-directory)を開いてください。
152 142
161| `hooks/hooks.json` | フック設定: トップレベルの `"hooks"` キーで、設定ファイルの `hooks` と同じ形状の値を持つ |151| `hooks/hooks.json` | フック設定: トップレベルの `"hooks"` キーで、設定ファイルの `hooks` と同じ形状の値を持つ |
162| `.mcp.json` | MCP サーバー定義 |152| `.mcp.json` | MCP サーバー定義 |
163 153
164<Warning>154> [!WARNING]
165 `.claude-plugin/` の中には `plugin.json` だけが入ります。そこに保存されたコンポーネントは読み込まれません。155>
166 156> `.claude-plugin/` の中には `plugin.json` だけが入ります。そこに保存されたコンポーネントは読み込まれません。
167 プラグインルートはプラグイン独自のディレクトリで、`~/.claude/` 自体ではありません。`~/.claude/.mcp.json` に保存された `.mcp.json` は読み込まれません。157>
168</Warning>158> プラグインルートはプラグイン独自のディレクトリで、`~/.claude/` 自体ではありません。`~/.claude/.mcp.json` に保存された `.mcp.json` は読み込まれません。
169 159
170<h2 id="develop-without-a-marketplace">160## マーケットプレイスなしで開発する
171 マーケットプレイスなしで開発する
172</h2>
173 161
174作成しているプラグインを実行するために[マーケットプレイス](/docs/ja/plugins/overview#get-plugins-from-a-marketplace)は必要ありません。代わりにディスクまたは URL から直接読み込んでください。162作成しているプラグインを実行するために[マーケットプレイス](/docs/ja/plugins/overview#get-plugins-from-a-marketplace)は必要ありません。代わりにディスクまたは URL から直接読み込んでください。
175 163
179 167
180異なる方法で読み込まれた 2 つのプラグインが名前を共有する場合、[名前の競合](/docs/ja/plugins/loading#name-conflicts)を参照して、Claude Code がどれを保持するかを確認してください。168異なる方法で読み込まれた 2 つのプラグインが名前を共有する場合、[名前の競合](/docs/ja/plugins/loading#name-conflicts)を参照して、Claude Code がどれを保持するかを確認してください。
181 169
182<h3 id="load-a-directory-or-archive-for-one-session">170### 1 つのセッションのためにプラグインを読み込む
183 1 つのセッションのためにプラグインを読み込む
184</h3>
185 171
1863 つの方法で 1 つのセッションのためにプラグインを読み込むことができます。`--plugin-dir` でディスク上のディレクトリまたは `.zip` アーカイブから、`--plugin-url` で URL から、またはフラグを追加できない場合は環境変数から。各プラグインはそのセッションのみのために読み込まれ、設定には何も書き込まれません。セッション中にプラグインのファイルを編集する場合、`/reload-plugins` を実行して変更を読み込んでください。1723 つの方法で 1 つのセッションのためにプラグインを読み込むことができます。`--plugin-dir` でディスク上のディレクトリまたは `.zip` アーカイブから、`--plugin-url` で URL から、またはフラグを追加できない場合は環境変数から。各プラグインはそのセッションのみのために読み込まれ、設定には何も書き込まれません。セッション中にプラグインのファイルを編集する場合、`/reload-plugins` を実行して変更を読み込んでください。
187 173
188<span id="from-a-directory-or-zip" />174#### ディレクトリまたは `.zip` からプラグインを読み込む
189
190<h4 id="load-a-plugin-from-a-directory-or-zip">
191 ディレクトリまたは `.zip` からプラグインを読み込む
192</h4>
193 175
194シェルから `claude` を開始するときに、`--plugin-dir` をプラグインのルートディレクトリまたはその `.zip` アーカイブで渡してください。複数のプラグインを読み込むためにフラグを繰り返してください。176シェルから `claude` を開始するときに、`--plugin-dir` をプラグインのルートディレクトリまたはその `.zip` アーカイブで渡してください。複数のプラグインを読み込むためにフラグを繰り返してください。
195 177
197claude --plugin-dir ./my-first-plugin --plugin-dir ./other-plugin.zip179claude --plugin-dir ./my-first-plugin --plugin-dir ./other-plugin.zip
198```180```
199 181
200<h4 id="load-a-folder-of-plugins">182#### プラグインのフォルダを読み込む
201 プラグインのフォルダを読み込む
202</h4>
203 183
204複数のプラグインを 1 つの場所から読み込むには、`--plugin-dir ./plugins` のようにそれらを保持するフォルダを渡してください。プラグインのフォルダを読み込むには Claude Code v2.1.265 以降が必要です。184複数のプラグインを 1 つの場所から読み込むには、`--plugin-dir ./plugins` のようにそれらを保持するフォルダを渡してください。プラグインのフォルダを読み込むには Claude Code v2.1.265 以降が必要です。
205 185
214 194
215これらの変更のそれぞれについて、セッションにメッセージが表示されます。プラグインの読み込みまたはアンロードが会話の途中で[プロンプトキャッシュを無効にする](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin)場合、変更は代わりに保持され、メッセージは `/reload-plugins` を実行して適用するよう指示します。195これらの変更のそれぞれについて、セッションにメッセージが表示されます。プラグインの読み込みまたはアンロードが会話の途中で[プロンプトキャッシュを無効にする](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin)場合、変更は代わりに保持され、メッセージは `/reload-plugins` を実行して適用するよう指示します。
216 196
217<span id="fetch-an-archive-from-a-url-for-one-session" />197#### URL からプラグインを読み込む
218
219<h4 id="load-a-plugin-from-a-url">
220 URL からプラグインを読み込む
221</h4>
222 198
223シェルから `claude` を開始するときに、`--plugin-url` を `.zip` アーカイブのアドレス(例えば CI が公開するビルドアーティファクト)で渡してください。199シェルから `claude` を開始するときに、`--plugin-url` を `.zip` アーカイブのアドレス(例えば CI が公開するビルドアーティファクト)で渡してください。
224 200
232 208
233Claude Code がアーカイブをフェッチできない場合、またはアーカイブが無効な場合、プラグインなしで開始し、プラグイン読み込みエラーを記録します。これは `/plugin` マネージャーの **Errors** タブで確認できます。209Claude Code がアーカイブをフェッチできない場合、またはアーカイブが無効な場合、プラグインなしで開始し、プラグイン読み込みエラーを記録します。これは `/plugin` マネージャーの **Errors** タブで確認できます。
234 210
235<span id="from-an-environment-variable" />211#### 環境変数からプラグインを読み込む
236
237<h4 id="load-plugins-from-an-environment-variable">
238 環境変数からプラグインを読み込む
239</h4>
240 212
241`--plugin-dir` フラグを追加できないセッションでプラグインを読み込むには、[`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ja/env-vars#variables)環境変数にそれらの絶対パスをリストしてください。Claude Code は各パスを `--plugin-dir` パスとして読み込みます。これらのプラグインは、`--plugin-dir` で渡したものに加えて読み込まれます。[プロジェクトとローカル設定はこの変数を設定できません](/docs/ja/settings-reference#variables-claude-code-ignores-in-env)。`CLAUDE_CODE_PLUGIN_DIRS` には Claude Code v2.1.280 以降が必要です。213`--plugin-dir` フラグを追加できないセッションでプラグインを読み込むには、[`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ja/env-vars#variables)環境変数にそれらの絶対パスをリストしてください。Claude Code は各パスを `--plugin-dir` パスとして読み込みます。これらのプラグインは、`--plugin-dir` で渡したものに加えて読み込まれます。[プロジェクトとローカル設定はこの変数を設定できません](/docs/ja/settings-reference#variables-claude-code-ignores-in-env)。`CLAUDE_CODE_PLUGIN_DIRS` には Claude Code v2.1.280 以降が必要です。
242 214
243マネージド設定は `--plugin-dir` と `CLAUDE_CODE_PLUGIN_DIRS` をオフにできます。[1 つのセッションのためにプラグインを読み込むフラグ](/docs/ja/plugins/cli-reference#flags-that-load-a-plugin-for-one-session)を参照してください。プラグインとそれが依存するプラグインをテストするには、[プラグインとその依存関係をローカルでテストする](/docs/ja/plugins/dependencies#test-a-plugin-and-its-dependency-locally)を参照してください。215マネージド設定は `--plugin-dir` と `CLAUDE_CODE_PLUGIN_DIRS` をオフにできます。[1 つのセッションのためにプラグインを読み込むフラグ](/docs/ja/plugins/cli-reference#flags-that-load-a-plugin-for-one-session)を参照してください。プラグインとそれが依存するプラグインをテストするには、[プラグインとその依存関係をローカルでテストする](/docs/ja/plugins/dependencies#test-a-plugin-and-its-dependency-locally)を参照してください。
244 216
245<h3 id="scaffold-a-plugin-that-loads-every-session">217### すべてのセッションでプラグインを読み込むようにする
246 すべてのセッションでプラグインを読み込むようにする
247</h3>
248 218
249個人的なスキルディレクトリは `~/.claude/skills/` です。Claude Code は、`.claude-plugin/plugin.json` を含むそこのフォルダを、フラグなしでインストールステップなしで、すべてのセッションでプラグインとして読み込みます。`claude plugin init` はこれらのプラグインの 1 つをスキャフォルドします。219個人的なスキルディレクトリは `~/.claude/skills/` です。Claude Code は、`.claude-plugin/plugin.json` を含むそこのフォルダを、フラグなしでインストールステップなしで、すべてのセッションでプラグインとして読み込みます。`claude plugin init` はこれらのプラグインの 1 つをスキャフォルドします。
250 220
251<h4 id="scaffold-the-plugin-with-claude-plugin-init">221#### `claude plugin init` でプラグインをスキャフォルドする
252 `claude plugin init` でプラグインをスキャフォルドする
253</h4>
254 222
255`claude plugin init` は `~/.claude/skills/` の下にスタータープラグインを書き込みます。シェルからスキャフォルドしてください。223`claude plugin init` は `~/.claude/skills/` の下にスタータープラグインを書き込みます。シェルからスキャフォルドしてください。
256 224
262 230
263`--with skills` を渡して、`claude plugin init` に `skills/` の下のスキルをスキャフォルドさせてください。他の `--with` 値は[プラグインコマンドリファレンス](/docs/ja/plugins/cli-reference#plugin-init)にあります。231`--with skills` を渡して、`claude plugin init` に `skills/` の下のスキルをスキャフォルドさせてください。他の `--with` 値は[プラグインコマンドリファレンス](/docs/ja/plugins/cli-reference#plugin-init)にあります。
264 232
265<h4 id="skill-names-in-a-scaffolded-plugin">233#### スキャフォルドされたプラグインのスキルに名前を付ける
266 スキャフォルドされたプラグインのスキルに名前を付ける
267</h4>
268 234
269`~/.claude/skills/my-tool/SKILL.md` のルートスキルは個人的なスキルでもあるため、`/my-tool:my-tool` ではなく `/my-tool` として呼び出します。プラグイン内の `skills/` の下に追加するスキルはプラグイン名プレフィックスを取得します。例えば `/my-tool:example` のように。235`~/.claude/skills/my-tool/SKILL.md` のルートスキルは個人的なスキルでもあるため、`/my-tool:my-tool` ではなく `/my-tool` として呼び出します。プラグイン内の `skills/` の下に追加するスキルはプラグイン名プレフィックスを取得します。例えば `/my-tool:example` のように。
270 236
271<h4 id="stop-loading-the-plugin">237#### プラグインの読み込みを停止する
272 プラグインの読み込みを停止する
273</h4>
274 238
275スキャフォルドされたプラグインの読み込みを停止するには、そのディレクトリを削除するか、シェルで `claude plugin disable my-tool@skills-dir` を実行してください。`claude plugin init` が出力した `my-tool@skills-dir` 名を使用してください。ID `my-tool@skills-dir` では、`skills-dir` はマーケットプレイス名が入る場所に立ちます。プラグインはマーケットプレイスではなくスキルディレクトリから読み込まれるためです。239スキャフォルドされたプラグインの読み込みを停止するには、そのディレクトリを削除するか、シェルで `claude plugin disable my-tool@skills-dir` を実行してください。`claude plugin init` が出力した `my-tool@skills-dir` 名を使用してください。ID `my-tool@skills-dir` では、`skills-dir` はマーケットプレイス名が入る場所に立ちます。プラグインはマーケットプレイスではなくスキルディレクトリから読み込まれるためです。
276 240
277<h4 id="load-a-plugin-for-everyone-in-one-repository">241#### リポジトリを通じてプラグインを共有する
278 リポジトリを通じてプラグインを共有する
279</h4>
280 242
281`claude plugin init` はプラグインを個人的なスキルディレクトリ `~/.claude/skills/` に書き込むため、すべてのプロジェクトであなたのために読み込まれます。1 つのリポジトリのすべての人のためにプラグインを読み込むには、`.claude-plugin/plugin.json` を含む同じレイアウトを `<project>/.claude/skills/<name>/` で自分で作成してください。[リポジトリを通じて共有されるプラグイン](/docs/ja/plugins/loading#plugins-shared-through-a-repository)を参照して、Claude Code がそれを読み込む条件を確認してください。243`claude plugin init` はプラグインを個人的なスキルディレクトリ `~/.claude/skills/` に書き込むため、すべてのプロジェクトであなたのために読み込まれます。1 つのリポジトリのすべての人のためにプラグインを読み込むには、`.claude-plugin/plugin.json` を含む同じレイアウトを `<project>/.claude/skills/<name>/` で自分で作成してください。[リポジトリを通じて共有されるプラグイン](/docs/ja/plugins/loading#plugins-shared-through-a-repository)を参照して、Claude Code がそれを読み込む条件を確認してください。
282 244
283<h2 id="test-and-debug">245## テストとデバッグ
284 テストとデバッグ
285</h2>
286 246
287プラグインへの変更が表示されない場合、これらのチェックを順番に実行してください。それぞれが Claude Code がプラグインで何をしたかを伝えます。247プラグインへの変更が表示されない場合、これらのチェックを順番に実行してください。それぞれが Claude Code がプラグインで何をしたかを伝えます。
288 248
297 257
298次のセクションは、開発中に最も可能性の高い失敗をカバーし、[トラブルシューティングページ](/docs/ja/plugins/troubleshooting#build-a-plugin)には各々の完全なエントリがあります。258次のセクションは、開発中に最も可能性の高い失敗をカバーし、[トラブルシューティングページ](/docs/ja/plugins/troubleshooting#build-a-plugin)には各々の完全なエントリがあります。
299 259
300<h3 id="a-component-path-isn’t-found">260### コンポーネントパスが見つからない
301 コンポーネントパスが見つからない
302</h3>
303 261
304`/plugin` の **Errors** タブは `<component> path not found: <path>` を表示します。例えば `commands path not found`。マニフェスト内のコンポーネントパス(`commands`、`skills`、`agents`、`hooks` など)は何も指していません。パスを修正するか、ディレクトリを作成し、セッションで `/reload-plugins` を実行してください。[`commands path not found`](/docs/ja/plugins/troubleshooting#commands-path-not-found)を参照してください。262`/plugin` の **Errors** タブは `<component> path not found: <path>` を表示します。例えば `commands path not found`。マニフェスト内のコンポーネントパス(`commands`、`skills`、`agents`、`hooks` など)は何も指していません。パスを修正するか、ディレクトリを作成し、セッションで `/reload-plugins` を実行してください。[`commands path not found`](/docs/ja/plugins/troubleshooting#commands-path-not-found)を参照してください。
305 263
306<h3 id="plugin-dir-at-a-marketplace-root-doesn’t-load-the-plugins-under-plugins/">264### `--plugin-dir` がマーケットプレイスルートにあると `plugins/` の下のプラグインが読み込まれない
307 `--plugin-dir` がマーケットプレイスルートにあると `plugins/` の下のプラグインが読み込まれない
308</h3>
309 265
310`--plugin-dir` はプラグインのルートディレクトリを取ります。`.claude-plugin/plugin.json` とコンポーネントディレクトリ(`skills/` など)を含むディレクトリです。代わりにマーケットプレイスルートを指すと、Claude Code は `marketplace.json` を読まないため、`plugins/` の下のプラグインは読み込まれず、エラーは表示されません。フラグを 1 つのプラグインのフォルダに指すか、マーケットプレイスを追加してください。[トラブルシューティングエントリ](/docs/ja/plugins/troubleshooting#plugin-dir-loads-a-plugin-with-no-components)を参照してください。266`--plugin-dir` はプラグインのルートディレクトリを取ります。`.claude-plugin/plugin.json` とコンポーネントディレクトリ(`skills/` など)を含むディレクトリです。代わりにマーケットプレイスルートを指すと、Claude Code は `marketplace.json` を読まないため、`plugins/` の下のプラグインは読み込まれず、エラーは表示されません。フラグを 1 つのプラグインのフォルダに指すか、マーケットプレイスを追加してください。[トラブルシューティングエントリ](/docs/ja/plugins/troubleshooting#plugin-dir-loads-a-plugin-with-no-components)を参照してください。
311 267
312<h3 id="the-plugin-loads-but-its-skills-are-missing">268### プラグインが読み込まれるがそのスキルが見つからない
313 プラグインが読み込まれるがそのスキルが見つからない
314</h3>
315 269
316`skills/` ディレクトリが `.claude-plugin/` の内部にあるか、マニフェスト内の `skills` エントリがファイルを指しています。`skills/` をプラグインルートに移動し、各 `skills` エントリを `SKILL.md` を含むディレクトリを指すようにし、セッションで `/reload-plugins` を実行してください。[プラグインが読み込まれるがそのスキルが見つからない](/docs/ja/plugins/troubleshooting#plugin-loads-but-its-skills-are-missing)を参照してください。270`skills/` ディレクトリが `.claude-plugin/` の内部にあるか、マニフェスト内の `skills` エントリがファイルを指しています。`skills/` をプラグインルートに移動し、各 `skills` エントリを `SKILL.md` を含むディレクトリを指すようにし、セッションで `/reload-plugins` を実行してください。[プラグインが読み込まれるがそのスキルが見つからない](/docs/ja/plugins/troubleshooting#plugin-loads-but-its-skills-are-missing)を参照してください。
317 271
318<h3 id="the-userconfig-dialog-never-appears">272### `userConfig` ダイアログが表示されない
319 `userConfig` ダイアログが表示されない
320</h3>
321 273
322プラグインの [`userConfig`](/docs/ja/plugins/components#user-configuration) オプションのダイアログはセッションで `/plugin` を通じてインストールの一部です。`--plugin-dir` での読み込みはそれを表示しません。シェルの `claude plugin install` でもそうです。プラグインが読み込まれたら、セッションで `/plugin configure <plugin-name>` を実行してそれを開いてください。[`userConfig` ダイアログが表示されない](/docs/ja/plugins/troubleshooting#the-userconfig-dialog-never-appears)を参照してください。274プラグインの [`userConfig`](/docs/ja/plugins/components#user-configuration) オプションのダイアログはセッションで `/plugin` を通じてインストールの一部です。`--plugin-dir` での読み込みはそれを表示しません。シェルの `claude plugin install` でもそうです。プラグインが読み込まれたら、セッションで `/plugin configure <plugin-name>` を実行してそれを開いてください。[`userConfig` ダイアログが表示されない](/docs/ja/plugins/troubleshooting#the-userconfig-dialog-never-appears)を参照してください。
323 275
324<h3 id="check-that-the-plugin-changes-claude’s-behavior">276### プラグインが Claude の動作を変更することを確認する
325 プラグインが Claude の動作を変更することを確認する
326</h3>
327 277
328エラーなしで読み込まれるプラグインは、意図した方法で Claude を操舵できない場合があります。`claude plugin eval` はシェルで実行し、プラグインの有無でテストケースを実行し、差を採点します。[プラグインで evals をテストする](/docs/ja/plugin-evals)を参照してください。[最初の eval スイートを作成する](/docs/ja/plugin-evals#create-your-first-eval-suite)から開始してください。278エラーなしで読み込まれるプラグインは、意図した方法で Claude を操舵できない場合があります。`claude plugin eval` はシェルで実行し、プラグインの有無でテストケースを実行し、差を採点します。[プラグインで evals をテストする](/docs/ja/plugin-evals)を参照してください。[最初の eval スイートを作成する](/docs/ja/plugin-evals#create-your-first-eval-suite)から開始してください。
329 279
330<h2 id="convert-an-existing-claude-setup">280## 既存の `.claude/` セットアップを変換する
331 既存の `.claude/` セットアップを変換する
332</h2>
333 281
334既にプロジェクトの `.claude/` ディレクトリの下にスキル、エージェント、またはフックがある場合、それらを書き直さずにプラグインに移動できます。282既にプロジェクトの `.claude/` ディレクトリの下にスキル、エージェント、またはフックがある場合、それらを書き直さずにプラグインに移動できます。
335 283
336`.claude/` を含むディレクトリであるプロジェクトルートからこれらのステップのコマンドを実行してください。`cp` パスはそれに対して相対的であるためです。284`.claude/` を含むディレクトリであるプロジェクトルートからこれらのステップのコマンドを実行してください。`cp` パスはそれに対して相対的であるためです。
337 285
338<Steps>286**1. プラグイン構造を作成する**
339 <Step title="プラグイン構造を作成する">
340 プラグインディレクトリとその `.claude-plugin/` フォルダを `.claude/` の隣に作成してください。その後、プラグインをどこにでも移動できます。
341 287
342 ```bash theme={null}288プラグインディレクトリとその `.claude-plugin/` フォルダを `.claude/` の隣に作成してください。その後、プラグインをどこにでも移動できます。
343 mkdir -p my-plugin/.claude-plugin
344 ```
345 289
346 `my-plugin/.claude-plugin/plugin.json` を作成してください。290```bash theme={null}
291mkdir -p my-plugin/.claude-plugin
292```
347 293
348 ```json my-plugin/.claude-plugin/plugin.json theme={null}294`my-plugin/.claude-plugin/plugin.json` を作成してください。
349 {295
296```json my-plugin/.claude-plugin/plugin.json theme={null}
297{
350 "name": "my-plugin",298 "name": "my-plugin",
351 "description": "Migrated from standalone configuration",299 "description": "Migrated from standalone configuration",
352 "version": "1.0.0"300 "version": "1.0.0"
353 }301}
354 ```302```
355 </Step>
356 303
357 <Step title="既存のファイルをコピーする">304**2. 既存のファイルをコピーする**
358 持っている各設定ディレクトリをプラグインルートにコピーし、持っていないディレクトリのコマンドをスキップしてください。
359 305
360 ```bash theme={null}306持っている各設定ディレクトリをプラグインルートにコピーし、持っていないディレクトリのコマンドをスキップしてください。
361 cp -r .claude/commands my-plugin/307
362 ```308```bash theme={null}
309cp -r .claude/commands my-plugin/
310```
311
312```bash theme={null}
313cp -r .claude/agents my-plugin/
314```
363 315
364 ```bash theme={null}316```bash theme={null}
365 cp -r .claude/agents my-plugin/317cp -r .claude/skills my-plugin/
366 ```318```
367 319
368 ```bash theme={null}320`ls -a my-plugin` を実行して、コピーした各ディレクトリが `.claude-plugin` の隣に表示されることを確認してください。
369 cp -r .claude/skills my-plugin/
370 ```
371 321
372 `ls -a my-plugin` を実行して、コピーした各ディレクトリが `.claude-plugin` の隣に表示されることを確認してください。322**3. フックを移動する**
373 </Step>
374 323
375 <Step title="フックを移動する">324`.claude/settings.json` または `.claude/settings.local.json` にフックがある場合、フックディレクトリを作成してください。
376 `.claude/settings.json` または `.claude/settings.local.json` にフックがある場合、フックディレクトリを作成してください。
377 325
378 ```bash theme={null}326```bash theme={null}
379 mkdir -p my-plugin/hooks327mkdir -p my-plugin/hooks
380 ```328```
381 329
382 `my-plugin/hooks/hooks.json` を作成し、設定ファイルから `hooks` オブジェクトをそこにコピーしてください。形式は同じです。330`my-plugin/hooks/hooks.json` を作成し、設定ファイルから `hooks` オブジェクトをそこにコピーしてください。形式は同じです。
383 331
384 この例は、Claude が書き込むまたは編集する各ファイルでリンターを実行する 1 つのフックを持つ形状を示しています。例を独自の `hooks` オブジェクトで置き換えてください。332この例は、Claude が書き込むまたは編集する各ファイルでリンターを実行する 1 つのフックを持つ形状を示しています。例を独自の `hooks` オブジェクトで置き換えてください。
385 333
386 ```json my-plugin/hooks/hooks.json theme={null}334```json my-plugin/hooks/hooks.json theme={null}
387 {335{
388 "hooks": {336 "hooks": {
389 "PostToolUse": [337 "PostToolUse": [
390 {338 {
393 }341 }
394 ]342 ]
395 }343 }
396 }344}
397 ```345```
398 </Step>346
347**4. 移行されたプラグインをテストする**
399 348
400 <Step title="移行されたプラグインをテストする">349セッションのためにプラグインを読み込んでください。
401 セッションのためにプラグインを読み込んでください。
402 350
403 ```bash theme={null}351```bash theme={null}
404 claude --plugin-dir ./my-plugin352claude --plugin-dir ./my-plugin
405 ```353```
406 354
407 新しい名前の下で各コンポーネントをチェックしてください。355新しい名前の下で各コンポーネントをチェックしてください。
408 356
409 * **スキル**: `/deploy` だったスキルのために `/my-plugin:deploy` を実行してください。357* **スキル**: `/deploy` だったスキルのために `/my-plugin:deploy` を実行してください。
410 * **サブエージェント**: `reviewer` だったエージェントのために Claude に `my-plugin:reviewer` エージェントを使用するよう求めてください。358* **サブエージェント**: `reviewer` だったエージェントのために Claude に `my-plugin:reviewer` エージェントを使用するよう求めてください。
411 * **フック**: 各フックが一致するイベントをトリガーしてください。359* **フック**: 各フックが一致するイベントをトリガーしてください。
412 360
413 何かが見つからない場合、[テストとデバッグ](#test-and-debug)を実行してください。361何かが見つからない場合、[テストとデバッグ](#test-and-debug)を実行してください。
414 </Step>
415</Steps>
416 362
417オリジナルがまだ `.claude/` の下にある間、それらはプラグインのコピーと一緒に読み込まれたままです。363オリジナルがまだ `.claude/` の下にある間、それらはプラグインのコピーと一緒に読み込まれたままです。
418 364
421 367
422プラグインが機能することを確認した後、`.claude/` からオリジナルを削除し、設定ファイルから `hooks` オブジェクトを削除してください。368プラグインが機能することを確認した後、`.claude/` からオリジナルを削除し、設定ファイルから `hooks` オブジェクトを削除してください。
423 369
424<h2 id="next-steps">370## 次のステップ
425 次のステップ
426</h2>
427 371
428* [プラグインコンポーネント](/docs/ja/plugins/components): エージェント、フック、MCP サーバー、LSP サーバー、ユーザー設定をプラグインに追加する372* [プラグインコンポーネント](/docs/ja/plugins/components): エージェント、フック、MCP サーバー、LSP サーバー、ユーザー設定をプラグインに追加する
429* [プラグインで evals をテストする](/docs/ja/plugin-evals): eval ケースを書き込み、`claude plugin eval` で実行してプラグインが Claude の動作をどの程度確実に導くかをチェックする373* [プラグインで evals をテストする](/docs/ja/plugin-evals): eval ケースを書き込み、`claude plugin eval` で実行してプラグインが Claude の動作をどの程度確実に導くかをチェックする