Guide for creating and managing Claude Code marketplaces. Use when creating a new marketplace, updating marketplace configuration, adding plugins to a marketplace, or validating marketplace.json files.
/plugin marketplace add AnthonyKazyaka/plugin-marketplace/plugin install anthonykazyaka-useful-skills@AnthonyKazyaka/plugin-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/marketplace-creation-process.mdreferences/marketplace-structure.mdscripts/add_plugin_to_marketplace.pyscripts/init_marketplace.pyscripts/validate_marketplace.pyThis skill provides comprehensive guidance for creating, managing, and validating Claude Code marketplace configurations.
Marketplaces are curated collections of plugins that can be distributed and installed together. A marketplace is defined by a marketplace.json file that lists available plugins with their sources, versions, and metadata.
Follow these steps when working with marketplaces:
Before creating a marketplace, clarify:
Ask questions to gather concrete requirements:
Create a new marketplace.json file with the required structure.
For detailed initialization steps:
init_marketplace.py script for quick setup:python3 skills/marketplace-creator/scripts/init_marketplace.py
The script will:
Minimum Required Fields:
{
"name": "marketplace-name",
"owner": {
"name": "Owner Name",
"email": "email@domain.com"
},
"description": "Marketplace description",
"plugins": []
}
Add plugin entries to the plugins array. Each plugin requires:
name - Plugin identifiersource - Where to find the plugin (GitHub, local path, URL)description - What the plugin doesversion - Semantic version (e.g., "1.0.0")author - Plugin author informationHelper script for adding plugins:
python3 skills/marketplace-creator/scripts/add_plugin_to_marketplace.py
For detailed plugin entry formats and source options:
Common Source Formats:
GitHub Repository (recommended for public plugins):
"source": {
"source": "github",
"repo": "owner/repository"
}
Relative Path (local installations only):
"source": "./plugins/my-plugin"
Git Repository URL:
"source": {
"source": "url",
"url": "https://gitlab.com/team/plugin.git"
}
Direct Marketplace URL:
"source": "https://example.com/path/to/marketplace.json"
Use the validation script to check marketplace configuration:
python3 skills/marketplace-creator/scripts/validate_marketplace.py
The validator checks:
For complete validation checklist:
Test the marketplace locally before distribution:
# Install from local marketplace.json
claude plugin install /path/to/marketplace.json
# Or install specific plugin from marketplace
claude plugin install /path/to/marketplace.json --plugin plugin-name
Verify:
Choose distribution method:
Option 1: Git Repository
claude plugin install https://github.com/user/repo/marketplace.jsonOption 2: Direct URL
claude plugin install https://domain.com/marketplace.jsonOption 3: Local/Team Distribution
Problem: GitHub repository URLs as strings are not supported in marketplace.json
// ❌ WRONG
"source": "https://github.com/username/plugin-name"
// ✅ CORRECT
"source": {
"source": "github",
"repo": "username/plugin-name"
}
Problem: Relative paths only work for local installations
// ⚠️ WARNING - local only
"source": "./plugins/my-plugin"
// ✅ CORRECT - for public distribution
"source": {
"source": "github",
"repo": "username/plugin-name"
}
Problem: Author should use consistent object format
// ❌ WRONG - string format
"author": "Username"
// ✅ CORRECT - object format
"author": {
"name": "Username"
}
Problem: Template placeholders must be replaced
// ❌ WRONG
"owner": {
"name": "Your Name",
"email": "your.email@example.com"
}
// ✅ CORRECT
"owner": {
"name": "AnthonyKazyaka",
"email": "anthony@domain.com"
}
When updating an existing marketplace.json:
Adding a Plugin:
add_plugin_to_marketplace.py scriptplugins arrayvalidate_marketplace.pyUpdating Plugin Version:
plugins arrayversion fieldRemoving a Plugin:
plugins arrayReorganizing Plugins:
For detailed structure information:
For step-by-step creation guidance:
This skill includes:
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.