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".
Installation
Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.
Voir la source ↗GuidesInstructions
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 schema -
references/examples.md- Additional marketplace examples
Exemples
Consultez les exemples du dépôt source.
Voir la source ↗Historique source
- Date d’indexation
- 2026-01-20
- Mise à jour de l’index
- 2026-01-31
- Branch
- main
Les dates concernent ce répertoire. Consultez le dépôt pour l’historique du code.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!