tessl install https://github.com/softaworks/agent-toolkit --skill plugin-forgegithub.com/softaworks/agent-toolkit
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.
Average Score
93%
Content
88%
Description
100%
Build and manage Claude Code plugins with correct structure, manifests, and marketplace integration. Includes workflows, automation scripts, and reference docs.
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:
plugin.json manifestmarketplace.jsonUse bump_version.py to update versions in both manifests:
python scripts/bump_version.py plugin-name major|minor|patch \
--marketplace-root /path/to/marketplaceSemantic versioning:
Manual approach (if not using script):
mkdir -p plugins/plugin-name/.claude-plugin
mkdir -p plugins/plugin-name/commands
mkdir -p plugins/plugin-name/skillsFile: 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"]
}Update .claude-plugin/marketplace.json:
{
"name": "plugin-name",
"source": "./plugins/plugin-name",
"description": "Plugin description",
"version": "0.1.0",
"keywords": ["keyword1", "keyword2"],
"category": "productivity"
}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 |
# 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-nameFor 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.mdFor tools and commands:
plugins/utility-name/
├── .claude-plugin/plugin.json
├── commands/
│ ├── action1.md
│ └── action2.md
└── README.mdFor domain-specific knowledge:
plugins/domain-name/
├── .claude-plugin/plugin.json
├── skills/
│ └── domain-name/
│ ├── SKILL.md
│ ├── references/
│ └── scripts/
└── README.mdSubdirectory-based namespacing with : separator:
commands/namespace/command.md → /namespace:commandcommands/simple.md → /simpleExamples:
commands/prime/vue.md → /prime:vuecommands/docs/generate.md → /docs:generateImportant: Update version in BOTH locations:
plugins/<name>/.claude-plugin/plugin.json.claude-plugin/marketplace.jsonUse bump_version.py to automate.
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"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 |
| Script | Purpose |
|---|---|
scripts/create_plugin.py | Scaffold new plugin |
scripts/bump_version.py | Update versions |