`claude plugin uninstall <name>@<marketplace>` ignores the marketplace qualifier and can uninstall the wrong same-named plugin

Open 💬 0 comments Opened Jul 11, 2026 by mcs-eng

Bug

With two plugins of the same name installed from different marketplaces, claude plugin uninstall with an explicit @<marketplace> qualifier removed the OTHER plugin — the one from the marketplace I did not name.

Repro

  1. Install the same-named plugin from two marketplaces:
  • superpowers@claude-plugins-official (enabled, v6.1.1)
  • superpowers@superpowers-dev (disabled)
  1. Run: claude plugin uninstall superpowers@superpowers-dev
  2. Output: ✔ Successfully uninstalled plugin: superpowers (scope: user)
  3. Check ~/.claude/plugins/installed_plugins.json: superpowers@claude-plugins-official is GONE; superpowers@superpowers-dev is still installed.

The qualifier appears to be discarded and the bare name resolved against the registry, matching the first/other entry. Impact: removed the enabled production copy while the disabled duplicate survived — the exact opposite of the requested action.

Expected: uninstall exactly <name>@<marketplace>, or error if that specific entry isn't installed.

Note: claude plugin install <name>@<marketplace> respects the qualifier (help text documents it), so uninstall is inconsistent with install.

Environment

  • Claude Code 2.1.207, Windows 11 (PowerShell 7)
  • Plugins under ~/.claude/plugins/cache, registry installed_plugins.json

View original on GitHub ↗