Plugin install blocked by existing installation at different scope
Summary
When a plugin is installed at project scope, attempting to also install it at user scope fails with "Plugin is already installed." This prevents users from having a plugin available globally after it was first installed for a single project.
Reproduction
- Add a custom marketplace:
````
/plugin marketplace add owner/repo
- Install a plugin at project scope (either via the interactive UI or
--scope project):
````
/plugin install my-plugin@my-marketplace
- Attempt to install the same plugin at user scope:
````
/plugin install my-plugin@my-marketplace
- Result:
Plugin 'my-plugin@my-marketplace' is already installed. Use '/plugin' to manage existing plugins.
There is no --scope flag available in the interactive /plugin install command to override this, and the interactive Discover tab also does not offer to install at a different scope if the plugin is already present at any scope.
Expected Behavior
Either:
- Option A: Allow installing the same plugin at multiple scopes (project + user), since these serve different purposes (team config vs personal global access)
- Option B: Prompt the user to change the scope of the existing installation rather than silently blocking
Impact
This is particularly problematic for plugin authors who develop a plugin in their plugin repo (where it gets installed at project scope) but also want it available globally. The only workaround is to manually edit ~/.claude/plugins/installed_plugins.json.
Environment
- Claude Code CLI (latest)
- macOS
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗