上級

Claude Code プラグインを開発・公開する

plugin.json マニフェスト、skills、commands、agents、hooks を含む完全なプラグイン構造を構築して公開する方法

解決の目安約5分
最終確認

確認済みバージョン

Claude Code 2.1.220
Claude Code

必須: Claude Code

pluginsdevelopmentdistribution

症状・対象

複数の Skill、command、agent、Hook をコピー配布しており、更新漏れが起きる人が対象です。まず Skill 一つだけの最小プラグインを作り、ローカル検証してから配布単位を増やします。

最短解決

  1. .claude-plugin/plugin.json と skills/hello/SKILL.md を作る。
  2. claude plugin validate で構造を検証する。
  3. --plugin-dir でローカル版だけを読み込み、Skill が見えることを確認する。

コピペ例

必要なディレクトリを作ります。

mkdir -p my-plugin/.claude-plugin my-plugin/skills/hello

my-plugin/.claude-plugin/plugin.json:

{
  "name": "my-plugin",
  "version": "0.1.0",
  "description": "Minimal local plugin for validation"
}

my-plugin/skills/hello/SKILL.md:

---
description: "Use when the user asks to verify this sample plugin."
---

# Hello verifier

Reply with `my-plugin loaded`, then show the current working directory.
Do not modify files.

検証してローカル起動します。

claude plugin validate ./my-plugin
claude --plugin-dir ./my-plugin

期待結果

  • validate がエラーなしで終了する。
  • ローカル起動したセッションの Skill 一覧に hello が現れる。
  • Skill を呼ぶと my-plugin loaded と作業ディレクトリが返り、ファイルは変わらない。

検証

セッションで次を実行し、提供元がローカルプラグインであることを確認します。

> /skills
> /hello
> /doctor

別の通常セッションでは hello が見えないことも確認します。これで、インストール済み版ではなく --plugin-dir の開発版を試せています。

落とし穴

  • plugin.json はプラグイン直下ではなく .claude-plugin/ 配下です。
  • マニフェストで skills などのパスを明示すると、既定フォルダを意図せず隠す場合があります。既定構成なら省略します。
  • API キーやローカル絶対パスをプラグインへ含めません。認証値は利用者側の設定から受け取ります。
  • 公開前に Skill だけでなく Hook、MCP、agent の権限境界も個別に検証します。

次の一手

関連コンテンツ