Skip to content

Effective Config Viewer

The Effective Config Viewer shows you the final, merged configuration that Claude Code will use for a project. It resolves all layers of configuration into a single view.

Claude Code configuration can come from multiple files at different levels:

  1. Global~/.claude/settings.json
  2. Project Shared<project>/.claude/settings.json
  3. Project Local<project>/.claude/settings.local.json

The “effective config” is the result of merging all these layers according to their precedence rules. This is what Claude Code actually uses at runtime.

Each setting in the effective config view shows a provenance badge indicating which file it came from. This makes it clear where a setting originates and helps you identify:

  • Which settings are inherited from global config
  • Which are set at the project level
  • Which are locally overridden

Different settings types merge differently:

Setting TypeMerge Behavior
PermissionsUnion across tiers — allow/deny rules from all levels combine
Environment VariablesOverride — more specific tiers replace less specific ones
HooksConcatenate — hooks from all tiers run together
Disallowed ToolsUnion — tools disabled at any level remain disabled

When the same setting is defined at multiple levels, the most specific level takes priority:

Project Local > Project Shared > Global

For example, if an environment variable API_KEY is set in both global and project local settings, the project local value is used.

Open the Effective Config tab (tab 6, or Cmd+6) in any project’s detail view to see the merged result. Look at the source badges to understand where each value comes from and which file to edit if you want to change it.