Bug Description
When using extraKnownMarketplaces with "source": "directory" and an absolute path, the marketplace is not discovered. Switching to a relative path (resolved from the project root) makes it work. There is no error message — it silently fails.
Steps to Reproduce
- Create a local marketplace directory at
~/.claude/marketplace/ with a valid .claude-plugin/marketplace.json
- Add to
.claude/settings.json (project level):
{
"extraKnownMarketplaces": {
"my-marketplace": {
"source": {
"source": "directory",
"path": "/home/user/.claude/marketplace"
}
}
}
}
- Restart Claude Code
- The marketplace is not discovered — no trust dialog, no plugin available
Expected Behavior
The marketplace should be discovered using the absolute path, as documented in the Settings documentation:
{ "source": "directory", "path": "/usr/local/share/claude/acme-plugins" }
Workaround
Use a relative path from the project root instead. If the marketplace files live outside the project, create a symlink:
ln -s ~/.claude/marketplace .claude/marketplace
Then use:
{
"extraKnownMarketplaces": {
"my-marketplace": {
"source": {
"source": "directory",
"path": "./.claude/marketplace"
}
}
}
}
This works correctly.
Additional Context
Bug Description
When using
extraKnownMarketplaceswith"source": "directory"and an absolute path, the marketplace is not discovered. Switching to a relative path (resolved from the project root) makes it work. There is no error message — it silently fails.Steps to Reproduce
~/.claude/marketplace/with a valid.claude-plugin/marketplace.json.claude/settings.json(project level):{ "extraKnownMarketplaces": { "my-marketplace": { "source": { "source": "directory", "path": "/home/user/.claude/marketplace" } } } }Expected Behavior
The marketplace should be discovered using the absolute path, as documented in the Settings documentation:
{ "source": "directory", "path": "/usr/local/share/claude/acme-plugins" }Workaround
Use a relative path from the project root instead. If the marketplace files live outside the project, create a symlink:
ln -s ~/.claude/marketplace .claude/marketplaceThen use:
{ "extraKnownMarketplaces": { "my-marketplace": { "source": { "source": "directory", "path": "./.claude/marketplace" } } } }This works correctly.
Additional Context
extraKnownMarketplacesin user settings (~/.claude/settings.json) does not trigger marketplace discovery at all, despite the docs listing User scope as supported. The trust dialog only fires for project-level entries. This is tracked in [BUG]extraKnownMarketplacesinmanaged-settings.jsonis ignored #16870 for managed settings but also applies to user settings.