SpyBara
Go Premium

plugins.md 2026-09-08 20:00 UTC to 2026-09-09 22:58 UTC

This page contains 46 additions and 76 deletions.

2026
Wed 9 22:58 Sat 12 03:02 Fri 18 23:58 Wed 23 23:57 Fri 25 23:58

プラグインを作成する

スキル、エージェント、フック、MCP サーバーで Claude Code を拡張するカスタムプラグインを作成します。

プラグインを使用すると、Claude Code をカスタム機能で拡張でき、プロジェクトとチーム全体で共有できます。このガイドでは、スキル、エージェント、フック、MCP サーバーを使用して独自のプラグインを作成する方法について説明します。

既存のプラグインをインストールしたいですか?プラグインを検出してインストールするを参照してください。完全な技術仕様については、プラグインリファレンスを参照してください。

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

Claude Code では、カスタムスキル、エージェント、フックを追加する 2 つの方法をサポートしています。

アプローチ スキル名 最適な用途
スタンドアロン(.claude/ ディレクトリ) /hello 個人的なワークフロー、プロジェクト固有のカスタマイズ、クイック実験
プラグイン(スキル、エージェント、フック、または .claude-plugin/plugin.json マニフェストを含む自己完結型ディレクトリ) /plugin-name:hello チームメンバーとの共有、コミュニティへの配布、バージョン管理されたリリース、プロジェクト全体で再利用可能

クイックスタート

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

前提条件

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

1

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

すべてのプラグインは、スキル、エージェント、またはフックを含む独自のディレクトリに存在し、オプションで .claude-plugin/plugin.json マニフェストと一緒に配置されます。このクイックスタートではテストステップで --plugin-dir を使用して Claude Code をディレクトリに指すため、場所は重要ではありません。スクラッチフォルダやプロジェクトディレクトリなど、便利な場所に作成してください。

mkdir my-first-plugin

残りのステップは親ディレクトリから実行され、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 を作成します。

{
"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 オプション。設定されている場合、ユーザーはこのフィールドをバンプしたときにのみ更新を受け取ります。command ソースを除きます。バージョン管理を参照してください。省略された場合、バージョンはバージョン管理の次のソースから取得されます。
author オプション。属性に役立ちます。

homepage、repository、license などの追加フィールドについては、完全なマニフェストスキーマを参照してください。

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 を作成します。

---
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 を実行して、カスタムコマンドタブを開き、プラグイン名前空間の下にリストされたスキルを確認してください。

5

スキル引数を追加する

$ARGUMENTS プレースホルダーを使用してユーザー入力をキャプチャすることで、スキルを動的にします。

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.

/reload-plugins を実行して変更を反映させ、スキルを名前で試してください。

/my-first-plugin:hello Alex

Claude があなたを名前で挨拶します。スキルに引数を渡す方法の詳細については、スキルを参照してください。

スキルディレクトリでプラグインを開発する

毎回起動時に --plugin-dir を渡す代わりに、スキルディレクトリにプラグインを保持して、Claude Code に自動的に読み込ませることができます。claude plugin init がスキャフォルドします。

claude plugin init my-tool

これにより、.claude-plugin/plugin.json マニフェストとスターター SKILL.md を含む ~/.claude/skills/my-tool/ が作成されます。次のセッションでは、マーケットプレイスやインストール手順なしで my-tool@skills-dir として読み込まれます。

自動読み込みルール、個人スコープ対プロジェクトスコープ、ワークスペース信頼要件、および更新または削除方法については、スキルディレクトリプラグインを参照してください。

プラグイン構造の概要

スキルを使用してプラグインを作成しましたが、プラグインにはさらに多くの機能を含めることができます。カスタムエージェント、フック、MCP サーバー、LSP サーバー、バックグラウンドモニターです。

ディレクトリ 場所 目的
.claude-plugin/ プラグインルート plugin.json マニフェストを含みます(コンポーネントがデフォルトの場所を使用する場合はオプション)
skills/ プラグインルート <name>/SKILL.md ディレクトリとしてのスキル
commands/ プラグインルート フラットな Markdown ファイルとしてのスキル。新しいプラグインには skills/ を使用してください
agents/ プラグインルート カスタムエージェント定義
hooks/ プラグインルート hooks.json のイベントハンドラー
.mcp.json プラグインルート MCP サーバー設定
.lsp.json プラグインルート コード インテリジェンス用の LSP サーバー設定
monitors/ プラグインルート monitors.json のバックグラウンドモニター設定
bin/ プラグインルート プラグインが有効になっている間に Bash ツールの PATH に追加される実行可能ファイル。Claude.ai 組織設定を通じて配布するプラグインにはこのディレクトリを含めることはできません
settings.json プラグインルート プラグインが有効になったときに適用されるデフォルト設定

正確に 1 つのスキルを含むプラグインは、skills/ ディレクトリを作成する代わりに、SKILL.md をプラグインルートに直接配置できます。Claude Code はそれを単一のスキルとして読み込み、フロントマター name フィールドを呼び出し名として使用します。複数のスキルに成長する可能性があるプラグインには、skills/ レイアウトを使用してください。

より複雑なプラグインを開発する

基本的なプラグインに慣れたら、より高度な拡張機能を作成できます。

プラグインにスキルを追加する

プラグインには、Claude の機能を拡張するエージェントスキルを含めることができます。スキルはモデル呼び出し型です。Claude はタスクコンテキストに基づいて自動的にそれらを使用します。

プラグインルートに skills/ ディレクトリを追加し、SKILL.md ファイルを含むスキルフォルダを追加します。

my-plugin/
├── .claude-plugin/
│   └── plugin.json
└── skills/
    └── code-review/
        └── SKILL.md

各 SKILL.md には YAML フロントマターと指示が含まれます。Claude がスキルをいつ使用するかを知るように description を含めてください。

---
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

プラグインをインストールした後、インストール概要を確認してください。Run /reload-plugins to activate. と報告されている場合は、そのコマンドを実行してスキルを読み込みます。段階的な開示とツール制限を含む完全なスキル作成ガイダンスについては、エージェントスキルを参照してください。

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

LSP(Language Server Protocol)プラグインは Claude にリアルタイムコード インテリジェンスを提供します。公式 LSP プラグインがない言語をサポートする必要がある場合は、プラグインに .lsp.json ファイルを追加することで、独自のプラグインを作成できます。

{
  "go": {
    "command": "gopls",
    "args": ["serve"],
    "extensionToLanguage": {
      ".go": "go"
    }
  }
}

プラグインをインストールするユーザーは、言語サーバーバイナリをマシンにインストールしておく必要があります。

サーバーが起動することを確認するには、プラグインを有効にして Claude Code を起動し、/plugin エラータブを確認してください。起動に失敗した言語サーバーはそこに表示されます。例えば、バイナリがインストールされていない場合は Executable not found in $PATH と表示されます。無効な設定を持つエントリはスキップされます。理由を確認するには claude --debug を実行してください。

完全な LSP 設定オプションについては、LSP サーバーを参照してください。

プラグインにバックグラウンドモニターを追加する

バックグラウンドモニターを使用すると、プラグインはログ、ファイル、または外部ステータスをバックグラウンドで監視し、イベントが到着したときに Claude に通知できます。Claude Code はプラグインがアクティブな場合、各モニターを自動的に開始するため、Claude にモニターの開始を指示する必要はありません。

プラグインルートに monitors/monitors.json ファイルを追加し、モニターエントリの配列を含めます。

[
  {
    "name": "error-log",
    "command": "tail -F ./logs/error.log",
    "description": "Application error log"
  }
]

command からの各 stdout 行は、セッション中に Claude への通知として配信されます。when トリガーと変数置換を含む完全なスキーマについては、モニターを参照してください。

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

プラグインは、プラグインルートに settings.json ファイルを含めて、プラグインが有効になったときにデフォルト設定を適用できます。現在、agent と subagentStatusLine キーのみがサポートされています。

agent を設定すると、プラグインのカスタムエージェントの 1 つがメインスレッドとしてアクティブになり、そのシステムプロンプト、ツール制限、モデルが適用されます。これにより、プラグインは有効になったときに Claude Code の動作方法をデフォルトで変更できます。

{
  "agent": "security-reviewer"
}

この例は、プラグインの agents/ ディレクトリで定義された security-reviewer エージェントをアクティブにします。settings.json の設定は、plugin.json で宣言された settings よりも優先されます。不明なキーは無視されます。

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

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

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

開発中にプラグインをテストするには、--plugin-dir フラグを使用してください。これにより、インストールを必要とせずにプラグインが直接読み込まれます。

claude --plugin-dir ./my-plugin

このフラグはプラグインディレクトリの .zip アーカイブも受け入れます。

claude --plugin-dir ./my-plugin.zip

--plugin-dir プラグインがインストール済みのマーケットプレイスプラグインと同じ名前を持つ場合、そのセッション中はローカルコピーが優先されます。これにより、最初にアンインストールしなくても、既にインストール済みのプラグインへの変更をテストできます。マネージド設定によって強制的に有効にされたマーケットプレイスプラグインは唯一の例外であり、オーバーライドできません。

プラグインに変更を加えると、/reload-plugins を実行して再起動せずに更新を反映させます。これにより、プラグイン、スキル、エージェント、フック、プラグイン MCP サーバー、プラグイン LSP サーバーが再読み込みされます。インタラクティブターミナルのないセッションでは、プラグイン MCP サーバーの変更は次のセッションを待ちます。プラグインコンポーネントをテストします。

  • /plugin-name:skill-name でスキルを試す
  • /context でエージェントがカスタムエージェントの下に表示されることを確認するか、スコープ付き名でエージェントを @-mention する
  • 各フックが一致するイベントをトリガーします。例えば、PostToolUse フックの場合はファイルを編集するよう Claude に依頼し、その効果を確認します。Claude Code は、デバッグログで、どのフックが一致したか、終了コード、出力を記録します。

URL でホストされている .zip アーカイブとしてパッケージ化されているプラグイン(CI ビルドアーティファクトなど)をテストするには、代わりに --plugin-url を使用してください。Claude Code はスタートアップ時にアーカイブをフェッチし、そのセッションのみ読み込みます。Claude Code がアーカイブをフェッチできない場合、またはアーカイブが無効な場合、プラグインなしで開始し、/plugin マネージャーのエラータブで確認できるプラグイン読み込みエラーを記録します。プラグインソースに対して同じ信頼に関する考慮事項が適用されます。このフラグは、制御または信頼するアーカイブのみを指してください。

複数のプラグインを読み込むには、各 URL に対してフラグを繰り返します。

claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip

または、スペース区切りの URL を 1 つの引用符付き引数として渡します。

claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"

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

プラグインが期待どおりに機能しない場合:

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

プラグインを共有する

プラグインを共有する準備ができたら:

  1. ドキュメントを追加する:インストールと使用方法の指示を含む README.md を含めます
  2. バージョン管理戦略を選択する:明示的な version を設定するか、バージョン管理で説明されているフォールバックに依存するかを決定してください。
  3. マーケットプレイスを作成または使用する:プラグインマーケットプレイスを通じて配布してインストールします
  4. 他のユーザーでテストする:より広い配布の前に、チームメンバーにプラグインをテストしてもらいます

プラグインがマーケットプレイスに登録されたら、他のユーザーはプラグインを検出してインストールするの指示を使用してインストールできます。プラグインをチーム内に保つには、プライベートリポジトリでマーケットプレイスをホストしてください。

プラグインをコミュニティマーケットプレイスに送信する

Anthropic は Claude Code プラグイン用に 2 つの公開マーケットプレイスを管理しています。

  • claude-plugins-official:Anthropic によって管理されているキュレーションされたプラグインセット。初めて Claude Code をインタラクティブに起動したときに自動的に登録されます。最初のインタラクティブ起動の前に Claude Code を非インタラクティブに実行した場合、またはマーケットプレイスポリシーが以前の試みをブロックした場合は、claude plugin marketplace add anthropics/claude-plugins-official で自分で登録してください。
  • claude-community:レビュー後にサードパーティの送信が登録される公開コミュニティマーケットプレイス。ユーザーは /plugin marketplace add anthropics/claude-plugins-community で追加し、@claude-community としてインストールします。

プラグインをコミュニティマーケットプレイスレビュー用に送信するには、アプリ内フォームの 1 つを使用してください。

claude.ai フォームには Team または Enterprise 組織とディレクトリ管理アクセスが必要です。組織の所有者はデフォルトでこのアクセス権を持っています。Team または Enterprise 組織に属していない個別の作成者は、代わりに Console フォームを使用できます。

送信する前に、ローカルで claude plugin validate ./your-plugin を実行してください。./your-plugin をプラグインディレクトリへのパスに置き換えてください。レビューパイプラインはすべての送信に対して同じチェックを実行し、自動化されたセーフティスクリーニングも行います。検証が成功すると、Claude Code は ✔ Validation passed を出力します。警告がある場合は ✔ Validation passed with warnings を出力します。警告は検証を失敗させません。--strict を追加して、警告をエラーとして扱ってください。

承認されたプラグインは、anthropics/claude-plugins-community カタログ内の特定のコミット SHA にピン留めされ、CI はリポジトリに新しいコミットをプッシュするたびに自動的にピンをバンプします。公開カタログはレビューパイプラインから毎晩同期されるため、承認と marketplace.json にプラグインが表示されるまでの間に遅延が生じる可能性があります。プラグインがインストール可能かどうかを確認するには、コミュニティカタログでその名前を検索してください。

公式マーケットプレイス claude-plugins-official は別途キュレーションされています。Anthropic はどのプラグインを含めるかを裁量で決定します。申請プロセスはなく、送信フォームは公式マーケットプレイスにプラグインを追加しません。

Anthropic がプラグインを公式マーケットプレイスにリストしている場合、CLI は Claude Code ユーザーにインストールを促すことができます。CLI からプラグインを推奨するを参照してください。

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

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

移行手順

1

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

プロジェクトルートに新しいプラグインディレクトリを作成します。既存の .claude/ フォルダの隣に配置することで、次のステップの相対 cp パスが解決されます。

mkdir -p my-plugin/.claude-plugin

my-plugin/.claude-plugin/plugin.json にマニフェストファイルを作成します。

{
"name": "my-plugin",
"description": "Migrated from standalone configuration",
"version": "1.0.0"
}
2

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

既存の各設定ディレクトリをプラグインルートにコピーします。3 つすべてがない場合もあります。ディレクトリが存在しない場合、cp は No such file or directory を出力してコピーしないため、そのコマンドをスキップするか、エラーを無視してください。

cp -r .claude/commands my-plugin/

cp -r .claude/agents my-plugin/

cp -r .claude/skills my-plugin/

プラグインには、.claude/ の下にあったディレクトリのコピーが含まれるようになりました。ls my-plugin を実行して確認します。コピーした各ディレクトリが表示されるはずです。

3

フックを移行する

設定にフックがある場合は、フックディレクトリを作成します。

mkdir my-plugin/hooks

my-plugin/hooks/hooks.json をフック設定で作成します。.claude/settings.json または settings.local.json から hooks オブジェクトをコピーします。形式は同じです。コマンドはフック入力を stdin で JSON として受け取るため、jq を使用してファイルパスを抽出します。

{
"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

各コンポーネントをテストします。コマンドを実行し、/context にエージェントが表示されることを確認し、フックが一致するイベントをトリガーして、その効果を確認します。Claude Code は、どのフックが一致し、どのように終了したかを デバッグログ に記録します。

移行時の変更点

スタンドアロン(.claude/) プラグイン
1 つのプロジェクトでのみ利用可能 マーケットプレイス経由で共有可能
.claude/commands/ 内のファイル plugin-name/commands/ 内のファイル
settings.json のフック hooks/hooks.json のフック
共有するには手動でコピーする必要がある /plugin install でインストール

次のステップ

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

プラグインユーザー向け

プラグイン開発者向け