plugin-forge — Claude Code skill for building plugins
Skill for creating and managing Claude Code plugins with proper structure, manifests, and marketplace integration. Use it when building plugins for distribution or setting up plugin components like commands and hooks.
npx skills add softaworks/agent-toolkit --skill plugin-forge -a claude-codeWhat plugin-forge does
plugin-forge scaffolds a plugin from the ground up: generates folder structure, creates plugin.json and marketplace.json, registers the plugin in the marketplace. The skill provides create_plugin.py for initial setup and bump_version.py for semantic versioning. It includes patterns for framework-specific plugins (React, Vue), utility plugins, and domain plugins.
Typical workflow: run the creation script, add components (commands in commands/, skills in skills/, agents, hooks in hooks.json), test locally with /plugin marketplace add and /plugin install, bump versions using bump_version.py. Command paths map to namespaced calls: commands/namespace/command.md becomes /namespace:command.
Requires Python on your development machine. Versions must be kept in sync across plugin.json and marketplace.json or the plugin will not install correctly.
What it helps with
- scaffold a plugin with correct directory structure for marketplace distribution
- add commands, skills, and hooks to an existing plugin
- update plugin version following semantic versioning rules
- register a plugin in the marketplace
- test a plugin locally before publishing
Example prompts for the agent
- Create a new react-helpers plugin for the marketplace with author 'John Doe' and tags 'react,components'
- Bump the major version for the utils plugin in the marketplace
- Add a docs:generate command to the commands/docs directory
How to install plugin-forge
1Skills CLI (Vercel)
npx skills add softaworks/agent-toolkit --skill plugin-forge -a claude-code2Manually: put the files in place
~/.claude/skills/plugin-forge/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/plugin-forge/
1Skills CLI (Vercel)
npx skills add softaworks/agent-toolkit --skill plugin-forge -a codex2Manually: put the files in place
.agents/skills/plugin-forge/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add softaworks/agent-toolkit --skill plugin-forge -a cursor2Manually: put the files in place
.cursor/skills/plugin-forge/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install softaworks/agent-toolkit plugin-forge2Manually: put the files in place
.github/skills/plugin-forge/SKILL.md1Skills CLI (Vercel)
npx skills add softaworks/agent-toolkit --skill plugin-forge -a gemini-cli2Platform CLI
gemini skills install https://github.com/softaworks/agent-toolkit --path skills/plugin-forgeManually: put the files in place
.devin/skills/plugin-forge/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add softaworks/agent-toolkit --skill plugin-forge -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about plugin-forge
How do I install plugin-forge in Claude Code?
Run npx skills add softaworks/agent-toolkit --skill plugin-forge -a claude-code. The skill will be available at ~/.claude/skills/plugin-forge/SKILL.md.
What does plugin-forge do?
It helps you build Claude Code plugins: generates directory structure, creates manifests, manages versions, and handles marketplace integration. Includes scripts and example structures for different plugin types.
Why doesn't my plugin install after I create it?
Usually the version in plugin.json and marketplace.json don't match. Use bump_version.py to sync both files, or ensure the version is identical in both manifests.
Source text
SKILL.md · MIT
--- name: plugin-forge description: 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. --- # CC Plugin Forge ## Purpose Build and manage Claude Code plugins with correct structure, manifests, and marketplace integration. Includes workflows, automation scripts, and reference docs. ## When to Use - Creating new plugins for a marketplace - Adding/modifying plugin components (commands, skills, agents, hooks) - Updating plugin versions - Working with plugin or marketplace manifests - Setting up local plugin testing - Publishing plugins ## Getting Started ### Create New Plugin Use `create_plugin.py` to generate plugin structure: ```bash python scripts/create_plugin.py plugin-name \ --marketplace-root /path/to/marketplace \ --author-name "Your Name" \ --author-email "[email protected]" \ --description "Plugin description" \ --keywords "keyword1,keyword2" \ --category "productivity" ``` This automatically: - Creates plugin directory structure - Generates `plugin.json` manifest - Creates README template - Updates `marketplace.json` ### Bump Version Use `bump_version.py` to update versions in both manifests: ```bash python scripts/bump_version.py plugin-name major|minor|patch \ --marketplace-root /path/to/marketplace ``` Semantic versioning: - **major**: Breaking changes (1.0.0 → 2.0.0) - **minor**: New features, refactoring (1.0.0 → 1.1.0) - **patch**: Bug fixes, docs (1.0.0 → 1.0.1) ## Development Workflow ### 1. Create Structure Manual approach (if not using script): ```bash mkdir -p plugins/plugin-name/.claude-plugin mkdir -p plugins/plugin-name/commands mkdir -p plugins/plugin-name/skills ``` ### 2. Plugin Manifest File: `plugins/plugin-name/.claude-plugin/plugin.json` ```json { "name": "plugin-name", "version": "0.1.0", "description": "Plugin description", "author": { "name": "Your Name", "email": "[email protected]" }, "keywords": ["keyword1", "keyword2"] } ``` ### 3. Register in Marketplace Update `.claude-plugin/marketplace.json`: ```json { "name": "plugin-name", "source": "./plugins/plugin-name", "description": "Plugin description", "version": "0.1.0", "keywords": ["keyword1", "keyword2"], "category": "productivity" } ``` ### 4. Add Components 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 | ### 5. Local Testing ```bash # 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 ``` ## Plugin Patterns ### Framework Plugin 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 ``` ### Utility Plugin For tools and commands: ``` plugins/utility-name/ ├── .claude-plugin/plugin.json ├── commands/ │ ├── action1.md │ └── action2.md └── README.md ``` ### Domain Plugin For domain-specific knowledge: ``` plugins/domain-name/ ├── .claude-plugin/plugin.json ├── skills/ │ └── domain-name/ │ ├── SKILL.md │ ├── references/ │ └── scripts/ └── README.md ``` ## Command Naming Subdirectory-based namespacing with `:` separator: - `commands/namespace/command.md` → `/namespace:command` - `commands/simple.md` → `/simple` Examples: - `commands/prime/vue.md` → `/prime:vue` - `commands/docs/generate.md` → `/docs:generate` ## Version Management **Important:** Update version in BOTH locations: 1. `plugins/<name>/.claude-plugin/plugin.json` 2. `.claude-plugin/marketplace.json` Use `bump_version.py` to automate. ## Git Commits Use conventional commits: ```bash 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" ``` ## Reference Docs 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 | ### Scripts | Script | Purpose | |--------|---------| | `scripts/create_plugin.py` | Scaffold new plugin | | `scripts/bump_version.py` | Update versions |
© softaworks · MIT · softaworks/agent-toolkit