← Back to all guides

Plugins and Marketplaces

─────────────────────────────────────────

Introduction

Throughout this series we’ve covered skills, agents, hooks, and MCP servers as individual components. Plugins are how you package all of these together into a single distributable unit, and marketplaces are how you discover and install them.

If you haven’t read the earlier guides: Installing Claude Code, Using the Claude Code TUI, CLAUDE.md and Settings, Skills, Agents, and MCP Servers, Hooks.

What is a Plugin?

A plugin is a directory that bundles any combination of skills, agents, commands, hooks, and MCP server configurations into a single package. It has a plugin.json manifest that describes what it contains and how it should be loaded.

1234567891011121314
my-plugin/
  plugin.json           # Manifest
  skills/
    my-skill/
      SKILL.md
      references/
      scripts/
  agents/
    my-agent.md
  commands/
    my-command.md
  hooks/
    hooks.json
  .mcp.json             # MCP server configs

The plugin.json declares the plugin’s metadata:

plugin.json
123456
{
  "name": "my-plugin",
  "description": "A plugin that does useful things",
  "version": "1.0.0",
  "author": "Your Name"
}

Claude Code auto-discovers the components inside the plugin based on the directory structure — skills in skills/, agents in agents/, commands in commands/, hooks in hooks/hooks.json, and MCP configs in .mcp.json.

The Official Marketplace

Anthropic maintains an official marketplace of curated plugins. You can browse it at the Claude Code GitHub repository where the marketplace manifest lives at .claude-plugin/marketplace.json.

The official marketplace includes plugins maintained by Anthropic and vetted community contributions. Official marketplace plugins auto-update by default, so you always get the latest versions.

Installing Plugins

There are two ways to install plugins: through the TUI or via settings.json.

Installing via the TUI

The easiest way. Use the /plugins slash command to browse and install from configured marketplaces:

Claude Code plugin browser

You can also install directly with the slash command:

1
/plugin install plugin-name@marketplace-name

Or from the CLI before starting a session:

bash
×
claude plugin install plugin-name --scope user

Claude Code plugin install confirmation

Managing Plugins in the TUI

Once installed, you can manage plugins with these commands:

123
/plugin disable plugin-name@marketplace-name
/plugin enable plugin-name@marketplace-name
/plugin uninstall plugin-name@marketplace-name

Claude Code plugin management

Installing via settings.json

For team setups or automated configuration, you can declare plugins directly in your settings files. This is useful when you want everyone on a project to use the same plugins.

In your project settings (.claude/settings.json):

.claude/settings.json
123456789101112
{
  "extraKnownMarketplaces": [
    "https://github.com/your-org/your-marketplace.git"
  ],
  "enabledPlugins": [
    "plugin-name@marketplace-name"
  ],
  "permissions": {
    "allow": ["Read(*)"],
    "deny": []
  }
}

The extraKnownMarketplaces field adds marketplace repositories beyond the official one. The enabledPlugins field pre-enables specific plugins for the project.

Installation Scopes

Plugins can be installed at different scopes, just like settings:

ScopeSettings fileUse case
User~/.claude/settings.jsonPersonal plugins, available across all projects (default)
Project.claude/settings.jsonTeam plugins, committed to the repo
Local.claude/settings.local.jsonPersonal project overrides, gitignored
ManagedSystem-level managed settingsOrganisation-wide plugins (read-only)

Install to a specific scope with the --scope flag:

bash
×
claude plugin install plugin-name --scope project
Team plugin setup
For team projects, install shared plugins at the project scope so they’re committed to the repo. Each team member gets the same plugins automatically. Use the local scope for any personal plugins you want on a specific project without affecting the team.

Plugin Sources

Marketplace plugins can come from several source types:

SourceFormatExample
Relative path./ prefixLocal plugins within the marketplace repo
GitHubrepo, ref, shaPinned to a specific repo and commit
Git URLURL ending .gitAny git repository
npmpackage, versionPublished npm packages
pippackage, versionPublished Python packages

For team setups where reproducibility matters, GitHub sources with pinned ref and sha ensure everyone gets the exact same version:

123456789
{
  "name": "my-plugin",
  "source": {
    "type": "github",
    "repo": "your-org/your-plugin",
    "ref": "v1.2.0",
    "sha": "abc123def456"
  }
}

Creating a Marketplace

If you want to distribute your own plugins — whether for your team or publicly — you create a marketplace. A marketplace is simply a git repository with a .claude-plugin/marketplace.json file at its root:

.claude-plugin/marketplace.json
123456789101112131415161718192021222324252627
{
  "name": "my-org-marketplace",
  "owner": {
    "name": "My Organisation"
  },
  "description": "Internal plugins for our engineering team",
  "plugins": [
    {
      "name": "our-deploy-plugin",
      "description": "Deployment workflows and safety checks",
      "source": {
        "type": "relative",
        "path": "./plugins/deploy"
      },
      "version": "1.0.0"
    },
    {
      "name": "our-testing-plugin",
      "description": "Testing conventions and fixtures",
      "source": {
        "type": "github",
        "repo": "my-org/testing-plugin",
        "ref": "main"
      }
    }
  ]
}

Push this to a git repo and anyone can add it as an extra marketplace in their settings.

Private marketplaces
Private repositories work as marketplaces too. Claude Code supports credential helpers and environment tokens (GITHUB_TOKEN, GITLAB_TOKEN, BITBUCKET_TOKEN) for authenticating to private repos. This makes it easy to distribute internal plugins within your organisation.

Auto-Updates

Plugin update behaviour depends on the source:

  • Official Anthropic marketplace plugins auto-update by default.
  • Third-party marketplace plugins do not auto-update by default.

You can control this with the CLAUDE_CODE_AUTO_UPDATE_PLUGINS environment variable. For pinned versions in team setups, use the ref and sha fields in the source to lock to a specific version.

Plugins are cached at ~/.claude/plugins/cache/, so they don’t need to be fetched on every session.

Local Plugin Development

When developing a plugin locally, you can test it without publishing to a marketplace:

bash
×
claude --plugin-dir ./my-plugin

This loads the plugin from the local directory for that session. You can iterate on the plugin’s skills, agents, hooks, and commands and see the changes immediately.

You can also validate your plugin’s structure:

bash
×
claude plugin validate

Cross-Tool Compatibility

Claude Code’s plugin format is also recognised by GitHub Copilot CLI, making it possible to build plugins that work across both tools. If your team uses a mix of Claude Code and Copilot, a single plugin repository can serve both.

Enterprise Plugin Management

For enterprise deployments, administrators can control which marketplaces and plugins are available:

  • strictKnownMarketplaces in managed settings restricts which marketplaces users can install from. Supports hostPattern for regex matching against allowed hosts.
  • enabledPlugins in managed settings pre-enables specific plugins organisation-wide.
  • allowManagedHooksOnly restricts hooks to only those defined in managed settings, preventing users from adding their own.

This gives security teams control over what code runs in Claude Code sessions while still letting engineering teams benefit from plugins.

Wrapping Up

Plugins tie together everything we’ve covered in this series — skills, agents, hooks, commands, and MCP servers — into distributable packages. Marketplaces make them discoverable and manageable.

For most people, the workflow is simple: browse the official marketplace, install plugins that look useful, and you’re done. For teams, creating a private marketplace lets you share internal tooling across the organisation. And for plugin authors, the format is straightforward enough that you can package and distribute your own workflows.

The next guide covers agent teams — coordinating multiple Claude Code instances working in parallel on complex tasks.

Agent Teams →