Plugins と「カスタマイズ」
06. Skills、07. MCP とコネクター、09. Hooks で、スキル、MCP サーバー、フックを、それぞれ別々に作って設定してきました。ほかのプロジェクトでも同じものを使いたいときや、ほかの人に渡したいときに、1 つずつ設定し直すのは手間です。プラグインは、これらをひとまとめにして、1 回で入れられるようにする仕組みです。このページでは、プラグインの仕組みを整理し、自分の道具をプラグインにまとめることと、公式のプラグインを入れて試すことを、実際に行います。
この記事で分かること
- プラグインとは何か。何をまとめられるのか
- プラグインが必要な場面と、必要ない場面
- プラグインの入れ方、有効にする範囲、止め方
- デスクトップアプリの「カスタマイズ」の画面と、プラグインの関係
- 自分のスキルとフックをプラグインにまとめた結果と、公式のプラグインを試した結果
用語の整理
| 用語 | 意味 |
|---|---|
| プラグイン(plugin) | スキル、フック、MCP サーバーなどを 1 つのフォルダーにまとめ、ひとまとめに入れられるようにしたもの |
| マニフェスト(manifest) | プラグインの名前や説明を書いたファイル。.claude-plugin/plugin.json |
| マーケットプレイス(marketplace) | プラグインの一覧と、それぞれの取得先を書いた目録。店ではなく、目録にあたる |
| サブエージェント(subagent) | Claude が仕事の一部を任せる、役割を決めた別の Claude |
| LSP サーバー(language server) | プログラムの言語ごとに、型の誤りなどを見つけて知らせる道具。LSP は Language Server Protocol の略で、その知らせ方の決まり |
| 範囲(scope) | プラグインを、誰に、どのプロジェクトで有効にするか |
プラグインとは
部品をまとめた、1 つのフォルダー
プラグインは、部品を入れたフォルダーです。公式ドキュメントが挙げている、主な部品は次のとおりです。
| 部品 | 中身 | このサイトで扱ったページ |
|---|---|---|
| スキル | SKILL.md に書いた手順や知識 | 06. Skills |
| サブエージェント | 役割を決めた、別の Claude の定義 | — |
| フック | 決まったタイミングで実行するコマンド | 09. Hooks |
| MCP サーバー | Claude が使える道具を足すサーバー | 07、08 |
| LSP サーバー | 型の誤りなどを、編集の直後に Claude へ知らせる道具 | — |
フォルダーの形は、次のようになります。
my-plugin/
├── .claude-plugin/
│ └── plugin.json ← マニフェスト(名前、説明、バージョン)
├── skills/
│ └── review/
│ └── SKILL.md ← スキル
├── agents/
│ └── reviewer.md ← サブエージェント
├── hooks/
│ └── hooks.json ← フック
└── .mcp.json ← MCP サーバープラグインのスキルは、/プラグインの名前:スキルの名前 の形で呼び出します。上の例では /my-plugin:review です。ほかのプラグインのスキルと、名前がぶつからないようにするためです。
プラグインが必要な場面と、必要ない場面
スキル、フック、MCP サーバーは、どれもプラグインにしなくても使えます。たとえば ~/.claude/skills/ に置いたスキルは、その PC のすべてのプロジェクトで使えます。
公式ドキュメントは、プラグインを使う場面を次のように説明しています。
| 場面 | プラグインにするか |
|---|---|
| 自分だけが、1 つの PC で使う | しなくてよい。それぞれの置き場所に置けば足りる |
| ほかの人が作った道具一式を、まとめて入れたい | プラグインを入れる。1 回で入り、目録から更新も届く |
| 自分の道具一式を、ほかの人やほかのプロジェクトに配りたい | プラグインにまとめる |
有効にしたプラグインは、いつも影響する
有効にしたプラグインは、使っていない会話にも影響します。入れる前に知っておくことを、公式ドキュメントは次のように挙げています。
| 影響 | 内容 |
|---|---|
| 利用量 | Claude が自分で呼び出せるスキルなどは、名前と説明が、毎回の会話に読み込まれる。何も使わなくても、その分を使う。全文が読み込まれるのは、使ったときだけ |
| 動き続けるもの | MCP サーバーは会話と一緒に動き続け、フックは決まったタイミングで動く |
| 権限 | プラグインが実行するものは、利用者と同じ権限で動く。公式の目録のものでも同じ |
使わないプラグインは、入れたまま止める(無効にする)こともできます。
プラグインの入れ方
マーケットプレイスから入れる
多くのプラグインは、マーケットプレイスから入れます。Anthropic の公式のマーケットプレイス(claude-plugins-official)は、ターミナル版を初めて起動したときに、自動で登録されます。プラグインは、名前@マーケットプレイス の形で指定します。
| 使う場所 | 入れ方 |
|---|---|
| ターミナル版 | 会話の中で /plugin を開き、Discover のタブから選ぶ |
| デスクトップアプリ | 入力欄の横の「+」から「Add plugins」を選ぶ(メニューに「Plugins」と出るときは、「Plugins」→「Browse plugins」) |
| シェル(コマンド) | claude plugin install <名前>@<マーケットプレイス> --scope <範囲> |
ターミナル版、デスクトップアプリ、VS Code の拡張機能は、同じ設定ファイルを読みます。そのため、1 か所で入れたプラグインは、ほかの 2 か所でも使えます。ブラウザーで使うクラウドのセッションでは、手元で入れたプラグインは読み込まれません。
有効にする範囲
| 範囲 | 誰に有効か | 書かれる設定ファイル |
|---|---|---|
| user | 自分の、すべてのプロジェクト | ~/.claude/settings.json |
| project | そのリポジトリで作業する、全員 | .claude/settings.json(リポジトリに入れて共有する) |
| local | 自分の、そのリポジトリだけ | .claude/settings.local.json |
設定ファイルの優先順位は、「04. 設定ファイルの仕組み」と同じ考え方で、local が project より、project が user より優先されます。
止める、外す
| したいこと | コマンド |
|---|---|
| 入れたまま止める | claude plugin disable <名前>@<マーケットプレイス> --scope <範囲> |
| もう一度動かす | claude plugin enable <名前>@<マーケットプレイス> --scope <範囲> |
| 外す | claude plugin uninstall <名前>@<マーケットプレイス> |
会話の中では、ターミナル版の /plugin や、デスクトップアプリの「Manage plugins」からも操作できます。
作っている途中のプラグインを試す
自分で作っているプラグインは、マーケットプレイスに載せなくても、フォルダーを指定して、その会話だけで読み込めます(ターミナル版)。
claude --plugin-dir ./my-pluginデスクトップアプリの「カスタマイズ」
デスクトップアプリには、「カスタマイズ」という画面があります。ここに並ぶのは、claude.ai のアカウントに入れたプラグイン、スキル、コネクターです。この PC のファイルに置いたスキルや、claude plugin install で入れたプラグインは、ここには出ません。
公式ドキュメントによると、claude.ai のアカウントで有効にしたプラグインは、ターミナル版にも届きます(<名前>@synced として表示されます)。逆向き、つまり PC で入れたプラグインが、アカウントに加わることはありません。
| 「カスタマイズ」の画面 | Claude Code のプラグイン | |
|---|---|---|
| どこに入るか | claude.ai のアカウント | この PC(~/.claude/plugins/) |
| 入れ方 | 「カスタマイズ」の画面 | /plugin、「+」→「Add plugins」、claude plugin install |
| 範囲 | アカウント | user、project、local |
実際にやってみる
1. 自分のスキルとフックを、プラグインにまとめる
このサイトでは、次の 2 つを、別々の場所に置いて使っています。
この 2 つを、study-lab-tools という 1 つのプラグインにまとめました。
plugins/study-lab-tools/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ └── register-page/
│ └── SKILL.md ← .claude/skills/ のものと同じ中身
├── hooks/
│ └── hooks.json
└── scripts/
└── log-tool-use.sh ← 記録のフックが呼び出すスクリプトplugin.json には、名前、説明、バージョンを書きます。
{
"name": "study-lab-tools",
"description": "study-lab のサイトを作るときに使う道具。新しいページの登録の手順(スキル)と、Claude が触ったファイルの記録(フック)",
"version": "0.1.0",
"author": {
"name": "study-lab"
}
}フックの設定は、09 で設定ファイルに書いたものと、ほぼ同じです。違うのは、スクリプトの場所を ${CLAUDE_PLUGIN_ROOT} で書く点です。これは、プラグインを入れた場所に置き換わる文字で、プラグインがどこに入っても、中のスクリプトを見つけられます。
{
"hooks": {
"PostToolUse": [
{
"matcher": "Read|Write|Edit|Grep|Glob|Bash",
"hooks": [
{
"type": "command",
"command": "\"${CLAUDE_PLUGIN_ROOT}/scripts/log-tool-use.sh\""
}
]
}
]
}
}作ったプラグインを、次のように確かめました。
| 確かめたこと | 方法 | 結果 |
|---|---|---|
| 形が正しいか | claude plugin validate ./plugins/study-lab-tools | 合格 |
| 中の部品 | claude --plugin-dir ./plugins/study-lab-tools plugin details study-lab-tools | スキル 1(register-page)、フック 1(PostToolUse) |
| いつも使う利用量の見積もり | 同じ | 毎回の会話に約 136 トークン。スキルを使うと、その回に約 620 トークン。フックは Claude の会話に何も足さないので 0 |
| スキルが呼び出せるか | ターミナル版を --plugin-dir 付きで起動し、/ を入力する | /study-lab-tools:register-page が候補に出た |
| フックが動くか | 同じ会話で、ファイルを読ませる | 動いた。ただし記録が 2 行になった |
記録が 2 行になったのは、09 で .claude/settings.local.json に書いたフックと、プラグインのフックが、両方とも動いたからです。同じ働きのフックを 2 か所に置くと、両方が動きます。プラグインに移すなら、元の設定は消す必要があります。このサイトでは、プラグインは試しに作っただけで、普段の作業では、元の設定のほうを使っています。
2. デスクトップアプリの「カスタマイズ」を見る
1 で作ったスキルが、デスクトップアプリの「カスタマイズ」の画面に出るかを見ました。
| 期待したこと | 結果 | 理由 |
|---|---|---|
ファイルに置いたスキル(register-page)が、一覧に出る | 出なかった。プラグインは 0、自分のスキルも 0 で、Anthropic のスキルが 5 つ並んでいた | 「カスタマイズ」に並ぶのは、claude.ai のアカウントのもの。PC のファイルに置いたスキルや、PC に入れたプラグインは対象外 |
Anthropic のスキル 5 つ(google-workspace、deep-research、import-memory、morning、skill-creator)は、Claude Code の会話の中でも、anthropic-skills: の付いた名前で使えるようになっていました。
3. 公式のプラグインを入れて試す
公式のマーケットプレイスから、4 つのプラグインを入れて試しました。範囲は、どれも local(このリポジトリで、自分だけ)にしました。入れる前に、それぞれの中身を plugin details で確かめています。
claude plugin install <名前>@claude-plugins-official --scope local| プラグイン | 中身 | 試したこと | 結果 | 今の状態 |
|---|---|---|---|---|
| claude-md-management | スキル 2 つ。CLAUDE.md を点検して直す、会話で分かったことを CLAUDE.md に足す | 入れて、スキルが使えるようになるかを見た | 使えるようになった。まだ、実際に CLAUDE.md を直すのには使っていない | 有効 |
| security-guidance | フック。危ない書き方を含むコードを書いたときに、注意を出す。加えて、答え終わったときや、コミットのときに、AI がコードを見直す | AI の見直しは利用量を使うので止めて(ENABLE_CODE_SECURITY_REVIEW=0)、注意だけを試した | 下の「security-guidance の注意の出方」を参照 | 入れたまま無効 |
| learning-output-style | フック。会話の始まりに、「学ぶ人と一緒に作る形で答える」という指示を、Claude に足す | 新しい会話で、小さな Python の関数を書いてもらった | 下の「learning-output-style の効き方」を参照 | 入れたまま無効 |
| frontend-design | スキル。画面のデザインの指針 | このサイトのトップページの作り直しに使った | 「学習ノートの棚」のデザインを提案し、その案をもとに作った。今のトップページが、その結果 | 有効 |
security-guidance の注意の出方
| 試したこと | 結果 |
|---|---|
| 会話の始まり | プラグインのフックが、AI の見直しに使う部品を、~/.claude/security/ に入れた |
| 練習用のファイルの、コメントだけを書き換える | 注意は出なかった。調べるのは、編集で新しく書き込んだ文字だけだから |
練習用のファイルに、危ない書き方(yaml.load)を書き足す | 注意が出た。ただし、注意は Claude に届き、利用者の画面には出なかった |
注意が Claude にだけ届くので、利用者は、何が起きたかを知らないままになります。このサイトはページの文章が中心で、Python のコードは少ないので、入れたまま無効にしました。
learning-output-style の効き方
| 回 | 条件 | 結果 |
|---|---|---|
| 1 回目 | 新しい会話、Sonnet 5.5 | 答え方は変わらなかった。会話の記録を見ると、フックは動き、指示は Claude に届いていた |
| 2 回目 | 新しい会話、Opus 5.5、同じ依頼 | 答え方が変わった。「★ Insight」という見出しの短い解説が入り、関数の一部を空けて、利用者に書くよう頼んできた |
2 回の違いは、モデルの違いかもしれませんが、それぞれ 1 回しか試していないので、そう断定はできません。試したあと、入れたまま無効にしました。
プラグインのスキルが使えるようになるまで
公式ドキュメントでは、入れたプラグインが動き始めるのは、新しい会話を始めたときか、/reload-plugins を実行したときです。デスクトップアプリでは、会話の途中で入れたプラグインのスキルが、利用者の次の発言から使えるようになりました。なぜそうなるのかは、確かめていません。
4. 試さなかったプラグイン
中身を確かめたうえで、次のプラグインは試しませんでした。
| プラグイン | 中身 | 試さなかった理由 |
|---|---|---|
| commit-commands | コミット、push、プルリクエストの作成をまとめて行うスキル | スキルの中で、git push と gh pr create を確認なしで実行できる設定になっている。このサイトでは、公開の前に利用者が確認する流れにしているので、合わない |
| pyright-lsp | Python の LSP サーバー(pyright)を、Claude につなぐ | 型の誤りは、すでに CI の型の検査で見つかる(Python のテストと lint を CI で自動実行する)。公式ドキュメントでは、ターミナル版で動くもので、pyright を別に入れる必要もある |
| playwright | ブラウザーを自動で操作する MCP サーバー | ページの表示は、デスクトップアプリに組み込まれたブラウザーで、すでに確かめられている |
| feature-dev | 調べる役、設計する役、確認する役の、3 つのサブエージェントで機能を作る | 複数の Claude が動くので、利用量が多い。このサイトには、分担させるほどの大きな機能の開発がない |
分かったこと
- 自分の道具を 1 つにまとめる手間は、少なかった。決まった形のフォルダーに置き、
plugin.jsonを足し、スクリプトの場所を${CLAUDE_PLUGIN_ROOT}で書き直すだけだった。 - ただし、1 人で 1 つの PC で使うなら、まとめる利点は小さい。配る相手ができたときに、まとめれば足りる。
- 公式のプラグインは、入れる前に中身を確かめると、このサイトに合うかどうかが分かった。commit-commands のように、確認なしで公開まで進める作りのものもある。
- 「カスタマイズ」の画面は、claude.ai のアカウントのもので、PC に置いたスキルやプラグインとは別の一覧だった。
まとめ
- プラグインは、スキル、サブエージェント、フック、MCP サーバー、LSP サーバーなどを、1 つのフォルダーにまとめたもの。名前は
.claude-plugin/plugin.jsonに書く。 - 部品は、どれもプラグインにしなくても使える。プラグインは、まとめて入れたいとき、配りたいときに使う。
- 有効にしたプラグインは、使っていない会話でも、スキルの名前と説明の分の利用量を使う。実行するものは、利用者と同じ権限で動く。
- 範囲は user、project、local の 3 つ。止めるときは、入れたまま無効にできる。
- デスクトップアプリの「カスタマイズ」は、claude.ai のアカウントのプラグインとスキルの画面。PC に置いたものは出ない。
- このサイトでは、自分のスキルとフックをプラグインにまとめられることを確かめた。公式のプラグインは 4 つ試し、frontend-design と claude-md-management を残した。
確認の記録
- Plugins overview(Claude Code Docs)
- Install and manage plugins(Claude Code Docs)
- Plugin components(Claude Code Docs)
- Plugin loading reference(Claude Code Docs)
- Code intelligence plugins(Claude Code Docs)
- Desktop application(Claude Code Docs)
| 項目 | 内容 |
|---|---|
| 最終確認日 | 2026 年 10 月 24 日 |
| Claude Code のバージョン | デスクトップアプリ 2.1.304、ターミナル版 2.1.302(macOS)。プラグインを試したのは 2026 年 10 月 18〜21 日 |
| 検証の状況 | 「実際にやってみる」は、この Mac で、ターミナル版とデスクトップアプリを使って確かめた結果。それ以外の節は、公式ドキュメントの内容をもとに書いている |
| 確かめていない内容 | デスクトップアプリの「+」からのプラグインの入れ方(このページの試行では、シェルのコマンドで入れた)。project の範囲での共有。マーケットプレイスを自分で作ること。サブエージェントと LSP サーバーの部品。デスクトップアプリで、プラグインのスキルが次の発言から使えるようになった理由 |