🙆♀️
Claude Codeくんのデフォルトeffort levelをmaxに固定する
解決したかったこと
Claude Codeくんのデフォルトeffort level(推論の深さ)が medium に変更された。
(Claude Codeの公式チェンジログによると、2026年3月4日のバージョン v2.1.68 で変更された。)
これにより回答の質が下がる可能性があるため、常に最大の max で動作するようにデフォルト設定を変更したかった。
ちなみにそれまでのデフォルトはhighだったので、maxにする場合以前よりもさらにeffort levelを上げていることになる。
解決した方法
.zshrc に環境変数 CLAUDE_CODE_EFFORT_LEVEL=max を追加した。
# Claude Code: デフォルトのeffort levelをmaxに設定 (2026-03-16)
# settings.jsonではmaxが永続化できないバグがあるためenv varで設定
export CLAUDE_CODE_EFFORT_LEVEL=max
effort levelの設定には優先順位があり、環境変数が最も高い:
- 環境変数:
CLAUDE_CODE_EFFORT_LEVEL(最優先) - CLIフラグ:
claude --effort max - settings.json:
"effortLevel": "high" - モデルデフォルト(Opus 4.6は
medium)
環境変数なら max も問題なく設定でき、すべてのセッションに自動で適用される。新しいターミナルセッションから有効。
試したけどうまくいかなかったこと
-
settings.local.jsonに"effortLevel": "max"を設定 → 反映されなかった。maxはsettings.jsonに永続化できない仕様で、さらに/modelUIを操作すると値が上書きされる既知バグもある(GitHub issue #30726) -
settings.local.jsonに"effortLevel": "high"を設定 → 反映はされたが、highまでしか設定できずmaxには届かない -
claude --effort maxでCLI引数として指定 → 正常に動作したが、起動のたびに毎回引数を付ける必要があり実用的ではなかった。aliasを設定する手もあるが、環境変数の方がシンプル
ちなみに
推論量を一時的に引き上げる方法として「ultrathink」がある。
「ultrathink」はClaude Codeの公式機能で、プロンプトに含めるとそのターンだけ high effort に引き上げるキーワード。
| 設定 | effort level | 持続性 |
|---|---|---|
ultrathink(キーワード) |
high | そのターンのみ |
/effort high |
high | セッション中 |
/effort max |
max | セッション中 |
CLAUDE_CODE_EFFORT_LEVEL=max |
max | 永続 |
結論:max > ultrathink
つまり、環境変数で max を設定している今の状態は、ultrathink より上。 Claude Codeくんにいっぱい考えてもらいたいよって人はultrathinkじゃなくてCLAUDE_CODE_EFFORT_LEVEL=maxを設定しましょう。
コピー用プロンプト
以下の通り`.zshrc` に環境変数 `CLAUDE_CODE_EFFORT_LEVEL=max` を追加してください
# Claude Code: デフォルトのeffort levelをmaxに設定 ({今日の日付})
# settings.jsonではmaxが永続化できないバグがあるためenv varで設定
export CLAUDE_CODE_EFFORT_LEVEL=max
Discussion