Plugin install blocks re-installation for different project scope

Resolved 💬 3 comments Opened Mar 3, 2026 by fil512 Closed Mar 6, 2026

Bug Description

When a plugin is installed with scope: "project" for one project, attempting to install the same plugin in a different project fails with:

Plugin 'smile-dev-tools@smile-marketplace' is already installed. Use '/plugin' to manage existing plugins.

The install command checks whether the plugin name exists in installed_plugins.json but does not consider that the existing entry is scoped to a different projectPath.

Steps to Reproduce

  1. In project A, run /plugin install smile-dev-tools@smile-marketplace — installs successfully with scope: "project" and projectPath set to project A
  2. Open a different project B
  3. Run /plugin install smile-dev-tools@smile-marketplace
  4. Get error: Plugin 'smile-dev-tools@smile-marketplace' is already installed.

Expected Behavior

The install command should either:

  1. Allow installing a second project-scoped entry for the new project (the array structure in installed_plugins.json already supports multiple entries per plugin), or
  2. Inform the user the plugin is installed for a different project and offer to install it for the current project as well

Actual Behavior

Installation is blocked entirely. The plugin's commands/skills are not available in the second project.

Workaround

Manually edit ~/.claude/plugins/installed_plugins.json to either:

  • Change "scope": "project" to "scope": "user" and remove projectPath
  • Add a second entry in the plugin's array with the new project path

Environment

  • Claude Code CLI
  • macOS (Darwin 25.3.0)

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗