ivan-magda/claude-code-plugin-template
GitHub template for creating Claude Code plugin marketplaces. Includes plugin scaffolding, validation commands, hooks, skills, agents, and CI/CD workflows. Ready-to-use toolkit for teams distributing Claude Code plugins.
34 stars17 forksUpdated Jan 3, 2026
npx skills add ivan-magda/claude-code-plugin-templateREADME
Claude Code Plugin Marketplace Template
Create and distribute Claude Code plugins for your team or community. This GitHub template provides everything you need to build a plugin marketplace — from scaffolding and validation to CI/CD automation.
Why Use This Template?
- Skip the boilerplate — Pre-configured marketplace structure, plugin manifests, and GitHub Actions validation
- Full plugin development toolkit — Commands for scaffolding plugins, adding components (commands, skills, agents, hooks), and validating before release
- Team-ready distribution — Configure automatic marketplace installation for team projects
- Best practices built-in — Comprehensive documentation, examples, and guided workflows
What's Included
| Component | Description |
|---|---|
| Marketplace Configuration | .claude-plugin/marketplace.json following the official schema |
| Plugin Development Toolkit | plugin-development plugin with 7 slash commands, a plugin-authoring skill for ambient guidance, and a reviewer agent |
| Example Plugin | hello-world plugin demonstrating proper structure and best practices |
| CI/CD Workflows | GitHub Actions for automated plugin validation on every push and PR |
| Documentation | Complete guides for plugins, hooks, settings, commands, skills, and sub-agents |
Quick Start
1. Create Your Marketplace
Click "Use this template" on GitHub, then clone your new repository:
git clone https://github.com/your-org/your-marketplace-name.git
cd your-marketplace-name
2. Customize the Marketplace
Update .claude-plugin/marketplace.json with your organization details:
{
"name": "my-team-marketplace",
"owner": {
"name": "Your Organization",
"email": "team@your-org.com"
},
"metadata": {
"description": "A curated collection of Claude Code plugins for our team",
"version": "1.0.0"
},
"plugins": []
}
3. Install the Plugin Development Toolkit
# Start Claude Code
claude
# Add your local marketplace
/plugin marketplace add .
# Install the development toolkit
/plugin install plugin-development@my-team-marketplace
4. Create Your First Plugin
# Scaffold a new plugin
/plugin-development:init my-awesome-plugin
# Add components
/plugin-development:add-command my-command "Description of what it does"
/plugin-development:add-skill my-skill "Use when working with..."
# Validate before publishing
/plugin-development:validate
Plugin Development Commands
The plugin-development plugin provides these commands:
| Command | Description |
|---|---|
/plugin-development:init [name] | Scaffold a new plugin with standard structure |
/plugin-development:add-command [name] [desc] | Add a new slash command |
/plugin-development:add-skill [name] [desc] | Add a new skill with SKILL.md |
/plugin-development:add-agent [name] [desc] | Add a new sub-agent |
/plugin-development:add-hook [event] [matcher] | Add a hook configuration |
/plugin-development:validate | Validate plugin structure and configuration |
/plugin-development:test-local | Create dev marketplace for local testing |
Repository Structure
├── .claude-plugin/
│ └── marketplace.json # Marketplace configuration
├── .github/
│ └── workflows/
│ └── validate-plugins.yml # CI/CD validation
├── docs/ # Comprehensive documentation
│ ├── plugins.md # Plugin development guide
│ ├── plugins-reference.md # Technical specifications
│ ├── plugin-marketplaces.md # Marketplace management
│ ├── hooks.md # Event-driven automation
│ ├── settings.md # Configuration options
│ ├── slash-commands.md # Command system reference
│ ├── skills.md # Agent skills guide
│ └── sub-agents.md # Sub-agent system
└── plugins/
├── hello-world/ # Example plugin
└── plugin-development/ # Development toolkit
Team Distribution
Configure automatic marketplace installation for your team by adding .claude/settings.json to your projects:
{
...