settings.local.json enabledPlugins does not override global settings.json
Description
Project-level settings.local.json enabledPlugins: false does not override global ~/.claude/settings.json enabledPlugins: true. Plugins load into context despite being explicitly disabled at the project level.
Expected behavior
Config precedence should be: project settings.local.json > project settings.json > global ~/.claude/settings.json
A project-level settings.local.json setting enabledPlugins to false for a plugin should override the global true.
Actual behavior
The global true wins. Plugins still load into context (consuming tokens) even though the project explicitly disables them.
Reproduction
Global ~/.claude/settings.json:
{
"enabledPlugins": {
"plugin-dev@claude-plugins-official": true,
"skill-creator@claude-plugins-official": true
}
}
Project .claude/settings.local.json:
{
"enabledPlugins": {
"plugin-dev@claude-plugins-official": false,
"skill-creator@claude-plugins-official": false
}
}
Result: plugin-dev:plugin-validator (288 tokens), plugin-dev:skill-reviewer (287 tokens), plugin-dev:agent-creator (284 tokens) all load into context despite being disabled in settings.local.json.
Environment
- Claude Code VSCode extension
- Windows 11
- Claude Opus 4.6
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗