Scaffolds, manages, and publishes Claude Code plugins by generating directory structures, creating/updating plugin.json and marketplace.json manifests, and handling version bumps.
Say it in your own words; the assistant finds this recipe by itself. Examples:
Use this skill when you need to create a new plugin structure for a Claude Code marketplace, add specific components like commands or agents to an existing plugin, or update version numbers in both plugin and marketplace manifests. It is also appropriate for setting up local testing environments or preparing plugins for publication.
Build and manage Claude Code plugins with correct structure, manifests, and marketplace integration. Includes workflows, automation scripts, and reference docs.
Use create_plugin.py to generate plugin structure:
python scripts/create_plugin.py plugin-name \
--marketplace-root /path/to/marketplace \
--author-name "Your Name" \
--author-email "your.email@example.com" \
--description "Plugin description" \
--keywords "keyword1,keyword2" \
--category "productivity"
This automatically:
plugin.json manifestmarketplace.jsonUse bump_version.py to update versions in both manifests:
python scripts/bump_version.py plugin-name major|minor|patch \
--marketplace-root /path/to/marketplace
Semantic versioning:
Manual approach (if not using script):
mkdir -p plugins/plugin-name/.claude-plugin
mkdir -p plugins/plugin-name/commands
mkdir -p plugins/plugin-name/skills
File: plugins/plugin-name/.claude-plugin/plugin.json
{
"name": "plugin-name",
"version": "0.1.0",
"description": "Plugin description",
"author": {
"name": "Your Name",
"email": "your.email@example.com"
},
"keywords": ["keyword1", "keyword2"]
}
Update .claude-plugin/marketplace.json:
{
"name": "plugin-name",
"source": "./plugins/plugin-name",
"description": "Plugin description",
"version": "0.1.0",
"keywords": ["keyword1", "keyword2"],
"category": "productivity"
}
Create in respective directories:
| Component | Location | Format |
|---|---|---|
| Commands | commands/ |
Markdown with frontmatter |
| Skills | skills/<name>/ |
Directory with SKILL.md |
| Agents | agents/ |
Markdown definitions |
| Hooks | hooks/hooks.json |
Event handlers |
| MCP Servers | .mcp.json |
External integrations |
# Add marketplace
/plugin marketplace add /path/to/marketplace-root
# Install plugin
/plugin install plugin-name@marketplace-name
# After changes: reinstall
/plugin uninstall plugin-name@marketplace-name
/plugin install plugin-name@marketplace-name
For framework-specific guidance (React, Vue, etc.):
plugins/framework-name/
├── .claude-plugin/plugin.json
├── skills/
│ └── framework-name/
│ ├── SKILL.md
│ └── references/
├── commands/
│ └── prime/
│ ├── components.md
│ └── framework.md
└── README.md
For tools and commands:
plugins/utility-name/
├── .claude-plugin/plugin.json
├── commands/
│ ├── action1.md
│ └── action2.md
└── README.md
For domain-specific knowledge:
plugins/domain-name/
├── .claude-plugin/plugin.json
├── skills/
│ └── domain-name/
│ ├── SKILL.md
│ ├── references/
│ └── scripts/
└── README.md
Subdirectory-based namespacing with : separator:
commands/namespace/command.md → /namespace:commandcommands/simple.md → /simpleExamples:
commands/prime/vue.md → /prime:vuecommands/docs/generate.md → /docs:generateImportant: Update version in BOTH locations:
plugins/<name>/.claude-plugin/plugin.json.claude-plugin/marketplace.jsonUse bump_version.py to automate.
Use conventional commits:
git commit -m "feat: add new plugin"
git commit -m "fix: correct plugin manifest"
git commit -m "docs: update plugin README"
git commit -m "feat!: breaking change"
Detailed documentation included:
| Reference | Content |
|---|---|
references/plugin-structure.md |
Directory structure, manifest schema, components |
references/marketplace-schema.md |
Marketplace format, plugin entries, distribution |
references/workflows.md |
Step-by-step workflows, patterns, publishing |
| Script | Purpose |
|---|---|
scripts/create_plugin.py |
Scaffold new plugin |
scripts/bump_version.py |
Update versions |
LICENSEREADME.mdSKILL.mdreferences/marketplace-schema.mdreferences/plugin-structure.mdreferences/workflows.mdscripts/bump_version.pyscripts/create_plugin.pyVendored from softaworks/agent-toolkit, commit 3027f20f3181, path skills/plugin-forge, licence MIT. The upstream licence file ships inside the skill.