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
- Set up a marketplace with a plugin at version
2.0.0 - In
.claude/settings.json, enable the plugin with a version constraint:
``json``
{
"enabledPlugins": {
"my-plugin@my-marketplace": ["^2.0.0"]
}
}
- Bump the plugin to version
3.0.0in the marketplace - Clear the plugin cache (
~/.claude/plugins/cache/<marketplace>/<plugin>/) - Remove the entry from
~/.claude/plugins/installed_plugins.json - Delete and re-clone the marketplace (
~/.claude/plugins/marketplaces/<marketplace>/) - 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
enabledPluginsvalues as supportingbooleanorarray of stringswith "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
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗