ALWAYS invoke this skill when the user mentions "marketplace" in connection with creating, managing, populating, or querying a plugin marketplace they own. Trigger phrases include: "init marketplace", "create marketplace", "add to marketplace", "publish to marketplace", "list marketplace", "remove from marketplace", "marketplace repo", "plugin store", "plugin catalog", "plugin registry". Also trigger when the user wants to set up a git repository for distributing or cataloging Claude Code plugins. Do NOT trigger for: installing/browsing plugins as a consumer, releasing plugin versions, plugin development, code pushes, or plugin audits.
Manage Claude Code plugin marketplaces. A marketplace is a git repository with a .claude-plugin/marketplace.json that catalogs available plugins.
Parse $ARGUMENTS for subcommand:
init <local-path> — Create a new marketplace repositorylist [--store name] — List plugins in a marketplaceadd <plugin-path> [--store name] — Add a plugin to a marketplaceremove <plugin-name> [--store name] — Remove a pluginNo subcommand → show usage help.
Read knowledge/configuration.md for config format. Look for .claude/plugin-ops.local.md in cwd then home dir. Use --store name to select marketplace, otherwise first configured.
Gather: provider (github/gitlab), repo name, visibility (default: private), local path.
GitHub: gh repo create <name> --<visibility> --clone
GitLab: glab project create or guide API curl.
Initialize .claude-plugin/marketplace.json (schema from knowledge/marketplace.md):
{
"name": "<repo-name>",
"metadata": { "description": "Claude Code plugin marketplace", "version": "1.0.0" },
"plugins": []
}
Commit, push, update config.
Read .claude-plugin/marketplace.json from local clone, display:
Marketplace: {name} ({path})
| Plugin | Version | Description |
{N} plugins total
If no --store and multiple configured, list all.
plugin.json for name, description, version.claude-plugin/marketplace.json, commit, pushlocal_path or .claude-plugin/marketplace.json: report clearlygit pull first