CLAUDE_CODE_EFFORT_LEVEL environment variable not reflected in /model UI

Resolved 💬 4 comments Opened Feb 6, 2026 by yohey-w Closed Mar 6, 2026

Description

The CLAUDE_CODE_EFFORT_LEVEL environment variable, documented at code.claude.com/docs/en/model-config, does not appear to take effect in the /model UI effort slider.

Steps to Reproduce

  1. Launch Claude Code with the environment variable set:

``bash
CLAUDE_CODE_EFFORT_LEVEL=low claude --model opus --dangerously-skip-permissions
``

  1. Verify the environment variable is present in the process:

``bash
cat /proc/<claude_pid>/environ | tr '\0' '\n' | grep EFFORT
# Output: CLAUDE_CODE_EFFORT_LEVEL=low
``

  1. Open /model menu in Claude Code
  2. Observe the effort slider at the bottom

Expected Behavior

The effort slider should display Low effort (matching the environment variable).

Actual Behavior

The effort slider always displays High effort (default) regardless of the environment variable value.

Tested Values

| CLAUDE_CODE_EFFORT_LEVEL | /model UI display |
|---|---|
| low | High effort (default) |
| medium | High effort (default) |
| high | High effort (default) |
| max | High effort (default) |

All four values were tested. None affected the UI.

Note: The /model UI left/right arrow key adjustment works correctly — this issue is specific to the environment variable path.

Environment

  • Claude Code: v2.1.33 / v2.1.34
  • Model: Opus 4.6 (via --model opus)
  • Platform: WSL2 (Ubuntu on Windows)
  • Node: v20.20.0

Source Code Reference

In the minified cli.js, the environment variable is read by a function that calls process.env.CLAUDE_CODE_EFFORT_LEVEL and validates against ["low", "medium", "high", "max"]. The validated value appears to be used in the API request priority chain (envVar ?? sessionValue ?? modelDefault), but is not reflected in the /model UI state.

Questions

  1. Is the environment variable intended to affect the /model UI display, or only the actual API requests?
  2. If it only affects API requests, is there a way to verify it is actually being applied?
  3. The documentation at code.claude.com/docs/en/model-config lists only low|medium|high as valid values, but the API docs at platform.claude.com/docs/en/build-with-claude/effort also list max (Opus 4.6 only). Should max be supported via the environment variable as well?

View original on GitHub ↗

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