settings.local.json enabledPlugins does not override global settings.json

Resolved 💬 3 comments Opened Mar 14, 2026 by mpool Closed Mar 18, 2026

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

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗