PluginBench
Skill
Review
Audit score 70

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
Prerequisites
  • 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
Claude Code
Cursor
Windsurf
Cline

How to use plugin-forge

  1. 1.Run create_plugin.py with plugin name, author, description, and marketplace root to scaffold structure
  2. 2.Manually create plugin.json in .claude-plugin/ directory if not using script
  3. 3.Update marketplace.json in .claude-plugin/ to register the plugin
  4. 4.Add components (commands, skills, agents) in respective directories following naming conventions
  5. 5.Use bump_version.py to update versions in both plugin.json and marketplace.json
  6. 6.Test locally by adding marketplace, installing plugin, and reinstalling after changes
  7. 7.Use conventional commits (feat, fix, docs) when committing plugin changes

Use cases

Good for
  • 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
Who it's for
  • 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

What's the difference between plugin.json and marketplace.json?

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.

How do I add commands to my plugin?

Create markdown files in the commands/ directory. Use subdirectories for namespacing: commands/namespace/command.md becomes /namespace:command. Files directly in commands/ become /command.

What semantic version should I use for my change?

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).

How do I test my plugin locally before publishing?

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.

What plugin patterns does Plugin Forge support?

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.json manifest
  • 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:

ComponentLocationFormat
Commandscommands/Markdown with frontmatter
Skillsskills/<name>/Directory with SKILL.md
Agentsagents/Markdown definitions
Hookshooks/hooks.jsonEvent handlers
MCP Servers.mcp.jsonExternal 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: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:

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:

ReferenceContent
references/plugin-structure.mdDirectory structure, manifest schema, components
references/marketplace-schema.mdMarketplace format, plugin entries, distribution
references/workflows.mdStep-by-step workflows, patterns, publishing

Scripts

ScriptPurpose
scripts/create_plugin.pyScaffold new plugin
scripts/bump_version.pyUpdate versions