メインコンテンツへスキップ
プラグインを使用すると、Claude Code をカスタム機能で拡張でき、プロジェクトとチーム全体で共有できます。このガイドでは、スキル、エージェント、フック、MCP サーバーを使用して独自のプラグインを作成する方法について説明します。 既存のプラグインをインストールしたいですか?プラグインを検出してインストールするを参照してください。完全な技術仕様については、プラグインリファレンスを参照してください。

プラグインとスタンドアロン設定を使い分ける

Claude Code では、カスタムスキル、エージェント、フックを追加する 2 つの方法をサポートしています。
アプローチスキル名最適な用途
スタンドアロン.claude/ ディレクトリ)/hello個人的なワークフロー、プロジェクト固有のカスタマイズ、クイック実験
プラグイン.claude-plugin/plugin.json を含むディレクトリ)/plugin-name:helloチームメンバーとの共有、コミュニティへの配布、バージョン管理されたリリース、プロジェクト全体で再利用可能
スタンドアロン設定を使用する場合
  • 単一のプロジェクト用に Claude Code をカスタマイズしている
  • 設定が個人的で共有する必要がない
  • スキルやフックをパッケージ化する前に実験している
  • /hello/review のような短いスキル名が必要
プラグインを使用する場合
  • 機能をチームまたはコミュニティと共有したい
  • 複数のプロジェクト全体で同じスキル/エージェントが必要
  • 拡張機能のバージョン管理と簡単な更新が必要
  • マーケットプレイスを通じて配布している
  • /my-plugin:hello のような名前空間付きスキルで問題ない(名前空間はプラグイン間の競合を防ぎます)
.claude/ でスタンドアロン設定を使用してクイック反復を行い、共有する準備ができたら既存の設定をプラグインに変換してください。

クイックスタート

このクイックスタートでは、カスタムスキルを使用してプラグインを作成する手順を説明します。マニフェスト(プラグインを定義する設定ファイル)を作成し、スキルを追加して、--plugin-dir フラグを使用してローカルでテストします。

前提条件

/plugin コマンドが表示されない場合は、Claude Code を最新バージョンに更新してください。アップグレード手順については、トラブルシューティングを参照してください。

最初のプラグインを作成する

1

プラグインディレクトリを作成する

すべてのプラグインは、マニフェストとスキル、エージェント、またはフックを含む独自のディレクトリに存在します。今すぐ作成してください。
mkdir my-first-plugin
2

プラグインマニフェストを作成する

.claude-plugin/plugin.json のマニフェストファイルは、プラグインの ID(名前、説明、バージョン)を定義します。Claude Code はこのメタデータを使用して、プラグインマネージャーにプラグインを表示します。プラグインフォルダ内に .claude-plugin ディレクトリを作成します。
mkdir my-first-plugin/.claude-plugin
次に、このコンテンツで my-first-plugin/.claude-plugin/plugin.json を作成します。
my-first-plugin/.claude-plugin/plugin.json
{
"name": "my-first-plugin",
"description": "A greeting plugin to learn the basics",
"version": "1.0.0",
"author": {
"name": "Your Name"
}
}
フィールド目的
name一意の識別子とスキル名前空間。スキルにはこれが接頭辞として付きます(例:/my-first-plugin:hello)。
descriptionプラグインマネージャーでプラグインを参照またはインストールするときに表示されます。
versionセマンティックバージョニングを使用してリリースを追跡します。
authorオプション。属性に役立ちます。
homepagerepositorylicense などの追加フィールドについては、完全なマニフェストスキーマを参照してください。
3

スキルを追加する

スキルは skills/ ディレクトリに存在します。各スキルは SKILL.md ファイルを含むフォルダです。フォルダ名がスキル名になり、プラグインの名前空間が接頭辞として付きます(my-first-plugin という名前のプラグイン内の hello//my-first-plugin:hello を作成します)。プラグインフォルダ内にスキルディレクトリを作成します。
mkdir -p my-first-plugin/skills/hello
次に、このコンテンツで my-first-plugin/skills/hello/SKILL.md を作成します。
my-first-plugin/skills/hello/SKILL.md
---
description: Greet the user with a friendly message
disable-model-invocation: true
---

Greet the user warmly and ask how you can help them today.
4

プラグインをテストする

--plugin-dir フラグを使用して Claude Code を実行し、プラグインを読み込みます。
claude --plugin-dir ./my-first-plugin
Claude Code が起動したら、新しいスキルを試してください。
/my-first-plugin:hello
Claude がグリーティングで応答します。/help を実行して、プラグイン名前空間の下にスキルが表示されていることを確認します。
名前空間を使う理由は? プラグインスキルは常に名前空間が付きます(/greet:hello など)。複数のプラグインが同じ名前のスキルを持つ場合の競合を防ぐためです。名前空間プレフィックスを変更するには、plugin.jsonname フィールドを更新します。
5

スキル引数を追加する

$ARGUMENTS プレースホルダーを使用してユーザー入力をキャプチャすることで、スキルを動的にします。SKILL.md ファイルを更新します。
my-first-plugin/skills/hello/SKILL.md
---
description: Greet the user with a personalized message
---

# Hello Skill

Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
Claude Code を再起動して変更を反映させ、スキルを名前で試してください。
/my-first-plugin:hello Alex
Claude があなたを名前で挨拶します。スキルに引数を渡す方法の詳細については、スキルを参照してください。
これらの主要なコンポーネントでプラグインを正常に作成およびテストしました。
  • プラグインマニフェスト.claude-plugin/plugin.json):プラグインのメタデータを説明します
  • スキルディレクトリskills/):カスタムスキルを含みます
  • スキル引数$ARGUMENTS):動的な動作のためにユーザー入力をキャプチャします
--plugin-dir フラグは開発とテストに役立ちます。プラグインを他のユーザーと共有する準備ができたら、プラグインマーケットプレイスを作成して配布するを参照してください。

プラグイン構造の概要

スキルを使用してプラグインを作成しましたが、プラグインにはさらに多くの機能を含めることができます。カスタムエージェント、フック、MCP サーバー、LSP サーバーです。
よくある間違いcommands/agents/skills/hooks/.claude-plugin/ ディレクトリ内に配置しないでください。.claude-plugin/ には plugin.json のみが入ります。他のすべてのディレクトリはプラグインルートレベルにある必要があります。
ディレクトリ場所目的
.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 ファイルを含むスキルフォルダを追加します。
my-plugin/
├── .claude-plugin/
│   └── plugin.json
└── skills/
    └── code-review/
        └── SKILL.md
SKILL.md には、namedescription フィールドを含むフロントマターが必要で、その後に指示が続きます。
---
name: code-review
description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
---

When reviewing code, check for:
1. Code organization and structure
2. Error handling
3. Security concerns
4. Test coverage
プラグインをインストールした後、Claude Code を再起動してスキルを読み込みます。段階的な開示とツール制限を含む完全なスキル作成ガイダンスについては、エージェントスキルを参照してください。

プラグインに LSP サーバーを追加する

TypeScript、Python、Rust などの一般的な言語については、公式マーケットプレイスから事前構築された LSP プラグインをインストールしてください。既に対応されていない言語のサポートが必要な場合にのみ、カスタム LSP プラグインを作成してください。
LSP(Language Server Protocol)プラグインは Claude にリアルタイムコード インテリジェンスを提供します。公式 LSP プラグインがない言語をサポートする必要がある場合は、プラグインに .lsp.json ファイルを追加することで、独自のプラグインを作成できます。
.lsp.json
{
  "go": {
    "command": "gopls",
    "args": ["serve"],
    "extensionToLanguage": {
      ".go": "go"
    }
  }
}
プラグインをインストールするユーザーは、言語サーバーバイナリをマシンにインストールしておく必要があります。 完全な LSP 設定オプションについては、LSP サーバーを参照してください。

プラグインでデフォルト設定を配布する

プラグインは、プラグインルートに settings.json ファイルを含めて、プラグインが有効になったときにデフォルト設定を適用できます。現在、agent キーのみがサポートされています。 agent を設定すると、プラグインのカスタムエージェントの 1 つがメインスレッドとしてアクティブになり、そのシステムプロンプト、ツール制限、モデルが適用されます。これにより、プラグインは有効になったときに Claude Code の動作方法をデフォルトで変更できます。
settings.json
{
  "agent": "security-reviewer"
}
この例は、プラグインの agents/ ディレクトリで定義された security-reviewer エージェントをアクティブにします。settings.json の設定は、plugin.json で宣言された settings よりも優先されます。不明なキーは無視されます。

複雑なプラグインを整理する

多くのコンポーネントを持つプラグインの場合、機能別にディレクトリ構造を整理します。完全なディレクトリレイアウトと整理パターンについては、プラグインディレクトリ構造を参照してください。

プラグインをローカルでテストする

開発中にプラグインをテストするには、--plugin-dir フラグを使用します。これにより、インストールを必要とせずにプラグインが直接読み込まれます。
claude --plugin-dir ./my-plugin
プラグインに変更を加えると、Claude Code を再起動して更新を反映させます。プラグインコンポーネントをテストします。
  • /plugin-name:skill-name でスキルを試す
  • /agents にエージェントが表示されることを確認する
  • フックが期待通りに機能することを確認する
フラグを複数回指定することで、複数のプラグインを一度に読み込むことができます。
claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two

プラグインの問題をデバッグする

プラグインが期待通りに機能しない場合:
  1. 構造を確認する:ディレクトリが .claude-plugin/ 内ではなく、プラグインルートにあることを確認します
  2. コンポーネントを個別にテストする:各コマンド、エージェント、フックを個別に確認します
  3. 検証とデバッグツールを使用する:CLI コマンドとトラブルシューティング技術については、デバッグと開発ツールを参照してください

プラグインを共有する

プラグインを共有する準備ができたら:
  1. ドキュメントを追加する:インストールと使用方法の指示を含む README.md を含めます
  2. プラグインをバージョン管理するplugin.jsonセマンティックバージョニングを使用します
  3. マーケットプレイスを作成または使用するプラグインマーケットプレイスを通じて配布してインストールします
  4. 他のユーザーでテストする:より広い配布の前に、チームメンバーにプラグインをテストしてもらいます
プラグインがマーケットプレイスに登録されたら、他のユーザーはプラグインを検出してインストールするの指示を使用してインストールできます。

プラグインを公式マーケットプレイスに送信する

プラグインを公式 Anthropic マーケットプレイスに送信するには、アプリ内送信フォームの 1 つを使用します。
完全な技術仕様、デバッグ技術、配布戦略については、プラグインリファレンスを参照してください。

既存の設定をプラグインに変換する

.claude/ ディレクトリにスキルまたはフックが既にある場合は、それらをプラグインに変換して、共有と配布を簡単にできます。

移行手順

1

プラグイン構造を作成する

新しいプラグインディレクトリを作成します。
mkdir -p my-plugin/.claude-plugin
my-plugin/.claude-plugin/plugin.json にマニフェストファイルを作成します。
my-plugin/.claude-plugin/plugin.json
{
  "name": "my-plugin",
  "description": "Migrated from standalone configuration",
  "version": "1.0.0"
}
2

既存のファイルをコピーする

既存の設定をプラグインディレクトリにコピーします。
# コマンドをコピー
cp -r .claude/commands my-plugin/

# エージェントをコピー(ある場合)
cp -r .claude/agents my-plugin/

# スキルをコピー(ある場合)
cp -r .claude/skills my-plugin/
3

フックを移行する

設定にフックがある場合は、フックディレクトリを作成します。
mkdir my-plugin/hooks
my-plugin/hooks/hooks.json をフック設定で作成します。.claude/settings.json または settings.local.json から hooks オブジェクトをコピーします。形式は同じです。コマンドは stdin で JSON としてフック入力を受け取るため、jq を使用してファイルパスを抽出します。
my-plugin/hooks/hooks.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]
      }
    ]
  }
}
4

移行したプラグインをテストする

プラグインを読み込んで、すべてが機能することを確認します。
claude --plugin-dir ./my-plugin
各コンポーネントをテストします。コマンドを実行し、/agents にエージェントが表示されることを確認し、フックが正しくトリガーされることを確認します。

移行時の変更点

スタンドアロン(.claude/プラグイン
1 つのプロジェクトでのみ利用可能マーケットプレイス経由で共有可能
.claude/commands/ のファイルplugin-name/commands/ のファイル
settings.json のフックhooks/hooks.json のフック
共有するには手動でコピーが必要/plugin install でインストール
移行後、重複を避けるために .claude/ から元のファイルを削除できます。読み込まれたときは、プラグインバージョンが優先されます。

次のステップ

Claude Code のプラグインシステムを理解したので、異なる目標のための推奨パスを以下に示します。

プラグインユーザー向け

プラグイン開発者向け