claude-code - 💡(How to fix) Fix Plugins installed in other projects appear in current project's Manage Plugins UI with misleading 'project scope' error

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

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.

Error Message

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. 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".

Root Cause

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.

Fix Action

Workaround

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

Code Example

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

---

claude plugin disable security-guidance@claude-plugins-official --scope local

---

{
  "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",
        ...
      }
    ]
  }
}
RAW_BUFFERClick to expand / collapse

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
  2. Open Claude Code in an unrelated project B (e.g. x:\Workspace\anira) that has no .claude/ directory and no settings.json.
  3. 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.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

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".

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Plugins installed in other projects appear in current project's Manage Plugins UI with misleading 'project scope' error