Desktop app silently creates settings.json with effortLevel: high on first launch, causing unexpected API cost spike

Resolved 💬 1 comment Opened Apr 30, 2026 by UnspokenSecurity Closed May 31, 2026

Summary

First-ever launch of the Claude Code desktop app silently created ~/.claude/settings.json with effortLevel: high — without any prompt, confirmation, or visible indicator. This overrode the existing default behavior used by all other sessions (CLI/PowerShell), and the change went unnoticed until a billing review revealed a dramatic cost spike.

Environment

  • Platform: Windows 11 Pro
  • Claude Code version: 2.1.121 → 2.1.123 (updated around same time)
  • Prior usage: CLI and PowerShell exclusively
  • First desktop app launch: 2026-04-29 ~23:34 CT

Reproduction Steps

  1. Have an existing Claude Code setup using CLI/PowerShell with no ~/.claude/settings.json
  2. Launch the Claude Code desktop app for the first time
  3. Observe that ~/.claude/settings.json is created with effortLevel: high

What Was Created

{
  "effortLevel": "high"
}

File birth timestamp confirms it was created during that first desktop app session — it did not exist before.

Impact

  • effortLevel: high enables extended thinking on every turn, dramatically increasing output token consumption
  • All subsequent sessions (CLI, PowerShell, and desktop) inherited this setting
  • No visible indicator in the UI showed that high effort was active
  • Result: approximately $85 in unintended API spend over ~30 hours before the setting was discovered by manually inspecting the settings file
  • User had no reason to check ~/.claude/settings.json because they had never modified it

Expected Behavior

  • The desktop app should not write effortLevel: high (or any non-default setting) to settings.json on first launch without explicit user action
  • If effort level is configurable in the desktop app UI, the selected value should be shown prominently and changes should require deliberate user confirmation
  • The desktop app should inherit existing settings rather than overwriting them with elevated defaults

Notes

  • The effortLevel: high setting affects all Claude Code entry points globally (CLI, PowerShell, desktop), making it especially impactful when set silently
  • Discovery only happened through manual investigation of a billing anomaly — there is no in-product signal that effort level has been changed or that extended thinking is active
  • Anthropic's usage dashboard confirmed the token spike but does not surface per-setting attribution, making root cause analysis difficult for users

View original on GitHub ↗

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