Claude Code plugins are composite packages that bundle multiple capabilities together - skills, agents, commands, hooks, and MCP servers - into a single installable unit.
While individual artifacts like skills and commands are useful on their own, plugins let you package related functionality together for easier distribution and installation.
What can a plugin contain?
A plugin can include any combination of:
- Skills - Reusable capabilities Claude applies automatically
- Agents - Specialized assistants with custom prompts
- Commands - Custom slash commands you run explicitly
- Hooks - Event-driven automation (PreToolUse, PostToolUse, etc.)
- MCP Servers - External tool integrations via Model Context Protocol
Plugin structure
Every plugin has a plugin.json manifest that defines its contents:
{
"name": "my-plugin",
"description": "What this plugin does",
"version": "1.0.0",
"skills": ["./skills/"],
"agents": ["./agents/"],
"commands": ["./commands/"],
"hooks": ["./hooks/"]
}When to use a plugin
Use a plugin when:
- You have multiple related artifacts that work together
- You want to distribute a complete workflow or toolset
- You need hooks or MCP servers alongside skills/commands
- You want versioned releases of your extensions
For single-purpose extensions, individual skills, commands, or agents may be simpler.
Installing plugins
Install a plugin from a marketplace:
/plugin install plugin-nameOr add a marketplace first:
/plugin marketplace add owner/repo