enabledPlugins in managed settings does not auto-install plugins
Summary
When a plugin is specified in enabledPlugins via managed settings,
Claude Code downloads the plugin files to the local cache but does NOT register the plugin
in installed_plugins.json. As a result, the plugin's hooks are never executed.
Expected Behavior
If a plugin is listed in enabledPlugins in managed settings, Claude Code should
automatically install it (i.e., add the entry to installed_plugins.json) so that
hooks and other plugin functionality work without any manual steps from the user.
Actual Behavior
The plugin files are downloaded to the cache directory:~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/
But ~/.claude/plugins/installed_plugins.json is NOT updated, so the harness
does not load the plugin's hooks.
Steps to Reproduce
- Configure
remote-settings.json(managed settings) with:
``json``
{
"extraKnownMarketplaces": { "<marketplace>": { ... } },
"enabledPlugins": { "<plugin>@<marketplace>": true }
}
- Start a new Claude Code session
- Observe that plugin cache files are present but hooks do not fire
- Check
~/.claude/plugins/installed_plugins.json— no entry for the plugin exists
Workaround
Manually adding the plugin entry to installed_plugins.json resolves the issue:
{
"<plugin>@<marketplace>": [{
"scope": "user",
"installPath": "~/.claude/plugins/cache/<marketplace>/<plugin>/<version>",
"version": "<version>",
"installedAt": "...",
"lastUpdated": "..."
}]
}
Impact
This makes managed/MDM-style plugin deployment non-functional. Teams cannot silently
deploy plugins to members via managed settings — every user must manually register
the plugin, defeating the purpose of managed settings.
Environment
- OS: macOS
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗