🙆‍♀️

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の設定には優先順位があり、環境変数が最も高い:

  1. 環境変数: CLAUDE_CODE_EFFORT_LEVEL(最優先)
  2. CLIフラグ: claude --effort max
  3. settings.json: "effortLevel": "high"
  4. モデルデフォルト(Opus 4.6は medium

環境変数なら max も問題なく設定でき、すべてのセッションに自動で適用される。新しいターミナルセッションから有効。

試したけどうまくいかなかったこと

  • settings.local.json"effortLevel": "max" を設定 → 反映されなかった。max はsettings.jsonに永続化できない仕様で、さらに /model UIを操作すると値が上書きされる既知バグもある(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