A minimal boilerplate template for creating and distributing Claude Code plugins via the marketplace. This project provides a structured foundation for building custom commands, agents and hooks — tools that extend Claude Code's capabilities.
This boilerplate helps you create professional Claude Code plugins with:
- Custom Commands: Slash commands for common workflows
- Specialized Agents: AI agents optimized for specific tasks
- Skills: Modular knowledge packages with workflows and bundled resources
- Event Hooks: Automated responses to IDE events
- MCP Integration: Model Context Protocol server configuration
- Marketplace Ready: Pre-configured metadata for distribution
.
├── .claude-plugin/
│ └── marketplace.json # Marketplace configuration
├── plugins/
│ └── webapp-starter/ # Example plugin
│ ├── .claude-plugin/
│ │ └── plugin.json # Plugin metadata
│ ├── agents/
│ │ └── webapp-uidesigner.md
│ ├── commands/
│ │ ├── webapp-starter.md
│ │ └── generate-random-personas.md
│ ├── skills/
│ │ └── skill-creator/
│ │ └── SKILL.md # Skill definition
│ ├── hooks/
│ │ └── hooks.json # Event hooks configuration
│ └── .mcp.json # MCP servers configuration
└── README.md
git clone https://github.com/halans/cc-marketplace-boilerplate
cd cc-marketplace-boilerplateEdit .claude-plugin/marketplace.json:
{
"name": "your-marketplace-name",
"owner": {
"name": "Your Name",
"email": "[email protected]",
"url": "https://github.com/yourusername"
},
"metadata": {
"description": "Your marketplace description",
"version": "1.0.0"
},
"plugins": [...]
}Use the included webapp-starter plugin as a template:
- Copy the plugin directory structure
- Update plugin metadata in
.claude-plugin/plugin.json - Add your custom commands, agents, skills, and hooks
- Register the plugin in
marketplace.json
Commands are slash commands that users can invoke in Claude Code. Create a markdown file in commands/:
---
description: Your command description
---
Your command prompt and instructions here.Usage: /your-command
Agents are specialized AI assistants for specific tasks. Create a markdown file in agents/:
---
name: agent-name
description: Agent description
model: sonnet
---
Your agent's system prompt and behavior instructions.Skills are modular packages that extend Claude's capabilities with specialized knowledge, workflows, and tool integrations. They transform Claude into a domain-specific expert by providing procedural knowledge and reusable resources.
Create a skill directory with a SKILL.md file:
skills/
└── skill-name/
├── SKILL.md (required)
├── scripts/ (optional)
├── references/ (optional)
└── assets/ (optional)
SKILL.md structure:
---
name: skill-name
description: When and why this skill should be used
---
# Skill Name
Instructions and workflows for Claude to follow when using this skill.
## Usage
Detailed guidance on how to apply this skill.Optional bundled resources:
- scripts/: Executable code for deterministic tasks (Python, Bash, etc.)
- references/: Documentation loaded as needed (schemas, API docs, policies)
- assets/: Files used in output (templates, icons, boilerplate code)
Hooks automate responses to events like tool usage. Configure in hooks/hooks.json:
{
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "echo 'Hook executed!'"
}
]
}
]
}Integrate Model Context Protocol servers via .mcp.json:
For example on Linux/Mac, using npx to run a package:
{
"mcpServers": {
"[server-name]": {
"command": "npx",
"args": ["[package-name]", "args"]
}
}
}On Windows, using npx to run a package:
{
"mcpServers": {
"[server-name]": {
"command": "cmd",
"args": ["/c", "npx","[package-name]", "args"]
}
}
}The included example plugin demonstrates:
-
Commands:
/webapp-starter- Create a basic SPA website structure example command/generate-random-personas- Generate random user personas example command
-
Agents:
webapp-uidesigner- UI design and styling specialist example agent
-
Skills:
skill-creator- Anthropic's skill-creator skill as guide for creating effective skills with workflows and bundled resources, as example skill
-
Hooks:
- Post-edit confirmation messages example hook
-
MCP Integration:
- shadcn component library integration example MCP server configuration
Each plugin requires a plugin.json file:
{
"name": "plugin-name",
"description": "Plugin description",
"version": "1.0.0",
"author": {
"name": "Your Name",
"email": "[email protected]"
}
}Make sure that the plugin here matches the entry in marketplace.json.
- Clear Descriptions: Write concise, actionable descriptions for commands and agents
- Version Control: Use semantic versioning (MAJOR.MINOR.PATCH)
- Documentation: Document each command's purpose and usage
- Testing: Test commands and agents thoroughly before publishing
- Keywords: Add relevant keywords for marketplace discoverability
Choose appropriate categories for your plugins:
- web application
- frontend
- backend
- fullstack
- developer tools
- productivity
- testing
- documentation
- Ensure all metadata is complete and accurate
- Test your plugin locally in Claude Code
-- add local marketplace through /plugin > Add Marketplace > using ./
-- exit and restart claude code for it to pick up the plugin and mcp - Update version numbers appropriately
- Submit to the Claude Code Marketplace
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
[Add your license here]
For issues or questions:
- GitHub Issues: [Add your repository URL]
Built with ❤️ for the Claude Code community