| name | marketplace-publisher |
| description | Create marketplace.json files and prepare plugins for distribution via plugin marketplaces. Use when publishing plugins, creating marketplaces, or sharing plugins with teams. |
Marketplace Publisher
Prepare Claude Code plugins for distribution through marketplaces by creating marketplace.json and organizing plugin collections.
When to Use
- Creating plugin marketplaces
- Publishing plugins for distribution
- Organizing plugin collections
- Sharing plugins with teams/community
What is a Marketplace?
A marketplace is a catalog of available plugins defined by marketplace.json:
{
"name": "my-marketplace",
"owner": {
"name": "Organization Name"
},
"plugins": [
{
"name": "plugin-name",
"source": "./plugin-directory",
"description": "Brief description"
}
]
}
Instructions
Create Marketplace Structure
marketplace-repo/
├── .claude-plugin/
│ └── marketplace.json
├── plugin-1/
│ └── .claude-plugin/
│ └── plugin.json
├── plugin-2/
│ └── .claude-plugin/
│ └── plugin.json
└── README.md
Write marketplace.json
{
"name": "marketplace-name",
"owner": {
"name": "Owner Name",
"url": "https://github.com/owner"
},
"plugins": [
{
"name": "plugin-name",
"source": "./plugin-directory",
"description": "What the plugin does"
}
]
}
Plugin Source Options
Local directory:
{
"source": "./my-plugin"
}
Git repository:
{
"source": "https://github.com/org/plugin-repo"
}
Subdirectory in Git:
{
"source": "https://github.com/org/repo/tree/main/plugins/my-plugin"
}
Distribution Methods
GitHub repository:
- Create repo with marketplace structure
- Add plugins as subdirectories
- Users add:
/plugin marketplace add org/repo
Local marketplace:
- Create marketplace directory
- Users add:
/plugin marketplace add /path/to/marketplace
Team distribution:
- Add marketplace.json to project
- Configure in
.claude/settings.json - Team members get plugins automatically
Marketplace.json Schema
Required Fields
{
"name": "marketplace-name",
"owner": {
"name": "Owner Name"
},
"plugins": [...]
}
Optional Fields
{
"owner": {
"name": "Owner Name",
"url": "https://example.com",
"email": "owner@example.com"
},
"description": "Marketplace description",
"homepage": "https://docs.example.com",
"license": "MIT"
}
Plugin Entry Schema
{
"name": "plugin-name",
"source": "./plugin-path",
"description": "Brief description",
"version": "1.0.0",
"keywords": ["keyword1", "keyword2"]
}
Best Practices
- Organize by category: Group related plugins
- Provide clear descriptions: Help users discover plugins
- Version plugins: Track changes systematically
- Test installation: Verify all plugins load correctly
- Document requirements: List prerequisites
- Maintain README: Explain marketplace purpose
Example Marketplace
{
"name": "dev-tools",
"owner": {
"name": "Development Team",
"url": "https://github.com/team"
},
"description": "Development productivity tools",
"plugins": [
{
"name": "code-formatter",
"source": "./plugins/formatter",
"description": "Automatic code formatting",
"keywords": ["formatting", "linting"]
},
{
"name": "test-runner",
"source": "./plugins/test-runner",
"description": "Automated test execution",
"keywords": ["testing", "automation"]
}
]
}
Team Distribution
Configure in .claude/settings.json:
{
"marketplaces": {
"team-marketplace": "./path/to/marketplace"
},
"enabledPlugins": {
"plugin-name@team-marketplace": true
}
}
Team members automatically get configured plugins when they trust the repository.
Reference
For complete marketplace format, see references/marketplace-format.md.