Claude Codeのadvisorを環境変数で無効にする手順
CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1でadvisorを丸ごと止める手順。/advisor off・advisorModel・--advisorとの優先関係と、スクリプトが壊れない理由を示します。
Claude Codeのadvisorを丸ごと無効にするには、環境変数CLAUDE_CODE_DISABLE_ADVISOR_TOOLを1にして起動します。/advisorコマンドが使えなくなり、保存済みのadvisorModelは無視され、--advisorフラグは受け付けられるだけで何も起きません。
/advisor offとの違いは、あとから/advisorで選び直せるかどうかです。個人の好みで止めるなら/advisor offで足ります。チームや環境の単位で「使わせない」ことを決めたいときに、この環境変数の出番があります。
設定方法は3通り
値は1のほか、true・yes・onも有効です。大文字小文字は問われません。逆に0・false・no・offは「無効化しない」側に倒れます。
起動時にシェルから渡す
# そのセッションだけ止める
CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1 claude
# シェルの設定ファイルに書いて常時止める
export CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1シェルの環境変数は起動時に読まれます。起動済みのセッションでexportしても、そのセッションには反映されません。
settings.jsonのenvに書く
起動方法を問わず効かせたいときは、設定ファイルのenvキーに書きます。
{
"env": {
"CLAUDE_CODE_DISABLE_ADVISOR_TOOL": "1"
}
}置き場所で効く範囲が変わります。
| ファイル | 効く範囲 |
|---|---|
~/.claude/settings.json | 効く範囲自分、全プロジェクト |
.claude/settings.json | 効く範囲プロジェクトの全員(リポジトリに入る) |
.claude/settings.local.json | 効く範囲自分、そのプロジェクトのみ |
| 管理設定 | 効く範囲組織の全員 |
組織で一括して止めたいなら管理設定が向きます。同じ変数をファイル間で書き分けた場合は、管理設定のエントリが、ユーザー設定やプロジェクト設定の同名の変数より優先されます。
シェルと設定ファイルの両方に書いたとき
両方に同じ変数があると、ほとんどのセッションでは設定ファイルの値が使われ、シェルから継承した値を置き換えます。シェルでは1にしたのに、設定ファイルのenvに別の値が残っていて止まらない、という食い違いはここで起きます。
なお、設定ファイルのenvは保存すると実行中のセッションにも反映されます。ただし、起動時に一度だけ読む機能の変数は再起動までは旧値のままです。また、ファイルから変数を消しても、実行中のセッションでは設定が外れません。消した結果が出るのは次にclaudeを起動したときです。確実に反映させたいなら、設定を変えたあとでclaudeを起動し直してください。
止まるもの・止まらないもの
CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1を立てたセッションの挙動は、入口ごとに次のとおりです。
| 入口 | 立てたあとの挙動 |
|---|---|
/advisor | 立てたあとの挙動使えなくなる |
advisorModel(設定) | 立てたあとの挙動書いてあっても無視される |
--advisor <model> | 立てたあとの挙動受け付けられるが効果なし。エラーにもならない |
advisorModelが無視されるので、ユーザー設定に"advisorModel": "opus"が残っていても問題ありません。設定リファレンスにも、この変数がadvisorModelより優先され、設定キー側から再び有効にはできないと書かれています。つまり、環境変数を外さない限り、設定ファイルの編集では復活しません。
スクリプトの--advisorは壊れない
--advisorはclaude --helpに載らないフラグです。CIや社内ラッパーが渡している場合、通常は次の条件でエラー終了します。
- セッションのメインモデルがadvisorに対応していない
- 指定したモデルがadvisorになれない(例: Haiku 4.5)
- 組織の
availableModelsの許可リストが、指定モデルを除外している - Fableを指定したが、使用クレジットへの課金同意がまだ済んでいない
環境変数を立てたときの違いを、条件ごとに並べると次のとおりです。
--advisorを渡したときの状況 | 変数なし | 変数あり |
|---|---|---|
| メインモデルがadvisor非対応 | 変数なし起動時にエラー終了 | 変数あり起動して通常どおり動く |
| 指定モデルがadvisorになれない | 変数なし起動時にエラー終了 | 変数あり起動して通常どおり動く |
| 組織の許可リストが指定モデルを除外 | 変数なし起動時にエラー終了 | 変数あり起動して通常どおり動く |
| Fableの課金同意が未了 | 変数なし起動時にエラー終了 | 変数あり起動して通常どおり動く |
| バックグラウンドセッションで上のいずれか | 変数なしadvisorなしで起動 | 変数ありadvisorなしで起動 |
バックグラウンドセッションは、変数がなくてもエラー終了せずadvisorなしで起動します。一方、フラグが有効に働く状況でも、変数を立てればadvisorは付きません。
環境変数を立てると、フラグは受け付けられるだけで効果を持たないため、スクリプトを書き換えずに済みます。「advisorを止めたいが、既存の起動スクリプトは触れない」という場面で、この性質が活きます。
--advisorを渡すスクリプトの扱い
変数なし
claude --advisor opus -p "..."は、モデルの組み合わせや許可リストに合わなければ起動時に終了します。
DISABLE_ADVISOR_TOOL=1あり
同じコマンドが、advisorなしで通常どおり動きます。フラグは無視されます。
/advisor offとの使い分け
| 方法 | 戻し方 | 向く場面 |
|---|---|---|
/advisor off | 戻し方/advisor <model>で再選択 | 向く場面自分の既定を止める |
advisorModelを消す | 戻し方設定に書き直す | 向く場面設定ファイルで管理する |
CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1 | 戻し方環境変数を外す | 向く場面環境・チーム・組織で使わせない |
/advisor offはNo advisorを選ぶ操作です。環境変数のほうは機能そのものを遮断し、advisorModelは読まれなくなるだけで設定ファイルに残ります。環境変数を外せば、残っていたadvisorModelがそのまま効きます。一時的な停止には、この性質が使えます。
--advisorのセッション単位の指定は、設定のadvisorModelより優先されます。ただし環境変数による無効化には勝てません。
無効化の前に確認したいこと
advisorはそもそも、いつでも動くわけではありません。次の条件が一つでも欠けると、変数を立てなくても動いていません。無効化したつもりが、実は元から動いていなかった、ということもあります。
- Anthropic APIで使っているか。Amazon Bedrock、Claude Platform on AWS、Google CloudのAgent Platform、Microsoft Foundryでは使えない、とadvisorのページにあります
- 機能フラグの取得が止まっていないか。
DISABLE_TELEMETRYのような、フラグ取得を止める変数があるセッションでは、advisorはオフのままです。DISABLE_TELEMETRYは値が空でなければ0でも有効になる種類の変数なので、DISABLE_TELEMETRY=0と書いても止まります - メインモデルが対応しているか。対応するのはFable、Opus 4.6以降、Sonnet 4.6以降、Haiku 4.5、Haiku 5.5です
ANTHROPIC_BASE_URLでLLMゲートウェイを挟んでいないか。挟んでいる場合は、ゲートウェイがリクエストをそのままAnthropic APIへ渡すかどうかで、使えるかが決まります。ゲートウェイがadvisorツールを認識しない場合の挙動は、LLMゲートウェイのプロトコル解説にある自動リトライとエラー転送の節に書かれていますadvisorModelが未設定か。既定は未設定で、その場合advisorはオフです
「利用者のセッションでadvisorが動いているか」を点検する手順としては、次の順が早いです。
advisorが動いているかの切り分け
- QAnthropic APIに直接つないでいますか?答えがいいえのとき答えがはい
Bedrockなどの経路ではadvisorは使えません。変数を立てる必要はありません。
- QDISABLE_TELEMETRYなど、フラグ取得を止める変数は未設定ですか?答えがいいえのとき答えがはい
変数が設定されているなら、advisorはオフです。変数を立てなくても動きません。
- QadvisorModelが設定されているか、--advisorを渡していますか?答えがいいえのとき答えがはい
どちらも無ければ、advisorは動いていません。
3つとも満たしている
advisorが動いています。止めるならCLAUDE_CODE_DISABLE_ADVISOR_TOOL=1を立てます。
v2.1.300で触れられた背景
この変数は、v2.1.300(2026年10月14日)の変更履歴に「Claude Platform on AWSで/advisorを追加。/advisor・advisorModel・--advisorで選ぶまで動かず、CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1でオフにできる」という形で現れます。リリース内容の全体はClaude Code v2.1.300のリリースノートにあります。ただし、この変更履歴は「Claude Platform on AWSで/advisorを追加」と書く一方、advisorのページはClaude Platform on AWSを対象外としており、公式の記述同士が食い違っています。AWS経由で使うときは、/advisorが実際に動くかを手元で確かめるのが確実です。
止まっているかの確かめ方
変数を立てたセッションで/advisorを実行し、コマンドが使えない状態になっていれば反映されています。
もう一つの確かめ方があります。advisorが動いているセッションでは、起動後にAdvisor Tool (experimental) is on and may use more tokens · /advisorという通知が出ます。この通知が出ないことは、止まっている目安になります。呼び出しの有無そのものを見たいときは、modのserverToolUsesでadvisorの呼び出しを読む方法があります。
運用で効く場面
無効化が効くのは、次のような場面です。
- advisorの呼び出しはメインモデルとは別に、advisorモデルの料金で課金されます。サブスクでは利用上限に、APIではトークン課金に積み上がります。費用の見通しを立てたい検証環境では、最初から止めておくと変動要因が一つ減ります
- 変数を置く場所は、判断軸が二つあります。リポジトリに入れて全員に効かせるなら
.claude/settings.json、個人の環境だけで止めるなら~/.claude/settings.jsonか.claude/settings.local.jsonです。ただし前者は、個人の設定(settings.local.jsonなど)で上書きされない保証にはなりません。上書きさせたくないなら、同名の変数より優先される管理設定に置きます - 組織でモデルを
availableModelsで絞っている場合、--advisorが許可リストと衝突して起動に失敗する構成があります。変数で無効にすれば、衝突自体が起きません - advisorは会話の全文を受け取るモデルです。環境ごとに「使わせない」と決めたい場合に、変数が使えます
advisorの活かし方や使いどころはadvisorで第二の意見をもらう方法に、モデルを既定で指定する設定はadvisorModelの設定にあります。全体像から辿るならClaude Codeの完全ガイドが起点になります。
同じ型の環境変数による無効化は、ほかの機能にもあります。たとえばWebFetchはCLAUDE_CODE_DISABLE_WEB_FETCHで止められます。