Skip to main content

plugin-dev

Validate, test, and distribute Claude Code plugins and marketplaces. Use when developing plugins, debugging validation errors, or preparing for distribution.

Stars
33
Source
spences10/claude-code-toolkit
Updated
2026-04-29
Slug
spences10--claude-code-toolkit--plugin-dev
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/spences10/claude-code-toolkit/HEAD/plugins/toolkit-skills/skills/plugin-dev/SKILL.md -o .claude/skills/plugin-dev.md

Drops the SKILL.md into .claude/skills/plugin-dev.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Plugin Development

Develop and distribute Claude Code plugins and marketplaces.

Quick Commands

# Validate marketplace/plugin
claude plugin validate .

# Test local install
/plugin marketplace add ./path/to/marketplace
/plugin install my-plugin@marketplace-name

# Check installed plugins
/plugin list

Marketplace Schema

Required fields in .claude-plugin/marketplace.json:

{
  "name": "marketplace-name",
  "owner": { "name": "Your Name" },
  "plugins": [
    {
      "name": "plugin-name",
      "source": "./plugins/plugin-name",
      "description": "What it does"
    }
  ]
}

Plugin Schema

Required field in .claude-plugin/plugin.json (only name is required):

{
  "name": "plugin-name",
  "description": "What it does",
  "version": "1.0.0"
}

The name is also the skill namespace — skills become /plugin-name:skill-name.

Development

# Test plugin locally without installing
claude --plugin-dir ./my-plugin

# Reload after changes (inside Claude Code)
/reload-plugins

Common Errors

Error Fix
owner: expected object Add "owner": { "name": "..." }
plugins.0: expected object Change string array to object array
source: Invalid input Use ./path/to/plugin format
Components inside .claude-plugin/ Move commands/, skills/, etc. to plugin root

References