Claude Code plugins: install, manage and build your own
A Claude Code plugin is a folder that packages skills, subagents, hooks and MCP servers so they install together. Run /plugin in a session to browse Anthropic's official marketplace and install one, or /plugin install name@marketplace. A plugin can run code as you, so read what it installs before you add it.
Extend
Take this page into your AI
Open in ChatGPT (new tab)Open in Claude (new tab)A plugin is a folder that packages pieces of Claude Code that otherwise live on their own: skills, subagents, hooks and MCP servers. Installing it adds them all at once, and updating it updates them together.
You do not need a plugin to use any of those. A skill in ~/.claude/skills/ already works in every project. A plugin is for when you want someone else's whole setup in one command, or want to give yours to a team.
Install a plugin
In a session, run /plugin. The Discover tab lists what your marketplaces offer; type to search and press Enter on one to see its details. If you know the name, go straight to it:
/plugin install commit-commands@claude-plugins-official
The part after @ is the marketplace. claude-plugins-official is Anthropic's own, which Claude Code adds the first time you start it.
The details pane shows a Will install list: the commands, skills, subagents, hooks and servers the plugin adds. For plugins in the official marketplace it also shows a context cost, what the plugin adds to every message you send. Then choose a scope:
| Scope | Enabled for | Recorded in |
|---|---|---|
| User | You, in every project on this machine | ~/.claude/settings.json |
| Project | Everyone in this repository | .claude/settings.json, which you commit |
| Local | You, in this repository only | .claude/settings.local.json |
A project-scope plugin is turned on for your teammates, but each of them still installs it on their own machine. Plugin commands carry the plugin's name, such as /commit-commands:commit, so 2 plugins can each have a command of the same name.
From your shell, for example in a setup script:
claude plugin install commit-commands@claude-plugins-official --scope project
Add a marketplace
A marketplace is only a catalog: a .claude-plugin/marketplace.json file listing plugins and where to fetch each one. To install from one that is not Anthropic's, add it once:
/plugin marketplace add your-org/claude-plugins
That form is a GitHub repository. You can also give a full Git address, a local folder (starting with ./), or the https:// address of a marketplace.json. Add #v1.2.0 to a repository to pin a branch or tag. Private repositories work with the Git sign-in already on your machine.
Manage, update and remove
The Installed tab in /plugin lists your plugins. Press Space to turn one on or off without removing it, or Enter for its details, where you can update or uninstall it. A Not used recently group shows the ones you could remove. The same actions work from your shell:
claude plugin disable commit-commands@claude-plugins-official
claude plugin enable commit-commands@claude-plugins-official
claude plugin uninstall commit-commands@claude-plugins-official
Plugins from Anthropic's official marketplace update on their own; third-party marketplaces do not unless you turn auto-update on in the Marketplaces tab. A session keeps the versions it started with: run /reload-plugins to load an update now, or it applies in the next session.
What a plugin costs
An enabled plugin is part of every session, not only the ones where you use it. The name and description of each of its skills and subagents sit in Claude's Context WindowContext WindowEverything a model can see at once while it writes an answer, counted in tokens. When the window is full, something has to be left out. on every turn, its MCP servers start with each session, and its hooks run at their events. A few large plugins can take a noticeable share of every request.
Run claude plugin details with a plugin's name in your shell: its Always-on line is the tokens the plugin adds to every session. Disable what you are not using.
Check a plugin before you trust it
A plugin can run code on your machine with your user permissions. Its hooks and background commands are shell commands, its local MCP servers are programs Claude Code starts, and its bin/ folder is added to the path of Claude's shell. Hooks and servers run outside Claude's permission rules and sandbox, so those do not limit them.
Before you install from a source you do not know:
- Read the Will install list in
/plugin. - Open the plugin's source and read
hooks/hooks.json(the command each hook runs),.mcp.json(each server's command or address) and everything inbin/. - Remember that auto-update can change those files later.
The marketplace names reserved for Anthropic, such as claude-plugins-official, are accepted only from Anthropic's own GitHub repositories, so a stranger cannot pass one off as Anthropic's. Every other marketplace is third-party, and the name says who runs the catalog, not what each plugin does. To remove one, run claude plugin uninstall with its name.
Build your own
A plugin is a folder with a manifest and the parts you want to share:
team-tools/
.claude-plugin/
plugin.json # the manifest: name, description, version
skills/
release-notes/
SKILL.md # becomes /team-tools:release-notes
agents/
test-runner.md # a subagent
hooks/
hooks.json # { "hooks": { ... } }, the same shape as in settings
.mcp.json # MCP servers
The manifest needs little more than a name:
{
"name": "team-tools",
"description": "Our release notes skill, test runner and formatter hook",
"version": "1.0.0"
}
Only plugin.json goes inside .claude-plugin/; everything else sits beside that folder, or it does not load. Check it and try it without installing anything:
claude plugin validate ./team-tools
claude --plugin-dir ./team-tools
After editing the files, run /reload-plugins in that session to pick up the change. To share it, send the folder to a few people, or list it in a marketplace.json in a repository your team adds as a marketplace, so they install it by name and receive your updates.
Questions
- How do I install a plugin in Claude Code?
- Run /plugin in a session and pick one from the Discover tab, or run /plugin install followed by the plugin and its marketplace, such as /plugin install commit-commands@claude-plugins-official. Read the Will install list, choose who it is for (you everywhere, the whole project, or you in this project), and install.
- What is a plugin marketplace?
- A catalog that lists plugins and where to fetch each one, kept as a .claude-plugin/marketplace.json file in a repository or folder. Claude Code adds Anthropic's official marketplace the first time you start it. Add others with /plugin marketplace add and a GitHub owner/repo, a Git address, a folder or a URL.
- Do I need a plugin for a skill or hook?
- No. Skills, subagents, hooks and MCP servers all work on their own in .claude/ or ~/.claude/. Make or install a plugin when you want several of them as one unit that installs with one command and updates together, such as a setup shared across a team's repositories.
- Do plugins slow Claude Code down or use up context?
- An enabled plugin is part of every session. The names and descriptions of its skills and agents sit in context on every turn, its MCP servers start with the session and its hooks run at their events. Run claude plugin details and a plugin's name to see how many tokens it adds, and disable plugins you no longer use.
- Are Claude Code plugins safe?
- A plugin can run code on your machine with your permissions through its hooks, servers and programs, and its hooks run outside Claude's permission rules and sandbox. Install from sources you trust, read the hooks and servers it adds before you install, and remember that auto-update can change the files later.
Sources