npx claudepluginhub stbenjam/claude-marketplace-templateExample plugin demonstrating command structure
A template repository for creating your own Claude Code plugin marketplace with a beautiful documentation site.
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.sh
The setup script will ask you for:
main and folder: /docsYour 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-plugin
This creates:
plugins/my-awesome-plugin/
.claude-plugin/plugin.json - Plugin metadatacommands/example.md - Example commandREADME.md - Plugin documentationDon't forget to add the plugin to .claude-plugin/marketplace.json!
make lint
Validates all plugins against claudelint standards.
make update
Regenerates plugin documentation and website data.
Get the latest improvements from this template:
make update-from-template
This fetches:
docs/index.html (docs site).template-config.jsonyour-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