プラグインとスタンドアロン設定を使い分ける
Claude Code では、カスタムスキル、エージェント、フックを追加する 2 つの方法をサポートしています。| アプローチ | スキル名 | 最適な用途 |
|---|---|---|
スタンドアロン(.claude/ ディレクトリ) | /hello | 個人的なワークフロー、プロジェクト固有のカスタマイズ、クイック実験 |
プラグイン(.claude-plugin/plugin.json を含むディレクトリ) | /plugin-name:hello | チームメンバーとの共有、コミュニティへの配布、バージョン管理されたリリース、プロジェクト全体で再利用可能 |
- 単一のプロジェクト用に Claude Code をカスタマイズしている
- 設定が個人的で共有する必要がない
- スキルやフックをパッケージ化する前に実験している
/helloや/reviewのような短いスキル名が必要
- 機能をチームまたはコミュニティと共有したい
- 複数のプロジェクト全体で同じスキル/エージェントが必要
- 拡張機能のバージョン管理と簡単な更新が必要
- マーケットプレイスを通じて配布している
/my-plugin:helloのような名前空間付きスキルで問題ない(名前空間はプラグイン間の競合を防ぎます)
クイックスタート
このクイックスタートでは、カスタムスキルを使用してプラグインを作成する手順を説明します。マニフェスト(プラグインを定義する設定ファイル)を作成し、スキルを追加して、--plugin-dir フラグを使用してローカルでテストします。
前提条件
- Claude Code インストール済みで認証済み
- Claude Code バージョン 1.0.33 以降(
claude --versionで確認)
/plugin コマンドが表示されない場合は、Claude Code を最新バージョンに更新してください。アップグレード手順については、トラブルシューティングを参照してください。最初のプラグインを作成する
プラグインマニフェストを作成する
.claude-plugin/plugin.json のマニフェストファイルは、プラグインの ID(名前、説明、バージョン)を定義します。Claude Code はこのメタデータを使用して、プラグインマネージャーにプラグインを表示します。プラグインフォルダ内に .claude-plugin ディレクトリを作成します。my-first-plugin/.claude-plugin/plugin.json を作成します。my-first-plugin/.claude-plugin/plugin.json
| フィールド | 目的 |
|---|---|
name | 一意の識別子とスキル名前空間。スキルにはこれが接頭辞として付きます(例:/my-first-plugin:hello)。 |
description | プラグインマネージャーでプラグインを参照またはインストールするときに表示されます。 |
version | セマンティックバージョニングを使用してリリースを追跡します。 |
author | オプション。属性に役立ちます。 |
homepage、repository、license などの追加フィールドについては、完全なマニフェストスキーマを参照してください。スキルを追加する
スキルは 次に、このコンテンツで
skills/ ディレクトリに存在します。各スキルは SKILL.md ファイルを含むフォルダです。フォルダ名がスキル名になり、プラグインの名前空間が接頭辞として付きます(my-first-plugin という名前のプラグイン内の hello/ は /my-first-plugin:hello を作成します)。プラグインフォルダ内にスキルディレクトリを作成します。my-first-plugin/skills/hello/SKILL.md を作成します。my-first-plugin/skills/hello/SKILL.md
プラグインをテストする
--plugin-dir フラグを使用して Claude Code を実行し、プラグインを読み込みます。/help を実行して、プラグイン名前空間の下にスキルが表示されていることを確認します。名前空間を使う理由は? プラグインスキルは常に名前空間が付きます(
/greet:hello など)。複数のプラグインが同じ名前のスキルを持つ場合の競合を防ぐためです。名前空間プレフィックスを変更するには、plugin.json の name フィールドを更新します。スキル引数を追加する
$ARGUMENTS プレースホルダーを使用してユーザー入力をキャプチャすることで、スキルを動的にします。SKILL.md ファイルを更新します。my-first-plugin/skills/hello/SKILL.md
- プラグインマニフェスト(
.claude-plugin/plugin.json):プラグインのメタデータを説明します - スキルディレクトリ(
skills/):カスタムスキルを含みます - スキル引数(
$ARGUMENTS):動的な動作のためにユーザー入力をキャプチャします
プラグイン構造の概要
スキルを使用してプラグインを作成しましたが、プラグインにはさらに多くの機能を含めることができます。カスタムエージェント、フック、MCP サーバー、LSP サーバーです。| ディレクトリ | 場所 | 目的 |
|---|---|---|
.claude-plugin/ | プラグインルート | plugin.json マニフェストを含みます(コンポーネントがデフォルトの場所を使用する場合はオプション) |
commands/ | プラグインルート | Markdown ファイルとしてのスキル |
agents/ | プラグインルート | カスタムエージェント定義 |
skills/ | プラグインルート | SKILL.md ファイルを含むエージェントスキル |
hooks/ | プラグインルート | hooks.json のイベントハンドラー |
.mcp.json | プラグインルート | MCP サーバー設定 |
.lsp.json | プラグインルート | コード インテリジェンス用の LSP サーバー設定 |
settings.json | プラグインルート | プラグインが有効になったときに適用されるデフォルト設定 |
次のステップ:さらに多くの機能を追加する準備ができましたか?より複雑なプラグインを開発するにジャンプして、エージェント、フック、MCP サーバー、LSP サーバーを追加してください。すべてのプラグインコンポーネントの完全な技術仕様については、プラグインリファレンスを参照してください。
より複雑なプラグインを開発する
基本的なプラグインに慣れたら、より高度な拡張機能を作成できます。プラグインにスキルを追加する
プラグインには、Claude の機能を拡張するエージェントスキルを含めることができます。スキルはモデル呼び出し型です。Claude はタスクコンテキストに基づいて自動的にそれらを使用します。 プラグインルートにskills/ ディレクトリを追加し、SKILL.md ファイルを含むスキルフォルダを追加します。
SKILL.md には、name と description フィールドを含むフロントマターが必要で、その後に指示が続きます。
プラグインに LSP サーバーを追加する
LSP(Language Server Protocol)プラグインは Claude にリアルタイムコード インテリジェンスを提供します。公式 LSP プラグインがない言語をサポートする必要がある場合は、プラグインに.lsp.json ファイルを追加することで、独自のプラグインを作成できます。
.lsp.json
プラグインでデフォルト設定を配布する
プラグインは、プラグインルートにsettings.json ファイルを含めて、プラグインが有効になったときにデフォルト設定を適用できます。現在、agent キーのみがサポートされています。
agent を設定すると、プラグインのカスタムエージェントの 1 つがメインスレッドとしてアクティブになり、そのシステムプロンプト、ツール制限、モデルが適用されます。これにより、プラグインは有効になったときに Claude Code の動作方法をデフォルトで変更できます。
settings.json
agents/ ディレクトリで定義された security-reviewer エージェントをアクティブにします。settings.json の設定は、plugin.json で宣言された settings よりも優先されます。不明なキーは無視されます。
複雑なプラグインを整理する
多くのコンポーネントを持つプラグインの場合、機能別にディレクトリ構造を整理します。完全なディレクトリレイアウトと整理パターンについては、プラグインディレクトリ構造を参照してください。プラグインをローカルでテストする
開発中にプラグインをテストするには、--plugin-dir フラグを使用します。これにより、インストールを必要とせずにプラグインが直接読み込まれます。
/plugin-name:skill-nameでスキルを試す/agentsにエージェントが表示されることを確認する- フックが期待通りに機能することを確認する
プラグインの問題をデバッグする
プラグインが期待通りに機能しない場合:- 構造を確認する:ディレクトリが
.claude-plugin/内ではなく、プラグインルートにあることを確認します - コンポーネントを個別にテストする:各コマンド、エージェント、フックを個別に確認します
- 検証とデバッグツールを使用する:CLI コマンドとトラブルシューティング技術については、デバッグと開発ツールを参照してください
プラグインを共有する
プラグインを共有する準備ができたら:- ドキュメントを追加する:インストールと使用方法の指示を含む
README.mdを含めます - プラグインをバージョン管理する:
plugin.jsonでセマンティックバージョニングを使用します - マーケットプレイスを作成または使用する:プラグインマーケットプレイスを通じて配布してインストールします
- 他のユーザーでテストする:より広い配布の前に、チームメンバーにプラグインをテストしてもらいます
プラグインを公式マーケットプレイスに送信する
プラグインを公式 Anthropic マーケットプレイスに送信するには、アプリ内送信フォームの 1 つを使用します。- Claude.ai:claude.ai/settings/plugins/submit
- Console:platform.claude.com/plugins/submit
完全な技術仕様、デバッグ技術、配布戦略については、プラグインリファレンスを参照してください。
既存の設定をプラグインに変換する
.claude/ ディレクトリにスキルまたはフックが既にある場合は、それらをプラグインに変換して、共有と配布を簡単にできます。
移行手順
プラグイン構造を作成する
新しいプラグインディレクトリを作成します。
my-plugin/.claude-plugin/plugin.json にマニフェストファイルを作成します。my-plugin/.claude-plugin/plugin.json
フックを移行する
設定にフックがある場合は、フックディレクトリを作成します。
my-plugin/hooks/hooks.json をフック設定で作成します。.claude/settings.json または settings.local.json から hooks オブジェクトをコピーします。形式は同じです。コマンドは stdin で JSON としてフック入力を受け取るため、jq を使用してファイルパスを抽出します。my-plugin/hooks/hooks.json
移行時の変更点
スタンドアロン(.claude/) | プラグイン |
|---|---|
| 1 つのプロジェクトでのみ利用可能 | マーケットプレイス経由で共有可能 |
.claude/commands/ のファイル | plugin-name/commands/ のファイル |
settings.json のフック | hooks/hooks.json のフック |
| 共有するには手動でコピーが必要 | /plugin install でインストール |
移行後、重複を避けるために
.claude/ から元のファイルを削除できます。読み込まれたときは、プラグインバージョンが優先されます。次のステップ
Claude Code のプラグインシステムを理解したので、異なる目標のための推奨パスを以下に示します。プラグインユーザー向け
- プラグインを検出してインストールする:マーケットプレイスを参照してプラグインをインストール
- チームマーケットプレイスを設定する:チーム用のリポジトリレベルプラグインを設定
プラグイン開発者向け
- マーケットプレイスを作成して配布する:プラグインをパッケージ化して共有
- プラグインリファレンス:完全な技術仕様
- 特定のプラグインコンポーネントをさらに詳しく調べる: