[VS Code] Model/effort label ignores CLAUDE_CODE_EFFORT_LEVEL and shows the per-model effortLevel instead

Status Open
Reported on v2.1.285
Maintainer reply None cached
Activity 1 comment · opened Oct 3, 2026

Environment

  • VS Code extension: anthropic.claude-code 2.1.285 (linux-x64, Remote-WSL)
  • Claude Code CLI: 2.1.278
  • VS Code: 1.140.0
  • OS: Windows 11 + WSL2 Ubuntu (kernel 6.18.33.2-microsoft-standard-WSL2)
  • Model: claude-opus-5-5

Settings

User settings (~/.claude/settings.json):

"modelSettings": {
  "claude-opus-5-5": { "effortLevel": "high" }
}

Project settings (<repo>/.claude/settings.json):

"env": { "CLAUDE_CODE_EFFORT_LEVEL": "medium" },
"effortLevel": "medium"

Steps to reproduce

  1. Use the settings above.
  2. Open the project in VS Code and start a Claude Code session with Opus 5.5.
  3. Look at the model/effort label in the chat panel.

Expected: The label shows "Opus 5.5 Medium". CLAUDE_CODE_EFFORT_LEVEL takes precedence over /effort and over every effort setting.

Actual: The label shows "Opus 5.5 High", which is the user-level modelSettings value.

Evidence: Inside the session, CLAUDE_CODE_EFFORT_LEVEL is set to medium, so the env block is being applied. The session transcript (~/.claude/projects/<project>/<session>.jsonl) records "effort":"medium" and "perTurnEffort":"medium" on every turn (23 of 23), so requests really are sent at medium and only the label is wrong. /status doesn't show effort at all, so the label is the only effort indicator in the UI. extension.js references CLAUDE_CODE_EFFORT_LEVEL, but webview/index.js never does. So the label appears to be computed from the settings files without taking the env-var override into account.

Impact: The label shows the wrong effort level. A user who sets the env var to pin effort for a workspace sees a different level than the one that applies, and may change settings to "fix" it.

Related: #88860 (the mobile app's effort slider also doesn't show the session's actual effort level).

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗