Plugins installed in other projects appear in current project's Manage Plugins UI with misleading 'project scope' error

Resolved 💬 3 comments Opened May 16, 2026 by lucasbp Closed May 19, 2026

Summary

When plugins are installed with --scope project from one project directory, they incorrectly appear in the Manage Plugins UI when Claude Code is launched from a different project directory. Attempting to uninstall them produces a confusing error claiming they are enabled via .claude/settings.json "shared with your team", even though no such file exists in the current project.

Environment

  • OS: Windows 11 Pro 10.0.26200
  • Claude Code version: shown as 24.12.0 in shell prompt
  • Shell: PowerShell
  • Surface: VSCode extension (Manage Plugins panel)

Steps to reproduce

  1. From project A (e.g. x:\Workspace\bukin), install a plugin with project scope:

``
claude plugin install code-simplifier@claude-plugins-official --scope project
``

  1. Open Claude Code in an unrelated project B (e.g. x:\Workspace\anira) that has no .claude/ directory and no settings.json.
  2. Open the Manage Plugins panel.

Actual behavior

  • The plugin installed for project A is listed under INSTALLED in project B's Manage Plugins panel.
  • Clicking the trash icon shows:

> Failed to uninstall plugin "security-guidance@claude-plugins-official": Plugin "security-guidance@claude-plugins-official" is enabled at project scope (.claude/settings.json, shared with your team). To disable just for you: claude plugin disable security-guidance@claude-plugins-official --scope local

  • Running the suggested command:

``
claude plugin disable security-guidance@claude-plugins-official --scope local
``
fails with:
> Failed to disable plugin "security-guidance@claude-plugins-official": Plugin "security-guidance@claude-plugins-official" is already disabled at local scope

  • No .claude/settings.json (or any .claude/ directory) exists in the current project. The actual record of the install is in the global C:\Users\Lucas\.claude\plugins\installed_plugins.json, which stores per-plugin entries with "scope": "project" and a projectPath field pointing to the other project.

Example from my installed_plugins.json (abbreviated):

{
  "version": 2,
  "plugins": {
    "code-simplifier@claude-plugins-official": [
      {
        "scope": "project",
        "projectPath": "x:\Workspace\bukin",
        ...
      },
      {
        "scope": "project",
        "projectPath": "X:\Workspace\confirma-v2-cs",
        ...
      }
    ],
    "security-guidance@claude-plugins-official": [
      {
        "scope": "project",
        "projectPath": "x:\Workspace\bukin",
        ...
      }
    ]
  }
}

The current working directory when this happens is x:\Workspace\anira — none of the listed projectPaths.

Expected behavior

Either:

  1. Scoping fix: Plugins with scope: project and a projectPath other than the current cwd should not appear in the current project's Manage Plugins panel, OR
  2. Messaging fix (minimum): The error message should not claim the plugin is enabled via .claude/settings.json "shared with your team" when no such file exists in the current project. The actual source (~/.claude/plugins/installed_plugins.json, project-scoped under a different projectPath) should be reported so the user knows what to edit. The fallback command should also actually do something instead of immediately reporting "already disabled at local scope".

Workaround

Manually edit ~/.claude/plugins/installed_plugins.json to remove the stale project-scoped entries pointing at other projects.

Notes

I noticed this because the trash icon was disabled-looking and the toggles were already off, yet the plugins remained listed. The UI gave no indication these belonged to a different project.

View original on GitHub ↗

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