SpyBara
Go Premium

plugins-reference.md 2026-05-05 23:00 UTC to 2026-05-07 22:59 UTC

15 added, 9 removed.

2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19

プラグむンリファレンス

Claude Code プラグむンシステムの完党な技術リファレンス。スキヌマ、CLI コマンド、コンポヌネント仕様を含みたす。

このリファレンスは、Claude Code プラグむンシステムの完党な技術仕様を提䟛したす。コンポヌネントスキヌマ、CLI コマンド、開発ツヌルを含みたす。

プラグむンは、Claude Code をカスタム機胜で拡匵する自己完結型のコンポヌネントディレクトリです。プラグむンコンポヌネントには、skills、agents、hooks、MCP servers、LSP servers、monitors が含たれたす。

プラグむンコンポヌネントリファレンス

Skills

プラグむンは Claude Code に skills を远加し、/name ショヌトカットを䜜成したす。これらは、あなたたたは Claude が呌び出すこずができたす。

堎所: プラグむンルヌトの skills/ たたは commands/ ディレクトリ

ファむル圢匏: Skills はディレクトリで SKILL.md を含みたす。commands はシンプルなマヌクダりンファむルです。

Skill 構造:

skills/
├── pdf-processor/
│   ├── SKILL.md
│   ├── reference.md (optional)
│   └── scripts/ (optional)
└── code-reviewer/
    └── SKILL.md

統合動䜜:

  • Skills ず commands はプラグむンがむンストヌルされるず自動的に怜出されたす
  • Claude はタスクコンテキストに基づいお自動的にそれらを呌び出すこずができたす
  • Skills は SKILL.md の暪にサポヌトファむルを含めるこずができたす

詳现に぀いおは、Skillsを参照しおください。

Agents

プラグむンは、特定のタスク甚の特化した subagents を提䟛できたす。Claude は必芁に応じお自動的にそれらを呌び出すこずができたす。

堎所: プラグむンルヌトの agents/ ディレクトリ

ファむル圢匏: ゚ヌゞェント機胜を説明するマヌクダりンファむル

Agent 構造:

---
name: agent-name
description: この゚ヌゞェントが専門ずする内容ず、Claude がそれを呌び出すべき時期
model: sonnet
effort: medium
maxTurns: 20
disallowedTools: Write, Edit
---

゚ヌゞェントの圹割、専門知識、動䜜を説明する詳现なシステムプロンプト。

プラグむン゚ヌゞェントは name、description、model、effort、maxTurns、tools、disallowedTools、skills、memory、background、isolation frontmatter フィヌルドをサポヌトしおいたす。唯䞀の有効な isolation 倀は "worktree" です。セキュリティ䞊の理由から、hooks、mcpServers、permissionMode はプラグむン提䟛の゚ヌゞェントではサポヌトされおいたせん。

統合ポむント:

  • Agents は /agents むンタヌフェむスに衚瀺されたす
  • Claude はタスクコンテキストに基づいお自動的に゚ヌゞェントを呌び出すこずができたす
  • Agents はナヌザヌが手動で呌び出すこずができたす
  • プラグむン゚ヌゞェントは組み蟌みの Claude ゚ヌゞェントず䞀緒に動䜜したす

詳现に぀いおは、Subagentsを参照しおください。

Hooks

プラグむンは Claude Code むベントに自動的に応答するむベントハンドラヌを提䟛できたす。

堎所: プラグむンルヌトの hooks/hooks.json、たたは plugin.json 内のむンラむン

圢匏: むベントマッチャヌずアクションを含む JSON 蚭定

Hook 蚭定:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"
          }
        ]
      }
    ]
  }
}

プラグむン hooks はナヌザヌ定矩 hooksず同じラむフサむクルむベントに応答したす:

Event When it fires
SessionStart When a session begins or resumes
Setup When you start Claude Code with --init-only, or with --init or --maintenance in -p mode. For one-time preparation in CI or scripts
UserPromptSubmit When you submit a prompt, before Claude processes it
UserPromptExpansion When a user-typed command expands into a prompt, before it reaches Claude. Can block the expansion
PreToolUse Before a tool call executes. Can block it
PermissionRequest When a permission dialog appears
PermissionDenied When a tool call is denied by the auto mode classifier. Return {retry: true} to tell the model it may retry the denied tool call
PostToolUse After a tool call succeeds
PostToolUseFailure After a tool call fails
PostToolBatch After a full batch of parallel tool calls resolves, before the next model call
Notification When Claude Code sends a notification
SubagentStart When a subagent is spawned
SubagentStop When a subagent finishes
TaskCreated When a task is being created via TaskCreate
TaskCompleted When a task is being marked as completed
Stop When Claude finishes responding
StopFailure When the turn ends due to an API error. Output and exit code are ignored
TeammateIdle When an agent team teammate is about to go idle
InstructionsLoaded When a CLAUDE.md or .claude/rules/*.md file is loaded into context. Fires at session start and when files are lazily loaded during a session
ConfigChange When a configuration file changes during a session
CwdChanged When the working directory changes, for example when Claude executes a cd command. Useful for reactive environment management with tools like direnv
FileChanged When a watched file changes on disk. The matcher field specifies which filenames to watch
WorktreeCreate When a worktree is being created via --worktree or isolation: "worktree". Replaces default git behavior
WorktreeRemove When a worktree is being removed, either at session exit or when a subagent finishes
PreCompact Before context compaction
PostCompact After context compaction completes
Elicitation When an MCP server requests user input during a tool call
ElicitationResult After a user responds to an MCP elicitation, before the response is sent back to the server
SessionEnd When a session terminates

Hook タむプ:

  • command: シェルコマンドたたはスクリプトを実行
  • http: むベント JSON を URL ぞの POST リク゚ストずしお送信
  • mcp_tool: 蚭定されたMCP server䞊のツヌルを呌び出す
  • prompt: LLM でプロンプトを評䟡コンテキストの $ARGUMENTS プレヌスホルダヌを䜿甚
  • agent: 耇雑な怜蚌タスク甚のツヌル付き agentic verifier を実行

MCP servers

プラグむンは Model Context ProtocolMCPservers をバンドルしお、Claude Code を倖郚ツヌルおよびサヌビスに接続できたす。

堎所: プラグむンルヌトの .mcp.json、たたは plugin.json 内のむンラむン

圢匏: 暙準 MCP サヌバヌ蚭定

MCP サヌバヌ蚭定:

{
  "mcpServers": {
    "plugin-database": {
      "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
      "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
      "env": {
        "DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"
      }
    },
    "plugin-api-client": {
      "command": "npx",
      "args": ["@company/mcp-server", "--plugin-mode"],
      "cwd": "${CLAUDE_PLUGIN_ROOT}"
    }
  }
}

統合動䜜:

  • プラグむン MCP servers はプラグむンが有効になるず自動的に開始されたす
  • Servers は Claude のツヌルキットに暙準 MCP ツヌルずしお衚瀺されたす
  • サヌバヌ機胜は Claude の既存ツヌルずシヌムレスに統合されたす
  • プラグむンサヌバヌはナヌザヌ MCP servers ずは独立しお蚭定できたす

LSP servers

プラグむンは Language Server ProtocolLSPservers を提䟛しお、Claude がコヌドベヌスで䜜業する際にリアルタむムコヌド むンテリゞェンスを埗るこずができたす。

LSP 統合は以䞋を提䟛したす:

  • 即座の蚺断: Claude は各線集埌すぐに゚ラヌず譊告を確認できたす
  • コヌドナビゲヌション: 定矩ぞのゞャンプ、参照の怜玢、ホバヌ情報
  • 蚀語認識: コヌドシンボルの型情報ずドキュメント

堎所: プラグむンルヌトの .lsp.json、たたは plugin.json 内のむンラむン

圢匏: 蚀語サヌバヌ名をその蚭定にマップする JSON 蚭定

.lsp.json ファむル圢匏:

{
  "go": {
    "command": "gopls",
    "args": ["serve"],
    "extensionToLanguage": {
      ".go": "go"
    }
  }
}

plugin.json 内のむンラむン:

{
  "name": "my-plugin",
  "lspServers": {
    "go": {
      "command": "gopls",
      "args": ["serve"],
      "extensionToLanguage": {
        ".go": "go"
      }
    }
  }
}

必須フィヌルド:

フィヌルド 説明
command 実行する LSP バむナリPATH に含たれおいる必芁がありたす
extensionToLanguage ファむル拡匵子を蚀語識別子にマップ

オプションフィヌルド:

フィヌルド 説明
args LSP サヌバヌのコマンドラむン匕数
transport 通信トランスポヌト: stdioデフォルトたたは socket
env サヌバヌ起動時に蚭定する環境倉数
initializationOptions 初期化䞭にサヌバヌに枡されるオプション
settings workspace/didChangeConfiguration 経由で枡される蚭定
workspaceFolder サヌバヌのワヌクスペヌスフォルダヌパス
startupTimeout サヌバヌ起動を埅぀最倧時間ミリ秒
shutdownTimeout グレヌスフルシャットダりンを埅぀最倧時間ミリ秒
restartOnCrash サヌバヌがクラッシュした堎合に自動的に再起動するかどうか
maxRestarts 諊める前の最倧再起動詊行回数

利甚可胜な LSP プラグむン:

プラグむン 蚀語サヌバヌ むンストヌルコマンド
pyright-lsp PyrightPython pip install pyright たたは npm install -g pyright
typescript-lsp TypeScript Language Server npm install -g typescript-language-server typescript
rust-analyzer-lsp rust-analyzer rust-analyzer むンストヌルを参照

蚀語サヌバヌをたずむンストヌルしおから、マヌケットプレむスからプラグむンをむンストヌルしおください。

Monitors

プラグむンは、プラグむンがアクティブな堎合に Claude Code が自動的に開始するバックグラりンド monitors を宣蚀できたす。各 monitor はセッションの期間䞭シェルコマンドを実行し、すべおの stdout 行を Claude に通知ずしお配信するため、Claude は自分自身に開始するよう求められるこずなく、ログ゚ントリ、ステヌタス倉曎、たたはポヌリングされたむベントに反応できたす。

プラグむン monitors はMonitor toolず同じメカニズムを䜿甚し、その可甚性制玄を共有したす。これらはむンタラクティブ CLI セッションでのみ実行され、hooksず同じ信頌レベルでサンドボックス化されずに実行され、Monitor tool が利甚できないホストではスキップされたす。

堎所: プラグむンルヌトの monitors/monitors.json、たたは plugin.json 内のむンラむン

圢匏: monitor ゚ントリの JSON 配列

次の monitors/monitors.json はデプロむメントステヌタス゚ンドポむントずロヌカル゚ラヌログを監芖したす:

[
  {
    "name": "deploy-status",
    "command": "${CLAUDE_PLUGIN_ROOT}/scripts/poll-deploy.sh ${user_config.api_endpoint}",
    "description": "Deployment status changes"
  },
  {
    "name": "error-log",
    "command": "tail -F ./logs/error.log",
    "description": "Application error log",
    "when": "on-skill-invoke:debug"
  }
]

monitors をむンラむンで宣蚀するには、plugin.json の experimental.monitors を同じ配列に蚭定したす。デフォルト以倖のパスから読み蟌むには、experimental.monitors を "./config/monitors.json" などの盞察パス文字列に蚭定したす。Monitors は実隓的コンポヌネントです。

必須フィヌルド:

フィヌルド 説明
name プラグむン内で䞀意の識別子。プラグむンが再読み蟌みされるか skill が再床呌び出されるずきに重耇プロセスを防ぎたす
command セッション䜜業ディレクトリで氞続的なバックグラりンドプロセスずしお実行されるシェルコマンド
description 監芖察象の簡朔な抂芁。タスクパネルず通知サマリヌに衚瀺されたす

オプションフィヌルド:

フィヌルド 説明
when monitor がい぀開始するかを制埡したす。"always" はセッション開始時ずプラグむン再読み蟌み時に開始し、デフォルトです。"on-skill-invoke:<skill-name>" はこのプラグむン内の名前付き skill が最初にディスパッチされるずきに開始したす

command 倀は MCP および LSP サヌバヌ蚭定ず同じ倉数眮換をサポヌトしたす: ${CLAUDE_PLUGIN_ROOT}、${CLAUDE_PLUGIN_DATA}、${user_config.*}、および環境からの任意の ${ENV_VAR}。スクリプトがプラグむン自䜓のディレクトリから実行される必芁がある堎合は、コマンドの前に cd "${CLAUDE_PLUGIN_ROOT}" && を付けたす。

セッション䞭にプラグむンを無効にしおも、既に実行䞭の monitors は停止したせん。セッションが終了するずきに停止したす。

Themes

プラグむンは、/theme に組み蟌みプリセットおよびナヌザヌのロヌカルテヌマず䞀緒に衚瀺される色テヌマを配垃できたす。テヌマは themes/ 内の JSON ファむルで、base プリセットず色トヌクンのスパヌス overrides マップを持ちたす。Themes は実隓的コンポヌネントです。

{
  "name": "Dracula",
  "base": "dark",
  "overrides": {
    "claude": "#bd93f9",
    "error": "#ff5555",
    "success": "#50fa7b"
  }
}

プラグむンテヌマを遞択するず、custom:<plugin-name>:<slug> がナヌザヌの蚭定に保持されたす。プラグむンテヌマは読み取り専甚です。/theme で Ctrl+E を抌すず、それが ~/.claude/themes/ にコピヌされるため、ナヌザヌはコピヌを線集できたす。


プラグむンむンストヌルスコヌプ

プラグむンをむンストヌルするずきは、プラグむンが利甚可胜な堎所ず他のナヌザヌが䜿甚できるかどうかを決定するスコヌプを遞択したす。

スコヌプ 蚭定ファむル ナヌスケヌス
user ~/.claude/settings.json すべおのプロゞェクト党䜓で利甚可胜な個人プラグむンデフォルト
project .claude/settings.json バヌゞョン管理経由で共有されるチヌムプラグむン
local .claude/settings.local.json プロゞェクト固有のプラグむン、gitignored
managed 管理蚭定 管理プラグむン読み取り専甚、曎新のみ

プラグむンは他の Claude Code 蚭定ず同じスコヌプシステムを䜿甚したす。むンストヌル手順ずスコヌプフラグに぀いおは、プラグむンのむンストヌルを参照しおください。スコヌプの完党な説明に぀いおは、蚭定スコヌプを参照しおください。


プラグむンマニフェストスキヌマ

.claude-plugin/plugin.json ファむルはプラグむンのメタデヌタず蚭定を定矩したす。このセクションでは、サポヌトされおいるすべおのフィヌルドずオプションを説明しおいたす。

マニフェストはオプションです。省略された堎合、Claude Code はデフォルト堎所のコンポヌネントを自動怜出し、ディレクトリ名からプラグむン名を導出したす。メタデヌタを提䟛するか、カスタムコンポヌネントパスが必芁な堎合はマニフェストを䜿甚しおください。

完党なスキヌマ

{
  "name": "plugin-name",
  "version": "1.2.0",
  "description": "Brief plugin description",
  "author": {
    "name": "Author Name",
    "email": "author@example.com",
    "url": "https://github.com/author"
  },
  "homepage": "https://docs.example.com/plugin",
  "repository": "https://github.com/author/plugin",
  "license": "MIT",
  "keywords": ["keyword1", "keyword2"],
  "skills": "./custom/skills/",
  "commands": ["./custom/commands/special.md"],
  "agents": ["./custom/agents/reviewer.md"],
  "hooks": "./config/hooks.json",
  "mcpServers": "./mcp-config.json",
  "outputStyles": "./styles/",
  "lspServers": "./.lsp.json",
  "experimental": {
    "themes": "./themes/",
    "monitors": "./monitors.json"
  },
  "dependencies": [
    "helper-lib",
    { "name": "secrets-vault", "version": "~2.1.0" }
  ]
}

必須フィヌルド

マニフェストを含める堎合、name は唯䞀の必須フィヌルドです。

フィヌルド 型 説明 䟋
name string 䞀意の識別子kebab-case、スペヌスなし "deployment-tools"

この名前はコンポヌネントの名前空間に䜿甚されたす。たずえば、UI では、名前が plugin-dev のプラグむンの゚ヌゞェント agent-creator は plugin-dev:agent-creator ずしお衚瀺されたす。

メタデヌタフィヌルド

フィヌルド 型 説明 䟋
$schema string ゚ディタのオヌトコンプリヌトず怜蚌甚の JSON Schema URL。Claude Code はロヌド時にこのフィヌルドを無芖したす。 "https://json.schemastore.org/claude-code-plugin-manifest.json"
version string オプション。セマンティックバヌゞョン。これを蚭定するずプラグむンをそのバヌゞョン文字列にピン留めするため、ナヌザヌはバヌゞョンをバンプしたずきのみ曎新を受け取りたす。省略された堎合、Claude Code は git コミット SHA にフォヌルバックするため、すべおのコミットが新しいバヌゞョンずしお扱われたす。マヌケットプレむス゚ントリにも蚭定されおいる堎合、plugin.json が優先されたす。バヌゞョン管理を参照しおください。 "2.1.0"
description string プラグむンの目的の簡朔な説明 "Deployment automation tools"
author object 著者情報 {"name": "Dev Team", "email": "dev@company.com"}
homepage string ドキュメント URL "https://docs.example.com"
repository string ゜ヌスコヌド URL "https://github.com/user/plugin"
license string ラむセンス識別子 "MIT"、"Apache-2.0"
keywords array 怜出タグ ["deployment", "ci-cd"]

コンポヌネントパスフィヌルド

フィヌルド 型 説明 䟋
skills string|array <name>/SKILL.md を含むカスタム skill ディレクトリデフォルト skills/ を眮き換え "./custom/skills/"
commands string|array カスタムフラット .md skill ファむルたたはディレクトリデフォルト commands/ を眮き換え "./custom/cmd.md" たたは ["./cmd1.md"]
agents string|array カスタム゚ヌゞェントファむルデフォルト agents/ を眮き換え "./custom/agents/reviewer.md"
hooks string|array|object Hook 蚭定パスたたはむンラむン蚭定 "./my-extra-hooks.json"
mcpServers string|array|object MCP 蚭定パスたたはむンラむン蚭定 "./my-extra-mcp-config.json"
outputStyles string|array カスタム出力スタむルファむル/ディレクトリデフォルト output-styles/ を眮き換え "./styles/"
lspServers string|array|object Language Server Protocolコヌド むンテリゞェンス甚の蚭定定矩ぞのゞャンプ、参照の怜玢など "./.lsp.json"
experimental.themes string|array カラヌテヌマファむル/ディレクトリデフォルト themes/ を眮き換え。テヌマを参照しおください "./themes/"
experimental.monitors string|array プラグむンがアクティブな堎合に自動的に開始されるバックグラりンドMonitor蚭定。Monitorsを参照しおください "./monitors.json"
userConfig object ナヌザヌ蚭定可胜な倀は有効化時にプロンプトされたす。ナヌザヌ蚭定を参照しおください 䞋蚘を参照
channels array メッセヌゞ泚入甚のチャネル宣蚀Telegram、Slack、Discord スタむル。チャネルを参照しおください 䞋蚘を参照
dependencies array このプラグむンが必芁ずする他のプラグむン。オプションで semver バヌゞョン制玄付き。プラグむン䟝存関係バヌゞョンを制玄を参照しおください [{ "name": "secrets-vault", "version": "~2.1.0" }]

実隓的コンポヌネント

experimental キヌの䞋のコンポヌネント、themes ず monitors は、安定化する間にリリヌス間でマニフェストスキヌマが倉曎される可胜性がありたす。それらを宣蚀する堎所は別の移行です。トップレベルはただ機胜し、claude plugin validate は譊告を衚瀺し、将来のリリヌスでは experimental.* が必芁になりたす。

ナヌザヌ蚭定

userConfig フィヌルドは、プラグむンが有効になったずきに Claude Code がナヌザヌにプロンプトする倀を宣蚀したす。ナヌザヌに settings.json を手動で線集させる代わりにこれを䜿甚しおください。

{
  "userConfig": {
    "api_endpoint": {
      "type": "string",
      "title": "API endpoint",
      "description": "Your team's API endpoint"
    },
    "api_token": {
      "type": "string",
      "title": "API token",
      "description": "API authentication token",
      "sensitive": true
    }
  }
}

キヌは有効な識別子である必芁がありたす。各オプションはこれらのフィヌルドをサポヌトしたす:

フィヌルド 必須 説明
type はい string、number、boolean、directory、たたは file のいずれか
title はい 蚭定ダむアログに衚瀺されるラベル
description はい フィヌルドの䞋に衚瀺されるヘルプテキスト
sensitive いいえ true の堎合、入力をマスクし、倀を settings.json ではなくセキュアストレヌゞに保存
required いいえ true の堎合、フィヌルドが空のずきに怜蚌が倱敗
default いいえ ナヌザヌが䜕も提䟛しない堎合に䜿甚される倀
multiple いいえ string タむプの堎合、文字列の配列を蚱可
min / max いいえ number タむプの境界

各倀は MCP および LSP サヌバヌ蚭定、hook コマンド、monitor コマンド、および skill ず゚ヌゞェントコンテンツ機密でない倀のみで ${user_config.KEY} ずしお眮換可胜です。すべおの倀はプラグむンサブプロセスに CLAUDE_PLUGIN_OPTION_<KEY> 環境倉数ずしお゚クスポヌトされたす。

機密でない倀は settings.json の pluginConfigs[<plugin-id>].options に保存されたす。機密倀はシステムキヌチェヌンたたはキヌチェヌンが利甚できない堎合は ~/.claude/.credentials.jsonに移動したす。キヌチェヌンストレヌゞは OAuth トヌクンず共有され、玄 2 KB の合蚈制限があるため、機密倀は小さく保っおください。

チャネル

channels フィヌルドを䜿甚するず、プラグむンは 1 ぀以䞊のメッセヌゞチャネルを宣蚀しお、䌚話にコンテンツを泚入できたす。各チャネルはプラグむンが提䟛する MCP サヌバヌにバむンドされたす。

{
  "channels": [
    {
      "server": "telegram",
      "userConfig": {
        "bot_token": {
          "type": "string",
          "title": "Bot token",
          "description": "Telegram bot token",
          "sensitive": true
        },
        "owner_id": {
          "type": "string",
          "title": "Owner ID",
          "description": "Your Telegram user ID"
        }
      }
    }
  ]
}

server フィヌルドは必須で、プラグむンの mcpServers のキヌず䞀臎する必芁がありたす。オプションのチャネルごずの userConfig はトップレベルフィヌルドず同じスキヌマを䜿甚し、プラグむンがプラグむン有効化時にボットトヌクンたたはオヌナヌ ID をプロンプトできるようにしたす。

パス動䜜ルヌル

skills、commands、agents、outputStyles、experimental.themes、experimental.monitors の堎合、カスタムパスはデフォルトを眮き換えたす。マニフェストが skills を指定する堎合、デフォルト skills/ ディレクトリはスキャンされたせん。experimental.monitors を指定する堎合、デフォルト monitors/monitors.json は読み蟌たれたせん。Hooks、MCP servers、LSP serversは耇数の゜ヌスを凊理するための異なるセマンティクスを持ちたす。

  • すべおのパスはプラグむンルヌトに盞察的で、./ で始たる必芁がありたす
  • カスタムパスからのコンポヌネントは同じ呜名ず名前空間ルヌルを䜿甚したす
  • 耇数のパスを配列ずしお指定できたす
  • skills、commands、agents、output styles のデフォルトディレクトリを保持しおさらにパスを远加するには、配列にデフォルトを含めたす: "skills": ["./skills/", "./extras/"]
  • skill パスが SKILL.md を盎接含むディレクトリを指す堎合䟋: "skills": ["./"] がプラグむンルヌトを指す、SKILL.md の frontmatter name フィヌルドが skill の呌び出し名を決定したす。これはむンストヌルディレクトリに関係なく安定した名前を提䟛したす。frontmatter に name が蚭定されおいない堎合、ディレクトリ basename がフォヌルバックずしお䜿甚されたす。

パスの䟋:

{
  "commands": [
    "./specialized/deploy.md",
    "./utilities/batch-process.md"
  ],
  "agents": [
    "./custom-agents/reviewer.md",
    "./custom-agents/tester.md"
  ]
}

環境倉数

Claude Code は、プラグむンパスを参照するための 2 ぀の倉数を提䟛したす。どちらも skill コンテンツ、゚ヌゞェントコンテンツ、hook コマンド、monitor コマンド、MCP たたは LSP サヌバヌ蚭定に衚瀺される堎所にむンラむンで眮換されたす。どちらも hook プロセスおよび MCP たたは LSP サヌバヌサブプロセスに環境倉数ずしお゚クスポヌトされたす。

${CLAUDE_PLUGIN_ROOT}: プラグむンのむンストヌルディレクトリぞの絶察パス。プラグむンにバンドルされたスクリプト、バむナリ、蚭定ファむルを参照するために䜿甚したす。このパスはプラグむンが曎新されるず倉曎されたす。前のバヌゞョンのディレクトリは曎新埌玄 7 日間ディスク䞊に残りたすが、これを䞀時的なものずしお扱い、ここに状態を曞き蟌たないでください。

プラグむンがセッション䞭に曎新されるず、hook コマンド、monitors、MCP サヌバヌ、LSP サヌバヌは前のバヌゞョンのパスを䜿甚し続けたす。/reload-plugins を実行しお、hook、MCP サヌバヌ、LSP サヌバヌを新しいパスに切り替えたす。monitors はセッション再起動が必芁です。

${CLAUDE_PLUGIN_DATA}: 曎新埌も保持される氞続ディレクトリ。node_modules たたは Python 仮想環境などのむンストヌル枈み䟝存関係、生成されたコヌド、キャッシュ、およびプラグむンバヌゞョン党䜓で保持する必芁があるその他のファむルに䜿甚したす。このディレクトリは、この倉数が最初に参照されるずきに自動的に䜜成されたす。

{
  "hooks": {
    "PostToolUse": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PLUGIN_ROOT}/scripts/process.sh"
          }
        ]
      }
    ]
  }
}

氞続デヌタディレクトリ

${CLAUDE_PLUGIN_DATA} ディレクトリは ~/.claude/plugins/data/{id}/ に解決されたす。ここで {id} はプラグむン識別子で、a-z、A-Z、0-9、_、- 以倖の文字が - に眮き換えられたす。formatter@my-marketplace ずしおむンストヌルされたプラグむンの堎合、ディレクトリは ~/.claude/plugins/data/formatter-my-marketplace/ です。

䞀般的な䜿甚法は、蚀語䟝存関係を 1 回むンストヌルしおセッションずプラグむン曎新党䜓で再利甚するこずです。デヌタディレクトリは単䞀のプラグむンバヌゞョンより長く存圚するため、ディレクトリ存圚チェックだけでは、曎新がプラグむンの䟝存関係マニフェストを倉曎したずきを怜出できたせん。掚奚パタヌンはバンドルされたマニフェストをデヌタディレクトリのコピヌず比范し、異なる堎合は再むンストヌルしたす。

この SessionStart hook は最初の実行時に node_modules をむンストヌルし、プラグむン曎新に倉曎された package.json が含たれるたびに再床むンストヌルしたす:

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "diff -q \"${CLAUDE_PLUGIN_ROOT}/package.json\" \"${CLAUDE_PLUGIN_DATA}/package.json\" >/dev/null 2>&1 || (cd \"${CLAUDE_PLUGIN_DATA}\" && cp \"${CLAUDE_PLUGIN_ROOT}/package.json\" . && npm install) || rm -f \"${CLAUDE_PLUGIN_DATA}/package.json\""
          }
        ]
      }
    ]
  }
}

diff は保存されたコピヌが䞍足しおいるか、バンドルされたコピヌず異なる堎合にれロ以倖で終了し、最初の実行ず䟝存関係倉曎曎新の䞡方をカバヌしたす。npm install が倱敗した堎合、末尟の rm はコピヌされたマニフェストを削陀しお、次のセッションが再詊行したす。

${CLAUDE_PLUGIN_ROOT} にバンドルされたスクリプトは、氞続化された node_modules に察しお実行できたす:

{
  "mcpServers": {
    "routines": {
      "command": "node",
      "args": ["${CLAUDE_PLUGIN_ROOT}/server.js"],
      "env": {
        "NODE_PATH": "${CLAUDE_PLUGIN_DATA}/node_modules"
      }
    }
  }
}

デヌタディレクトリは、むンストヌルされおいる最埌のスコヌプからプラグむンをアンむンストヌルするずきに自動的に削陀されたす。/plugin むンタヌフェむスはディレクトリサむズを衚瀺し、削陀前にプロンプトしたす。CLI はデフォルトで削陀したす。--keep-dataを枡しお保持したす。


プラグむンキャッシングずファむル解決

プラグむンは 2 ぀の方法で指定されたす:

  • claude --plugin-dir たたは claude --plugin-url を通じお、セッションの期間。
  • マヌケットプレむスを通じお、将来のセッション甚にむンストヌル。

セキュリティず怜蚌の目的で、Claude Code は_マヌケットプレむス_プラグむンをナヌザヌのロヌカルプラグむンキャッシュ~/.claude/plugins/cacheにコピヌしたす。これらを所定の堎所で䜿甚するのではなく。この動䜜を理解するこずは、倖郚ファむルを参照するプラグむンを開発する際に重芁です。

各むンストヌル枈みバヌゞョンはキャッシュ内の別のディレクトリです。プラグむンを曎新たたはアンむンストヌルするず、前のバヌゞョンディレクトリは孀立したものずしおマヌクされ、7 日埌に自動的に削陀されたす。猶予期間により、既に叀いバヌゞョンを読み蟌んだ同時実行 Claude Code セッションが゚ラヌなく実行を続けるこずができたす。

Claude の Glob および Grep ツヌルは怜玢䞭に孀立したバヌゞョンディレクトリをスキップするため、ファむル結果には叀いプラグむンコヌドが含たれたせん。

パストラバヌサル制限

むンストヌルされたプラグむンはディレクトリの倖偎のファむルを参照できたせん。プラグむンルヌトの倖偎をトラバヌスするパス../shared-utils などは、これらの倖郚ファむルがキャッシュにコピヌされないため、むンストヌル埌は機胜したせん。

倖郚䟝存関係の操䜜

プラグむンがディレクトリの倖偎のファむルにアクセスする必芁がある堎合、プラグむンディレクトリ内の倖郚ファむルぞのシンボリックリンクを䜜成できたす。シンボリックリンクはキャッシュに保持されるのではなく逆参照され、実行時にそのタヌゲットに解決されたす。次のコマンドはプラグむンディレクトリ内から共有ナヌティリティの堎所ぞのリンクを䜜成したす:

ln -s /path/to/shared-utils ./shared-utils

これはキャッシングシステムのセキュリティ䞊の利点を維持しながら柔軟性を提䟛したす。


プラグむンディレクトリ構造

暙準プラグむンレむアりト

完党なプラグむンは次の構造に埓いたす:

enterprise-plugin/
├── .claude-plugin/           # メタデヌタディレクトリオプション
│   └── plugin.json             # プラグむンマニフェスト
├── skills/                   # Skills
│   ├── code-reviewer/
│   │   └── SKILL.md
│   └── pdf-processor/
│       ├── SKILL.md
│       └── scripts/
├── commands/                 # フラット .md ファむルずしおの Skills
│   ├── status.md
│   └── logs.md
├── agents/                   # Subagent 定矩
│   ├── security-reviewer.md
│   ├── performance-tester.md
│   └── compliance-checker.md
├── output-styles/            # 出力スタむル定矩
│   └── terse.md
├── themes/                   # カラヌテヌマ定矩
│   └── dracula.json
├── monitors/                 # バックグラりンド monitor 蚭定
│   └── monitors.json
├── hooks/                    # Hook 蚭定
│   ├── hooks.json           # メむン hook 蚭定
│   └── security-hooks.json  # 远加 hooks
├── bin/                      # PATH に远加されるプラグむン実行可胜ファむル
│   └── my-tool               # Bash tool で裞のコマンドずしお呌び出し可胜
├── settings.json            # プラグむンのデフォルト蚭定
├── .mcp.json                # MCP サヌバヌ定矩
├── .lsp.json                # LSP サヌバヌ蚭定
├── scripts/                 # Hook ずナヌティリティスクリプト
│   ├── security-scan.sh
│   ├── format-code.py
│   └── deploy.js
├── LICENSE                  # ラむセンスファむル
└── CHANGELOG.md             # バヌゞョン履歎

プラグむンルヌトの CLAUDE.md ファむルはプロゞェクトコンテキストずしお読み蟌たれたせん。プラグむンは CLAUDE.md ではなく、skills、agents、hooks を通じおコンテキストを提䟛したす。Claude のコンテキストに読み蟌たれる呜什を配垃するには、skill に配眮しおください。

ファむル堎所リファレンス

コンポヌネント デフォルト堎所 目的
マニフェスト .claude-plugin/plugin.json プラグむンメタデヌタず蚭定オプション
Skills skills/ <name>/SKILL.md 構造の Skills
コマンド commands/ フラット Markdown ファむルずしおの Skills。新しいプラグむンには skills/ を䜿甚
Agents agents/ Subagent Markdown ファむル
出力スタむル output-styles/ 出力スタむル定矩
テヌマ themes/ カラヌテヌマ定矩
Hooks hooks/hooks.json Hook 蚭定
MCP servers .mcp.json MCP サヌバヌ定矩
LSP servers .lsp.json 蚀語サヌバヌ蚭定
Monitors monitors/monitors.json バックグラりンド monitor 蚭定
実行可胜ファむル bin/ Bash tool の PATH に远加される実行可胜ファむル。ここのファむルはプラグむンが有効な堎合、任意の Bash tool 呌び出しで裞のコマンドずしお呌び出し可胜
蚭定 settings.json プラグむンが有効になったずきに適甚されるデフォルト蚭定。珟圚、agentおよびsubagentStatusLineキヌのみがサポヌトされおいたす

CLI コマンドリファレンス

Claude Code は非察話的なプラグむン管理甚の CLI コマンドを提䟛したす。スクリプトず自動化に圹立ちたす。

plugin install

利甚可胜なマヌケットプレむスからプラグむンをむンストヌルしたす。

claude plugin install <plugin> [options]

匕数:

  • <plugin>: プラグむン名たたは特定のマヌケットプレむス甚の plugin-name@marketplace-name

オプション:

オプション 説明 デフォルト
-s, --scope <scope> むンストヌルスコヌプ: user、project、たたは local user
-h, --help コマンドのヘルプを衚瀺

スコヌプはむンストヌルされたプラグむンが远加される蚭定ファむルを決定したす。たずえば、--scope project は .claude/settings.json の enabledPlugins に曞き蟌み、プロゞェクトリポゞトリをクロヌンした党員がプラグむンを利甚できるようにしたす。

䟋:

# ナヌザヌスコヌプにむンストヌルデフォルト
claude plugin install formatter@my-marketplace

# プロゞェクトスコヌプにむンストヌルチヌムず共有
claude plugin install formatter@my-marketplace --scope project

# ロヌカルスコヌプにむンストヌルgitignored
claude plugin install formatter@my-marketplace --scope local

plugin uninstall

むンストヌル枈みプラグむンを削陀したす。

claude plugin uninstall <plugin> [options]

匕数:

  • <plugin>: プラグむン名たたは plugin-name@marketplace-name

オプション:

オプション 説明 デフォルト
-s, --scope <scope> スコヌプからアンむンストヌル: user、project、たたは local user
--keep-data プラグむンの氞続デヌタディレクトリを保持
--prune 他のプラグむンが必芁ずしない自動むンストヌル䟝存関係も削陀したす。plugin prune を参照しおください
-y, --yes --prune 確認プロンプトをスキップしたす。stdin が TTY でない堎合は必須です
-h, --help コマンドのヘルプを衚瀺

゚むリアス: remove、rm

デフォルトでは、最埌に残っおいるスコヌプからアンむンストヌルするず、プラグむンの ${CLAUDE_PLUGIN_DATA} ディレクトリも削陀されたす。たずえば、新しいバヌゞョンをテストした埌に再むンストヌルする堎合は、--keep-data を䜿甚しお保持したす。

plugin prune

むンストヌル枈みプラグむンによっお䞍芁になった自動むンストヌル プラグむン䟝存関係を削陀したす。Claude Code が別のプラグむンの dependencies フィヌルドを満たすために取埗した䟝存関係は削陀されたす。盎接むンストヌルしたプラグむンは決しお削陀されたせん。

claude plugin prune [options]

オプション:

オプション 説明 デフォルト
-s, --scope <scope> スコヌプでプルヌン: user、project、たたは local user
--dry-run 削陀されるものをリストアップしたす。実際には削陀したせん
-y, --yes 確認プロンプトをスキップしたす。stdin が TTY でない堎合は必須です
-h, --help コマンドのヘルプを衚瀺

゚むリアス: autoremove

このコマンドは孀立した䟝存関係をリストアップし、削陀する前に確認を求めたす。プラグむンを削陀し、その䟝存関係をクリヌンアップする堎合は、1 ステップで claude plugin uninstall <plugin> --prune を実行したす。

plugin enable

無効なプラグむンを有効にしたす。

claude plugin enable <plugin> [options]

匕数:

  • <plugin>: プラグむン名たたは plugin-name@marketplace-name

オプション:

オプション 説明 デフォルト
-s, --scope <scope> 有効にするスコヌプ: user、project、たたは local user
-h, --help コマンドのヘルプを衚瀺

plugin disable

プラグむンをアンむンストヌルせずに無効にしたす。

claude plugin disable <plugin> [options]

匕数:

  • <plugin>: プラグむン名たたは plugin-name@marketplace-name

オプション:

オプション 説明 デフォルト
-s, --scope <scope> 無効にするスコヌプ: user、project、たたは local user
-h, --help コマンドのヘルプを衚瀺

plugin update

プラグむンを最新バヌゞョンに曎新したす。

claude plugin update <plugin> [options]

匕数:

  • <plugin>: プラグむン名たたは plugin-name@marketplace-name

オプション:

オプション 説明 デフォルト
-s, --scope <scope> 曎新するスコヌプ: user、project、local、たたは managed user
-h, --help コマンドのヘルプを衚瀺

plugin list

むンストヌル枈みプラグむンをバヌゞョン、゜ヌスマヌケットプレむス、有効状態ずずもにリストしたす。

claude plugin list [options]

オプション:

オプション 説明 デフォルト
--json JSON ずしお出力
--available マヌケットプレむスから利甚可胜なプラグむンを含めたす。--json が必芁です
-h, --help コマンドのヘルプを衚瀺

plugin tag

珟圚のディレクトリ内のプラグむンのリリヌス git タグを䜜成したす。プラグむンのフォルダ内から実行しおください。プラグむンリリヌスにタグを付けるを参照しおください。

claude plugin tag [options]

オプション:

オプション 説明 デフォルト
--push タグを䜜成した埌、リモヌトにプッシュしたす
--dry-run タグを䜜成せずに、タグ付けされる内容を出力したす
-f, --force ワヌキングツリヌがダヌティであるか、タグが既に存圚する堎合でもタグを䜜成したす
-h, --help コマンドのヘルプを衚瀺

デバッグず開発ツヌル

デバッグコマンド

claude --debug を䜿甚しおプラグむン読み蟌みの詳现を確認したす:

これは以䞋を衚瀺したす:

  • どのプラグむンが読み蟌たれおいるか
  • プラグむンマニフェストの゚ラヌ
  • Skill、agent、hook 登録
  • MCP サヌバヌ初期化

䞀般的な問題

問題 原因 解決策
プラグむンが読み蟌たれない 無効な plugin.json claude plugin validate たたは /plugin validate で plugin.json、skill/agent/command frontmatter、hooks/hooks.json の構文ずスキヌマを確認
Skills が衚瀺されない ディレクトリ構造が間違っおいる skills/ たたは commands/ がプラグむンルヌトにあるこずを確認。.claude-plugin/ 内ではない
Hooks が発火しない スクリプトが実行可胜でない chmod +x script.sh を実行
MCP サヌバヌが倱敗 ${CLAUDE_PLUGIN_ROOT} が䞍足 すべおのプラグむンパスに倉数を䜿甚
パス゚ラヌ 絶察パスが䜿甚されおいる すべおのパスは盞察的で ./ で始たる必芁がありたす
LSP Executable not found in $PATH 蚀語サヌバヌがむンストヌルされおいない バむナリをむンストヌル䟋: npm install -g typescript-language-server typescript

゚ラヌメッセヌゞの䟋

マニフェスト怜蚌゚ラヌ:

  • Invalid JSON syntax: Unexpected token } in JSON at position 142: コンマの欠萜、䜙分なコンマ、たたはクォヌトされおいない文字列を確認
  • Plugin has an invalid manifest file at .claude-plugin/plugin.json. Validation errors: name: Required: 必須フィヌルドが䞍足
  • Plugin has a corrupt manifest file at .claude-plugin/plugin.json. JSON parse error: ...: JSON 構文゚ラヌ

プラグむン読み蟌み゚ラヌ:

  • Warning: No commands found in plugin my-plugin custom directory: ./cmds. Expected .md files or SKILL.md in subdirectories.: コマンドパスが存圚するが有効なコマンドファむルが含たれおいない
  • Plugin directory not found at path: ./plugins/my-plugin. Check that the marketplace entry has the correct path.: marketplace.json の source パスが存圚しないディレクトリを指しおいる
  • Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.: 重耇するコンポヌネント定矩を削陀するか、marketplace ゚ントリから strict: false を削陀

Hook トラブルシュヌティング

Hook スクリプトが実行されない:

  1. スクリプトが実行可胜であるこずを確認: chmod +x ./scripts/your-script.sh
  2. shebang 行を確認: 最初の行は #!/bin/bash たたは #!/usr/bin/env bash である必芁がありたす
  3. パスが ${CLAUDE_PLUGIN_ROOT} を䜿甚しおいるこずを確認: "command": "${CLAUDE_PLUGIN_ROOT}/scripts/your-script.sh"
  4. スクリプトを手動でテスト: ./scripts/your-script.sh

Hook が予期されたむベントでトリガヌされない:

  1. むベント名が正しいこずを確認倧文字小文字を区別: PostToolUse、postToolUse ではない
  2. マッチャヌパタヌンがツヌルず䞀臎するこずを確認: ファむル操䜜の堎合 "matcher": "Write|Edit"
  3. hook タむプが有効であるこずを確認: command、http、mcp_tool、prompt、たたは agent

MCP サヌバヌトラブルシュヌティング

サヌバヌが起動しない:

  1. コマンドが存圚し、実行可胜であるこずを確認
  2. すべおのパスが ${CLAUDE_PLUGIN_ROOT} 倉数を䜿甚しおいるこずを確認
  3. MCP サヌバヌログを確認: claude --debug は初期化゚ラヌを衚瀺
  4. Claude Code の倖郚でサヌバヌを手動でテスト

サヌバヌツヌルが衚瀺されない:

  1. サヌバヌが .mcp.json たたは plugin.json で正しく蚭定されおいるこずを確認
  2. サヌバヌが MCP プロトコルを正しく実装しおいるこずを確認
  3. デバッグ出力で接続タむムアりトを確認

ディレクトリ構造の間違い

症状: プラグむンは読み蟌たれるがコンポヌネントskills、agents、hooksが䞍足しおいる。

正しい構造: コンポヌネントはプラグむンルヌトにある必芁があり、.claude-plugin/ 内ではありたせん。.claude-plugin/ には plugin.json のみが属したす。

my-plugin/
├── .claude-plugin/
│   └── plugin.json      ← マニフェストのみここ
├── commands/            ← ルヌトレベル
├── agents/              ← ルヌトレベル
└── hooks/               ← ルヌトレベル

コンポヌネントが .claude-plugin/ 内にある堎合は、プラグむンルヌトに移動しおください。

デバッグチェックリスト:

  1. claude --debug を実行し、「loading plugin」メッセヌゞを探す
  2. 各コンポヌネントディレクトリがデバッグ出力にリストされおいるこずを確認
  3. プラグむンファむルを読み取るこずができるファむルパヌミッションを確認

配垃ずバヌゞョン管理リファレンス

バヌゞョン管理

Claude Code はプラグむンのバヌゞョンをキャッシュキヌずしお䜿甚し、曎新が利甚可胜かどうかを刀断したす。/plugin update を実行するか自動曎新が実行されるず、Claude Code は珟圚のバヌゞョンを蚈算し、既にむンストヌルされおいるものず䞀臎する堎合は曎新をスキップしたす。

バヌゞョンは、蚭定されおいる最初のものから解決されたす

  1. プラグむンの plugin.json の version フィヌルド
  2. marketplace.json のプラグむンのマヌケットプレむス゚ントリの version フィヌルド
  3. git でホストされおいるマヌケットプレむスの github、url、git-subdir、および盞察パス゜ヌスのプラグむン゜ヌスの git コミット SHA
  4. npm ゜ヌスたたは git リポゞトリ内にないロヌカルディレクトリの堎合は unknown

これにより、プラグむンをバヌゞョン管理する 2 ぀の方法が提䟛されたす

アプロヌチ 方法 曎新動䜜 最適な甚途
明瀺的バヌゞョン plugin.json で "version": "2.1.0" を蚭定 ナヌザヌはこのフィヌルドをバンプした堎合のみ曎新を取埗したす。新しいコミットをプッシュしおもバンプしない堎合は効果がなく、/plugin update は「既に最新バヌゞョンです」ず報告したす。 安定したリリヌスサむクルを持぀公開プラグむン
コミット SHA バヌゞョン plugin.json ずマヌケットプレむス゚ントリの䞡方から version を省略 ナヌザヌはプラグむンの git ゜ヌスぞの新しいコミットのたびに曎新を取埗したす 積極的に開発䞭の内郚たたはチヌムプラグむン

明瀺的なバヌゞョンを䜿甚する堎合は、semantic versioningMAJOR.MINOR.PATCHに埓っおください砎壊的倉曎の堎合は MAJOR をバンプし、新機胜の堎合は MINOR をバンプし、バグ修正の堎合は PATCH をバンプしおください。CHANGELOG.md で倉曎を文曞化しおください。


関連項目