Agent Skill
2/7/2026

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".

J
jbdamask
4GitHub Stars
1Views
npx skills add jbdamask/john-claude-skills

SKILL.md

Nameplugin-marketplace-creator
DescriptionCreate 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".

name: plugin-marketplace-creator description: 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".

Plugin Marketplace Creator

Create Claude Code plugin marketplaces—catalogs that distribute plugins to teams and communities via GitHub.

Quick Start

  1. Run scripts/init_marketplace.py <name> --path <output-dir> to scaffold
  2. Edit .claude-plugin/marketplace.json to add plugins
  3. Push to GitHub
  4. 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

FieldTypeRequiredDescription
namestringYesKebab-case identifier
sourcestring|objectYesWhere to fetch plugin
descriptionstringNoBrief description
versionstringNoSemantic version
authorobjectNo{name, email}
categorystringNoFor organization
keywordsarrayNoSearch tags
strictbooleanNoRequire 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):

  1. Check git config for user identity:

    git config --get user.name
    git config --get user.email
    
  2. If either is not set, ASK THE USER for their name and email before proceeding. Use these values with --owner-name and --owner-email flags.

  3. Check if target directory already has a git repo:

    ls -la <target-path>/.git 2>/dev/null
    

    If .git exists, do NOT run git init when 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
Skills Info
Original Name:plugin-marketplace-creatorAuthor:jbdamask