plugin-marketplace-creator
Create and configure Claude Code plugin marketplaces hosted on GitHub. Use this skill when users want to set up a new plugin marketplace repository, add plugins to an existing marketplace, configure team distribution settings, or troubleshoot marketplace issues. Triggers include "create a plugin marketplace", "set up a marketplace on GitHub", "add plugins to my marketplace", "configure marketplace for my team", or "distribute Claude Code plugins".
SKILL.md
| Name | plugin-marketplace-creator |
| Description | Create and configure Claude Code plugin marketplaces hosted on GitHub. Use this skill when users want to set up a new plugin marketplace repository, add plugins to an existing marketplace, configure team distribution settings, or troubleshoot marketplace issues. Triggers include "create a plugin marketplace", "set up a marketplace on GitHub", "add plugins to my marketplace", "configure marketplace for my team", or "distribute Claude Code plugins". |
name: plugin-marketplace-creator description: Create and configure Claude Code plugin marketplaces hosted on GitHub. Use this skill when users want to set up a new plugin marketplace repository, add plugins to an existing marketplace, configure team distribution settings, or troubleshoot marketplace issues. Triggers include "create a plugin marketplace", "set up a marketplace on GitHub", "add plugins to my marketplace", "configure marketplace for my team", or "distribute Claude Code plugins".
Plugin Marketplace Creator
Create Claude Code plugin marketplaces—catalogs that distribute plugins to teams and communities via GitHub.
Quick Start
- Run
scripts/init_marketplace.py <name> --path <output-dir>to scaffold - Edit
.claude-plugin/marketplace.jsonto add plugins - Push to GitHub
- Users install via
/plugin marketplace add owner/repo
Marketplace Structure
marketplace-repo/
├── .claude-plugin/
│ └── marketplace.json # Required: marketplace definition
├── plugins/ # Optional: local plugins
│ └── my-plugin/
│ └── .claude-plugin/
│ └── plugin.json
└── README.md
Plugin Structure with Skills
Plugins containing skills should have this structure:
plugins/my-plugin/
├── .claude-plugin/
│ └── plugin.json # NO "skills" field - skills are auto-discovered
└── skills/
└── my-skill/
└── SKILL.md
Important: Do NOT add a skills field to plugin.json. Skills are automatically discovered from the skills/ directory.
Marketplace JSON Schema
Required Fields
{
"name": "marketplace-name",
"owner": {
"name": "Team Name",
"email": "team@example.com"
},
"plugins": []
}
Optional Metadata
{
"metadata": {
"description": "Brief description",
"version": "1.0.0",
"pluginRoot": "./plugins"
}
}
Reserved Names (cannot use)
claude-code-marketplace, claude-code-plugins, claude-plugins-official, anthropic-marketplace, anthropic-plugins, agent-skills, life-sciences
Plugin Entry Schema
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Kebab-case identifier |
source | string|object | Yes | Where to fetch plugin |
description | string | No | Brief description |
version | string | No | Semantic version |
author | object | No | {name, email} |
category | string | No | For organization |
keywords | array | No | Search tags |
strict | boolean | No | Require plugin.json (default: true) |
Source Types
Local path:
{"source": "./plugins/my-plugin"}
GitHub:
{"source": {"source": "github", "repo": "owner/repo"}}
Git URL:
{"source": {"source": "url", "url": "https://gitlab.com/team/plugin.git"}}
Complete Example
{
"name": "company-tools",
"owner": {
"name": "DevTools Team",
"email": "devtools@company.com"
},
"metadata": {
"description": "Internal development tools",
"version": "1.0.0"
},
"plugins": [
{
"name": "code-formatter",
"source": "./plugins/formatter",
"description": "Auto-format code on save",
"version": "1.0.0",
"category": "development"
},
{
"name": "deploy-tools",
"source": {"source": "github", "repo": "company/deploy-plugin"},
"description": "Deployment automation",
"category": "devops"
}
]
}
Team Configuration
Add to project's .claude/settings.json for automatic installation:
{
"extraKnownMarketplaces": {
"team-tools": {
"source": {"source": "github", "repo": "org/claude-plugins"}
}
},
"enabledPlugins": {
"code-formatter@team-tools": true
}
}
Scripts
- init_marketplace.py - Create new marketplace with proper structure
- validate_marketplace.py - Validate marketplace.json and plugin sources
- add_plugin.py - Add plugin entries to existing marketplace
Workflow
Creating a New Marketplace
Pre-flight checks (REQUIRED before running init script):
-
Check git config for user identity:
git config --get user.name git config --get user.email -
If either is not set, ASK THE USER for their name and email before proceeding. Use these values with
--owner-nameand--owner-emailflags. -
Check if target directory already has a git repo:
ls -la <target-path>/.git 2>/dev/nullIf
.gitexists, do NOT rungit initwhen setting up the repository.
# 1. Initialize (script auto-detects git config for owner info)
python scripts/init_marketplace.py my-marketplace --path ./output
# Or with explicit owner info if git config is not set:
python scripts/init_marketplace.py my-marketplace --path ./output \
--owner-name "Your Name" --owner-email "you@example.com"
# 2. Validate
python scripts/validate_marketplace.py ./output
# 3. Push to GitHub (skip git init if .git already exists)
cd output
# Only run 'git init' if there's no existing .git directory
git add -A && git commit -m "Initial"
# Create repo on GitHub and push
# 4. Test in Claude Code
# /plugin marketplace add owner/my-marketplace
Adding Plugins
# Add local plugin
python scripts/add_plugin.py ./marketplace --name my-plugin --source ./plugins/my-plugin
# Add GitHub plugin
python scripts/add_plugin.py ./marketplace --name external --source github:org/repo
Troubleshooting
Marketplace not loading: Verify .claude-plugin/marketplace.json exists at repo root.
Plugin install fails: Check source is accessible. For private repos, ensure authentication.
Team can't see marketplace: Verify extraKnownMarketplaces in .claude/settings.json.
References
references/plugin-schema.md- Complete plugin.json schemareferences/examples.md- Additional marketplace examples