Claude Code を使っていて、機能を増やしたい・プラグインを入れてみたい人向け
同じ便利コマンドを別プロジェクトでも使い回したい、特定の作業手順を毎回説明せず自動化したい、チーム全員に同じ拡張を配りたい、といった場面で叩く。/plugin で管理画面を開き、ストア(公式の claude-plugins-official は最初から使える、外部ストアは marketplace add で足す)から目的のプラグインを選んで install し、/reload-plugins で有効化する流れ
Plugins(プラグインズ)は、Claude Code に後から機能を足すための「部品の詰め合わせ」です。スキル・スラッシュコマンド・サブエージェント・フック・MCPサーバーといったバラバラの拡張を1つの箱にまとめて、配布したり共有したりできます。公式は「Plugins let you extend Claude Code with custom functionality that can be shared across projects and teams.」と書いていて、要は「自分やチームで使い回せる追加機能のかたまり」です。
素のClaude Codeでも色々できますが、毎回同じ便利コマンドを別プロジェクトに手でコピーしたり、同じ作業手順を毎回口頭で説明したり、というのは地味に面倒です。プラグインはそこを「入れるだけ」で解決します。ただし1つだけ重い前提があって、プラグインはあなたの権限であなたのマシン上で任意のコードを動かせます。だから「どこから入れるか」が全てです。
噛み砕くと
公式がうまい例えを出しています。プラグインの配布元(marketplace)を足す操作は、スマホに新しいアプリストアを1つ追加するのに近いです。「Think of it like adding an app store: adding the store gives you access to browse its collection, but you still choose which apps to download individually.」
ストアを追加しただけでは、まだ1個もアプリは入っていません。並んでいる中から「これ」と選んで初めてインストールされます。プラグインも完全に同じ流れです。
ここがいちばん勘違いされる所だと思います。
そしてアプリと違うのは、入れたプラグインはあなたのパソコンの中で実際にプログラムを動かす点です。だから無料アプリ感覚でポンポン入れる前に、出どころを確認する。この一点だけは最初に頭に入れておくと安全です。
大事な前提:公式ストアは最初から使えるが、個別に入れるのは自分
うれしいことに、Anthropic公式のストアは最初から登録済みです。名前は claude-plugins-official です。Claude Codeを起動した時点でもう使えるので、別のストアを足さなくても公式プラグインはすぐ探せます。
ただし「使える」と「入っている」は別の話です。公式ストアが見えていても、中のプラグインは1個も入っていません。気になったものを自分で選んでインストールして、さらにそのセッション中に有効化(再読込)して、ようやく動きます。
もう1つ。入れたいプラグインが公式ストアに無いこともあります。その場合は、そのプラグインが置いてあるストアを自分で足してから入れます。今回の commit-commands はまさにそれで、Anthropicのデモ用ストアにあるので、実演はそのストアを足すところから始めます。ここで何回かつまずくポイントがあるので、順に見ます。
「ブログサイトの開発中にプラグインを入れる」を例に、実際の手順を見る
ブログサイトをClaude Codeで開発中だとします。変更を「ここまで保存」と区切る作業が地味に多くて、毎回その保存メッセージを考えるのが面倒。そこで Anthropic がデモ用に公開している commit-commands プラグインを入れて楽にしてみます。
ステップ1: commit-commands のあるストアを足して、/plugin で管理画面を開く
commit-commands は公式ストアではなく、Anthropicがデモ用に公開している anthropics/claude-code というストアにあります。公式ストアと違って、こういう外部のストアは自分で足す必要があります。これが「add」の一歩目です。ターミナルで次のように打ちます。
/plugin marketplace add anthropics/claude-code
足しただけでは、まだ1個もプラグインは入っていません。続けて /plugin と打つと、4つのタブが並んだ管理画面が開きます。
/plugin
タブの中身はこうです。Discover(並んでいるプラグインを探す)、Installed(入れたものを管理する)、Marketplaces(ストアの追加・更新・削除)、Errors(読み込みに失敗したものの一覧)。今回は Discover から探します。
ステップ2: Discover タブで commit-commands を選んで中身を確認する
Discover タブで commit-commands を選ぶと、詳細が出ます。最近のバージョンだと、ここで2つの便利な表示が見られます。
1つは Context cost。このプラグインを入れると会話にどれくらいトークンが乗るかの目安です。重いプラグインを何個も入れると、その分だけ会話の余白が削られます。
もう1つは Will install。入れると実際に何が増えるか、つまりスラッシュコマンドが増えるのかスキルなのかフックなのかを、入れる前に確認できます。中身を見ずに入れない、というクセをつけると安全です。
ステップ3: インストールする
詳細画面からそのまま入れてもいいですし、コマンドで一発でも入ります。コマンドはこうです。
/plugin install commit-commands@anthropics-claude-code
@の後ろがストア名です。さっき足したデモストアの名前 anthropics-claude-code を付けます。公式ストアから入れる時は、代わりに @claude-plugins-official を付けます。インストール先(スコープ)を聞かれたら、自分だけ・全プロジェクトで使うなら User を選びます。この選び方は後の落とし穴で詳しく書きます。
ステップ4: /reload-plugins で有効化する
ここが初心者の最初の関門です。入れた直後はまだ動きません。公式も「After installing, run /reload-plugins to activate the plugin.」と明記しています。
/reload-plugins
「入れたのに使えない」のほとんどはこれの叩き忘れです。私は最初これで5分悩みました。
ステップ5: ファイルを1つ直して、namespace付きでコマンドを呼ぶ
試しにブログのトップページのHTMLを1行直したとします。そこで commit-commands の保存機能を呼びます。注意したいのは呼び方です。素の /commit では呼べません。
/commit-commands:commit
プラグインのスキルは必ず「プラグイン名:スキル名」という名前空間(namespace)付きになります。公式いわく「Plugin skills are always namespaced (like /my-first-plugin:hello) to prevent conflicts when multiple plugins have skills with the same name.」。別々のプラグインが同じ名前のスキルを持っていても衝突しないための仕組みです。これを叩くと、保存対象として選ぶ作業から保存メッセージの生成、変更の確定保存まで通しで走ります。
ステップ6: GitHub連携も欲しくなったら足す
開発が進んでGitHub側の操作、たとえば変更を本流に取り込む提案を出す作業なども任せたくなったら、github プラグインを足します。これは公式ストアの claude-plugins-official にあるので、ストアを足す手間なくいきなり入れられます。
/plugin install github@claude-plugins-official
同じ install でも、デモストアの commit-commands は先にストアを足す必要があり、公式ストアの github は足さずに入る。この差が「ストアを足す=add」と「プラグインを入れる=install」は別物だ、という話そのものです。必要になったタイミングで1個ずつ積んでいくのが基本で、最初から全部入れる必要はありません。
つまり Plugins は何をしてくれるのか
- やってくれる: スキル・スラッシュコマンド・サブエージェント・フック・MCPサーバーなどを1つの箱にまとめて、入れるだけで使える状態にする。プロジェクトやチーム間で同じ拡張を共有できる
- やってくれない: 中身の安全性の保証はしない。Anthropicはプラグインに含まれるMCPサーバーやファイルを管理しておらず、意図通り動くかも検証していないと公式が明言している
- 意味が薄い場面: 1つのプロジェクトだけで自分用にちょっと試したいだけなら、わざわざプラグイン化せず
.claude/フォルダに直接スキルやフックを置く方が手軽。共有・配布・バージョン管理が要らないならプラグインの旨味は出ない
使いどころ3シナリオ(具体題材で再現)
シナリオ1: 料理ブログを1人で開発していて、保存作業を毎回楽にしたいとき
料理レシピのブログを個人で開発中だとします。1日に10回以上「ここまで保存」を区切るのに、毎回メッセージを考えるのが面倒。そこで commit-commands を User スコープ(自分だけ・全プロジェクト共通)で入れておけば、別で作る家計簿アプリでも同じ /commit-commands:commit が使えます。1人開発で「全部の自分のプロジェクトで使い回したい便利系」は User が基本です。
シナリオ2: 3人チームで通販サイトを作っていて、全員に同じ環境を配りたいとき
チームでプロジェクトのファイル一式を共有しているとします。レビュー用のサブエージェントや保存ルールのフックを、メンバー全員に同じ設定で配りたい。この場合は Project スコープで入れます。設定が .claude/settings.json に書き込まれ、そのプロジェクトのフォルダを信頼したメンバーには「これ入れますか」と案内が出ます。新メンバーが入っても環境が勝手に揃うのが強みです。
シナリオ3: GitHubで見つけた便利そうなプラグインを試したいとき
公式ストア以外にも、個人や会社が公開しているストアがあります。気になるものを見つけたら、そのストアを /plugin marketplace add owner/repo の形で足してから、中のプラグインを選んで入れます。ただしこれは公式の外なので、出どころの信頼性を必ず確認します。よく知らない相手のストアを安易に足さない。ここはアプリストアより慎重でいい場面です。
初心者が踏みやすい落とし穴
- プラグインはあなたの権限で任意のコードを動かせる。公式は「Plugins and marketplaces are highly trusted components that can execute arbitrary code on your machine with your user privileges. Only install plugins and add marketplaces from sources you trust.」と警告している。信頼できる出どころからだけ入れる。Anthropicは中身を検証していない
- ストアを add しただけではプラグインは入らない。公式も「No plugins are installed yet.」と明記。add(カタログを登録)→ install(個別に入れる)の2ステップ。アプリストアを追加してもアプリは1個も入らないのと同じ
- インストール後
/reload-pluginsを叩かないと、そのセッション中は有効にならない。「入れたのに動かない」の最有力候補がこれ - プラグインのスキルは名前空間付きでしか呼べない。
/commit-commands:commitのように頭にプラグイン名が要る。素の/commitでは呼べない(同名衝突を防ぐ仕組み) - 「入っている」と「有効」は別物。
/plugin disableはファイルを残したまま無効化、/plugin enableで復活、/plugin uninstallで完全削除。一時的に切りたいだけなら disable で十分 - ストアを remove すると、そこから入れたプラグインも一緒に消える。公式いわく「Removing a marketplace will uninstall any plugins you installed from it.」。ストアだけ整理したつもりが中身ごと消える
- LSP(コード補完)系のプラグインは、別途その言語のサーバー本体を自分のマシンに入れておく必要がある。無いと Errors タブに「Executable not found」が出る。プラグインを入れただけでは足りない場合がある
- スコープを間違えると共有範囲がズレる。Project スコープは
.claude/settings.jsonに書かれてチーム全員に入る。自分だけで使いたいものを Project で入れると、意図せず全員に配られる。1人用は User か Local を選ぶ
自分でプラグインを作りたくなったら
ここまでは使う側の話でした。自分で作る側も入口は意外と軽くて、プラグインのフォルダの中に .claude-plugin/plugin.json という設定ファイルを1つ置くのが出発点です。最小だと name と description くらいで形になります。name はプラグイン名で、これがそのまま名前空間になります。description は一覧での説明文です。作る側の落とし穴を1つだけ挙げると、commands/ や skills/ などのフォルダを .claude-plugin/ の中に入れてしまう事故です。公式いわく「Only plugin.json goes inside .claude-plugin/.」。.claude-plugin/ の中身は plugin.json 1個だけで、他のフォルダはプラグインの直下に置きます。作る詳細は公式の create plugins ガイドが丁寧なので、本格的に作るならそちらを見るのが早いです。
書き方
/plugin
/plugin marketplace add <owner/repo>
/plugin install <プラグイン名>@<ストア名>
やってみるとこうなる
入力
/plugin marketplace add anthropics/claude-code
/plugin install commit-commands@anthropics-claude-code
出力例
足したデモストアから commit-commands が入る。続けて /reload-plugins で有効化すると、/commit-commands:commit のように名前空間付きで呼べるようになり、変更を保存対象として選ぶ作業から保存メッセージの生成・確定保存まで通しで走る
このページに出てきた言葉
- marketplace(マーケットプレイス)
- 誰かが作って公開したプラグインのカタログ。アプリストアの棚にあたる。<code>/plugin marketplace add owner/repo</code> で足す
- claude-plugins-official
- Anthropic公式のストア。Claude Code起動時から最初から使えるので、別途足さなくても公式プラグインを探せる
- namespace(名前空間)
- 名前の頭にプラグイン名を付けて同名衝突を防ぐ仕組み。プラグインのスキルは <code>/commit-commands:commit</code> のように必ず付く
- スコープ
- プラグインを効かせる範囲。User(自分の全プロジェクト)/Project(このプロジェクトの全員・<code>.claude/settings.json</code> に記録)/Local(このプロジェクトで自分だけ)/managed(管理者設定・変更不可)
- 「入っている」と「有効」の違い
- 入っている状態と有効な状態は別物。<code>/plugin disable</code> でファイルを残して無効化、<code>/plugin enable</code> で復活、<code>/plugin uninstall</code> で完全削除
- /reload-plugins
- インストール直後に叩いて、そのセッション中にプラグインを有効化するコマンド。叩き忘れると入れても動かない
- manifest(マニフェスト)
- プラグインの名前・説明・バージョンを書いた設定ファイル。中身は <code>.claude-plugin/plugin.json</code> で、ここに置くのはこの1ファイルだけ
- LSP(サーバー)
- コード補完や定義ジャンプを実現する裏方プログラム。言語ごとに本体が要り、無いと Errors タブにエラーが出る