# What are Claude Code plugins and plugin marketplaces?

> A Claude Code plugin is how you hand someone a whole setup in one install: skills, agents, hooks, MCP servers and other parts that arrive and load together. A plugin marketplace is a catalog in which each entry names a plugin and where to fetch it. You add a marketplace once, and from then on you install any plugin in it by name.

Mindket editors · Published 2026-11-01 · Updated 2026-11-03 · https://mindket.com/blog/claude-code-plugins

## In short

- Read the hooks and MCP servers in a plugin's details pane before you confirm the install, official marketplace or not.
- Test your own plugin with `--plugin-dir`, then validate it before you push.
- Before you remove a marketplace, check the Installed tab for plugins that came from it.

## What goes in a plugin, and whether you need one

In a Claude Code session, `/plugin install commit-commands@claude-plugins-official` installs a plugin from Anthropic's official marketplace. The name before the @ is the plugin, and the one after it is the marketplace.

Build your own when pieces have to be installed together, such as a team's review skill and the formatting hook that goes with it, so everyone gets both in one step. We wouldn't wrap a single personal skill, because a [skill saved](https://mindket.com/blog/how-to-create-agent-skill) in `~/.claude/skills/` already shows up in every project on your machine.

A plugin can carry [any mix](https://code.claude.com/docs/en/plugins/components) of these:

- Skills, which load when they're relevant.
- Subagents, which take the tasks Claude delegates.
- Hooks, which run at set points in Claude Code's lifecycle.
- MCP servers, which connect while the plugin is enabled.
- Language servers, monitors, output styles, color themes and command-line tools.

**A loose skill or a plugin**

| | A skill in ~/.claude/skills/ | A plugin |
| --- | --- | --- |
| Available in every project on your machine | ✓ Yes | ✓ Yes |
| Several skills, subagents, hooks or MCP servers as one unit | ✗ No | ✓ Yes |
| Updates from a marketplace | ✗ No | ✓ Yes |
| Skill names carry a prefix, as in /my-plugin:review | ✗ No | ✓ Yes |

Source: [Claude Code docs: Plugins overview](https://code.claude.com/docs/en/plugins) (read 2026-11-03)

> A plugin's code runs with your user privileges, even from the official marketplace. Once enabled, it's part of every session, not only the ones where you use it. The name and description of each skill, agent and command Claude can invoke on its own sit in context on every turn. Its MCP servers run beside each session, and its hooks fire on their events.

## Plugin marketplaces: a catalog you can host yourself

Anthropic opened plugins to every Claude Code user as a public beta on October 9, 2025, and [its announcement](https://claude.com/blog/claude-code-plugins) said anyone can host a marketplace. A git repository, GitHub repository or URL with a properly formatted `marketplace.json` is enough.

Claude Code adds `claude-plugins-official` the first time you start an interactive terminal session. You add any other marketplace once with `/plugin marketplace add`, followed by a GitHub `owner/repo`, a git URL, a local path or the https address of a `marketplace.json`. Start a local path with `./` or `../`, because Claude Code reads a bare `name/name` as a GitHub repository.

Official names such as `claude-plugins-official` and community names such as `claude-community` are accepted only for marketplaces sourced from `github.com/anthropics/` repositories. Everything else is third-party, your company's marketplace included.

Your own marketplace is the one file below, `.claude-plugin/marketplace.json`, with a `name`, an `owner` and a `plugins` array at the top. [Anthropic's marketplace guide](https://code.claude.com/docs/en/plugins/create-marketplace) also requires a `name` and a `source` in every plugin entry. A relative source starts from the marketplace root, the folder that holds `.claude-plugin/`. An entry can also point elsewhere, such as another GitHub repository or an npm package.

The entry name is the install id, while the `name` in the plugin's `plugin.json` becomes the prefix on its skills. If they differ, installing by the manifest name fails with a not-found error. Make them equal in the first commit, and from then on rename both or neither. Run `claude plugin validate ./my-marketplace` before you push: it checks the JSON, the required fields and each plugin stored inside.

````json
{
  "name": "my-marketplace",
  "description": "Plugins for my team",
  "owner": {
    "name": "Your Name"
  },
  "plugins": [
    {
      "name": "my-first-plugin",
      "source": "./plugins/my-first-plugin",
      "description": "A greeting plugin to learn the basics"
    }
  ]
}

````

[![Claude (@claudeai) on X, 9 October 2025, replying to a post that shows /plugin marketplace add anthropics/claude-code. Anyone can host a marketplace or make a plugin. All you need is a git repo with a .claude-plugin/marketplace.json file.](https://mindket.com/blog/shots/x-claudeai-plugin-marketplaces.webp?v=b1dd143dedeb)](https://x.com/claudeai/status/1976332887722164307)

Claude on X, 9 October 2025

> X's own embed of the post, captured on 3 November 2026 with the time in US Pacific time and the link preview left out. Select it to open the post on X.

## Install and manage plugins with /plugin

Before it installs anything, `/plugin install` [opens the plugin's details](https://code.claude.com/docs/en/plugins/install): the commands, agents, skills, hooks and MCP and LSP servers it will add. For a plugin in the official marketplace, the pane also estimates the context it costs, per turn and once its skills load. Run `/plugin` with no name and you get a panel of everything your marketplaces list.

Pick user scope to have a plugin on in every project: it goes into `enabledPlugins` in `~/.claude/settings.json`. Project scope writes the committed `.claude/settings.json`, and local scope writes `.claude/settings.local.json`. When one plugin is set at several scopes, local beats project and project beats user.

For a team, project scope puts the entry in a file everyone pulls. It switches the plugin on for each collaborator but downloads nothing, so everyone still installs it once with `--scope project`.

Type `/` afterwards and look for skills like `/commit-commands:commit`. The Installed tab of `/plugin` lists the plugin with its scope, and if it failed to load, the Errors tab says why.

Plugins from `claude-plugins-official` update automatically. Community, third-party and local marketplaces start with auto-update off, and you switch it on per marketplace in the Marketplaces tab. Removing a marketplace uninstalls every plugin you installed from it. A running session keeps the versions it loaded until you run `/reload-plugins`.

````bash
# Inside a Claude Code session
/plugin
/plugin marketplace add your-org/plugins
/plugin install commit-commands@claude-plugins-official
/reload-plugins

# From your shell, for setup scripts
claude plugin install formatter@your-org --scope project
claude plugin list
claude plugin disable formatter@your-org
claude plugin update formatter@your-org

````

**Where an installed plugin shows up**

1. Settings. Records the marketplaces you added and which plugins are enabled.
2. Disk. `~/.claude/plugins/` holds what Claude Code fetched and installed.
3. Session. Plugins load at startup, or when you run `/reload-plugins`.

Source: [Claude Code docs: Plugins overview](https://code.claude.com/docs/en/plugins) (read 2026-11-03)

## Build a plugin: layout, manifest and a first run

A plugin starts with its manifest at `.claude-plugin/plugin.json`, and the [only required field](https://code.claude.com/docs/en/plugins/create) is `name`. It identifies the plugin and becomes the prefix on every skill and agent, and it can't hold spaces. Users see `description` in `/plugin`. An optional `version` keeps them on that version until you change it.

Put nothing else in `.claude-plugin/`. Components saved there don't load, and Anthropic's troubleshooting names a `skills/` folder inside it as one cause of a plugin that loads with its skills missing.

````json
{
  "name": "my-first-plugin",
  "description": "A greeting plugin to learn the basics",
  "version": "1.0.0",
  "author": {
    "name": "Your Name"
  }
}

````

1. Create the plugin folder and its manifest folder with `mkdir -p my-first-plugin/.claude-plugin`.
2. Save the manifest above as `my-first-plugin/.claude-plugin/plugin.json`.
3. Add a skill at `my-first-plugin/skills/hello/SKILL.md`, with a name and a description in its frontmatter.
4. Run `claude plugin validate ./my-first-plugin`. Anthropic's guide shows `✔ Validation passed` on success, or one line for each field to fix.
5. Start a session with `claude --plugin-dir ./my-first-plugin` and run `/my-first-plugin:hello`. The flag loads the plugin for that session only and writes nothing to your settings. After an edit, `/reload-plugins` picks up the change.

> Already keep skills, agents or hooks under `.claude/`? Copy those folders into the plugin root, and move the `hooks` object from your settings into `hooks/hooks.json`. Both copies load until you delete the originals. Skills won't collide, since the plugin's carry a prefix, but a hook in both places runs twice.

## Can you get a plugin from Mindket?

Not through `/plugin`. Mindket is an independent store, not affiliated with Anthropic, and it serves no `marketplace.json`, so `/plugin marketplace add` has nothing to read there. Its [skills page](https://mindket.com/skills) won't help either: those are ready-made prompts you paste into an AI chat.

A [kit](https://mindket.com/kits) laid out like a plugin does load, though. What you download is a zip of plain text files, such as skills, rules, prompts and templates, and its page shows the README and file list. Point `claude --plugin-dir` at the zip or at the folder you unzip it into, and it loads for one session with its hooks firing like any plugin's.

A kit's zip keeps its files at the top level, with no folder named after the kit around them. Nothing in it runs by itself, and a moderator reads any kit with scripts in it before buyers get it.

> We read Anthropic's Claude Code pages on November 2 and 3, 2026 and didn't install these plugins ourselves, so the commands and flags are as documented on those days.

## Reference: where each part goes in a plugin

Claude Code ignores a CLAUDE.md at the plugin root, so any instructions belong in a skill.

Subagents go in `agents/`, one Markdown file each, written like the standalone ones in our [Claude Code subagents](https://mindket.com/blog/claude-code-subagents) guide with one difference. Inside a plugin, an agent's `hooks`, `mcpServers` and `permissionMode` fields [are ignored](https://code.claude.com/docs/en/plugins/components), so hooks and servers are declared at the plugin level.

| Location | What goes there |
| --- | --- |
| `.claude-plugin/plugin.json` | The manifest, and nothing else in that folder |
| `skills/` | One folder per skill, each with a SKILL.md |
| `commands/` | Flat Markdown files, the older form of skills |
| `agents/` | One Markdown file per subagent |
| `hooks/hooks.json` | Hook configuration under a top-level "hooks" key |
| `.mcp.json` | MCP server definitions, shown in `/mcp` as `plugin:my-plugin:db` |
| `.lsp.json` | Language servers for diagnostics and code navigation |
| `bin/` | Executables on the PATH of Claude's shell while the plugin is enabled |

## Frequently asked questions

### Is a Claude Code plugin the same as the Claude Code extension for VS Code or JetBrains?

The VS Code extension and the JetBrains plugin run Claude Code inside those editors. The plugins on this page are bundles that Claude Code itself loads, wherever you run it.

### Is a plugin marketplace the same as Claude Marketplace?

Claude Marketplace is a website, claude.com/marketplace, for browsing plugins, connectors and partner products, and `/plugin marketplace add` can't add it. A plugin you find there has a Claude Code button that copies its install command for your shell.

### Do plugins work in a cloud session or on claude.ai?

Only in part. A cloud session, including claude.ai/code in the browser, doesn't load the plugins in your local settings. The plugin format itself installs on claude.ai and in Cowork, though a different set of components loads there, and a plugin with a top-level `bin/` folder won't install there at all.

### Can a plugin load in every session without a marketplace?

Yes, by keeping it in your skills folder instead of installing it. Run `claude plugin init my-tool` and it writes a starter plugin to `~/.claude/skills/my-tool/`, which loads with no flag and no install step, under the id `my-tool@skills-dir`. Its root SKILL.md runs as `/my-tool`, while skills in its `skills/` folder take the `/my-tool:` prefix.

### How do I stop a plugin without uninstalling it?

Disable it: press Space on the Installed tab of `/plugin`, or run `claude plugin disable` in your shell. A monitor the plugin already started keeps running until the session ends, though. To pick what to turn off, run `claude plugin details`, which shows how many tokens a plugin adds to every session.

## Sources

- [Claude Code docs: Plugins overview](https://code.claude.com/docs/en/plugins) (read 2026-11-03)
- [Claude Code docs: Create a Claude Code plugin](https://code.claude.com/docs/en/plugins/create) (read 2026-11-02)
- [Claude Code docs: Add components to a plugin](https://code.claude.com/docs/en/plugins/components) (read 2026-11-02)
- [Claude Code docs: Install and manage plugins](https://code.claude.com/docs/en/plugins/install) (read 2026-11-02)
- [Claude Code docs: Create a marketplace](https://code.claude.com/docs/en/plugins/create-marketplace) (read 2026-11-02)
- [Claude blog: Customize Claude Code with plugins](https://claude.com/blog/claude-code-plugins) (read 2026-11-02)

[Browse kits](https://mindket.com/kits)
