settings.json schema: effortLevel enum missing "max" (and description is outdated)

Resolved 💬 3 comments Opened Apr 23, 2026 by NikoAri Closed Apr 26, 2026

Summary

The JSON schema for settings.json (served at https://json.schemastore.org/claude-code-settings.json) lists effortLevel.enum as ["low", "medium", "high", "xhigh"], but the docs state that the valid levels are:

| Model | Levels |
| :---- | :----- |
| Opus 4.7 | low, medium, high, xhigh, max |
| Opus 4.6 and Sonnet 4.6 | low, medium, high, max |

So the enum is missing "max" — a level that the CLI accepts, persists back to ~/.claude/settings.json, and displays as the 5th dot in the /model effort selector labeled "Max".

The schema description is also outdated: it says "Control Opus 4.6 adaptive reasoning effort" even though effort now applies to Opus 4.7, Opus 4.6, and Sonnet 4.6.

Repro

  1. In Claude Code, open /model and set effort to the rightmost dot ("Max"). This writes "effortLevel": "max" to ~/.claude/settings.json.
  2. Open ~/.claude/settings.json in a JSON-schema-aware editor (e.g. VS Code, which auto-resolves the claude-code-settings.json schema).
  3. The editor flags "max" as an invalid enum value, despite the UI and docs both treating it as valid.

Suggested fix

Update the schema in the repo that publishes to schemastore:

  • Add "max" to the effortLevel.enum.
  • Update the description to mention Opus 4.7, Opus 4.6, and Sonnet 4.6 (not just 4.6).
  • Optionally note the persistence caveat from the docs: low/medium/high/xhigh persist across sessions; max applies to the current session only unless set via CLAUDE_CODE_EFFORT_LEVEL.

Environment

  • Claude Code v2.1.113
  • macOS 15.x (Darwin 25.4.0)
  • Opus 4.7 (1M context)

View original on GitHub ↗

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