# 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.

- Page: https://tecyfy.com/coding-agents/claude-code/plugins
- Guide: Claude Code (https://tecyfy.com/coding-agents/claude-code), from Anthropic's documentation (https://code.claude.com/docs/en/overview)

A plugin is a folder that packages pieces of Claude Code that otherwise live on their own: [skills](/coding-agents/claude-code/skills), [subagents](/coding-agents/claude-code/subagents), [hooks](/coding-agents/claude-code/hooks) and [MCP servers](/coding-agents/claude-code/mcp). 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:

```text
/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:

```bash
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:

```text
/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:

```bash
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 Window](https://tecyfy.com/concepts/context-window) 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](/coding-agents/claude-code/permissions), so those do not limit them.

Before you install from a source you do not know:

1. Read the **Will install** list in `/plugin`.
2. 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 in `bin/`.
3. 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:

```text
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:

```json
{
  "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:

```bash
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

- [Plugins overview](https://code.claude.com/docs/en/plugins/overview)
- [Install and manage plugins](https://code.claude.com/docs/en/plugins/install)
- [Create a Claude Code plugin](https://code.claude.com/docs/en/plugins/create)
- [Plugin security and trust](https://code.claude.com/docs/en/plugins/security)
