Discover tab hides locally-scoped plugins installed in other projects
Summary
When a plugin is installed with scope: "local" for a specific project, it disappears from the Discover tab for all other projects, making it impossible to install it in a second project through the UI.
Steps to reproduce
- Add the
superpowers-marketplace(or any marketplace with plugins) - Open project A and install a plugin (e.g.
superpowers) with local scope - Open project B and go to
/plugin→ Discover tab - Search for the same plugin — it does not appear
- Check the Installed tab — it's not there either (correct, it's not installed for this project)
- Go to Marketplaces → browse the marketplace's plugins — the plugin shows as "(installed)" and Space toggle does nothing
Result: No UI path exists to install the plugin in project B.
Expected: The Discover tab should show locally-scoped plugins that are not installed for the current project, or at minimum the marketplace browse view should allow installing them.
Root cause
In the minified binary (v2.1.52), the install check function (CQ → rZ7) looks up installed_plugins.json and checks if any entry exists for the plugin ID:
function rZ7(T) {
let A = _J().plugins[T] // loads installed_plugins.json
if (!A || A.length === 0) return // undefined = not installed
let _ = A[0] // takes first entry, ignores scope/projectPath
}
function CQ(T) { return rZ7(T) !== void 0 }
The Discover tab then filters these out:
let IT = QT.filter((xT) => !xT.isInstalled)
The check does not consider scope or projectPath — so a plugin installed locally in project A is treated as globally installed everywhere.
Workaround
Manually add entries to both:
~/.claude/plugins/installed_plugins.json(add a new array entry withscope: "local"and the targetprojectPath)<project>/.claude/settings.local.json(add toenabledPlugins)
Environment
- Claude Code v2.1.52
- macOS (arm64)
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗