effortLevel setting in settings.json not applied on startup

Resolved 💬 3 comments Opened Apr 8, 2026 by khoiado Closed May 27, 2026

Description

The effortLevel setting in the global ~/.claude/settings.json is not being applied when Claude Code starts. The effort level defaults to "medium" despite the config explicitly setting it to "max".

Configuration

~/.claude/settings.json:

{
  "permissions": {
    "defaultMode": "bypassPermissions"
  },
  "effortLevel": "max",
  "skipDangerousModePermissionPrompt": true
}

Expected Behavior

Claude Code should start with effort level set to max as configured.

Actual Behavior

  • defaultMode: "bypassPermissions" works — status bar shows "bypass permissions on" ✅
  • effortLevel: "max" does not work — status bar shows "medium · /effort" ❌

The user has to manually cycle the effort level via /effort each session.

Environment

  • Claude Code version: 2.1.97 (latest as of 2026-04-08)
  • OS: macOS (Darwin 24.3.0)
  • Shell: zsh
  • Model: Opus 4.6 (1M context) — Claude Max

Screenshot

The status bar on startup shows "medium · /effort" instead of the configured "max":

>> bypass permissions on (shift+tab to cycle)              ● medium · /effort

Notes

No project-level settings override effortLevel — the project .claude/settings.local.json only contains permission allow-lists.

View original on GitHub ↗

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