Create and manage Claude Code plugins with proper structure, manifests, and marketplace integration. Use when creating plugins for a marketplace, adding plugin components (commands, agents, hooks), bumping plugin versions, or working with plugin.json/marketplace.json manifests.
A comprehensive skill for building and managing Claude Code plugins with proper structure, manifests, and marketplace integration.
Plugin Forge streamlines the entire lifecycle of Claude Code plugin development. It provides automation scripts, reference documentation, and structured workflows to help you create professional-quality plugins that integrate seamlessly with the Claude Code plugin ecosystem.
Whether you're building a framework-specific plugin for React or Vue, a utility plugin for common tasks, or a domain-specific knowledge plugin, Plugin Forge guides you through the correct structure and patterns.
Use this skill when you need to:
Trigger phrases:
create_plugin.py script generates the correct directory hierarchy with all required filesplugin.json with metadata and updates marketplace.json with the plugin entryplugin.jsonplugin.json and marketplace.json| Script | Purpose |
|--------|---------|
| create_plugin.py | Scaffold new plugins with complete structure and manifests |
| bump_version.py | Update versions across all manifest files consistently |
| Document | Content |
|----------|---------|
| plugin-structure.md | Directory hierarchy, manifest schema, component types |
| marketplace-schema.md | Marketplace format, plugin entries, source specifications |
| workflows.md | Development workflows, testing patterns, publishing guide |
| 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 |
python scripts/create_plugin.py my-awesome-plugin \
--marketplace-root /path/to/marketplace \
--author-name "Your Name" \
--author-email "you@example.com" \
--description "A plugin that does awesome things" \
--keywords "awesome,utility,productivity" \
--category "productivity"
This creates:
plugins/my-awesome-plugin/
├── .claude-plugin/
│ └── plugin.json
├── commands/
├── skills/
└── README.md
# Patch bump (bug fixes): 1.0.0 → 1.0.1
python scripts/bump_version.py my-plugin patch --marketplace-root /path/to/marketplace
# Minor bump (new features): 1.0.0 → 1.1.0
python scripts/bump_version.py my-plugin minor --marketplace-root /path/to/marketplace
# Major bump (breaking changes): 1.0.0 → 2.0.0
python scripts/bump_version.py my-plugin major --marketplace-root /path/to/marketplace
# Add your marketplace
/plugin marketplace add /path/to/marketplace-root
# Install the plugin
/plugin install my-plugin@marketplace-name
# After making changes, reinstall
/plugin uninstall my-plugin@marketplace-name
/plugin install my-plugin@marketplace-name
Create commands/docs/generate.md to get /docs:generate command:
---
description: Generate documentation for the current project
---
# Generate Documentation
Instructions for the command...
.claude-plugin/marketplace.json must exist before creating plugins✅ Created plugin manifest: plugins/my-plugin/.claude-plugin/plugin.json
✅ Created README: plugins/my-plugin/README.md
✅ Updated marketplace manifest: .claude-plugin/marketplace.json
🎉 Plugin 'my-plugin' created successfully!
Next steps:
1. Add commands to: plugins/my-plugin/commands
2. Add skills to: plugins/my-plugin/skills
3. Test with: /plugin install my-plugin@marketplace-name
✅ Updated plugin.json: 1.0.0 → 1.1.0
✅ Updated marketplace.json: 1.0.0 → 1.1.0
🎉 Version bumped successfully: 1.0.0 → 1.1.0
kebab-case (e.g., vue-components, api-testing)kebab-case.md (e.g., generate-docs.md)commands/prime/vue.md becomes /prime:vue)plugin.json and marketplace.json - use bump_version.py to automate this.claude-plugin/plugin.json (required location).claude-plugin/${CLAUDE_PLUGIN_ROOT} for dynamic path resolution in hooks and MCP configsUse conventional commits for clear history:
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"
plugin-name/
├── .claude-plugin/
│ └── plugin.json # Required: Plugin metadata manifest
├── commands/ # Optional: Custom slash commands
│ ├── simple.md # → /simple
│ └── namespace/
│ └── action.md # → /namespace:action
├── agents/ # Optional: Agent definitions
├── skills/ # Optional: Agent Skills
│ └── skill-name/
│ ├── SKILL.md # Required for each skill
│ ├── scripts/ # Optional: Executable code
│ ├── references/ # Optional: Documentation
│ └── assets/ # Optional: Output files
├── hooks/ # Optional: Event handlers
│ └── hooks.json
├── .mcp.json # Optional: MCP server integrations
└── README.md # Recommended: Plugin documentation
The create_plugin.py script will not overwrite existing plugins. Either:
When using bump_version.py, ensure:
.claude-plugin/marketplace.jsonClaude Code caches plugin files. After reinstalling:
/plugin listEnsure you're running scripts from the correct directory or provide the full path with --marketplace-root.
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer