xiaohongshu
xiaohongshu
marketplace-builder
Create and configure Claude Code marketplaces and plugins. Use when the user wants to create a marketplace, publish plugins, set up team plugin distribution, or configure marketplace.json or plugin.json files. Triggers: create marketplace, publish plugin, plugin distribution, marketplace.json, pl...
Full skill instructions
A comprehensive guide to creating Claude Code marketplaces and plugins for distributing commands, agents, skills, hooks, and MCP servers.
Critical concept: These are NOT the same thing.
| Concept | What It Is | Analogy |
|---|---|---|
| Marketplace | JSON catalog listing where plugins live | Library catalog |
| Plugin | Packaged collection of components | Book |
| Components | Commands, agents, skills, hooks, MCP servers | Chapters |
Relationship: One marketplace → many plugins → many components per plugin
Key insight: Marketplaces don't HOST plugins. They INDEX them. Plugins can live anywhere (GitHub, GitLab, private git, local paths).
Minimal marketplace.json:
{
"name": "marketplace-name",
"owner": {"name": "Owner Name"},
"plugins": [
{
"name": "plugin-name",
"source": "./path-to-plugin",
"description": "What this plugin does",
"version": "1.0.0"
}
]
}
Minimal plugin.json (inside .claude-plugin/):
{
"name": "plugin-name",
"description": "What this plugin does",
"version": "1.0.0"
}
Team settings.json (inside .claude/):
{
"extraKnownMarketplaces": {
"marketplace-name": {
"source": {"source": "github", "repo": "owner/repo"}
}
},
"enabledPlugins": {
"plugin-name@marketplace-name": true
}
}
| Type | Syntax | Best For |
|---|---|---|
| GitHub | {"source": "github", "repo": "owner/repo"} | Public plugins |
| Git URL | {"source": "git", "url": "https://..."} | Private/GitLab |
| Directory | {"source": "directory", "path": "./path"} | Monorepo |
| Relative | "./path" | Shorthand for directory |
# Add a marketplace
/plugin marketplace add owner/repo
/plugin marketplace add https://gitlab.com/org/repo.git
/plugin marketplace add ./local-marketplace
# List marketplaces
/plugin marketplace list
# Update marketplace catalog
/plugin marketplace update marketplace-name
# Browse and install plugins
/plugin # Interactive browser
/plugin install plugin-name@marketplace # Direct install
# Manage plugins
/plugin enable plugin@marketplace
/plugin disable plugin@marketplace
/plugin uninstall plugin@marketplace
# Validate structure
claude plugin validate .
Use AskUserQuestion to understand the user's needs:
What are you distributing?
How many plugins?
Who is the audience?
What hosting?
Document the answers before proceeding.
Based on requirements, recommend one of these patterns:
Use when: One plugin, simple distribution
my-marketplace/
├── .claude-plugin/
│ ├── plugin.json
│ └── marketplace.json
├── commands/
└── agents/
Use when: Related plugins, unified versioning, team ownership
company-plugins/
├── .claude-plugin/
│ └── marketplace.json
├── plugins/
│ ├── formatter/
│ │ ├── .claude-plugin/plugin.json
│ │ └── commands/
│ ├── linter/
│ │ ├── .claude-plugin/plugin.json
│ │ └── commands/
│ └── tester/
│ ├── .claude-plugin/plugin.json
│ └── agents/
Use when: Independent plugins, different owners, community collection
# Marketplace repo
my-marketplace/
└── .claude-plugin/
└── marketplace.json # Points to other repos
# Plugin repos (separate)
tool-a/
├── .claude-plugin/plugin.json
└── commands/
tool-b/
├── .claude-plugin/plugin.json
└── agents/
Use when: Mix of internal and external tools, strict access control
{
"plugins": [
{"name": "internal-tool", "source": {"source": "git", "url": "https://git.corp/..."}},
{"name": "community-tool", "source": {"source": "github", "repo": "public/tool"}}
]
}
Decision tree:
For each plugin, create this structure:
plugin-name/
├── .claude-plugin/
│ └── plugin.json # Required: plugin manifest
├── commands/ # Optional: slash commands
│ └── my-command.md
├── agents/ # Optional: subagents
│ └── my-agent.md
├── skills/ # Optional: skills
│ └── my-skill/
│ └── SKILL.md
├── hooks/ # Optional: event handlers
│ └── hooks.json
└── .mcp.json # Optional: MCP servers
Write plugin.json:
{
"name": "plugin-name",
"description": "Clear description of what this plugin provides",
"version": "1.0.0",
"author": {
"name": "Author Name",
"email": "[email protected]"
},
"homepage": "https://docs.example.com",
"repository": "https://github.com/owner/repo",
"license": "MIT"
}
Naming conventions:
kebab-case (e.g., code-formatter)MAJOR.MINOR.PATCHverb-noun.md (e.g., format-code.md)role-name.md (e.g., code-reviewer.md)Create .claude-plugin/marketplace.json:
For monorepo (plugins in same repo):
{
"name": "company-tools",
"owner": {
"name": "Company Name",
"email": "[email protected]"
},
"metadata": {
"description": "Company development tools",
"version": "1.0.0",
"pluginRoot": "./plugins"
},
"plugins": [
{
"name": "formatter",
"source": "./plugins/formatter",
"description": "Code formatting tools",
"version": "1.0.0"
},
{
"name": "linter",
"source": "./plugins/linter",
"description": "Code linting tools",
"version": "1.0.0"
}
]
}
For multi-repo (plugins in separate repos):
{
"name": "community-collection",
"owner": {
"name": "Community",
"email": "[email protected]"
},
"plugins": [
{
"name": "tool-a",
"source": {
"source": "github",
"repo": "community/tool-a"
},
"description": "Tool A description",
"version": "2.1.0"
},
{
"name": "tool-b",
"source": {
"source": "github",
"repo": "community/tool-b"
},
"description": "Tool B description",
"version": "1.3.0"
}
]
}
No additional setup. Add marketplace locally:
/plugin marketplace add ./path-to-marketplace
Add to project's .claude/settings.json:
{
"extraKnownMarketplaces": {
"team-tools": {
"source": {
"source": "github",
"repo": "company/claude-plugins"
}
}
},
"enabledPlugins": {
"formatter@team-tools": true,
"linter@team-tools": true
}
}
How it works:
.claude/settings.jsonPush marketplace repo to GitHub
Document installation in README:
## Installation
Add the marketplace:
```bash
/plugin marketplace add owner/repo
Install plugins:
/plugin install formatter@owner-tools
.claude/settings.json in project templates# Validate marketplace structure
claude plugin validate .
# Manual JSON validation
python3 -c "import json; json.load(open('.claude-plugin/marketplace.json'))"
python3 -c "import json; json.load(open('.claude-plugin/plugin.json'))"
# Add marketplace locally
/plugin marketplace add ./path-to-marketplace
# Verify it appears
/plugin marketplace list
# Browse available plugins
/plugin
# Install a plugin
/plugin install plugin-name@marketplace-name
# Verify components work
/help # Check commands appear
/command-name to test/agents or try invoking via TaskStructure:
company-plugins/
├── .claude-plugin/
│ └── marketplace.json
├── plugins/
│ ├── plugin-a/
│ ├── plugin-b/
│ └── plugin-c/
└── README.md
Pros:
Cons:
Best for: Team tools, related plugins, unified ownership
Structure:
# Marketplace repo
tools-marketplace/
└── .claude-plugin/marketplace.json
# Separate plugin repos
plugin-a/ # github.com/org/plugin-a
plugin-b/ # github.com/org/plugin-b
plugin-c/ # github.com/org/plugin-c
Pros:
Cons:
Best for: Community collections, mixed ownership, independent plugins
Structure:
{
"plugins": [
{"name": "core", "source": "./plugins/core"},
{"name": "community", "source": {"source": "github", "repo": "community/tool"}},
{"name": "internal", "source": {"source": "git", "url": "https://git.corp/..."}}
]
}
Pros:
Cons:
Best for: Enterprise, mature ecosystems, gradual migration
Wrong: Thinking marketplace.json IS the plugin Right: marketplace.json POINTS TO plugins
marketplace.json is a catalog. The actual plugin code lives in separate directories or repos.
Wrong: Using GitHub shorthand for private repos
{"source": "github", "repo": "private-org/private-repo"} // May fail
Right: Use git URL for private repos
{"source": "git", "url": "[email protected]:private-org/private-repo.git"}
marketplace.json required:
nameowner.nameplugins arrayplugin.json required:
namedescriptionversionWrong: Relative paths from wrong directory
{"source": "../plugins/tool"} // Relative to what?
Right: Paths relative to marketplace.json location
{"source": "./plugins/tool"} // Relative to .claude-plugin/
Keep versions in sync:
plugin.json versionmarketplace.json plugin entry versionWhen you update a plugin, update both files.
Always run before publishing:
claude plugin validate .
Users MUST explicitly trust marketplaces. You cannot force-install plugins on team members. The settings.json only PRE-CONFIGURES - users still approve.
Use marketplace-builder when:
Don't use when:
templates/basic-marketplace.md - Single plugin, simple setuptemplates/plugin-structure.md - Complete plugin creation guidetemplates/multi-plugin.md - Monorepo patterntemplates/multi-repo.md - Distributed plugins patterntemplates/enterprise-marketplace.md - Enterprise with team configexamples/development-tools.md - 6 dev tool pluginsexamples/team-workflows.md - 6 team workflow pluginsexamples/specialized-domains.md - 6 domain-specific pluginsreference/syntax-guide.md - Complete JSON schemasreference/best-practices.md - Design principlesreference/troubleshooting.md - Common issues and debuggingxiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience