コンセプト紹介
Claude Code プラグインの仕組みを深く理解する:Plugin によるワークフローのパッケージ化と配布で、チームコラボレーションとコミュニティ共有を実現
はじめに
They let you bundle all your customisations into shareable packages that install with a single command.
Claude Code で完璧なワークフローを構築したとき——カスタムコマンド、コードレビューフック、専用の Skills——こう思うかもしれません:これらをまとめてパッケージ化し、チームやコミュニティと共有できないだろうか?
それこそが Plugin が解決する課題です。
Skills が AI のための「作業マニュアル」だとすれば、Plugin は「ツールボックス」です。Skills、Commands、Hooks、MCP サーバーなどの設定をすべてまとめてパッケージ化し、ワンコマンドでインストール・配布できるようにします。
Plugin を理解する
あなたが長年にわたって信頼できるツールを蓄積してきた熟練の職人だと想像してください:ハンマー、ノコギリ、定規、各種ドライバー。作業台を変えるたびに、ツールを一つずつ運んで整理し直す必要があります。Plugin は設計に優れたツールボックスのようなものです。すべてのツールを収納するだけでなく、カテゴリ別にきちんと整理されており、どこに持っていってもすぐに作業を開始できます。
技術的な観点から言えば、Plugin は Claude Code の拡張パッケージメカニズムです。Plugin には以下のものを含めることができます:
| コンポーネント | 役割 | ファイルの場所 |
|---|---|---|
| スラッシュコマンド | クイックアクションのエントリポイント | commands/ |
| Subagents | 専門化されたサブエージェント | agents/ |
| Skills | AI のナレッジパッケージ | skills/ |
| Hooks | イベントトリガーの自動化スクリプト | hooks/ |
| MCP サーバー | 外部システムとの接続 | .mcp.json |
| LSP サーバー | 言語サーバーの設定 | .lsp.json |
これらのコンポーネントが連携して、完全なワークフローソリューションを形成します。
Plugin vs 独立設定
Claude Code では、設定をプロジェクトの .claude/ ディレクトリに配置することも、Plugin としてパッケージ化することもできます。両者の本質的な違いは配布方法と名前空間にあります:
| 側面 | 独立設定 (.claude/) | Plugin |
|---|---|---|
| コマンド名 | /hello | /plugin-name:hello |
| 使用場面 | 個人ワークフロー、プロジェクト固有の設定 | チーム共有、コミュニティ配布 |
| バージョン管理 | プロジェクトコードと一緒に管理 | Semantic Versioning をサポート |
| 更新方法 | 手動同期 | 自動更新をサポート |
| 競合処理 | 他の設定と競合する可能性あり | 名前空間による分離 |
Plugin を選ぶべきとき:
- チームメンバーとワークフロー設定を共有する必要がある
- 複数のプロジェクトで同じツールセットを再利用したい
- コミュニティに設定を配布する予定がある
- バージョン管理と自動更新が必要
独立設定を使うべきとき:
- 個人的なクイック実験
- 再利用の必要がないプロジェクト固有の設定
- シンプルな一度きりのコマンド
Plugin のディレクトリ構造
標準的な Plugin の構造は以下の通りです:
my-plugin/
├── .claude-plugin/ # 元数据目录
│ └── plugin.json # 必需:插件清单
├── commands/ # 斜杠命令
│ ├── review.md
│ └── deploy.md
├── agents/ # 子代理
│ └── code-reviewer.md
├── skills/ # Agent Skills
│ └── code-review/
│ └── SKILL.md
├── hooks/ # 事件钩子
│ └── hooks.json
├── scripts/ # 辅助脚本
│ └── format-code.sh
├── .mcp.json # MCP 服务器配置
└── .lsp.json # LSP 服务器配置重要な注意事項:
plugin.jsonは.claude-plugin/ディレクトリ内に配置する必要があります- その他のディレクトリ(commands、agents、skills など)はプラグインのルートに配置します
- 機能ディレクトリを
.claude-plugin/の中に入れないでください
コア設定ファイル
Plugin のコアは .claude-plugin/plugin.json で、プラグインのメタデータとコンポーネントのパスを定義します:
{
"name": "my-awesome-plugin",
"version": "1.0.0",
"description": "一个示例插件",
"author": {
"name": "Your Name",
"email": "you@example.com"
},
"keywords": ["example", "demo"],
"commands": "./commands/",
"agents": "./agents/",
"skills": "./skills/",
"hooks": "./hooks/hooks.json",
"mcpServers": "./.mcp.json"
}| フィールド | 必須 | 説明 |
|---|---|---|
name | はい | プラグインの一意な識別子。小文字とハイフンを使用 |
version | いいえ | セマンティックバージョン番号 |
description | いいえ | プラグインの簡潔な説明 |
author | いいえ | 著者情報 |
keywords | いいえ | 検索用のタグ |
commands | いいえ | コマンドファイルまたはディレクトリのパス |
agents | いいえ | エージェントファイルまたはディレクトリのパス |
skills | いいえ | Skills ディレクトリのパス |
hooks | いいえ | フック設定のパス |
mcpServers | いいえ | MCP 設定のパス |
インストールスコープ
Plugin は異なる使用場面に対応するため、4つのインストールスコープをサポートしています:
| スコープ | 設定ファイル | 用途 |
|---|---|---|
user | ~/.claude/settings.json | 個人プラグイン、すべてのプロジェクトで利用可能 |
project | .claude/settings.json | チームプラグイン、バージョン管理で共有 |
local | .claude/settings.local.json | プロジェクト固有、gitignore 対象 |
managed | managed-settings.json | 企業管理(読み取り専用) |
デフォルトのインストールスコープは user です。プラグイン設定を Git にコミットしてチームで使用したい場合は、project スコープを選択してください。
コアメリット
名前空間の分離
Plugin のコマンドには名前空間プレフィックスが付きます(例:/my-plugin:review)。これにより、他のプラグインやプロジェクト設定との命名の衝突を避けることができます。チームコラボレーションにおいて特に重要で、異なるチームが開発したプラグインが問題なく共存できます。
バージョン管理
Plugin は Semantic Versioning をサポートしており、以下のことが可能です:
- プラグインの変更履歴を追跡する
- 必要に応じて古いバージョンにロールバックする
- 互換性のある更新を自動的に受信する
簡単な配布
Plugin Marketplace を通じて、以下のことができます:
- GitHub でプラグインをホスティングする
- ユーザーがシンプルなコマンドでインストールできるようにする
- 依存関係と更新を自動的に処理する
チームコラボレーション
Plugin はチームでの使用に特に適しています:
- チームの開発ツールチェーンを統一する
- 新しいメンバーがワンコマンドですべてのツールを取得できる
- 設定の一元管理により重複作業を削減する
Plugin エコシステム
Claude Code の Plugin エコシステムは急速に成長しています。2025年初頭の時点で、エコシステムはかなりの規模に達しています:
- 229以上のプラグインがエコシステムで活発に利用されています
- 239の Agent Skills がマーケットプレイス全体に分布しています
- 200以上の MCP サーバーが Docker ツールキットでプリビルドされています
公式リソース:
| リソース | リンク | 説明 |
|---|---|---|
| anthropics/skills | GitHub | 公式 Skills リポジトリ |
| anthropics/claude-plugins-official | GitHub | 公式プラグインディレクトリ |
| Docker MCP Toolkit | 公式サイト | 200以上のプリビルト MCP サーバー |
コミュニティセレクション:
| リソース | リンク | 説明 |
|---|---|---|
| awesome-claude-plugins | GitHub | 243のプラグインを自動収集 |
| awesome-claude-code | GitHub | ベストプラクティス集 |
| claude-plugins.dev | 公式サイト | コミュニティレジストリと CLI |
| wshobson/agents | GitHub | 99エージェント + 15オーケストレーター |
| Compound Engineering | GitHub | 17の専門エージェント |
他の機能との関係
Plugin は「コンテナ」の概念であり、Claude Code エコシステムの他の機能を含めることができます:
Plugin(コンテナ)
├── Skills(ナレッジパッケージ)
├── Commands(クイックコマンド)
├── Agents(サブエージェント)
├── Hooks(イベントフック)
└── MCP/LSP(外部接続)この階層関係を理解することが重要です:
- Skills は Claude に何かのやり方を教えます
- Commands はクイックトリガーのエントリポイントを提供します
- Agents は独立した専門タスクを処理します
- Hooks はイベント駆動の自動化を実現します
- Plugin はこれらすべてをまとめてパッケージ化し、配布と管理を容易にします
Skills vs Plugins
初めて触れる方は Skills と Plugins の違いに混乱するかもしれません。Young Leaders Tech の分析によると:
| 特性 | Skills | Plugins |
|---|---|---|
| スコープ | すべての Claude 製品(Web、API、Code) | Claude Code のみ |
| 含まれるもの | Markdown ガイド + オプションのスクリプト | Commands、Agents、Hooks、MCP、Skills |
| アクティベーション | 自動(モデルが使用タイミングを判断) | 可変(コンポーネントの種類に依存) |
| 最適な用途 | Claude にドメイン専門知識を教える | Claude Code 環境を拡張する |
| 配布方法 | GitHub リポジトリ、ファイルシステム | 分散型 Marketplace |
重要なポイント:Skills はモデルによって自動的にトリガーされ、手動での呼び出しは不要です。Plugins はパッケージングメカニズムであり、分散型共有の課題を解決します。両者は組み合わせて使用できます——Plugin は Skills を含めることができます。
まとめ
Claude Code Plugin は本質的にワークフローのパッケージ化と配布のメカニズムです。設定の再利用とチームコラボレーションの課題を解決し、丹精込めて作り上げたツールチェーンをより多くの人と共有できるようにします。
3つのキーワードを覚えてください:
| キーワード | 意味 |
|---|---|
| パッケージ化 | 複数の設定コンポーネントを一つのユニットに統合 |
| 分離 | 名前空間による競合の回避 |
| 配布 | Marketplace を通じた簡単な共有 |
コンセプトを理解したところで、次の記事『Claude Code Plugin 実践ガイド』では、実際にハンズオンで進めていきます:Plugin をゼロから作成し、Marketplace に公開し、チームコラボレーションのベストプラクティスを学びます。
Plugin に含められるコンポーネントにまだ馴染みがない方は、まず『Claude Skills とは』を読んで、Skills のコアコンセプトを理解することをお勧めします。