Third-party marketplace plugins cannot register skills/commands/agents
Bug Description
Plugins installed from third-party marketplaces (any marketplace other than claude-plugins-official) show as installed and enabled in the Manage Plugins UI (green dot, toggle on) but fail to register any skills, commands, or agents. The / command autocomplete shows "No matching commands" for the plugin prefix.
Hooks and CLAUDE.md from the same plugin DO load correctly — only skill/command/agent discovery is broken.
Steps to Reproduce
- Create a third-party marketplace (GitHub repo with
.claude-plugin/marketplace.json) - Add a plugin with valid
skills/directory containing properly formattedSKILL.mdfiles - Install: Add marketplace via Manage Plugins → Marketplaces tab → Add
- Enable the plugin (toggle on, green dot appears)
- Restart VS Code / Claude Code
- Type
/<plugin-name>— shows "No matching commands"
Expected Behavior
Skills from third-party marketplace plugins should appear in the / command autocomplete, the same way skills from claude-plugins-official plugins appear.
Actual Behavior
- Plugin shows as installed and enabled (green dot) ✅
- Plugin hooks load and fire correctly ✅
- Plugin CLAUDE.md loads into context ✅
- Plugin skills/commands/agents are NOT registered ❌
/autocomplete shows "No matching commands" for the plugin prefix ❌
Environment
- Claude Code version: 2.1.76
- VS Code extension
- macOS Darwin 24.3.0
- Plugin:
sia@sia-plugins(marketplace:rkarim08/sia)
Diagnostic Evidence
- Every working plugin on the system is from
claude-plugins-official(20 plugins) - The only non-official plugin (
sia@sia-plugins) has zero skills registered - Plugin cache structure is correct and matches working plugins (verified by comparing against
superpowers@claude-plugins-official) - SKILL.md frontmatter is valid (name, description fields present, correct format)
- Tested with minimal plugin (1 skill, no hooks, no CLAUDE.md) — still no registration
installed_plugins.jsoncorrectly points to cache,settings.jsonhas"sia@sia-plugins": true
Plugin Structure (matches working plugins exactly)
.claude-plugin/
├── marketplace.json ← name: "sia-plugins", plugins: [{name: "sia", source: "./"}]
└── plugin.json ← name: "sia", version: "1.0.12"
skills/
├── sia-stats/
│ └── SKILL.md ← name: sia-stats, description: "Show SIA knowledge graph statistics"
├── sia-search/
│ └── SKILL.md
└── ... (47 skills total)
hooks/
└── hooks.json ← Valid events only (PreToolUse, PostToolUse, etc.)
Workaround
None found. --plugin-dir flag was not tested successfully in VS Code extension context.
Hypothesis
The plugin loader may have special-case handling for claude-plugins-official that doesn't apply to third-party marketplaces — specifically in the skill/command/agent discovery phase. Hooks and CLAUDE.md use a different loading path that works for all marketplaces.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗