claude-code - 💡(How to fix) Fix Opus 4.7 first-run override ignores `effortLevel` in settings.json [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#55141Fetched 2026-05-01 05:45:12
View on GitHub
Comments
1
Participants
2
Timeline
5
Reactions
0
Timeline (top)
labeled ×4commented ×1

When effortLevel: "high" is set in ~/.claude/settings.json (user scope) and Opus 4.7 is launched for the first time, the launch banner shows xhigh effort instead of high — i.e. the model's first-run default overrides the configured value, contradicting the documented precedence.

Root Cause

When effortLevel: "high" is set in ~/.claude/settings.json (user scope) and Opus 4.7 is launched for the first time, the launch banner shows xhigh effort instead of high — i.e. the model's first-run default overrides the configured value, contradicting the documented precedence.

Fix Action

Fix / Workaround

  • The same docs page mentions: "When you first run Opus 4.7, Claude Code applies xhigh even if you previously set a different effort level for Opus 4.6 or Sonnet 4.6." — but that wording refers to a previously-set runtime value, not to effortLevel in settings.json. The override appears to be absolute on first launch and doesn't consult effortLevel.
  • Workaround: launching with --effort high works (CLI flag takes precedence over the first-run default).
  • Claude Code v2.1.123, macOS 25.2.0.

Code Example

{ "model": "claude-opus-4-7", "effortLevel": "high" }

---

Opus 4.7 with xhigh effort · Claude Max
   Welcome to Opus 4.7 xhigh! · /effort to tune speed vs. intelligence
RAW_BUFFERClick to expand / collapse

Summary

When effortLevel: "high" is set in ~/.claude/settings.json (user scope) and Opus 4.7 is launched for the first time, the launch banner shows xhigh effort instead of high — i.e. the model's first-run default overrides the configured value, contradicting the documented precedence.

Repro

  1. Set in ~/.claude/settings.json:
    { "model": "claude-opus-4-7", "effortLevel": "high" }
  2. Launch fresh: claude (Claude Code v2.1.123, Claude Max account).
  3. Banner reads:
    Opus 4.7 with xhigh effort · Claude Max
    Welcome to Opus 4.7 xhigh! · /effort to tune speed vs. intelligence
  4. Run /effort high once, quit, relaunch — banner now correctly reads high effort.

Expected

Per https://code.claude.com/docs/en/model-config.md ("Adjust effort level"):

The environment variable takes precedence over all other methods, then your configured level, then the model default.

effortLevel in settings.json is the configured level; xhigh is the model default. Configured should beat default on first launch — not just after a manual /effort.

Notes

  • The same docs page mentions: "When you first run Opus 4.7, Claude Code applies xhigh even if you previously set a different effort level for Opus 4.6 or Sonnet 4.6." — but that wording refers to a previously-set runtime value, not to effortLevel in settings.json. The override appears to be absolute on first launch and doesn't consult effortLevel.
  • Workaround: launching with --effort high works (CLI flag takes precedence over the first-run default).
  • Claude Code v2.1.123, macOS 25.2.0.

extent analysis

TL;DR

The issue can be worked around by launching Opus 4.7 with the --effort high CLI flag to override the model's first-run default.

Guidance

  • Verify that the effortLevel is correctly set to "high" in ~/.claude/settings.json before launching Opus 4.7.
  • Use the --effort high CLI flag when launching Opus 4.7 to ensure the configured effort level takes precedence over the model default.
  • Check the documentation at https://code.claude.com/docs/en/model-config.md for the expected precedence of effort level configuration methods.
  • If the issue persists, try running /effort high once, quitting, and relaunching Opus 4.7 to see if the banner correctly reads high effort.

Example

No code snippet is necessary for this issue, as it involves configuration and command-line flags.

Notes

The workaround using the --effort high CLI flag may not be a permanent solution, as it requires manual intervention each time Opus 4.7 is launched. The root cause of the issue appears to be a contradiction between the documented precedence of effort level configuration methods and the actual behavior of Opus 4.7 on first launch.

Recommendation

Apply the workaround by launching Opus 4.7 with the --effort high CLI flag, as it is a reliable method to override the model's first-run default and ensure the configured effort level is used.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Opus 4.7 first-run override ignores `effortLevel` in settings.json [1 comments, 2 participants]