Claude Code Pluginsとは何か

Claude Code Pluginsは、スラッシュコマンド・サブエージェント・MCP サーバー・フック・LSP サーバーを1つのパッケージにまとめて配布・共有する仕組みです。2025年10月に公開ベータとなり、バージョン1.0.33以降で利用できます。

通常の.claude/ディレクトリへの設定は単一プロジェクト向けですが、Pluginsを使うと複数プロジェクトやチームメンバーへの横展開が容易になります。GitHubリポジトリ経由でマーケットプレイスを構築し、/plugin installコマンド一発でインストールできる点が最大の特徴です。

PluginsとSkills・MCP・Hooksの関係

Claude Codeの拡張機能は複数ありますが、それぞれ役割が異なります。Pluginsはこれらを束ねるパッケージング層として位置づけられます。

要素役割単体利用Plugin内に含めるか
SkillsAIが自動判断で使うスキル定義(SKILL.md).claude/skills/ に配置して利用可含められる
Commands/command で手動呼び出しするスラッシュコマンド.claude/commands/ に配置して利用可含められる
Subagents特定タスク向けの専門エージェント.claude/agents/ に配置して利用可含められる
MCP Servers外部サービスとの連携(GitHub、Slack等).mcp.json で設定含められる
Hooksツール実行前後のイベントハンドラsettings.json で設定含められる
LSP Servers言語サーバーによるコード解析.lsp.json で設定含められる
Plugins上記すべてを束ねて配布するパッケージ--

単体設定との使い分けとして、個人のプロジェクト固有設定なら.claude/ディレクトリへ直接配置し、チーム共有・複数プロジェクト横断で使うならPlugin化するのが適切です。

公式マーケットプレイスのプラグイン一覧

Anthropicが管理する公式マーケットプレイスclaude-plugins-officialは、Claude Code起動時に自動で利用可能になります。/pluginコマンドのDiscoverタブから一覧を確認できます。

コードインテリジェンス系(LSPプラグイン)

言語サーバーを介して、型エラーの即時検出・定義ジャンプ・参照検索などをClaudeに提供します。

対応言語プラグイン名必要バイナリ
TypeScripttypescript-lsptypescript-language-server
Pythonpyright-lsppyright-langserver
Rustrust-analyzer-lsprust-analyzer
Gogopls-lspgopls
Javajdtls-lspjdtls
C/C++clangd-lspclangd
PHPphp-lspintelephense
Swiftswift-lspsourcekit-lsp
Kotlinkotlin-lspkotlin-language-server
C#csharp-lspcsharp-ls
Lualua-lsplua-language-server

LSPプラグインを導入すると、Claudeがファイル編集した直後に言語サーバーが解析を実行し、型エラーや未解決のインポートを自動検出します。エラーを見つけると同じターン内で修正を試みるため、コンパイルエラーの混入を大幅に抑制できます。

外部サービス連携系

あらかじめ設定済みのMCPサーバーをバンドルし、外部サービスとの接続を簡単にします。

カテゴリプラグイン名連携先
ソースコード管理github, gitlabGitHub / GitLab
プロジェクト管理atlassian, asana, linear, notionJira・Confluence / Asana / Linear / Notion
デザインfigmaFigma
インフラvercel, firebase, supabaseVercel / Firebase / Supabase
コミュニケーションslackSlack
監視sentrySentry

開発ワークフロー系

プラグイン名用途
commit-commandsgit commit・push・PR作成のワークフロー自動化
pr-review-toolkitPRレビュー用の専門エージェント群
agent-sdk-devClaude Agent SDK開発向けツール
plugin-devプラグイン開発支援ツールキット

出力スタイル系

プラグイン名用途
explanatory-output-style実装判断の理由を教育的に解説するスタイル
learning-output-styleインタラクティブな学習モード

デモマーケットプレイスの注目プラグイン

Anthropicが公開しているデモマーケットプレイス(anthropics/claude-codeリポジトリ内のplugins/ディレクトリ)には、プラグインシステムの可能性を示す実装例が含まれています。

/plugin marketplace add anthropics/claude-code

代表的なプラグインの特徴は以下のとおりです。

commit-commands

Gitのコミット・プッシュ・PR作成を統合したワークフロープラグインです。/commit-commands:commitで変更のステージング、コミットメッセージ生成、コミット実行を一括処理します。/commit-commands:commit-push-prを使えばPR作成まで一気に完了します。

code-review

5つの専門エージェント(アーキテクチャ・セキュリティ・パフォーマンス・テスト・可読性)によるコードレビューを提供します。単純な文法チェックではなく、設計上の懸念やセキュリティリスクまで多角的に評価する点が特徴です。

pr-review-toolkit

PRレビューに特化した6つのエージェントを備えます。差分解析・テストカバレッジ確認・破壊的変更の検出など、レビュー工程ごとに専門化されたエージェントが担当します。

feature-dev

機能開発を7つのフェーズ(要件定義→設計→実装→テスト→レビュー→ドキュメント→完了)に分割し、段階的に進行します。大きなタスクを構造化して進めたい場合に有用です。

frontend-design

HTMLとCSSを使ったフロントエンドのUI生成に特化したプラグインです。デザインの指示からコンポーネントを生成し、ブラウザプレビューまで対応します。

security-guidance

セキュリティ観点での脆弱性検出パターンをClaudeに提供します。OWASP Top 10に沿ったチェック項目を自動適用し、コードレビュー時のセキュリティ品質を底上げします。

ralph-wiggum

Anthropic公式リポジトリに含まれる自律ループ型プラグインです。タスクの実行→結果確認→修正のサイクルを自動で繰り返し、継続的な改善を行います。

コミュニティで人気の非公式プラグイン

公式以外にも、コミュニティが開発した注目プラグインがあります。

Claude-Mem

セッション間の記憶を永続化するプラグインです。Claude Codeの標準機能(CLAUDE.mdmemory/ディレクトリ)を超えた、構造化された長期記憶を実現します。プロジェクトの設計方針やコードベースの知識をセッションをまたいで保持したい場合に役立ちます。

Superpowers

GitHub Stars数が4万を超える大規模プラグインで、複数の開発支援機能を統合しています。コード生成・リファクタリング・デバッグなどの機能を強化します。

TDD Guard

テスト駆動開発を支援するプラグインです。実装前にテストを書くワークフローをClaudeに強制し、TDDサイクルの遵守を自動化します。

プラグインのインストール手順

前提条件

  • Claude Codeバージョン1.0.33以降(claude --versionで確認)
  • Claude Codeが認証済みの状態

公式マーケットプレイスからのインストール

公式マーケットプレイスは初期状態で登録済みです。

# インタラクティブUIで探す
/plugin

# コマンドで直接インストール
/plugin install commit-commands@claude-plugins-official

サードパーティマーケットプレイスからのインストール

# GitHubリポジトリをマーケットプレイスとして登録
/plugin marketplace add owner/repo

# GitLab等の場合はURLで登録
/plugin marketplace add https://gitlab.com/company/plugins.git

# プラグインをインストール
/plugin install plugin-name@marketplace-name

インストールスコープの選択

インストール時にスコープを指定できます。

スコープ効果範囲保存先
User自分の全プロジェクト~/.claude/settings.json
Projectこのリポジトリの全メンバー.claude/settings.json
Local自分だけ・このリポジトリだけ.claude/settings.local.json
# CLIでスコープ指定
claude plugin install formatter@your-org --scope project

プラグインの管理

# 一時的に無効化
/plugin disable plugin-name@marketplace-name

# 再有効化
/plugin enable plugin-name@marketplace-name

# 完全にアンインストール
/plugin uninstall plugin-name@marketplace-name

# マーケットプレイスの更新
/plugin marketplace update marketplace-name

自作プラグインの作成手順

ディレクトリ構造

プラグインは以下の構造で作成します。

my-plugin/
├── .claude-plugin/
│   └── plugin.json        # プラグインマニフェスト(必須)
├── commands/               # スラッシュコマンド
│   └── hello.md
├── skills/                 # Agent Skills
│   └── code-review/
│       └── SKILL.md
├── agents/                 # サブエージェント定義
│   └── reviewer.md
├── hooks/                  # イベントハンドラ
│   └── hooks.json
├── .mcp.json               # MCP サーバー設定
└── .lsp.json               # LSP サーバー設定

注意点commands/agents/skills/hooks/.claude-plugin/ディレクトリの外側(プラグインルート直下)に配置します。.claude-plugin/内に置くのはよくある誤りです。

plugin.jsonの記述

{
  "name": "my-plugin",
  "description": "プラグインの説明文",
  "version": "1.0.0",
  "author": {
    "name": "作成者名",
    "email": "author@example.com"
  },
  "homepage": "https://github.com/owner/my-plugin",
  "repository": "https://github.com/owner/my-plugin",
  "license": "MIT",
  "keywords": ["productivity", "code-review"]
}
フィールド必須説明
nameはいプラグインの一意な識別子。スキル名のネームスペースにもなる
descriptionいいえプラグインマネージャーに表示される説明文
versionいいえセマンティックバージョニング形式
authorいいえ作成者情報
homepageいいえドキュメントのURL
repositoryいいえソースコードリポジトリURL
licenseいいえSPDXライセンス識別子
keywordsいいえ検索・カテゴリ分けに使用

スラッシュコマンドの追加

commands/hello.mdを作成します。

---
description: チームメンバーに挨拶する
disable-model-invocation: true
---

ユーザー "$ARGUMENTS" に親しみを込めて挨拶してください。

$ARGUMENTSはユーザーがコマンド実行時に渡したテキストに置き換わります。/my-plugin:hello 田中のように使用します。

Agent Skillの追加

skills/code-review/SKILL.mdを作成します。

---
name: code-review
description: コード品質を多角的に評価する。コードレビューやPR確認の文脈で自動的に使用される。
---

コードレビュー時に以下の観点でチェックしてください:
1. コードの構造と整理
2. エラーハンドリングの適切さ
3. セキュリティ上の懸念
4. テストカバレッジ
5. 命名規則と可読性

Commands(スラッシュコマンド)は/commandで明示的に呼び出すのに対し、Skillsはタスクの文脈に応じてClaudeが自動的に活用する点が異なります。

Hooksの追加

hooks/hooks.jsonを作成します。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs npx eslint --fix"
          }
        ]
      }
    ]
  }
}

フック内でプラグインのファイルを参照するには${CLAUDE_PLUGIN_ROOT}変数を使います。プラグインはインストール時にキャッシュディレクトリへコピーされるため、相対パスではなくこの変数を使う必要があります。

ローカルテスト

claude --plugin-dir ./my-plugin

--plugin-dirフラグで読み込んでテストします。複数プラグインを同時にテストする場合はフラグを複数回指定します。

claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two

変更を反映するにはClaude Codeの再起動が必要です。

バリデーション

# CLIから
claude plugin validate .

# Claude Code内から
/plugin validate .

マーケットプレイスの構築と配布

自作プラグインを配布するには、マーケットプレイスを構築します。

marketplace.jsonの作成

リポジトリルートの.claude-plugin/marketplace.jsonに配置します。

{
  "name": "team-plugins",
  "owner": {
    "name": "チーム名",
    "email": "team@example.com"
  },
  "metadata": {
    "description": "社内開発ツールプラグイン集",
    "version": "1.0.0"
  },
  "plugins": [
    {
      "name": "lint-on-save",
      "source": "./plugins/lint-on-save",
      "description": "ファイル保存時に自動lint実行",
      "version": "1.0.0"
    },
    {
      "name": "deploy-helper",
      "source": {
        "source": "github",
        "repo": "our-org/deploy-plugin"
      },
      "description": "デプロイメント自動化"
    }
  ]
}

プラグインのsourceには相対パス・GitHubリポジトリ・Git URLの3種類を指定できます。

GitHubでのホスティング

GitHubリポジトリにプッシュすれば配布完了です。

# ユーザー側の操作
/plugin marketplace add your-org/team-plugins
/plugin install lint-on-save@team-plugins

プライベートリポジトリへの対応

プライベートリポジトリからのインストールは、ローカルのgit認証情報がそのまま利用されます。gh auth login済みであれば追加設定は不要です。

バックグラウンド自動更新を有効にする場合は、環境変数にトークンを設定します。

プロバイダ環境変数
GitHubGITHUB_TOKEN または GH_TOKEN
GitLabGITLAB_TOKEN または GL_TOKEN
BitbucketBITBUCKET_TOKEN

チーム運用のベストプラクティス

リポジトリレベルでのプラグイン設定

.claude/settings.jsonにマーケットプレイスとデフォルト有効プラグインを記述しておくと、チームメンバーがリポジトリを信頼した時点で自動的にインストールが提案されます。

{
  "extraKnownMarketplaces": {
    "team-plugins": {
      "source": {
        "source": "github",
        "repo": "your-org/team-plugins"
      }
    }
  },
  "enabledPlugins": {
    "lint-on-save@team-plugins": true,
    "code-review@team-plugins": true
  }
}

管理者によるマーケットプレイス制限

組織でプラグインソースを制限するには、マネージド設定でstrictKnownMarketplacesを使います。

{
  "strictKnownMarketplaces": [
    {
      "source": "github",
      "repo": "our-org/approved-plugins"
    }
  ]
}

空配列[]を設定すると全マーケットプレイスの追加を禁止できます。

段階的な導入ステップ

  1. 個人で検証.claude/ディレクトリにSkillやHookを直接配置して試す
  2. Plugin化:動作確認後、.claude-plugin/plugin.jsonを追加してPlugin形式に変換
  3. マーケットプレイス作成marketplace.jsonを作成しGitHubにプッシュ
  4. チーム展開.claude/settings.jsonextraKnownMarketplacesを設定

よくあるトラブルと対処法

/pluginコマンドが認識されない

Claude Codeのバージョンが1.0.33未満の場合に発生します。

# バージョン確認
claude --version

# アップデート(npmの場合)
npm update -g @anthropic-ai/claude-code

# アップデート(Homebrewの場合)
brew upgrade claude-code

プラグインのスキルが表示されない

キャッシュの問題が考えられます。

rm -rf ~/.claude/plugins/cache

Claude Codeを再起動後、プラグインを再インストールします。

ファイルが見つからないエラー

プラグインはインストール時にキャッシュディレクトリへコピーされます。プラグインディレクトリ外のファイル(../shared-utilsなど)は参照できません。

対処法

  • フック・MCPサーバーの設定では${CLAUDE_PLUGIN_ROOT}変数を使用する
  • 共有ファイルはプラグインディレクトリ内に含めるか、シンボリックリンクを使用する

マーケットプレイスの相対パスエラー

URL経由で追加したマーケットプレイス(https://example.com/marketplace.json形式)では、相対パスのsourceが解決できません。Git経由で追加するか、GitHubリポジトリ形式のsourceを使用してください。

LSPプラグインでメモリ使用量が増大する

rust-analyzerpyrightは大規模プロジェクトで多くのメモリを消費する場合があります。問題が生じたら当該プラグインを無効化し、Claude標準の検索ツールで代替できます。

/plugin disable rust-analyzer-lsp@claude-plugins-official

既存の.claude/設定をPluginへ変換する方法

すでに.claude/ディレクトリでSkillsやHooksを運用している場合、以下の手順でPlugin形式に変換できます。

# 1. プラグインディレクトリを作成
mkdir -p my-plugin/.claude-plugin

# 2. plugin.jsonを作成
cat > my-plugin/.claude-plugin/plugin.json << 'EOF'
{
  "name": "my-plugin",
  "description": "既存設定をPlugin化",
  "version": "1.0.0"
}
EOF

# 3. 既存ファイルをコピー
cp -r .claude/commands my-plugin/
cp -r .claude/agents my-plugin/
cp -r .claude/skills my-plugin/

# 4. Hooksはhooks/hooks.jsonに移行
mkdir my-plugin/hooks
# settings.jsonのhooksオブジェクトをhooks/hooks.jsonに転記

# 5. テスト
claude --plugin-dir ./my-plugin

変換後は元の.claude/のファイルを削除して重複を避けます。Plugin版が優先的に読み込まれます。

まとめ

Claude Code Pluginsは、Skills・Commands・Subagents・MCP・Hooks・LSPをパッケージ化し、チームやコミュニティで再利用する仕組みです。公式マーケットプレイスにはLSP対応言語サーバーから外部サービス連携まで幅広いプラグインが揃っており、/plugin installで即座に導入できます。

自作プラグインの作成はplugin.jsoncommands/skills/ディレクトリの配置だけで完了し、GitHubリポジトリをマーケットプレイスとして公開すればチーム展開も簡単です。個人の実験は.claude/ディレクトリで始め、チーム共有が必要になった段階でPlugin化するのが効率的な導入パスです。