A template repository for creating your own Claude Code plugin marketplace with a beautiful documentation site.
- 🎨 Customizable color schemes - Choose from presets or define your own
- 📦 GitHub Pages integration - Auto-deploy docs on push
- 🔧 Plugin scaffolding - Create new plugins with one command
- ✅ Linting - Validate plugin structure with claudelint
- 🔄 Template updates - Pull updates from this template easily
- 📚 Auto-generated docs - Beautiful documentation site from plugin metadata
Click the "Use this template" button on GitHub to create your own repository.
git clone https://github.com/your-username/your-marketplace.git
cd your-marketplace
./setup.shThe setup script will ask you for:
- Marketplace name
- Owner name
- GitHub repository
- Color scheme (forest-green, ocean-blue, sunset-orange, royal-purple, crimson-red, or custom)
- Whether to keep the example plugin
- Go to your repository Settings → Pages
- Set Source to "Deploy from a branch"
- Select branch:
mainand folder:/docs - Click Save
Your docs will be available at: https://your-username.github.io/your-marketplace/
After making changes to your plugins, run make update to regenerate the docs, then commit and push.
make new-plugin NAME=my-awesome-pluginThis creates:
plugins/my-awesome-plugin/.claude-plugin/plugin.json- Plugin metadatacommands/example.md- Example commandREADME.md- Plugin documentation
Don't forget to add the plugin to .claude-plugin/marketplace.json!
make lintValidates all plugins against claudelint standards.
make updateRegenerates plugin documentation and website data.
Get the latest improvements from this template:
make update-from-templateThis fetches:
- Latest
docs/index.html(docs site) - Latest build scripts
- Re-applies your branding from
.template-config.json
your-marketplace/
├── .claude-plugin/
│ ├── marketplace.json # Marketplace metadata
│ └── settings.json # Installed plugins
├── .github/workflows/
│ └── lint.yml # Lint plugins on push/PR
├── .template-config.json # Your branding configuration
├── docs/
│ ├── index.html # Documentation site (static)
│ ├── data.json # Generated plugin data
│ └── .nojekyll # Disable Jekyll processing
├── plugins/
│ └── example-plugin/ # Example plugin (optional)
├── scripts/
│ ├── apply-branding.py # Apply customizations
│ ├── build-website.py # Generate website data
│ └── generate_plugin_docs.py
├── Makefile # Development commands
└── README.md
Edit .template-config.json to customize:
{
"template_version": "1.0.0",
"marketplace_name": "my-plugins",
"owner_name": "myusername",
"github_repo": "myusername/my-plugins",
"color_scheme": {
"primary": "#228B22",
"primary_dark": "#1a6b1a",
"secondary": "#32CD32"
}
}After editing, run make update to apply changes.
| Preset | Primary | Description |
|---|---|---|
forest-green |
#228B22 | Classic green |
ocean-blue |
#0077be | Deep blue |
sunset-orange |
#ff6b35 | Warm orange |
royal-purple |
#6a4c93 | Elegant purple |
crimson-red |
#dc143c | Bold red |
Commands are defined in Markdown files under plugins/{name}/commands/:
---
description: Brief description
argument-hint: [optional-args]
---
## Name
plugin-name:command-name
## Synopsis/plugin-name:command-name [args]
## Description
What this command does...
## Implementation
1. Step-by-step implementation guide
## Return Value
What the command outputs
## Examples
Example usage
## Arguments
- $1: First argument description
See plugins/example-plugin/commands/hello.md for a complete example.
Edit plugins/{name}/.claude-plugin/plugin.json:
{
"name": "plugin-name",
"description": "What this plugin does",
"version": "0.0.1",
"author": {
"name": "Your Name"
}
}| Command | Description |
|---|---|
make help |
Show all available commands |
make lint |
Run plugin linter |
make lint-pull |
Pull latest linter image |
make update |
Update docs and website data |
make update-from-template |
Pull template updates |
make new-plugin NAME=foo |
Create a new plugin |
Users can install your marketplace in Claude Code:
# Add your marketplace
/plugin marketplace add your-username/your-marketplace
# Install a plugin
/plugin install my-plugin@your-marketplace
# Use a command
/my-plugin:helloContributions are welcome! Please:
- Run
make lintbefore committing - Update documentation when adding features
- Follow the existing plugin structure
MIT
Built with ❤️ using Claude Code