Claude Code で便利なスキルやサブエージェントを作った経験はありませんか?
「このスキル、チームの全員に使ってもらいたい」「他のプロジェクトでも同じ設定を使い回したい」——そう思ったとき、.claude/ ディレクトリのファイルを手動でコピーして回るのは面倒ですよね。
そこで使えるのがプラグインです。
プラグインは、スキル・エージェント・フック・MCP サーバーなどをひとまとめにパッケージ化し、チームやコミュニティに簡単に配布できる仕組みです。/plugin install コマンドでインストールできるので、受け取る側も手間いらず。
この記事では、プラグインの作り方をゼロから解説します。すでに .claude/ にスキルやフックがある人向けの移行方法も紹介するので、既存の設定を活かしたい人も安心してください。
まず知っておきたい:スタンドアロンとプラグインの違い
Claude Code でカスタム機能を追加する方法は 2 つあります。
スタンドアロン(.claude/ ディレクトリ)
- そのプロジェクトだけで使う個人的な設定
- スキル名は
/reviewのようにシンプル - 試行錯誤しながら作るのに向いている
プラグイン(.claude-plugin/plugin.json を持つディレクトリ)
- チームやコミュニティに共有できる
- スキル名は
/my-plugin:reviewのように名前空間つき - バージョン管理してリリースできる
- マーケットプレイスで配布できる
| 比較ポイント | スタンドアロン | プラグイン |
|---|---|---|
| スキル名 | /review |
/my-plugin:review |
| 共有方法 | 手動コピー | /plugin install |
| バージョン管理 | なし | セマンティックバージョニング |
| 複数プロジェクト | プロジェクトごとに設定 | 一度インストールすればどこでも |
Tip: まずは
.claude/でスタンドアロンとして作り、完成したらプラグインに変換するのが効率的です。最初からプラグイン構造で始める必要はありません。
プラグインを作ってみよう
ここでは、コードレビュー用のスキルを持つプラグインを実際に作ります。
ステップ 1:ディレクトリ構造を作る
プラグインには 2 つの要素が必要です。マニフェストファイル(.claude-plugin/plugin.json)と、機能を定義するディレクトリ(skills/、agents/ など)です。
mkdir -p review-toolkit/.claude-plugin
mkdir -p review-toolkit/skills/quick-review
ステップ 2:マニフェストを書く
マニフェストは、プラグインの「名刺」のようなものです。名前、説明、バージョンを定義します。
review-toolkit/.claude-plugin/plugin.json を作成:
{
"name": "review-toolkit",
"description": "コードレビューを効率化するスキルとフックのセット",
"version": "1.0.0",
"author": {
"name": "Your Name"
}
}
ここで指定した name がスキルの名前空間になります。つまり review-toolkit なら、スキルは /review-toolkit:quick-review のように呼び出せます。
ステップ 3:スキルを追加する
review-toolkit/skills/quick-review/SKILL.md を作成:
---
name: quick-review
description: >
直近の変更を対象にクイックレビューを実施する。
コード変更後やPR作成前に使うと効果的。
---
# クイックレビュー
直近の git diff を取得し、以下の観点でレビューしてください。
## チェック項目
1. **ロジックの誤り** — 条件分岐の漏れ、off-by-one エラー
2. **セキュリティ** — ユーザー入力の未検証、ハードコードされた秘密情報
3. **命名** — 意図が伝わる変数名・関数名になっているか
## 出力フォーマット
- 問題ごとにファイル名と行番号を示す
- 修正案をコードブロックで提示する
- 深刻度を「高・中・低」で分類する
問題がなければ「レビュー完了:問題なし」と報告してください。
ステップ 4:ローカルでテストする
--plugin-dir フラグでプラグインを読み込みます。
claude --plugin-dir ./review-toolkit
Claude Code が起動したら、スキルを呼び出してみましょう。
/review-toolkit:quick-review
/help を実行して、プラグインのスキルが一覧に表示されていることも確認しておきましょう。
名前空間はなぜ必要? 複数のプラグインが同じ名前のスキルを持っていても衝突しないようにするためです。たとえば A プラグインの
reviewと B プラグインのreviewが共存できます。
もっと機能を追加する
プラグインにはスキル以外にも、エージェント、フック、MCP サーバー、LSP サーバーを含められます。
プラグインのディレクトリ構成
review-toolkit/
├── .claude-plugin/
│ └── plugin.json ← マニフェスト(ここにはこれだけ)
├── skills/
│ ├── quick-review/
│ │ └── SKILL.md
│ └── security-check/
│ └── SKILL.md
├── agents/
│ └── thorough-reviewer.md
├── hooks/
│ └── hooks.json
├── .mcp.json ← MCP サーバー設定
├── .lsp.json ← LSP サーバー設定
└── settings.json ← デフォルト設定