/effort displays 'xhigh' instead of 'max' when CLAUDE_CODE_EFFORT_LEVEL=max is set via env var

Resolved 💬 3 comments Opened Apr 24, 2026 by tiagobastos Closed Apr 27, 2026

Summary

When CLAUDE_CODE_EFFORT_LEVEL=max is configured in settings.json under the env block, running /effort at the start of a new session displays xhigh instead of max.

Steps to Reproduce

  1. Set CLAUDE_CODE_EFFORT_LEVEL=max in ~/.claude/settings.json:

``json
{
"env": {
"CLAUDE_CODE_EFFORT_LEVEL": "max"
}
}
``

  1. Start a new Claude Code session
  2. Run /effort

Expected Behavior

/effort should display max as the current effort level, since the env var is active and the docs explicitly state it persists across sessions when configured this way.

Actual Behavior

/effort displays xhigh instead of max, even though the env var is set correctly.

Relevant Documentation

From https://code.claude.com/docs/en/model-config:

_low, medium, high, and xhigh persist across sessions. max provides the deepest reasoning with no constraint on token spending and applies to the current session only, except when set through the CLAUDE_CODE_EFFORT_LEVEL environment variable._

This implies max should be a recognized, persistent state when set via CLAUDE_CODE_EFFORT_LEVEL, but /effort does not reflect it.

Notes

The actual effort behavior may still be max — this appears to be a display inconsistency in the /effort command rather than a functional bug. Still, the misleading display makes it hard to verify the setting is taking effect.

View original on GitHub ↗

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