[BUG] Plugin source "path" field ignored for GitHub sources — entire repo used as plugin root
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When a plugin source in marketplace.json uses a GitHub source with a path field, Claude Code clones the entire repository but ignores the path — it treats the repo root as the plugin root instead of navigating to the specified subdirectory.
Minimal reproduction marketplace.json:
{
"name": "path-bug-test-marketplace",
"owner": {
"name": "test-user",
"email": "test-user@example.com"
},
"plugins": [
{
"name": "sm-context7",
"source": {
"source": "github",
"repo": "anthropics/claude-plugins-official",
"path": "external_plugins/context7"
}
}
]
}
After installing, installed_plugins.json records:
"sm-context7@path-bug-test-marketplace": [
{
"installPath": "~/.claude/plugins/cache/path-bug-test-marketplace/sm-context7/27d2b86d72da",
"version": "27d2b86d72da"
}
]
The installPath points to the cloned repo root. The actual plugin content exists at the path subdirectory but is never resolved:
The context7 MCP server never appears in the session. The plugin shows as installed and enabled but contributes nothing.
What Should Happen?
The path field should make Claude Code resolve the plugin root to <cache_root>/external_plugins/context7/, find plugin.json there, and load the MCP server defined in .mcp.json.
The path field is documented in the https://code.claude.com/docs/en/plugin-marketplaces#marketplace-schema under strictKnownMarketplaces: "For GitHub sources: repo is required, and ref or path must also match if specified in the allowlist". While this references allowlist matching, the field is clearly accepted by the schema for plugin sources too — it just has no effect or ignored.
Error Messages/Logs
Steps to Reproduce
- Create
.claude-plugin/marketplace.jsonwith the minimal example above - Add marketplace:
/plugin marketplace add ./ - Install plugin:
/plugin install sm-context7@path-bug-test-marketplace - Observe: plugin appears installed and enabled in
settings.json - Check
~/.claude/plugins/installed_plugins.json— installPath points to repo root, not external_plugins/context7/ - Check cache directory — entire
anthropics/claude-plugins-officialrepo is cloned, context7 content exists at subdirectory but is unused - The context7 MCP server does not appear in the session
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.44
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
PyCharm terminal
Additional Information
_No response_
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗