Introduction to Claude Plugins
A plugin is a folder you install in Claude Code. It can add skills, MCP connectors, and slash commands — versioned and shareable as one unit.
What is a Claude plugin?
A plugin extends Claude Code beyond the defaults. After install, new slash commands and connectors are available in any session where the plugin is loaded.
| Without a plugin | With a plugin |
|---|---|
| Built-in tools only | Custom skills and commands on install |
| Manual MCP setup per project | Bundled connectors in the plugin folder |
| Config tied to one repo | Reusable across projects after install |
| Copy files to share workflows | Install via Git, path, or marketplace |
Three building blocks
Include one, two, or all three — only what your workflow needs.
| Block | Role |
|---|---|
| Skills | Markdown instruction files Claude invokes by name. Namespaced slash commands after install. |
| Connectors | MCP servers packaged in the plugin — GitHub, Notion, Slack, databases, and other services. |
| Commands | Lightweight slash scripts for single actions — lint, format, or run a fixed checklist. |
Plugin folder structure
The only required file is .claude-plugin/plugin.json. Everything else is optional.
plugin.json lives inside .claude-plugin/. Put skills/, agents/, and hooks/ at the plugin root — not inside .claude-plugin/.Build a minimal plugin
Three files add a /code-review-plugin:review skill to Claude Code.
Create the manifest
{
"name": "code-review-plugin",
"description": "Structured code reviews for TypeScript projects",
"version": "1.0.0",
"author": { "name": "Your Name" }
}Write the skill
--- description: Reviews a file for best practices, security, and code quality. --- Review the file at "$ARGUMENTS". Check for: 1. Input validation and security issues 2. Error handling completeness 3. Code readability and organisation 4. Obvious bugs or edge cases Format your response as [OK], [WARN], and [ERROR] findings.
Load and run
Point Claude Code at the folder, then call the namespaced skill on a file path.
Plugin lifecycle
- Create — write
plugin.jsonand skill files - Install —
claude --plugin-dir ./my-pluginor marketplace install - Use —
/plugin-name:skill-namewith arguments - Iterate — edit files, then
/reload-plugins - Share — commit to Git or publish to the plugin directory
Plugin vs standalone config
You can also put skills and commands directly in .claude/ without packaging a plugin. Use that for quick personal experiments; move to a plugin when you want to version and share.
| Topic | Standalone .claude/ | Plugin |
|---|---|---|
| File location | .claude/commands/ | plugin-root skills/ + .claude-plugin/ |
| Skill names | /review (no prefix) | /my-plugin:review (namespaced) |
| Scope | One project | Any project after install |
| Sharing | Copy files manually | /plugin install or --plugin-dir |
| Versioning | Not versioned | plugin.json + Git |
| Best for | Quick experiments | Team workflows you reuse |
.claude/commands/ while iterating. To share, move the files into a plugin directory and add plugin.json — that is the full migration.Before you continue
- Required file:
.claude-plugin/plugin.json— everything else is optional. - Plugins bundle skills, MCP connectors, and commands in any combination.
- Skills are namespaced:
/plugin-name:skill-name. - Install locally with
--plugin-dir, or share via Git or the marketplace. - Next: Claude Cowork — multi-step desktop tasks in Claude Desktop.
What's Next
Plugins covered. Up next: Claude Cowork — multi-step tasks inside Claude Desktop.