Skills, subagents, hooks and MCP servers all work on their own. A plugin is how you package several of them into one directory, so that someone else can install your whole setup with one command, and you can version it and update it in one place.
If all you have is one skill for yourself, you don’t need a plugin. Reach for one when you want to share a set of pieces with a team, or install a set someone else built.
What’s inside
A plugin is a folder with a manifest at .claude-plugin/plugin.json, which gives it a name, plus whichever components it needs:
skills/review/SKILL.md: a skill, run as/my-plugin:review.agents/reviewer.md: a subagent Claude can delegate to.hooks/hooks.json: hooks that fire on lifecycle events..mcp.json: MCP servers that connect while the plugin is enabled.
Plugins can carry more, including LSP servers, output styles and older-style commands/ files; the components page lists every type. Plugin skills are namespaced by the plugin’s name, so two plugins can both have a review skill without colliding.
Where they come from
Most plugins come from a marketplace: a repo or folder whose .claude-plugin/marketplace.json lists plugins and where to fetch each. It’s a catalog, not a hosted store. Claude Code adds Anthropic’s official marketplace the first time you start an interactive session.
Run /plugin to browse and install, or from your shell:
claude plugin install commit-commands@claude-plugins-officialclaude plugin marketplace add your-org/pluginsYou install at a scope: user (you, every project), project (everyone in the repo, through the committed .claude/settings.json), or local (you, this repo only).
The catch
An enabled plugin is part of every session, not only the ones where you use it. The name and description of each skill and agent Claude can invoke sit in context on every turn, its MCP servers run alongside the session, and its hooks fire at their events. And whatever a plugin runs, it runs as you. Read a plugin before you install it, and disable the ones you’ve stopped using.