Your setup, installable
Over this course you've built skills, subagents, hooks and MCP configs. A plugin bundles them into one installable unit, so a teammate (or a thousand developers) can get your whole setup with one command. Plugin skills are namespaced (/my-plugin:review), so many plugins coexist without collisions.
Plugin structure
acme-dev-kit/
├── .claude-plugin/
│ └── plugin.json # manifest: name, version, description
├── skills/
│ └── release-notes/
│ └── SKILL.md # → /acme-dev-kit:release-notes
├── agents/
│ └── code-reviewer.md # subagent
├── hooks/
│ └── hooks.json # same shape as the settings "hooks" key
└── .mcp.json # MCP servers the plugin provides{
"name": "acme-dev-kit",
"version": "1.0.0",
"description": "Acme's shared Claude Code setup: release notes, a strict reviewer and auto-formatting."
}Test locally
claude --plugin-dir ./acme-dev-kitThis loads the plugin for one session, with no marketplace needed. Iterate until it works, then run /reload-plugins to pick up changes mid-session.
Marketplaces: distribution
A marketplace is a repo (or folder) with a .claude-plugin/marketplace.json that lists plugins:
{
"name": "acme-tools",
"owner": { "name": "Acme Platform Team" },
"plugins": [
{ "name": "acme-dev-kit", "source": "./plugins/acme-dev-kit", "description": "Shared dev setup" }
]
}Users add the marketplace, then install from it:
/plugin marketplace add acme/claude-plugins
/plugin install acme-dev-kit@acme-tools/plugin alone opens an interactive menu with Discover, Marketplaces and Installed tabs. The official Anthropic marketplace (claude-plugins-official) is available automatically, so /plugin install commit-commands@claude-plugins-official works out of the box.
Plugins can include hooks and MCP servers, which means they can run code on your machine. Install only from sources you trust, read what a plugin includes, and let your organization control allowed plugins through managed settings.
Plugin or standalone?
- ⋮⋮Create .claude-plugin/plugin.json with name, version and description
- ⋮⋮Move your skills, agents and hooks into the plugin folders
- ⋮⋮Test with claude --plugin-dir ./your-plugin
- ⋮⋮Add it to a marketplace.json in a shared repo
- ⋮⋮Teammates run /plugin marketplace add, then /plugin install
Check your understanding
What can a plugin bundle?
Where does a plugin's manifest live?
How do you test a plugin without publishing it?
How is a plugin skill named to avoid collisions?