plugin install fails 'source type your Claude Code version does not support' for valid plugins that load fine via --plugin-dir

Status Fixed / completed
Reported on v2.1.139
Maintainer reply None cached
Activity 2 comments · opened Jul 22, 2026 · closed Aug 25, 2026

Summary

claude plugin install <plugin>@<marketplace> fails for certain plugins with:

✘ Failed to install plugin "<plugin>@<marketplace>": This plugin uses a source type your Claude Code version does not support. Update Claude Code and try again.

The error is misleading: updating does not help, and the affected plugins are valid — they load and run correctly via --plugin-dir. Within the same marketplace, some plugins install and others don't, so it is neither a version nor a marketplace-wiring problem.

Environment

  • Claude Code 2.1.139 (npm global) and 2.1.217 (native, ~/.local/bin/claude) — both fail identically.
  • Platform: WSL2 (Ubuntu), Linux.
  • Marketplace: a private GitHub repo added via claude plugin marketplace add owner/repo (also reproduced as a local directory source).

Repro

  1. A marketplace with several plugins (string sources, e.g. "source": "./my-plugin").
  2. claude plugin install plugin-A@mktsucceeds (a simple plugin: agents with name/description/tools frontmatter; a few skills).
  3. claude plugin install plugin-B@mktfails with the "source type" error (a plugin with 8 agents whose frontmatter also includes model: and effort:, and 5 skills, some with argument-hint:).
  4. claude --plugin-dir /path/to/plugin-Bloads plugin-B fine (skills available, no error). So plugin-B's content is valid; only the marketplace install path rejects it.

Ruled out (tested)

  • Not the version — fails on both 2.1.139 and latest 2.1.217.
  • Not the marketplace — plugin-A installs from the exact same marketplace.json.
  • Not $schema — reproduced with both https://anthropic.com/claude-code/marketplace.schema.json and https://code.claude.com/schemas/marketplace.json.
  • Not the source-path format — reproduced with plugins at repo root (./plugin) and nested (./plugins/plugin), and with/without metadata.pluginRoot.
  • Not agent model/effort fields — stripping them from plugin-B's agent frontmatter did not change the result.

Expected vs actual

  • Expected: a plugin that loads via --plugin-dir should also install via claude plugin install, or the error should name the specific unsupported "source type" and file.
  • Actual: generic "source type ... does not support / update Claude Code," which is inaccurate (latest version fails) and gives no way to locate the offending declaration.

Ask

  1. What does "source type" refer to at the plugin (not marketplace) level, and which manifest/component triggers this? The error should identify the file/field.
  2. Why does --plugin-dir accept a plugin that claude plugin install rejects? The two paths appear to validate differently.

Happy to share the exact plugin directory / a minimal repro on request.

View original on GitHub ↗

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