Support default effort level in settings.json

Status Fixed / completed
Maintainer reply None cached
Activity 3 comments · opened Mar 23, 2026 · closed Mar 23, 2026

Summary

Allow setting a default effort level (low, medium, high) in settings.json, so users don't have to manually run /model every session.

Current Behavior

  • Default model can be configured in settings.json via "model" field
  • Effort level can only be changed manually via /model command per session
  • No way to persist effort preference across sessions

Proposed Behavior

Add "effort" field to settings.json (user-level and project-level):

{
  "model": "claude-opus-4-6",
  "effort": "low"
}

This would set the default effort when a session starts. Users can still override with /model during the session.

Scope: user settings (~/.claude/settings.json) and project settings (.claude/settings.json), with project taking precedence — same as model.

Why

Different workflows benefit from different effort levels. Power users who primarily do quick edits/questions want low by default. Users doing complex architecture work want high. Currently this requires manual action every session.

🤖 Generated with Claude Code

View original on GitHub ↗

3 Comments

github-actions[bot] · 6 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/34171
  2. https://github.com/anthropics/claude-code/issues/36890
  3. https://github.com/anthropics/claude-code/issues/34428

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

Astro-Han · 6 months ago

This already works — the field is effortLevel (not effort):

{
  "effortLevel": "low"
}

Works in both ~/.claude/settings.json (user-level) and .claude/settings.json (project-level), project takes precedence. Valid values: low, medium, high. Note: max is not yet supported in the schema — see #35904.

One caveat: mid-session changes via /effort don't update the file, so the persisted value is always the default. claude-lens reads this field and displays it in the statusline so you can confirm which level is in effect.

github-actions[bot] · 6 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.