プラグインとマーケットプレイス
- 本当にプラグインが必要なのか、単独のスキル・フック・MCP サーバーで十分なのかを判断する
- 最初のプラグインをインストールし、インストールの要約から、このセッションですぐ使えるのか再読み込みが必要なのかを読み取る
- 3 つのインストールスコープ(user、project、local)から正しいものを選び、どれがどれを上書きするかを把握する
- 信頼する前にマーケットプレイスの信頼レベルを確認し、公式名とコミュニティ名が偽装できない理由を理解する
- 有効なプラグインがすべてのターンで課す常時コンテキストコストを見積もり、使わなくなったプラグインを見つける
- シェルからライフサイクル全体を実行する: マーケットプレイスの追加、インストール、有効化、無効化、更新、アンインストール、prune
- --plugin-dir を使い、何も公開せずに自分のプラグインを開発する
プラグインは、複数のカスタマイズ — スキル、サブエージェント、スラッシュコマンド、フック、MCP サーバー、そして mod(JavaScript で書かれたフックで、ペインの描画やコマンドの追加もできます) — を、バージョン管理されたインストール可能な 1 つの単位にまとめたものです。マーケットプレイスは、プラグインの一覧と各プラグインの取得先を載せたカタログです。ホストされたストアではなくカタログであり、プラグイン自体は作者が置いた場所にあります。
そもそもプラグインは必要か?
答えがいいえであることも多いので、ここから始めます。スキル、サブエージェント、フック、MCP サーバーは、それぞれ単独でも問題なく動きます。~/.claude/skills/ の SKILL.md は、パッケージ化なしでマシン上のすべてのプロジェクトで使えます。
プラグインに手を伸ばすのは、次の 3 つのどれかが当てはまるときです。
- 複数のコンポーネントを、1 回のインストール手順と 1 つのバージョン番号を持つ1 つの単位としてまとめたい。
- マーケットプレイスからの更新付きで、他の人のセットアップを使いたい。
- 自分のセットアップをチームメイトに渡したい、多くのプロジェクトにインストールしたい、あるいはバージョン付きのリリースを公開したい。
それ以外はスキルかフックであり、そのままにしておくべきです。
誰も警告してくれない点: 有効なプラグインは常にオン
便利そうだからと 5 つのプラグインをインストールする前に、最も心に留めておくべきことです。
有効なプラグインは、使うセッションだけでなくすべてのセッションの一部です。 Claude が自分で呼び出せるスキル、エージェント、コマンドごとに、その名前と説明が毎ターン Claude のコンテキストに入り、Claude はそれが存在することを知ります。このトークンは利用量に数えられ、プラグインの機能が一度も動かないセッションでもコンテキストウィンドウを狭めます。全文が読み込まれるのは使用時だけです。
また、有効なセッションでは MCP サーバーも並行して動作し、フックはそれぞれのイベントで発火します。そして実行するものはすべてあなた自身の権限で実行されます。
ですから見積もりましょう。フットプリントを確認するタイミングは 3 つあります。
- マーケットプレイス名を指定してプラグインを開きます — /plugin install <plugin>@<marketplace>、または Marketplaces タブです。Anthropic の公式マーケットプレイスのプラグインには、ここで Every turn と When invoked に分けたコンテキストコストの見積もりが表示されます。Discover の一覧から開く詳細ペインには、この数値は表示されません。
- シェルで claude plugin details <name> を実行します。Always-on の行が、そのプラグインが有効なすべてのセッションに加えるトークン数で、コンポーネントごとの行から、どのスキルやエージェントが高コストかが分かります。
- /plugin の Installed タブでは、最近使っていないプラグインが Not used recently の見出しの下にまとめられ、各プラグインの詳細には Last used の行があります。それらは今も毎ターンコンテキストを消費しています。無効化するかアンインストールしてください。
同じ理由で、各プラグインはまとまりを持たせてください。「チームの規約」プラグインや「Python ツールキット」プラグインのようにし、説明の一覧に常にコストを払うことになる寄せ集めにはしないことです。対になる読み物は MCP のトークンコストで、ツール定義に同じ計算を当てはめています。
インストールする
Anthropic の公式マーケットプレイス claude-plugins-official は、対話型ターミナルセッションを初めて開始したときに自動で追加されます(管理ポリシーでブロックされていない限り)。そのため、ここからのインストールではマーケットプレイスの追加手順を完全に省略できます。
Open a plugin's details to review it
/plugin install commit-commands@claude-plugins-official
セッション内では、このコマンドはすぐにはインストールしません。そのプラグインの詳細で /plugin パネルを開くので、何が追加されるかを読み、先にスコープを選べます。引数なしの /plugin は代わりに Discover タブを開き、すべてのマーケットプレイスのプラグインを一覧して、入力で検索できます。
詳細ペインはレビューの手順です。Will install の一覧を読んでください。これから有効になるコマンド、エージェント、スキル、フック、MCP と LSP のサーバーが並んでいます。ローカルまたはカスタムのマーケットプレイスのプラグインでは、代わりに Components will be discovered at installation と表示されることがあり、これは中身を見ずに受け入れることを意味します。
次にスコープを選び、インストール要約の最後の一文を読んでください。何かが起きたかどうかを教えてくれるのはそこです。
| 要約の末尾 | 意味 |
|---|---|
Plugin is now active. | 今すぐ使えます。再読み込み不要。 |
Plugin is now active. + Its bundled MCP server needs configuration before it can start | Installed タブでプラグインを選び、Configure でサーバーのオプションを設定します。 |
Run /reload-plugins to apply. | Claude Code が再読み込みを実行します。ただしプロンプトキャッシュが無効になる場合は警告してプラグインを保留にします。/reload-plugins --force なら、キャッシュなしのリクエストが 1 回発生する代わりに、とにかく有効化します。 |
The plugin couldn't be loaded | 理由は /plugin の Errors タブで確認します。 |
/ を入力し、プラグイン名で名前空間化されたスキル(/commit-commands:commit)を探して、動作を確認します。あるいはシェルで claude plugin list を実行すると、すべてのプラグインが Version、Scope、Status 付きで表示されます。
3 つのスコープと、どれが優先されるか
スコープは、誰がプラグインを得るか、そしてどの設定ファイルに有効として記録されるかを決めます。これを間違えると、うっかりチーム全体にプラグインが有効になってしまいます。
| スコープ | 誰が得るか | 書き込み先 |
|---|---|---|
| User | あなた、このマシン上のすべてのプロジェクトで | ~/.claude/settings.json の enabledPlugins |
| Project | このリポジトリで作業する全員 | .claude/settings.json — コミットするファイル |
| Local | あなた、このリポジトリだけで | .claude/settings.local.json |
同じプラグインが複数のスコープで設定されている場合の優先順位: local が project を上書きし、project が user を上書きします。
プロジェクトスコープの落とし穴は、はっきり言っておく価値があります。エントリをコミットすると共同作業者にはプラグインが有効になりますが、彼らのマシンにダウンロードはされません。 各共同作業者は、自分でインストールを一度実行する必要があります。
A collaborator picking up a project-scoped plugin
claude plugin install formatter@your-org --scope project
関連する動作が 2 つあります。作者によって defaultEnabled がオフにされた状態で配布されるプラグインがあり、インストールされても claude plugin enable <name> を実行するまで無効のままです。また、リポジトリの .claude/settings.json が有効にしているプラグインをアンインストールすると、Claude Code がどちらの意味かを尋ねます。y は .claude/settings.local.json に false を書き込み、他の全員にはインストールされたままにします。u は共有設定から削除し、チーム全体で外します。
同じマシン上のターミナル、デスクトップアプリのローカルセッション、VS Code 拡張機能は同じ設定ファイルを読むので、どれかで行ったユーザースコープのインストールは、残りの 2 つにも現れます。
プラグインが届かない場所
実際に混乱を招く盲点が 2 つあります。
- クラウドセッションはこれを一切読み込みません。 claude.ai/code を含むクラウドセッションにはプラグインブラウザがなく、手元のマシンのプラグインも、リポジトリの
.claude/settings.jsonが有効にしているプラグインも読み込みません。届くのは、組織が管理設定で配布するプラグインだけです。ワークフローがプラグイン提供のコマンドに依存していると、クラウドでは動作が変わります。 claude -pなどの非対話実行では/pluginを開けません。Claude は/plugin isn't available in this environment.と返します。インストール済みのプラグインは読み込まれます。管理は代わりにシェルから行います。
信頼: マーケットプレイスの 3 つのレベル
マーケットプレイスとは、.claude-plugin/marketplace.json ファイルを含むリポジトリまたはディレクトリです。誰でも公開できます。インストールしたプラグインは、出どころに関係なく、あなたのユーザー権限でコードを実行できます。
マーケットプレイスの名前によって 3 つのレベルのどれかに位置づけられ、最初の 2 つは偽装できません。Claude Code は、Anthropic の公式名とコミュニティ名を、github.com/anthropics/ のリポジトリを出どころとするマーケットプレイスにのみ受け付けます。
| レベル | 例 | 分かること |
|---|---|---|
| Official | claude-plugins-official、デモ用マーケットプレイス claude-code-plugins | 名前は Anthropic 由来のリポジトリ用に予約済み。自動更新がデフォルトでオン(例外 2 件あり)。 |
| Community | claude-community と、その他の Anthropic コミュニティ名 | こちらも名前は Anthropic 由来のリポジトリ用に予約済みだが、内容はコミュニティの投稿。自動更新はデフォルトでオフ。 |
| Third-party | それ以外すべて — 同僚のものや自分の組織のものも含む | 名前の保証なし。自動更新はデフォルトでオフ。 |
プラグイン内のフックと MCP サーバーは、そのプラグインが有効なすべてのセッションで、あなたの権限で動作します。信頼できる出どころからインストールし、承諾する前に Will install ペインを読んでください。サードパーティコードのレビューとエージェントスキルの審査を参照してください。
プラグインマーケットプレイスが何でないかにも注意してください。claude.com/marketplace は、プラグイン、コネクタ、パートナーを閲覧するための Web サイトです。/plugin marketplace add で追加するものではありません。
マーケットプレイスを追加する
マーケットプレイスの追加は一度だけです。その後は、そのプラグインが Discover に表示され、名前でインストールできます。ソースの形式は 4 つです。
| ソース | 入力するもの |
|---|---|
| GitHub リポジトリ | owner/repo。ブランチやタグを固定するなら owner/repo#ref |
| 任意の git ホスト | 完全なクローン URL。必要なら #ref 付き |
| ローカルのディレクトリまたはファイル | .claude-plugin/marketplace.json を含むディレクトリ、または JSON 自体へのパス — 相対パスは ./ で始める |
| ホストされた JSON | marketplace.json への https:// URL |
Add a marketplace, four ways
/plugin marketplace add anthropics/claude-code /plugin marketplace add your-org/plugins#v1.2.0 /plugin marketplace add ./my-marketplace /plugin marketplace add https://example.com/marketplace.json
この表にはパース上の罠が 2 つあります。name/name のような素のパスは GitHub の owner/repo の省略形として解釈されるため、ローカルパスは ./ か ../ で始める必要があります。また、素の gitlab.example.com/group/repo.git も同様に解釈されて拒否されます。https:// のプレフィックスを付けるか、git@host:path の SSH 形式を使ってください。(/plugin market は /plugin marketplace の有効な省略形です。)
まだ追加していないマーケットプレイスのプラグインなら、1 つのコマンドで両方を行えます。プラグイン名には @marketplace のサフィックスを付けない点に注意してください。
Add the marketplace and install in one step
# in a session (v2.1.275+); asks you to confirm the resolved source /plugin install deploy-helper --marketplace your-org/plugins # from your shell (v2.1.292+); no confirmation step claude plugin install deploy-helper --marketplace your-org/plugins
プライベートマーケットプレイスも同じコマンドで使え、マシンにすでにある git の認証情報でクローンされます。そして Claude Code は決してプロンプトを出しません。そのため要件は厳格です。HTTPS では認証情報ヘルパー(gh auth login、macOS のキーチェーン、git-credential-store)がすでに機能している必要があります。git のプロンプトと askpass プログラムは無効化されているからです。SSH では、ホストがすでに known_hosts にあり、鍵にパスフレーズが不要でなければなりません。GitHub の省略形での SSH の確認を飛ばして常に HTTPS でクローンするには、CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1 を設定します。
実行前に知っておくべき削除の動作が 1 つあります。マーケットプレイスを削除すると、そこからインストールしたすべてのプラグインがアンインストールされ、設定から enabledPlugins のエントリも取り除かれます。Marketplaces タブは、確認を求める前にそれらを列挙します。
シェルからのライフサイクル全体
/plugin パネルでできることはすべて claude plugin で非対話的にできます。セットアップスクリプトや dotfiles のリポジトリで使いたいのは、こちらです。デフォルトのスコープは動詞によって異なります。enable と disable は、そのプラグインがすでに記載されている最も具体的なスコープに作用し、install と uninstall は user スコープがデフォルトです。
The eight commands that cover everything
claude plugin marketplace add anthropics/claude-plugins-official claude plugin install formatter@your-org --scope project claude plugin list claude plugin details formatter@your-org # always-on token cost claude plugin disable formatter@your-org claude plugin enable formatter@your-org claude plugin update formatter@your-org claude plugin uninstall formatter@your-org --scope project
デバッグの手間を省く注意点が 4 つあります。
- 新しいマシンでは公式マーケットプレイスがまだ登録されていません。 誰も対話型セッションを開いていないからです。プロビジョニングスクリプトは、そこからインストールする前に
claude plugin marketplace add anthropics/claude-plugins-officialを実行する必要があります。 - プラグインによっては、マーケットプレイスが指定するコマンドを実行してインストールします。 Claude Code はそれを表示して承諾を求めます。スクリプトには答える人がいないので、
--yesを渡してください。 - シェルからインストールしたプラグインは次回の起動時、または開いているセッションで
/reload-pluginsを実行したときに読み込まれます。 - 「すべて更新」コマンドはありません。
claude plugin updateは 1 つのプラグインを対象とします。まとめて行うには、Marketplaces タブの Update marketplace を使います。これは一覧を更新し、そこからインストールしたプラグインを更新します。名前なしのclaude plugin marketplace updateはすべての一覧を更新しますが、インストール済みのプラグインは現在のバージョンのままです。
依存関係
プラグインは、依存する他のプラグインを宣言でき、Claude Code はそれに従って動作します。
- Install は、宣言された依存関係も同じスコープでインストールして有効にします。成功メッセージにそれらが列挙されます。
- Enable は、インストール済みで無効な依存関係も有効にします。まったくインストールされていないものがある場合、有効化は失敗し、先にインストールするよう伝えられます。
- Disable は、指定したプラグインを他の有効なプラグインがまだ必要としている場合は拒否され、両方を正しい順序で無効化する連結コマンドが表示されます。
- Uninstall は、自動インストールされた依存関係をそのまま残します。それを片付けるのが
claude plugin pruneです。
何も公開せずに自分のものを開発する
プラグインの開発にマーケットプレイスは要りません。Claude Code にフォルダーを指定します。
Load a plugin from disk for one session
claude --plugin-dir ./my-plugin
.claude-plugin/plugin.json のマニフェストは任意です。なければ Claude Code は標準レイアウトで見つかったものを読み込むので、SKILL.md だけが入ったフォルダーでもすでにプラグインとして読み込まれます。名前、バージョン、メタデータ、デフォルト以外のディレクトリにあるコンポーネント、ユーザーが設定できる userConfig オプションが必要なときにマニフェストを書きます。
中核のコンポーネント以外にも、プラグインはコードインテリジェンス用の LSP サーバー、バックグラウンドモニター、ワークフロー、実行ファイルの bin/、デフォルト設定をバンドルできます。
自然な進み方であり、意識して踏む価値があるのは次の流れです。CLAUDE.md → いくつかのスキルとコマンド → それらをプラグインにまとめる → claude plugin eval で効果を実証する → チームやコミュニティ向けにマーケットプレイスで公開する。
プラグインが表示されないとき
3 つの層が揃っている必要があり、誤りはほぼ必ずそのどれかにあります。
- 設定には、追加したマーケットプレイスと有効なプラグインが記載されています。3 つのスコープすべてを確認してください。local が project を、project が user を上書きするので、.claude/settings.local.json の false が黙って優先されることを忘れずに。
- ~/.claude/plugins/ には、Claude Code が実際に取得してインストールしたものが入っています。誰もダウンロードしていないプラグインをプロジェクト設定が有効にしている状態は典型的な不一致です。エントリはコミットされているのに、ファイルがありません。
- プラグインは起動時に読み込まれます。セッション中にインストールしたプラグインには /reload-plugins が必要で、それでプロンプトキャッシュが無効になる場合は、/reload-plugins --force を実行するまで Claude Code は保留にします。
理解度チェック
0/5- プラグインを使うのは、複数のコンポーネントをバージョン付きの 1 つの単位としてまとめる、他の人のセットアップを利用する、または自分のものを配布する場合だけです。単独のスキルやフックにプラグインは不要です。
- 有効なプラグインは常にオンです。呼び出し可能なスキルとエージェントの名前と説明が毎ターンコンテキストに入り、MCP サーバーが動き、フックが発火します — 使う使わないに関係なくすべてのセッションで。claude plugin details で測定し、Not used recently グループで整理します。
- スコープは 3 つで、優先順位は local > project > user です。user は ~/.claude/settings.json、project はコミットされる .claude/settings.json、local は .claude/settings.local.json に書き込みます。project スコープはチームに対して有効にしますが、各チームメイトは一度ずつインストールが必要です。
- 信頼レベルは名前による 3 つです。Anthropic の公式名とコミュニティ名は github.com/anthropics/ のリポジトリを出どころとするマーケットプレイスにのみ受け付けられ、それ以外はサードパーティです。どのプラグインもあなたとしてコードを実行できます — 先に Will install ペインを読んでください。
- マーケットプレイスの追加時のパースの罠が 2 つ: ローカルパスは ./ で始める必要があり、GitHub 以外の git ホストには https:// のプレフィックスが必要です。素の name/name は常に GitHub の省略形として解釈されます。
- マーケットプレイスを削除すると、そこから入れたすべてのプラグインがアンインストールされ、設定のエントリも取り除かれます。プロジェクトで有効なプラグインをアンインストールすると、「自分だけ」か「全員」かを尋ねられます。
- クラウドセッションは、ローカルやリポジトリで有効なプラグインを一切読み込まず、組織が管理するものだけを読み込みます。クラウドのワークフローが依存する場合は、同等のものを .claude/ にコミットします。
- 開発は claude --plugin-dir ./my-plugin で行います。マーケットプレイスもマニフェストも不要です。公開する前に claude plugin eval で、コンテキストコストに見合うことを実証します。
次へ
- Mod: プロセス内拡張 — Claude Code の内部で動作し、組み込みの動作を置き換えられる唯一のプラグインコンポーネント
- プラグイン評価 — 公開する前に
claude plugin evalでプラグインの効果を実証する - MCP のトークンコスト — 同じコンテキストの計算を、ツール定義に当てはめたもの
- スキル · サブエージェント · MCP
- サードパーティコードのレビュー · AILmanac のスキルパック