Claude Code で auto mode を起動時のデフォルトにしたら、対応モデルと非対応モデルで挙動が分かれた
コーヒーが好きな emi です。
Amazon Bedrock 経由の Claude Code で auto mode が使えるかどうかを、前回モデルごとに確認しました。Bedrock では Sonnet 5 / Opus 4.7 以降 / Fable が対応モデルで、Sonnet 4.6 では auto mode が出ない、という結果でした。
今回は起動時のパーミッションモードを auto mode にした場合、auto mode に対応しているモデルと対応していないモデルでどう変わるか挙動を確かめました。
先に結論
- 起動時のパーミッションモードは
~/.claude/settings.jsonのpermissions.defaultModeでautoに設定できる- ユーザー設定(
~/.claude/settings.json)に書く必要があり、プロジェクト側(.claude/settings.jsonや.claude/settings.local.json)の設定では反映されない
- ユーザー設定(
- auto mode 対応モデル(今回は
jp.の Opus 4.8)で起動すると起動直後から auto mode on になる - auto mode 非対応モデル(今回は
jp.の Sonnet 4.6)ではdefaultMode: "auto"を書いていても無視され、manual mode on で起動する - モデル指定は
.bashrcの環境変数ANTHROPIC_MODELのほうがsettings.jsonのmodelより優先される
動作環境
- Windows + WSL2(Ubuntu)
- Claude Code v2.1.248
- Amazon Bedrock 経由(
aws-vaultで一時クレデンシャルを注入して起動)
前回と同じく Bedrock 版の起動関数 claude-bedrock を使っています。この関数は aws-vault exec の中で CLAUDE_CODE_USE_BEDROCK=1 とリージョン、jp. プレフィックス付きのモデルを指定して claude を起動するものです。詳細は以下記事を参照ください。
defaultMode を auto にする
auto mode を起動時のモードにしたい場合は、ユーザー設定 ~/.claude/settings.json の permissions ブロックに defaultMode を入れます。
"permissions": {
"allow": [
"Read(//tmp/**)"
]
}
↓ここに defaultMode を足します。
"permissions": {
"defaultMode": "auto",
"allow": [
"Read(//tmp/**)"
]
}
defaultMode: "auto" は、プロジェクト側の設定(.claude/settings.json や .claude/settings.local.json)に書いても反映されません。ユーザー設定 ~/.claude/settings.json に書くか、起動ごとに --permission-mode を渡す必要があります。
あわせてどのモデルで起動するかも settings.json の model で指定します。
私は最初 .bashrc の claude-bedrock 関数の中で ANTHROPIC_MODEL='jp.anthropic.claude-sonnet-4-6' という環境変数を渡していました。この環境変数は settings.json の model より優先されるので、settings.json に何を書いても claude-bedrock 経由では常に Sonnet 4.6 になってしまいます。
今回はモデル指定を settings.json に寄せたいので、.bashrc の関数から ANTHROPIC_MODEL の行を消しました。軽量モデルの ANTHROPIC_SMALL_FAST_MODEL は残しています。
claude-bedrock() {
aws-vault exec cm-kitani.emi -- env \
CLAUDE_CODE_USE_BEDROCK=1 \
AWS_REGION=ap-northeast-1 \
ANTHROPIC_SMALL_FAST_MODEL='jp.anthropic.claude-haiku-4-5-20251001-v1:0' \
claude "$@"
}
.bashrc を変更したので source ~/.bashrc コマンドを実行して反映させます。
実行結果▼
emiki@<hostname>:~/work/xx$ source ~/.bashrc
emiki@<hostname>:~/work/xx$
settings.json の変更は Claude Code の再起動だけで反映されます。
settings.json の model は、エイリアスの "opus" を書くと jp. なしのグローバルなモデル(このときは Opus 5)に解決されてしまいました。jp. プレフィックス付きの国内完結プロファイルで固定したいので、プロファイル ID を直接書きます。
"model": "jp.anthropic.claude-opus-4-8",
対応モデル jp. Opus 4.8 では auto mode で起動した
書き換えて claude-bedrock を起動します。
▐▛███▛█ Claude Code v2.1.248
▝▜██████▀ Opus 4.8 · Amazon Bedrock
▝▝ ▝▝ ~/work/xx
● high · /effort
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⏵⏵ auto mode on (shift+tab to cycle) · ← for agents · shift+click to native select
jp. の Opus 4.8 で、起動直後から auto mode on となりました。
一度 /exit で TUI から抜けておきます。
非対応モデル jp. Sonnet 4.6 では manual mode だった
次に model を jp. の Sonnet 4.6 に変えます。defaultMode: "auto" はそのままです。
"model": "jp.anthropic.claude-sonnet-4-6",
claude-bedrock を起動し直しました。
▐▛███▛█ Claude Code v2.1.248
▝▜██████▀ Sonnet 4.6 · Amazon Bedrock
▝▝ ▝▝ ~/work/xx
auto mode unavailable for this model
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
❯
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
⏸ manual mode on · ? for shortcuts · ← for agents · shift+click to native select
defaultMode: "auto" を書いていますが、manual mode on です。auto mode unavailable for this model と表示されています。非対応モデルでは auto が無視され、組み込みデフォルトの manual にフォールバックする、という挙動が確認できました。
おわりに
defaultMode: "auto" 対応モデルの Opus 4.8 では起動直後から auto mode になり、非対応モデルの Sonnet 4.6 では同じ設定でも manual に戻りました。
本記事への質問やご要望については画面下部の「DevelopersIOへのご意見」からお問い合わせいただけます。








