What
An organization can now mark a plugin as required via its marketplace/installation preference. Claude Code enforces this in several places:
- Attempting to disable a required plugin (or its synced counterpart) now fails with
Plugin "<name>" is required by your organization and can't be disabled here. Contact your admin to change it.A related check also blocks disabling a plugin that other required plugins depend on, unless abypassDependentsBlockoption is passed. - Uninstalling a plugin, and the "disable all enabled plugins" bulk action, now also skip org-required plugins (and anything they depend on), and report how many plugins were skipped as a result.
- The plugin details screen shows a new " · Required by your org" label next to a required plugin's enabled/disabled status.
- A new internal helper can force a plugin to be treated as enabled - bypassing user-disable and managed-disable checks - when it's marked required for its marketplace.
- Plugin enable/disable/uninstall failures now include a machine-readable
failureCodefield (e.g.not_installed_at_scope,settings_write_failed,already_in_goal_state,required_by_dependents,dependency_missing,dependency_disabled,dependency_policy_blocked,plugin_policy_blocked,ambiguous_marketplace,managed_name_locked,required_by_organization,builtin,not_installed,enabled_at_project_scope,partial_failure) alongside the existing human-readable message.
Why
This lets organizations lock in plugins they consider mandatory (for security, compliance, or workflow reasons) so users and scripts can't accidentally or deliberately turn them off, while giving tooling a stable code to key off instead of parsing free-text error messages.
Names in the bundleinstallationPreference
Documented inclaude-docs/third-party/claude-desktop/configuration
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
Confirmed since
Anthropic's documentation has since written up installationPreference, on MCP, plugins, skills, and hooks.
This mirrors the installation preference behavior of remote-managed plugins on claude.ai. Changing a plugin's `installationPreference` takes effect at each user's next sync.third-party/claude-desktop/extensions see the edit
One source agreesOne thing we can check says the same as this entry.
Anthropic's documentation agrees
Anthropic's documentation has since written up installationPreference, on MCP, plugins, skills, and hooks.