上級
Claude Code プラグインを開発・公開する
plugin.json マニフェスト、skills、commands、agents、hooks を含む完全なプラグイン構造を構築して公開する方法
解決の目安約5分
最終確認
確認済みバージョン
Claude Code 2.1.220
Claude Code
必須: Claude Code
pluginsdevelopmentdistribution
症状・対象
複数の Skill、command、agent、Hook をコピー配布しており、更新漏れが起きる人が対象です。まず Skill 一つだけの最小プラグインを作り、ローカル検証してから配布単位を増やします。
最短解決
.claude-plugin/plugin.jsonとskills/hello/SKILL.mdを作る。claude plugin validateで構造を検証する。--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 の権限境界も個別に検証します。
次の一手
- Skill を定義して再利用可能なプロンプトを作る — Skill の発火条件と検証を詰める
- カスタムエージェントで専門タスクを委任する — agent を追加する