enabledPlugins version constraints (array format) don't work

Resolved 💬 1 comment Opened Apr 12, 2026 by RoyTouw77 Closed Apr 12, 2026

Description

The enabledPlugins setting in .claude/settings.json accepts an array of strings according to the schema, described as supporting "extended format with version constraints." However, version constraints don't appear to be enforced.

Steps to Reproduce

  1. Set up a marketplace with a plugin at version 2.0.0
  2. In .claude/settings.json, enable the plugin with a version constraint:

``json
{
"enabledPlugins": {
"my-plugin@my-marketplace": ["^2.0.0"]
}
}
``

  1. Bump the plugin to version 3.0.0 in the marketplace
  2. Clear the plugin cache (~/.claude/plugins/cache/<marketplace>/<plugin>/)
  3. Remove the entry from ~/.claude/plugins/installed_plugins.json
  4. Delete and re-clone the marketplace (~/.claude/plugins/marketplaces/<marketplace>/)
  5. Restart Claude Code

Expected Behavior

The plugin should NOT install/load because 3.0.0 is outside the ^2.0.0 range.

Actual Behavior

The plugin installs and loads regardless of the version constraint. The array format is accepted without error but the constraint is not enforced.

Additional Context

  • The JSON schema for settings.json describes enabledPlugins values as supporting boolean or array of strings with "extended format with version constraints"
  • No documentation exists for the array format syntax
  • This feature would be valuable for large teams (100+ developers) sharing plugins via extraKnownMarketplaces, where breaking changes in plugins need to be managed carefully

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗