Create, validate, and publish Claude Code plugins and marketplaces. Use this skill when building plugins with commands, agents, hooks, MCP servers, or skills.
This skill provides comprehensive guidance for creating Claude Code plugins following the official Anthropic format (as of December 2025).
A Claude Code plugin can contain any combination of:
/mycommand)my-plugin/
āāā .claude-plugin/
ā āāā plugin.json # REQUIRED - Plugin manifest
āāā commands/ # Optional - Slash commands
ā āāā my-command.md
āāā agents/ # Optional - Subagents
ā āāā my-agent.md
āāā hooks/ # Optional - Hook definitions
ā āāā hooks.json
āāā skills/ # Optional - Bundled skills
ā āāā my-skill/
ā āāā SKILL.md
āāā mcp/ # Optional - MCP server configs
āāā README.md
The .claude-plugin/plugin.json file is required. Here's the complete schema:
{
"$schema": "https://anthropic.com/claude-code/plugin.schema.json",
"name": "my-plugin",
"version": "1.0.0",
"description": "Clear description of what this plugin does",
"author": {
"name": "Your Name",
"email": "you@example.com"
},
"license": "MIT",
"commands": [
{
"name": "mycommand",
"description": "What this command does",
"source": "./commands/my-command.md"
}
],
"agents": [
{
"name": "my-agent",
"description": "What this agent specializes in",
"source": "./agents/my-agent.md"
}
],
"hooks": {
"source": "./hooks/hooks.json"
},
"skills": [
"./skills/my-skill"
],
"mcp_servers": [
{
"name": "my-mcp",
"command": "npx",
"args": ["my-mcp-server"]
}
]
}
Commands are markdown files with YAML frontmatter:
---
name: deploy
description: Deploy the application to production
---
# Deploy Command
When the user runs /deploy, perform these steps:
1. Run the build process
2. Run all tests
3. Create a deployment package
4. Upload to the configured target
## Usage Examples
- `/deploy` - Deploy to default environment
- `/deploy staging` - Deploy to staging
- `/deploy production --skip-tests` - Deploy to production (use carefully)
Agents are specialized subagents with focused capabilities:
---
name: security-reviewer
description: Reviews code for security vulnerabilities
model: sonnet
tools:
- Read
- Grep
- Glob
---
# Security Review Agent
You are a security expert focused on identifying vulnerabilities.
## Your Responsibilities
1. Scan for OWASP Top 10 vulnerabilities
2. Identify hardcoded secrets
3. Check for input validation issues
4. Review authentication/authorization logic
## Output Format
Provide findings as:
- CRITICAL: Immediate security risk
- HIGH: Should fix before deployment
- MEDIUM: Fix in next sprint
- LOW: Consider improving
Skills use the official Agent Skills format:
---
name: my-skill
description: What this skill teaches Claude to do
---
# My Skill Name
## When to Use
Use this skill when the user needs help with [specific task].
## Instructions
1. Step one
2. Step two
3. Step three
## Examples
### Example 1: Basic Usage
[Concrete example]
### Example 2: Advanced Usage
[Another example]
## Best Practices
- Practice 1
- Practice 2
Hooks are defined in hooks.json:
{
"hooks": [
{
"event": "PreToolUse",
"matcher": "Edit|Write",
"command": ".claude-plugin/hooks/security-check.sh"
},
{
"event": "PostToolUse",
"matcher": "Bash",
"command": ".claude-plugin/hooks/log-commands.sh"
}
]
}
Hook events:
PreToolUse - Before a tool executesPostToolUse - After a tool completesSessionStart - When a Claude Code session beginsSessionEnd - When a session endsTo distribute multiple plugins, create a marketplace:
my-marketplace/
āāā .claude-plugin/
ā āāā marketplace.json
āāā plugins/
āāā plugin-a/
ā āāā .claude-plugin/
ā āāā plugin.json
āāā plugin-b/
āāā .claude-plugin/
āāā plugin.json
{
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
"name": "my-marketplace",
"version": "1.0.0",
"description": "Collection of productivity plugins",
"owner": {
"name": "Your Name",
"email": "you@example.com"
},
"plugins": [
{
"name": "plugin-a",
"description": "What plugin A does",
"source": "./plugins/plugin-a",
"category": "development",
"tags": ["productivity", "automation"]
},
{
"name": "plugin-b",
"description": "What plugin B does",
"source": "./plugins/plugin-b",
"category": "productivity"
}
]
}
Official categories:
development - Developer toolsproductivity - Workflow automationsecurity - Security toolslearning - Educational contenttesting - Test automationdatabase - Database toolsdesign - UI/UX toolsmonitoring - Observabilitydeployment - CI/CD tools# Install from local path
/plugin install /path/to/my-plugin
# Or add as local marketplace
/plugin marketplace add /path/to/my-marketplace
/plugin install my-plugin@my-marketplace
# List installed plugins
/plugin list
# Enable/disable
/plugin enable my-plugin
/plugin disable my-plugin
# Uninstall
/plugin uninstall my-plugin
Before publishing, verify:
plugin.json is valid JSONsource paths exist.claude-plugin/marketplace.json/plugin marketplace add your-username/your-repo
/plugin install plugin-name@your-repo
Popular community marketplaces:
Submit via:
The anthropics/claude-code repo contains official plugins. To add:
plugins/marketplace.jsonRun this to scaffold a new plugin:
mkdir my-plugin && cd my-plugin
mkdir -p .claude-plugin commands agents skills
cat > .claude-plugin/plugin.json << 'EOF'
{
"name": "my-plugin",
"version": "1.0.0",
"description": "My awesome Claude Code plugin",
"author": {
"name": "Your Name"
},
"commands": []
}
EOF
cat > README.md << 'EOF'
# My Plugin
Description of your plugin.
## Installation
/plugin install /path/to/my-plugin
## Usage
Describe how to use your plugin.
EOF
echo "Plugin scaffolded! Edit .claude-plugin/plugin.json to add commands/agents."