plugin-forge
softaworks/agent-toolkit
Create and manage Claude Code plugins with proper structure, manifests, and marketplace integration.
What is plugin-forge?
Plugin Forge scaffolds new Claude Code plugins, manages manifests (plugin.json and marketplace.json), and automates version bumping. Use it when building plugins for a marketplace, adding components like commands or skills, or publishing plugin updates.
- Scaffold new plugin directories with correct structure and manifests
- Generate plugin.json and marketplace.json with proper formatting
- Bump semantic versions across both manifest files automatically
- Support framework, utility, and domain-specific plugin patterns
- Manage plugin components (commands, skills, agents, hooks, MCP servers)
- Enable local testing and marketplace registration
How to install plugin-forge
npx skills add https://github.com/softaworks/agent-toolkit --skill plugin-forge- Python 3.7+ (for create_plugin.py and bump_version.py scripts)
- Access to marketplace root directory path
- Claude Code environment with /plugin commands available
How to use plugin-forge
- 1.Run create_plugin.py with plugin name, author, description, and marketplace root to scaffold structure
- 2.Manually create plugin.json in .claude-plugin/ directory if not using script
- 3.Update marketplace.json in .claude-plugin/ to register the plugin
- 4.Add components (commands, skills, agents) in respective directories following naming conventions
- 5.Use bump_version.py to update versions in both plugin.json and marketplace.json
- 6.Test locally by adding marketplace, installing plugin, and reinstalling after changes
- 7.Use conventional commits (feat, fix, docs) when committing plugin changes
Use cases
- Creating a new plugin from scratch with automated scaffolding
- Adding commands, skills, or agents to an existing plugin
- Bumping plugin versions for bug fixes, features, or breaking changes
- Publishing plugins to a marketplace with proper metadata
- Setting up local testing by registering marketplace and installing plugins
- Plugin developers building for Claude Code marketplaces
- Teams managing multiple plugins with consistent structure
- Developers automating plugin lifecycle (create, update, publish)
- Framework or domain experts creating specialized plugins
plugin-forge FAQ
plugin.json is the plugin's own manifest in .claude-plugin/ directory defining its metadata and version. marketplace.json is the registry entry in .claude-plugin/ that registers the plugin in a marketplace with category and source path.
Create markdown files in the commands/ directory. Use subdirectories for namespacing: commands/namespace/command.md becomes /namespace:command. Files directly in commands/ become /command.
Use major for breaking changes (1.0.0 → 2.0.0), minor for new features (1.0.0 → 1.1.0), and patch for bug fixes (1.0.0 → 1.0.1).
Add the marketplace with /plugin marketplace add /path/to/marketplace-root, then install with /plugin install plugin-name@marketplace-name. After changes, uninstall and reinstall to test updates.
Framework plugins (React, Vue, etc.), utility plugins (tools and commands), and domain plugins (specialized knowledge). Each has a recommended directory structure in the documentation.
Full instructions (SKILL.md)
Source of truth, from softaworks/agent-toolkit.
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:
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:
- Creates plugin directory structure
- Generates
plugin.jsonmanifest - Creates README template
- Updates
marketplace.json
Bump Version
Use 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:
- 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):
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
{
"name": "plugin-name",
"version": "0.1.0",
"description": "Plugin description",
"author": {
"name": "Your Name",
"email": "your.email@example.com"
},
"keywords": ["keyword1", "keyword2"]
}
3. Register in Marketplace
Update .claude-plugin/marketplace.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
# 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:commandcommands/simple.md→/simple
Examples:
commands/prime/vue.md→/prime:vuecommands/docs/generate.md→/docs:generate
Version Management
Important: Update version in BOTH locations:
plugins/<name>/.claude-plugin/plugin.json.claude-plugin/marketplace.json
Use bump_version.py to automate.
Git Commits
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"
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 |
Related skills
More from softaworks/agent-toolkit and the wider catalog.

mermaid-diagrams
Create professional software diagrams from text using Mermaid syntax.

humanizer
Remove AI-generated writing patterns to make text sound more natural and human.

qa-test-planner
Generate test plans, test cases, regression suites, and bug reports with Figma design validation for QA engineers.

writing-clearly-and-concisely
Apply Strunk's timeless rules to write clearer, stronger prose for humans.

database-schema-designer
Design production-ready SQL and NoSQL database schemas with normalization, indexing, and migration strategies.

skill-judge
Evaluate Agent Skill design quality against specifications and best practices with multi-dimensional scoring.