Plugins synced from claude.ai can't satisfy a declared plugin dependency, so the dependent plugin is disabled

Status Open
Reported on v2.1.291
Maintainer reply None cached
Activity 0 comments · opened Oct 6, 2026

Version: Claude Code 2.1.291 (CLI and the desktop Code tab), macOS

What happens

I turned on two plugins in claude.ai: superpowers (from the Anthropic directory) and my own plugin x (from my GitHub marketplace). Both sync into Claude Code as <name>@synced. x's plugin.json declares:

"dependencies": [{ "name": "superpowers", "marketplace": "claude-plugins-official" }]

claude plugin list then shows:

❯ superpowers@synced   Status: ✔ loaded
❯ x@synced             Status: ✘ disabled
  Error: Dependency "superpowers@claude-plugins-official" is not installed — run
  `claude plugin install superpowers@claude-plugins-official`, or check that its
  marketplace is added

The dependency's plugin is installed and loaded, just under @synced. Following the error's advice loads superpowers a second time, which duplicates its skills and its startup hook.

Why

The docs say synced plugins load as <name>@synced "with no marketplace and no install record", and a dependency resolves by <name>@<marketplace> (the declaring plugin's own marketplace by default). A synced plugin therefore can't satisfy any dependency:

  • marketplace set: the synced copy has no marketplace, so it never matches.
  • No marketplace: the dependency resolves in the declaring plugin's marketplace. That works for x@synced → superpowers@synced, but not for the same plugin installed from its marketplace (x@x-toolkit → superpowers@x-toolkit, which doesn't exist).

The only manifest that works for a plugin offered both synced and through a marketplace is one that declares no dependencies at all.

Expected

One of these:

  1. A synced plugin satisfies a dependency on the same plugin name, at least when it came from the same source the dependency names (the synced row already records anthropic-plugin-directory or the account marketplace's source).
  2. A dependency can be named without a marketplace, matching any enabled plugin with that name.
  3. Failing those, the error mentions the loaded @synced copy and suggests a fix that doesn't load a second copy.

Workaround

Remove dependencies from plugin.json and list the required plugins in the README.

View original on GitHub ↗