From toolkit-skills
Validates, tests, and distributes Claude Code plugins and marketplaces. Guides development with schemas, local testing commands, error fixes, and distribution prep.
npx claudepluginhub spences10/claude-code-toolkit --plugin toolkit-skillsThis skill uses the workspace's default tool permissions.
Develop and distribute Claude Code plugins and marketplaces.
Guides creating, validating, and managing Claude Code plugin marketplaces including marketplace.json schema, plugin entries, and best practices for setup and distribution.
Guides creating and managing Claude Code plugin marketplaces. Validates marketplace.json schema, configures plugin entries, and troubleshoots repository setups.
Guides full Claude Code plugin lifecycle: scoping, initializing plugin.json, adding commands/agents/hooks/skills, validating with audits, and distributing to marketplaces.
Share bugs, ideas, or general feedback.
Develop and distribute Claude Code plugins and marketplaces.
# 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
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"
}
]
}
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.
# Test plugin locally without installing
claude --plugin-dir ./my-plugin
# Reload after changes (inside Claude Code)
/reload-plugins
| 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 |