Marketplace directory name mismatch: settings key vs disk lookup path

Resolved 💬 2 comments Opened Mar 19, 2026 by girofu Closed Apr 16, 2026

Bug Description

When adding a third-party GitHub marketplace via claude plugin marketplace add {owner}/{repo}, there is a directory naming inconsistency between:

  1. marketplace add command: Creates the directory using the settings key name (e.g., skill-fetch)
  2. Internal lookup logic: Searches for the directory using {owner}-{repo} format (e.g., girofu-skill-fetch)

This causes a Failed to load marketplace error because the directory doesn't exist at the expected path.

Steps to Reproduce

  1. Add a third-party marketplace:

``bash
claude plugin marketplace add girofu/skill-fetch
``

  1. Verify the marketplace was added successfully (it is)
  2. Run any plugin command that triggers marketplace loading:

``bash
claude plugin list
``

  1. Observe the warning:

``
Warning: Failed to load marketplace 'skill-fetch': Failed to load marketplace "skill-fetch" from source (github): Marketplace file not found
at /Users/xxx/.claude/plugins/marketplaces/girofu-skill-fetch/.claude-plugin/marketplace.json
``

Expected Behavior

The directory name used by marketplace add and the internal lookup path should be consistent. Either:

  • Option A: marketplace add creates the directory as {owner}-{repo} (e.g., girofu-skill-fetch)
  • Option B: Internal lookup uses the settings key name (e.g., skill-fetch)

Actual Behavior

  • marketplace add creates: ~/.claude/plugins/marketplaces/skill-fetch/
  • Internal lookup searches: ~/.claude/plugins/marketplaces/girofu-skill-fetch/
  • The extraKnownMarketplaces key in settings.json is "skill-fetch"

Evidence

settings.json entry:

"extraKnownMarketplaces": {
  "skill-fetch": {
    "source": {
      "source": "github",
      "repo": "girofu/skill-fetch"
    }
  }
}

Disk:

~/.claude/plugins/marketplaces/
├── claude-plugins-official        # repo name only
├── superpowers-marketplace        # repo name only
├── girofu-my-claude-marketplace   # owner-repo format (added earlier?)
└── skill-fetch                    # repo name only (should be girofu-skill-fetch?)

Note: girofu-my-claude-marketplace uses the {owner}-{repo} format, suggesting the naming convention may have changed across Claude Code versions, creating inconsistency for existing installations.

Workaround

Create a symlink:

ln -s ~/.claude/plugins/marketplaces/skill-fetch ~/.claude/plugins/marketplaces/girofu-skill-fetch

Environment

  • Claude Code CLI (latest as of 2026-03-19)
  • macOS (Darwin 25.2.0)

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗