Plugins Reference
Complete technical reference for Claude Code plugin system.
Plugin Components
Commands
Location: commands/ directory
Agents
Location: agents/ directory
Skills
Location: skills/ directory with SKILL.md files
Hooks
Location: hooks/hooks.json or inline in plugin.json
Available Events: PreToolUse, PostToolUse, PermissionRequest, UserPromptSubmit, Stop, SessionStart, SessionEnd
MCP Servers
Location: .mcp.json or inline in plugin.json
LSP Servers
Location: .lsp.json or inline in plugin.json
Installation Scopes
| Scope | Settings File | Use Case |
|---|---|---|
user | ~/.claude/settings.json | Personal plugins (default) |
project | .claude/settings.json | Team plugins via git |
local | .claude/settings.local.json | Project-specific, gitignored |
managed | managed-settings.json | Enterprise managed (read-only) |
plugin.json Schema
{
"name": "plugin-name",
"version": "1.0.0",
"description": "Brief description",
"author": {"name": "Author"},
"commands": "./custom/commands/",
"agents": "./custom/agents/",
"skills": "./custom/skills/",
"hooks": "./hooks.json",
"mcpServers": "./.mcp.json",
"lspServers": "./.lsp.json"
}Directory Structure
my-plugin/
├── .claude-plugin/
│ └── plugin.json ← Only manifest here
├── commands/ ← At root level
├── agents/
├── skills/
├── hooks/
├── .mcp.json
└── .lsp.jsonCLI Commands
| Command | Description |
|---|---|
claude plugin install <plugin> | Install plugin |
claude plugin uninstall <plugin> | Remove plugin |
claude plugin enable <plugin> | Enable plugin |
claude plugin disable <plugin> | Disable plugin |
claude plugin update <plugin> | Update plugin |
Debugging
claude --debug