Claude plugins bundle skills, agents, hooks, and MCP servers into one installable package. How to install, create, and compare plugins to .claude/ config.
A Claude Code plugin is a self-contained directory that bundles skills, agents, hooks, MCP servers, and LSP support into a single installable package you can share with a team or distribute to thousands of people with one command. It is the distribution layer that your .claude/ directory never had.
If you have been building skills and slash commands in your .claude/ directory, you already understand 80% of how plugins work. The remaining 20% is the manifest, the namespace, and the marketplace. This post covers all three. I am Tom. I run AI Architects. I have been working inside Claude Code since before skills had a name. Here is what plugins actually are and how to use them from day one.
A Claude plugin is a directory with a .claude-plugin/plugin.json manifest at its root and one or more component folders alongside it. The manifest tells Claude Code the plugin name, version, and description. The component folders hold the actual functionality: skills in skills/, agents in agents/, hooks in hooks/hooks.json, MCP server configs in .mcp.json, LSP server configs in .lsp.json, and background monitors in monitors/monitors.json.
When you install a plugin, Claude Code copies it to a local cache and makes every component inside it available to your session. Skills get namespaced as /plugin-name:skill-name. Agents appear in /agents. Hooks fire automatically on the events they listen for. MCP servers start in the background. All of it activates with a single install command and a /reload-plugins.
The mental model that makes this click: your .claude/ directory is a shoebox. A plugin is a labeled box with a lid. The contents are the same type of thing. The difference is that the labeled box can be versioned, shared via a marketplace, installed in seconds, and updated in one step.
Plugins work through three mechanisms that run in sequence when you install one.
Every plugin must have .claude-plugin/plugin.json at its root. The minimum viable manifest is four fields: name, description, version, and author. The name field is the namespace. If the name is commit-commands, every skill inside is reachable as /commit-commands:skill-name. The version field drives updates: Claude Code only delivers a new copy to installed users when this field changes.
Each type of functionality lives in its own folder at the plugin root. Skills live in skills/ and are namespaced as /plugin-name:skill-name. Agents live in agents/ and appear in /agents. Hooks live in hooks/hooks.json and fire on lifecycle events. MCP servers go in .mcp.json and start automatically when the plugin is active. LSP servers go in .lsp.json for real-time code intelligence. Background monitors live in monitors/monitors.json and watch logs, files, or external state. A settings.json at the plugin root applies default Claude Code settings when the plugin is enabled. Executables in bin/ get added to the Bash tool PATH. One common mistake: do not put these folders inside .claude-plugin/. Only plugin.json goes there.
A marketplace is a JSON catalog listing available plugins and their source URLs. Anthropic ships one official marketplace, claude-plugins-official, automatically available in every Claude Code install. Browse it in the Discover tab of /plugin, or view the full catalog at claude.com/plugins. There is also a community demo marketplace at anthropics/claude-code you can add manually.
The official claude-plugins-official marketplace ships plugins across four categories. Here are the standout ones based on the official Anthropic documentation.
These are the plugins most developers will install first. Each one pairs a language server binary with a Claude Code plugin that connects it to your sessions. Once active, Claude sees type errors immediately after every edit, can jump to definitions, find references, and trace call hierarchies without running a compiler. Available pairings: TypeScript (typescript-lsp), Python (pyright-lsp), Go (gopls-lsp), Rust (rust-analyzer-lsp), C/C++ (clangd-lsp), Java (jdtls-lsp), Swift (swift-lsp), Kotlin, Lua, PHP, and C#. Install with: /plugin install typescript-lsp@claude-plugins-official
These bundle pre-configured MCP servers so you get authenticated access to external services without manual setup. Available: GitHub, GitLab, Atlassian (Jira and Confluence), Figma, Vercel, Supabase, Firebase, Slack, Linear, Asana, Notion, and Sentry. Before these plugins existed, each integration required finding the right MCP server package, writing a config block in .mcp.json, passing the right environment variables, and verifying it worked. The plugin does all of that in one install.
commit-commands adds Git workflow skills for staging, committing, and opening PRs. pr-review-toolkit ships specialized agents for structured pull request review. agent-sdk-dev adds tools for building with the Claude Agent SDK. plugin-dev is a toolkit for building your own plugins.
explanatory-output-style and learning-output-style change how Claude responds. The first adds implementation reasoning to replies. The second turns sessions into an interactive learning mode. Both install as settings.json overrides the plugin activates automatically.
Installing a Claude plugin takes two commands. First, add a marketplace if you need one beyond the official default. Second, install the plugin.
The official Anthropic marketplace is pre-loaded, so for official plugins you can skip this step. For the community demo marketplace, run: /plugin marketplace add anthropics/claude-code. You can add marketplaces from any git URL, local directory, or hosted JSON file.
Run /plugin install github@claude-plugins-official (swap github for whichever plugin name you want). The interactive UI at /plugin lets you choose installation scope: user scope installs across all your projects, project scope adds to .claude/settings.json and is shared with everyone who clones the repo, local scope installs only for you in this repo without committing.
Run /reload-plugins after installing. Skills appear under their namespace. Agents show in /agents. Hooks start firing. MCP servers start in the background.
Creating a plugin is three steps: directory, manifest, components.
Create a plugin directory and a .claude-plugin/ folder inside it. Inside .claude-plugin/, create plugin.json with at minimum: name (the namespace prefix), description (shown in the marketplace), and version. The author field is optional but recommended.
Add a skill by creating skills/hello/SKILL.md at the plugin root with a description frontmatter field and a body that tells Claude what to do. Add a hook by creating hooks/hooks.json with the hooks object in the same format as the hooks section of Claude Code settings. The Claude Code skills guide covers the SKILL.md format in full.
Test locally with claude --plugin-dir ./my-plugin. This loads the plugin for that session only. Make changes and run /reload-plugins to pick them up. When you are ready to share, publish to a GitHub repo and create a marketplace.json in a .claude-plugin/ folder at the repo root. To submit to the official Anthropic marketplace, use the form at platform.claude.com/plugins/submit.
Claude plugins and MCP servers serve different purposes at different layers. An MCP server is a process that exposes tools to Claude over a standard protocol. Claude calls MCP tools the same way it calls built-in tools: read a file, search the web, query a database. A Claude plugin is a packaging format for distributing Claude Code extensions, and a plugin can include zero or more MCP servers in its .mcp.json. When you install the plugin, Claude Code starts those servers automatically. MCP is the transport layer. Plugins are the distribution layer. For a deeper look at MCP server setup, see the Claude Code MCP guide.
A skill is a single SKILL.md file that teaches Claude how to do one job. A plugin is a package that can contain many skills plus agents, hooks, and MCP configs. The relationship is container to contents. Standalone skills in .claude/skills/ use short names like /skill-name and are only available in that project (or globally from ~/.claude/skills/). Plugin skills travel with the plugin, get namespaced automatically, and update when the plugin updates. Use standalone skills for single-project work and plugins when you need sharing or cross-project reuse. The Claude Code skills guide and the best Claude Code skills roundup cover the standalone case in full.
Plugins are not perfect yet. Three things to know before you invest. First, the namespacing adds friction. Standalone skills fire with /skill-name. Plugin skills fire with /plugin-name:skill-name. The auto-trigger behavior still works for plugin skills, which cuts most of the manual invocation. But for skills you run explicitly, the namespace is a daily extra keystroke. Second, plugins are copied to a cache, not symlinked. Files your plugin references must live inside the plugin directory. Paths that point outside the plugin directory break on install. This matters if you are converting an existing .claude/ config that relies on project-specific files. Third, the official marketplace is curated, which means the selection is smaller than the number of skills floating around GitHub. The community catalog is growing but thin for now.
Yes, with a clear condition. They are worth it when you need to share or reuse across projects. For single-project personal workflows, your .claude/ directory is faster and simpler. For anything you want your team to have, or that you want to version and iterate on, plugins are the right format.
The code intelligence plugins alone are worth installing for any serious Claude Code user. Type errors surfacing in real time eliminates an entire debugging loop. The external integration plugins (GitHub, Jira, Figma) remove the manual MCP setup that used to take an hour. The Claude Code commands guide and the complete Claude Code guide cover the adjacent config areas.
Start with the official marketplace, install one code intelligence plugin for your primary language, and install commit-commands if you commit from inside Claude Code. That is a ten-minute setup that changes how the tool feels for the rest of the week.
Claude plugins are installable packages that extend Claude Code with skills, agents, hooks, MCP servers, LSP servers, and background monitors. Each plugin is a directory with a .claude-plugin/plugin.json manifest and one or more component folders. Install from a marketplace with /plugin install plugin-name@marketplace-name and activate with /reload-plugins.
Run /plugin install plugin-name@claude-plugins-official for official plugins. For community plugins, first add the marketplace with /plugin marketplace add owner/repo, then install with /plugin install plugin-name@marketplace-name. Run /reload-plugins after installing to activate all components.
The Claude plugin marketplace is a JSON catalog of plugins you can install into Claude Code. Anthropic maintains the official marketplace, browsable at claude.com/plugins, automatically available in every Claude Code install. You browse it via /plugin in the Discover tab. Anyone can create and host a marketplace from a GitHub repository.
MCP servers are processes that expose tools Claude can call via a standard protocol. Plugins are a packaging format for distributing Claude Code extensions, which may include MCP servers. A plugin can bundle an MCP server so it starts automatically on install. MCP is the transport layer. Plugins are the distribution layer.
Skills are individual SKILL.md files that teach Claude one job. Plugins are packages that can contain multiple skills plus agents, hooks, and MCP configs. Standalone skills use short slash command names. Plugin skills are namespaced as /plugin-name:skill-name. Use standalone skills for single-project work and plugins when you need sharing or cross-project reuse.
Create a directory, add .claude-plugin/plugin.json with name, description, and version fields, then add component folders at the plugin root: skills/, agents/, hooks/, .mcp.json. Test locally with claude --plugin-dir ./my-plugin. Distribute by publishing to GitHub and creating a marketplace.json. Submit to the official marketplace at platform.claude.com/plugins/submit.
Yes. Create the plugin structure, copy your existing commands/, skills/, and agents/ folders into it, migrate hooks from settings.json into hooks/hooks.json, and test with --plugin-dir. The component formats are identical between standalone and plugin configurations.
Plugins are the distribution layer. The underlying components are where the real power is. The Claude Code skills guide covers SKILL.md anatomy and auto-triggers. The Claude Code commands guide covers slash command patterns. The MCP guide covers connecting external tools. And the complete Claude Code guide covers how everything fits together from installation to production. If you want a structured path through all of it, the Blueprint walks you from install to your first production skill in 60 minutes.
Five interactive lessons. Install Claude Code, build your first automation, and deploy it live on the internet — all in under an hour. Free, no coding required.
Grab the Blueprint →