plugins-management について
plugins-managementは、コーディングエージェント向けプラグインの作成、検証、公開、導入、削除を扱うスキルです。Claude CodeとOpenCodeの手順に加え、Devinの設定やディレクトリへの申請も案内します。
主な機能
- 01プラグインとマーケットプレイス設定の作成
- 02マニフェストと構成要素の検証
- 03リリースとディレクトリ申請の準備
- 04Claude CodeとOpenCodeのプラグイン管理
- 05Devinプラグイン設定の案内
活用シーン
- 01スキルやフックを含むプラグインの初期化
- 02プラグインのマニフェストとMCP設定の確認
- 03Anthropic公式ディレクトリへの申請準備
- 04OpenCodeまたはDevinプラグインの管理
MCP 対応
Claude CodeプラグインへのMCPサーバー設定の追加方法と、関連設定の検証手順を説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ codealive-ai/ ai-driven-development --skill plugins-managementインストール後、Claude Code で/plugins-managementを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/templates/marketplace.json.templateplugin.json.templatereferences/opencode-plugins.mdplugin-guide.mdscripts/init_marketplace.pyinit_plugin.pyprepare_submission.pyvalidate_plugin.py詳細
プラグインマネージャー
コーディングエージェント全体のプラグインを管理します。作成、検証、公開、削除のほか、公式ディレクトリや npm への登録を行います。
対応エージェント:
- Claude Code:
.claude-plugin/plugin.jsonベースのプラグイン。マーケットプレイス経由で配布します - OpenCode:
.opencode/plugins/内の TypeScript/JavaScript プラグイン、またはopencode.jsonに記載された npm パッケージ - Devin CLI / Desktop:プラグインソース(GitHub リポジトリ、git URL、
git-subdir、ローカルフォルダー)内の.devin-plugin/plugin.jsonマニフェスト。スキル(<plugin>:<skill>スラッシュコマンド)、AGENTS.md/rules/、agents/サブエージェント、hooks.json、.mcp.jsonをひとまとまりとしてインストールします。devin pluginsコマンドで管理します。プラグインは Devin のクラウドセッションにも適用されますが、サーフェスごとの制限を受けます。このスキルのスクリプトは Claude/OpenCode のマニフェストを対象としています。Devin の場合は Devin のドキュメントに従って.devin-plugin/plugin.jsonを手動で作成してください。
重要:削除、アンインストール、または除去を行う前に、必ず AskUserQuestion ツールを使用してユーザーに確認してください。明示的な確認なしに、プラグインを削除/アンインストールしたり、マーケットプレイスを削除したりしてはいけません。
クイックリファレンス
| タスク | コマンド/スクリプト |
|---|---|
| プラグインを作成 | python scripts/init_plugin.py <name> |
| マーケットプレイスを作成 | python scripts/init_marketplace.py <name> |
| プラグインを検証 | python scripts/validate_plugin.py <path> |
| マーケットプレイスを検証 | claude plugin validate <path> |
| 登録を準備 | python scripts/prepare_submission.py <path> --email X --company-url Y |
| プラグインをインストール | /plugin install <name>@<marketplace> |
| プラグインを削除 | /plugin uninstall <name>@<marketplace> |
| プラグインをテスト(開発) | claude --plugin-dir ./my-plugin |
| 編集後に再読み込み | /reload-plugins |
| リリースタグを作成 | claude plugin tag --push |
| インストール済みを一覧表示 | claude plugin list [--json] [--available] |
| プラグインを更新 | claude plugin update <name>@<marketplace> |
ワークフロー
1. 新しいプラグインを作成
# Basic plugin with commands
python scripts/init_plugin.py my-plugin --path ./
# Full plugin with all components
python scripts/init_plugin.py my-plugin --path ./ --all
# Specific components
python scripts/init_plugin.py my-plugin --with-agents --with-skills
フラグ:
--with-commands(デフォルト):commands ディレクトリを含めます--with-agents:agents ディレクトリを含めます--with-skills:skills ディレクトリを含めます--with-hooks:hooks 設定を含めます--with-mcp:MCP サーバー設定を含めます--all:すべてのコンポーネントを含めます--author "Name":作成者名を設定します
作成後:
.claude-plugin/plugin.jsonを編集してプラグインの詳細を設定します- YAML フロントマター付きで
commands/*.mdにコマンドを追加します - 必要に応じて
agents/*.mdにエージェントを追加します - ドキュメントを記載して
README.mdを更新します
2. マーケットプレイスを作成
# Empty marketplace
python scripts/init_marketplace.py my-marketplace --path ./
# With initial plugin
python scripts/init_marketplace.py my-marketplace --with-plugin my-plugin
作成後:
.claude-plugin/marketplace.jsonを編集しますplugins/ディレクトリにプラグインを追加します- GitHub にプッシュします:
git push origin main
ユーザーは次のコマンドでインストールします:
/plugin marketplace add username/my-marketplace
マーケットプレイスの参照:
- 必須ファイル:
.claude-plugin/marketplace.json - プラグインのエントリでは、各プラグインの
plugin.jsonの name と一致するnameを指定する必要があります sourceには絶対パスではなく相対パス(例:./plugins/my-plugin)を使用します- マーケットプレイスのプラグインが参照する hooks および MCP の設定内では
${CLAUDE_PLUGIN_ROOT}を使用します
3. プラグインを検証
python scripts/validate_plugin.py ./my-plugin
検証項目:
- plugin.json の必須フィールド(name、description、version、author)
- セマンティックバージョニングの形式
- コマンド/エージェントのフロントマター
- Hooks および MCP の設定
- README.md と LICENSE の存在
次の方法も検討してください:
- マーケットプレイス JSON の検証には
claude plugin validate <path>を使用します
4. プラグインを公開
GitHub の場合:
cd my-marketplace
git init
git add .
git commit -m "Initial release"
git remote add origin https://github.com/user/my-marketplace.git
git push -u origin main
# Tag release
git tag -a v1.0.0 -m "Version 1.0.0"
git push origin v1.0.0
配布方法:
- GitHub:
/plugin marketplace add user/repo - GitLab:
/plugin marketplace add https://gitlab.com/user/repo.git - URL:
/plugin marketplace add https://example.com/marketplace.json
5. プラグインの削除/アンインストール
⚠️ 削除/アンインストールする前に、必ずユーザーに確認してください。 AskUserQuestion を使って、「'[plugin-name]' をアンインストールしてもよろしいですか?この操作は元に戻せません。」と尋ねてください。
# Uninstall from Claude Code
/plugin uninstall plugin-name@marketplace-name
# Remove marketplace (confirm with user first!)
/plugin marketplace remove marketplace-name
ソースファイルを削除するには: まず AskUserQuestion を通じてユーザーに確認し、その後、マーケットプレイスの plugins/ フォルダーからプラグインのディレクトリを削除して、marketplace.json を更新します。
6. Anthropic の公式ディレクトリに登録する
登録スクリプトは、gh CLI と git を使って、必要なフォーム項目をすべて自動的に収集します。
前提条件:
- プラグインが GitHub にプッシュされていること
ghCLI がインストールされ、認証済みであること- すべての検証チェックに合格していること
登録の準備:
# Basic - gathers repo URL and SHA automatically
python scripts/prepare_submission.py ./my-plugin
# With required contact info
python scripts/prepare_submission.py ./my-plugin \
--email [email protected] \
--company-url https://yourcompany.com
# Copy SHA to clipboard
python scripts/prepare_submission.py ./my-plugin --copy-sha
# Save to JSON file
python scripts/prepare_submission.py ./my-plugin --output submission.json
# Open form in browser
python scripts/prepare_submission.py ./my-plugin --open-form
自動的に収集されるフォーム項目:
| 項目 | 取得元 |
|---|---|
| プラグインへのリンク | gh repo view --json url |
| 完全な SHA | git rev-parse HEAD |
| プラグインのホームページ | plugin.json の homepage またはリポジトリの URL |
| プラグイン名 | plugin.json の name |
| プラグインの説明 | plugin.json の description(50~100 語) |
入力が必要な項目:
--email:主な連絡先メールアドレス--company-url:会社/組織の URL
登録要件:
- プラグインが GitHub にプッシュされていること
- 作業ディレクトリがクリーンであること(未コミットの変更がないこと)
- 説明が 50~100 語であること
- README.md と LICENSE ファイルが存在すること
- コードにシークレット/API キーが含まれていないこと
プラグイン構成のリファレンス
my-plugin/
├── .claude-plugin/
│ └── plugin.json # Optional manifest (auto-discovered if absent)
├── skills/ # Agent skills (preferred over commands/)
│ └── */SKILL.md
├── commands/ # Skills as flat .md files
│ └── *.md
├── agents/ # AI subagents
│ └── *.md
├── output-styles/ # Output style definitions (2026)
├── themes/ # Color themes (2026)
├── monitors/ # Background monitors (2026, v2.1.105+)
│ └── monitors.json
├── hooks/
│ └── hooks.json # Event handlers
├── bin/ # Executables added to PATH (2026)
├── settings.json # Default agent / subagentStatusLine (2026)
├── .mcp.json # MCP servers
├── .lsp.json # LSP server config (since v2.0.74)
├── package.json # Auto-installed dependencies (2026)
├── README.md # Documentation
├── CHANGELOG.md
└── LICENSE
詳しいリファレンス: references/plugin-guide.md を参照してください。
OpenCode プラグイン
OpenCode(anomalyco/opencode v1.14.x)のプラグインは TypeScript/JavaScript モジュールであり、Claude Code のプラグインとは根本的に異なります。
クイックリファレンス
| タスク | 方法 |
|---|---|
| ローカルプラグインを作成する | .opencode/plugins/(プロジェクト)または ~/.config/opencode/plugins/(グローバル)に .ts ファイルを配置します |
| npm プラグインを作成する | npm init を実行し、keywords: ["opencode-plugin"] を追加して、@opencode-ai/plugin を依存関係に指定します |
| npm プラグインをインストールする | パッケージ名を opencode.json の "plugin": [...] に追加して、再起動します |
| 配布する | npm に公開します(中央マーケットプレイスはありません) |
最小限のプラグイン
// .opencode/plugins/env-protection.ts
import type { Plugin } from "@opencode-ai/plugin"
export default (async () => ({
tool: {
execute: {
before: async (input, output) => {
if (output.args.filePath?.includes(".env")) {
throw new Error("Reading .env is forbidden")
}
},
},
},
})) satisfies Plugin
npm プラグインを登録する
{
"$schema": "https://opencode.ai/config.json",
"plugin": [
"opencode-helicone-session",
"@my-org/custom-plugin"
]
}
OpenCode は起動時に bun install を実行します。キャッシュ先は ~/.cache/opencode/node_modules/ です。
プラグインでできること
- AI が呼び出せるカスタムツールを追加する(Zod による引数の検証)
- ツール呼び出しをインターセプト/ブロックする(ブロックするには
tool.execute.beforeから例外をスローします) - 約 25 種類のライフサイクルイベントを購読する(
session.idle、file.edited、permission.askedなど) - カスタムのスラッシュコマンドや認証プロバイダーを登録する
- コンテキスト圧縮中にメッセージやシステムプロンプトを変換する(実験的機能)
重要な注意点(v1.14.x)
tool.execute.*フックは MCP ツール呼び出しでは実行されません。opencode.jsonのpermissionブロックを使用してください- 中央マーケットプレイスはありません。npm や awesome-opencode などのアグリゲーターを通じて配布してください
- プラグインは SDK に完全にアクセスできる状態で同一プロセス内で実行されます。インストール前にサードパーティーのコードを監査してください
OpenCode プラグインのリファレンス全文は、references/opencode-plugins.md を参照してください。
重要なルール(サイレント障害を防ぐ)
skills/、commands/、agents/、hooks/、monitors/、themes/、output-styles/、bin/はプラグインのルートに配置してください(.claude-plugin/の中には絶対に配置しないでください)。- 標準のコンポーネントパスを
plugin.jsonに追加しないでください。./で始まる標準外のパスのみを指定してください。 - フックおよび MCP/LSP/モニターの設定パスには、
${CLAUDE_PLUGIN_ROOT}(バージョンごとに変わるキャッシュパス)と${CLAUDE_PLUGIN_DATA}(アップデート後も保持されるパス)を使用してください。相対パスはインストール後に機能しなくなります。 - フックスクリプトが実行可能であることを確認してください(
chmod +x scripts/*)。 - マーケットプレイスの
plugins[].nameは、プラグインのplugin.jsonのnameと一致している必要があります。 - パストラバーサルの制限(2026):プラグインは自身のディレクトリの外にあるファイルを参照できません。必要な場合は、プラグイン内にシンボリックリンクを使用してください。
- バージョン管理(2026):git SHA を使用する場合(コミットごとに新しいバージョンになります)は、
versionを省略してください。安定版リリースではversionを設定し、値を更新してください。リリースタグの作成にはclaude plugin tagを使用してください。
よくあるパターン
コマンドファイル形式
---
description: What this command does
---
# Command Name
Instructions for Claude when command is invoked.
エージェントファイル形式
---
description: Agent specialty and purpose
---
# Agent Name
Detailed instructions and expertise.
フック設定
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"
}
]
}
]
}
}
MCP サーバー設定
{
"mcpServers": {
"server-name": {
"command": "node",
"args": ["./servers/server.js"]
}
}
}
スキルファイル形式
---
name: my-skill
description: What this skill does and when to use it
---
# Skill Title
Instructions for Claude when this skill is invoked.
マーケットプレイスのエントリー例
{
"name": "my-plugin",
"source": "./plugins/my-plugin",
"description": "Short description",
"version": "1.0.0",
"author": { "name": "Author Name" },
"category": "productivity",
"keywords": ["tag1", "tag2"],
"strict": true
}