Plugins — Shareable Extensions
Plugins are self-contained, versioned bundles of skills, agents, hooks, and MCP servers that can be shared across teams and distributed via marketplaces.
Plugins vs. Standalone Configuration
Section titled “Plugins vs. Standalone Configuration”| Approach | Skill names | Best for |
|---|---|---|
Standalone (.claude/ directory) | /hello | Personal, project-specific, quick experiments |
| Plugins (self-contained directories) | /plugin-name:hello | Sharing with team, distributing, versioned releases |
Start with standalone config in .claude/ for quick iteration, then convert to a plugin when ready to share.
Plugin Structure
Section titled “Plugin Structure”my-plugin/├── .claude-plugin/│ └── plugin.json # Plugin manifest (metadata)├── skills/│ └── hello/│ └── SKILL.md # Custom skills├── agents/│ └── reviewer.md # Custom subagents├── hooks/│ └── hooks.json # Event hooks├── .mcp.json # MCP server configs├── .lsp.json # LSP server configs (code intelligence)├── monitors/│ └── monitors.json # Background monitors├── bin/ # Executables added to PATH└── settings.json # Default settings when plugin is enabledImportant:
commands/,agents/,skills/,hooks/go at the plugin ROOT — NOT inside.claude-plugin/.
Quick Start: Create Your First Plugin
Section titled “Quick Start: Create Your First Plugin”1. Create the directory and manifest
Section titled “1. Create the directory and manifest”mkdir my-first-pluginmkdir my-first-plugin/.claude-plugin{ "name": "my-first-plugin", "description": "A greeting plugin to learn the basics", "version": "1.0.0", "author": { "name": "Your Name" }}| Field | Purpose |
|---|---|
name | Unique ID and skill namespace. Skills become /my-first-plugin:skill-name |
description | Shown in the plugin manager |
version | If set, updates only come when you bump this. If omitted, every git commit is a new version |
author | Optional attribution |
2. Add a skill
Section titled “2. Add a skill”mkdir -p my-first-plugin/skills/hello---description: Greet the user with a friendly message---
Greet the user named "$ARGUMENTS" warmly and ask how you can help today.3. Test locally
Section titled “3. Test locally”claude --plugin-dir ./my-first-pluginThen try:
/my-first-plugin:hello AlexInstall Plugins via CLI
Section titled “Install Plugins via CLI”# Initialize a plugin in your skills directory (auto-loaded)claude plugin init my-tool# Creates ~/.claude/skills/my-tool/ — loads automatically as my-tool@skills-dir
# Validate before submittingclaude plugin validatePlugin Components
Section titled “Plugin Components”Skills
Section titled “Skills”skills/ code-review/ SKILL.md # Claude invokes this automatically when relevantAgents
Section titled “Agents”agents/ security-reviewer.md # Custom subagent{ "hooks": { "PostToolUse": [{ "matcher": "Write|Edit", "hooks": [{"type": "command", "command": "npm run lint:fix"}] }] }}MCP Servers
Section titled “MCP Servers”{ "mcpServers": { "my-api": { "command": "node", "args": ["./bin/mcp-server.js"] } }}LSP Servers (Code Intelligence)
Section titled “LSP Servers (Code Intelligence)”{ "go": { "command": "gopls", "args": ["serve"], "extensionToLanguage": {".go": "go"} }}Background Monitors
Section titled “Background Monitors”[{ "name": "error-log", "command": "tail -F ./logs/error.log", "description": "Application error log"}]Each stdout line from command is delivered to Claude as a notification.
Default Settings
Section titled “Default Settings”// settings.json (at plugin root){ "agent": "security-reviewer" // Activate a plugin agent as main thread}Installing Plugins
Section titled “Installing Plugins”In VS Code
Section titled “In VS Code”Type /plugins → graphical plugin manager → browse and install.
From CLI
Section titled “From CLI”/plugin install typescript-lsp@claude-plugins-official/plugin install my-plugin@my-marketplaceLoad without installing (dev/test)
Section titled “Load without installing (dev/test)”claude --plugin-dir ./my-pluginclaude --plugin-dir ./my-plugin.zipclaude --plugin-url https://example.com/my-plugin.zip
# Multiple pluginsclaude --plugin-dir ./plugin-one --plugin-dir ./plugin-twoPlugin Scopes
Section titled “Plugin Scopes”When installing, choose:
- Personal (
~/.claude/skills/) — all your projects - Project (
.claude/skills/) — committed, shared with team - Local (project-level, not committed) — only you, this repo
Convert Existing Config to Plugin
Section titled “Convert Existing Config to Plugin”mkdir -p my-plugin/.claude-plugin
# Create plugin.json with name, description, version
# Copy existing filescp -r .claude/commands my-plugin/cp -r .claude/agents my-plugin/cp -r .claude/skills my-plugin/
# For hooks, create hooks/hooks.json from your settings.json hooks object
# Testclaude --plugin-dir ./my-plugin
# Remove originals to avoid duplicatesrm -rf .claude/commands .claude/agents .claude/skillsDistributing: Marketplaces
Section titled “Distributing: Marketplaces”A marketplace is a git repository with a marketplace.json listing available plugins.
Official marketplaces:
claude-plugins-official— curated by Anthropic (auto-registered on first launch)claude-community— third-party submissions:/plugin marketplace add anthropics/claude-plugins-community
Add your own:
/plugin marketplace add https://github.com/your-org/your-pluginsSubmit to community marketplace:
Reload Plugins
Section titled “Reload Plugins”After making changes to a plugin:
/reload-pluginsNo need to restart Claude Code.
Real-World Plugin Examples
Section titled “Real-World Plugin Examples”Team Conventions Plugin
Section titled “Team Conventions Plugin”Ship your org’s coding standards as a plugin:
skills/pr-review/SKILL.md— PR checklistskills/migration/SKILL.md— database migration patternshooks/hooks.json— auto-lint on file saveagents/security-reviewer.md— security-focused code reviewer
Platform Monitoring Plugin
Section titled “Platform Monitoring Plugin”.mcp.json— connect to your internal metrics APImonitors/monitors.json— tail error logs in backgroundskills/incident-response/SKILL.md— incident runbook
Code Intelligence Plugin
Section titled “Code Intelligence Plugin”.lsp.json— language server for your custom DSL- Enables go-to-definition, find-references, type errors
🧠 Quick Recall
Section titled “🧠 Quick Recall”- Trick: “A plugin is the shipping box for skills + hooks + MCP + agents.”
👨🏫 Teach It
Section titled “👨🏫 Teach It”- Show: install one from
claude-plugins-officiallive. - They’ll trip on: forgetting
/reload-pluginsafter installing.
Learning path: ⬅ 26-mcp-real-examples.md · Index · ➡ 28-agents-overview.md
Written by Fenil Patel