メインコンテンツへスキップ
このリファレンスページでは、Claude Code が設定ファイルから読み込む各キーと、代わりに ~/.claude.json に保持する短いキーグループを一覧表示しています。ファイルを選択するか、優先順位を確認するには、設定ファイルと優先順位から始めてください。

設定インデックス

以下の各キーは、それぞれの項目にリンクしています。Scope は、そのキーを記述できるファイルを示します。User は ~/.claude/settings.json、Project は .claude/settings.json、Local は .claude/settings.local.json、Managed は組織がデプロイするものです。Any file はこの 4 つすべてを意味し、Global config は ~/.claude.json を意味します。

モデルと応答

Claude Code が使用するモデルと、その応答のしかたを選択します。これらの設定が /model コマンドや環境変数とどのように相互作用するかについては、モデル設定を参照してください。

advisorModel

Claude がサーバー側の advisor ツールを呼び出したときに応答するモデルを選択します。設定を解除すると advisor はオフになります。advisor はメインモデルと同等以上の能力を持つ必要があります。受け入れられる組み合わせと、受け入れられない組み合わせを選択した場合の動作については、advisor モデルを選択するを参照してください。 通常、このキーを手動で編集することはありません。/advisor を実行すると、現在の選択、advisor として使用できるモデル、および No advisor を表示するピッカーが開きます。Claude Code は選択内容を ~/.claude/settings.json のこのキーに保存します。Remote Control クライアントから選択した場合や、リモートワーカーに接続されたセッションで選択した場合、その選択はそのセッションにのみ適用され、このキーは変更されません。 アカウントで使用クレジットへの同意が必要な場合は、まず /model fable を実行して同意してください。同意するまでは、/advisor で Fable を選択しても何も保存されず、Claude Code は先に /model fable を実行するよう案内します。
  • スコープ: Any file
  • 型: 文字列。エイリアス "fable"、"opus"、"sonnet" のいずれか(Claude Code におけるそのモデルファミリーの現在のデフォルトバージョンに解決されます)、または "claude-opus-5-5" のような完全なモデル ID
  • デフォルト: 未設定。advisor はオフです
  • セッションごとの上書き: --advisor は、1 つのセッションに限りこのキーよりも優先されます。CLAUDE_CODE_DISABLE_ADVISOR_TOOL は advisor をオフにし、このキーで再びオンにすることはできません
settings.json
このキーは、Amazon Bedrock など、advisor が利用できないプロバイダーでは効果がありません。Claude Platform on AWS では、このキーには Claude Code v2.1.300 以降が必要です。"fable" には Fable へのアクセスが必要です。

alwaysThinkingEnabled

これを false に設定すると、すべてのセッションで拡張思考がオフになります。思考はデフォルトでオンのため、true にしても何も変わりません。ほとんどのユーザーは、ファイルを編集するのではなく /config からこれを設定します。 Opus 5.5、Sonnet 5.5、Haiku 5.5、Fable モデルなど、常に思考するモデルでは false は効果がありません。サードパーティプロバイダーでは、Claude Code は思考をオフにする代わりに thinking パラメータを省略するため、適応型推論モデルは引き続き思考する場合があります。Anthropic API で思考をオフにした場合、Claude Code は、Opus 5 などその組み合わせを受け付けないことが分かっているモデルに対して、より高いレベルではなく effort high を送信します。
  • スコープ: Any file
  • 型: Boolean
    • true: 効果なし。思考はすでにオンです
    • false: Claude Code はすべてのセッションで拡張思考をオフにします
  • デフォルト: 未設定。思考をサポートするモデルでは思考がオンになります
  • セッションごとの上書き: MAX_THINKING_TOKENS は、1 つのセッションに限りこのキーよりも優先されます。0 は false と同じモデルおよびプロバイダーの制限のもとで思考をオフにし、正の値はこのキーが false の場合でも思考をオンにします。適応型推論モデルでは、数値そのものは無視されます
settings.json

availableModels

メインセッション、サブエージェント、スキル、advisor でユーザーが選択できるモデルを制限します。管理されたリストは、/model、--model、および開発者自身のファイル内の model キーを制約し、リスト外のモデルは選択できません。デフォルトのプレフィックス一致では、これだけでは Default オプションには影響しません。Default オプションも制限するには、enforceAvailableModels と組み合わせてください。
  • スコープ: Any file。組織全体に適用するには、管理設定でデプロイします。
  • 型: モデルのエイリアスまたは ID の配列
  • デフォルト: 未設定。すべてのモデルが利用可能です
この例では、Sonnet と Haiku のモデルのみを選択できるようにします。
settings.json
"claude-opus-5" のようなモデル ID のエントリは、Opus 5.5 など、それを拡張する後続のバージョンも許可します。それらのバージョンのいずれかをブロックするには、deniedModels を使用します。各モデル ID のエントリが指定したバージョンのみを許可するようにするには、availableModelsMatch を使用します。モデル選択を制限するを参照してください。サードパーティプロバイダーの ID については、サードパーティデプロイ向けにモデルを固定するを参照してください。

availableModelsMatch

availableModels のエントリをモデル ID とどのように照合するかを選択します。デフォルトでは、モデル ID のエントリはそれを拡張する後続のバージョンも許可するため、"claude-opus-5" は Opus 5.5 を許可します。"exact" を指定すると、各モデル ID のエントリは指定したバージョンのみを許可するため、そのモデルの新しいバージョンは、リストに追加するまでブロックされたままになります。Claude Code v2.1.283 以降が必要です。
  • スコープ: Managed。Claude Code は、ユーザー設定、プロジェクト設定、ローカル設定、および --settings 内のこのキーを警告付きで無視します
  • 型: 文字列。次のいずれか:
    • "prefix": モデル ID のエントリは、そのバージョンと、別のセグメントでそれを拡張するすべてのモデル ID を許可します
    • "exact": モデル ID のエントリは指定したバージョンのみを許可するため、"claude-opus-5" は Opus 5 を許可しますが、claude-opus-5-5 は許可しません。"claude-opus-4-5" のようなエントリは、日付付きの Anthropic モデル ID claude-opus-4-5-20251101 も許可します。"opus" のようなファミリーエイリアスは引き続きファミリー全体を許可し、best、opusplan、default のエントリは無視されます
  • デフォルト: "prefix"
この例では、Opus 5 と Sonnet 5 を許可し、いずれの後続リリースも許可しません。
managed-settings.json
"exact" を指定した場合、リストに少なくとも 1 つのモデルまたはファミリーが指定されていれば、Default オプションもリスト内のモデルに制限されます。特定のモデルまたはバージョンをブロックするを参照してください。

deniedModels

availableModels 許可リストの有無にかかわらず、またそのリストで許可されている場合でも、特定のモデルをブロックします。Claude Code はブロックされたモデルを /model ピッカーに表示せず、availableModels が適用されるあらゆる場所でそのモデルを選択できなくなります。特定のモデルまたはバージョンをブロックするで説明しているとおり、Default オプションのセッションでもブロックされたモデルは実行されません。Claude Code v2.1.283 以降が必要です。
  • スコープ: Managed。Claude Code は、ユーザー設定、プロジェクト設定、ローカル設定、および --settings 内のこのキーを警告付きで無視します
  • 型: モデルのエイリアスまたは ID の配列
    • "opus" のようなファミリーエイリアスは、そのファミリーのすべてのモデルをブロックします
    • "claude-opus-5-5" のようなモデル ID は、日付付き ID やプロバイダー固有の ID を含む、あらゆる表記のそのバージョンをブロックします
    • "claude-opus-5" のようにマイナーバージョンのないモデル ID は、Opus 5.5 など後続のマイナーバージョンもブロックします。Opus 5 のみをブロックするには "claude-opus-5-0" と記述します
    • best、opusplan、default のエントリは無視されます
  • デフォルト: 未設定。ブロックされるモデルはありません
この例では、Opus と Sonnet のモデルを許可し、Opus 5.5 をブロックします。
managed-settings.json
特定のモデルまたはバージョンをブロックするを参照してください。

effortLevel

レベルを保存していないモデルに対して、デフォルトの effort レベルを設定します。低いレベルは単純なタスクでより高速かつ低コストになり、高いレベルは複雑な問題に対してより深く推論します。 自分のマシン上の対話セッションで /effort low、medium、high、xhigh を実行すると、Claude Code はこのキーに書き込むのではなく、アクティブなモデルのレベルを modelSettings の下に保存します。v2.1.251 より前は、/effort はこのキーに書き込んでいました。 同じ設定ファイル内では、Claude Code はこのキーよりもモデルごとに保存されたレベルを使用します。ファイル間の優先順位については modelSettings に記載しています。 リモートワーカーに接続されたセッション、-p の実行、および Agent SDK では、/effort はそのセッションにのみ適用されます。同様にそのセッションにのみ適用される対話的な選択については、effort レベルを調整するに記載しています。/effort が出力するメッセージに、どちらになったかが示されます。
  • スコープ: Any file
  • 型: 文字列。次のいずれか:
    • "low": 推論が最も少なく、知能をあまり必要としない、短く範囲の限られたレイテンシー重視のタスク向け
    • "medium": ある程度の知能と引き換えにできる、コスト重視の作業でトークン使用量を削減します
    • "high": トークン使用量と知能のバランスを取ります
    • "xhigh": より多くのトークンを消費して、より深く推論します
  • デフォルト: 未設定
  • セッションごとの上書き: --effort は 1 つのセッションに限りこのキーよりも優先され、CLAUDE_CODE_EFFORT_LEVEL はその両方よりも優先されます
settings.json
ユーザー設定ファイル ~/.claude/settings.json では、このキーは /effort がモデルごとにレベルを保存するようになる前に書き込んでいた古い形式であり、以前と同じ範囲、つまり Opus 5、Fable 5.1、およびそれ以前のモデルに引き続き適用されます。Opus 5.5 とそれ以降にリリースされたモデルはこのキーを無視し、レベルを保存するまでは独自のデフォルトで開始します。レベルは /effort によって modelSettings の下に書き込まれます。プロジェクト設定、ローカル設定、管理設定、および --settings では、このキーはすべてのモデルに適用されます。

enforceAvailableModels

/model ピッカーには Default オプションがあり、それが解決されるモデルについては default モデル設定で説明しています。availableModels 許可リストは指定できるモデルを制限しますが、デフォルトのプレフィックス一致ではアカウントタイプのデフォルトを再マッピングしないため、Default がリスト外のモデルに解決される場合があります。このキーはそのギャップを埋めます。Claude Code v2.1.175 以降が必要です。 組織が何らかの管理設定をデプロイしている場合、Claude Code はこのキーを管理ソースからのみ読み取り、他のファイル内のこのキーは無視します。 起動時のモデルチェックにこのキーがどのように適用されるかについては、Amazon Bedrock および Google Cloud’s Agent Platform を参照してください。
  • スコープ: Any file
  • 型: Boolean
    • true: Default が availableModels 外のモデルに解決される場合、Claude Code はそれをリスト内で最初に利用可能なモデルに解決します
    • false: このキーは Default の解決方法を変更しません
  • デフォルト: false
この例では、名前による選択を Sonnet と Haiku のモデルに制限し、Default がそれらのうち最初に利用可能なものに解決されるようにします。
settings.json
availableModels が未設定または空の場合、このキーは効果がありません。Default モデルに許可リストを適用するを参照してください。Claude Code v2.1.175 以降が必要です。

fallbackModel

プライマリモデルが過負荷または利用できない場合に Claude Code が順番に試すバックアップモデルを指定します。Claude Code はそのターンの残りの間、チェーン内で次に利用可能なモデルに切り替え、通知を表示します。チェーンがない場合、Claude Code は同じモデルで再試行した後にサーバーのエラーを表示し、ユーザーが自分で再試行するかモデルを切り替えることになります。 切り替えが発生すると、フォールバックモデルでは 1 ターンの間プロンプトキャッシュがコールドの状態になります。次のメッセージでは再びプライマリモデルが最初に試されます。
  • スコープ: Any file
  • 型: モデルのエイリアスまたは ID の配列。"default" はデフォルトモデルに展開されます
  • デフォルト: 未設定。失敗したリクエストは別のモデルで再試行されません
  • セッションごとの上書き: --fallback-model は、1 つのセッションに限りこのキーよりも優先されます
この例では、プライマリモデルが失敗した場合に、まず Sonnet 5、次に Haiku 4.5 を試します。
settings.json
ほとんどの配列設定とは異なり、このキーは設定ファイル間でマージされません。このキーを定義している最も優先順位の高いファイルがチェーン全体を提供します。プロジェクトファイルで ["claude-sonnet-5"] を設定し、ユーザーファイルで ["claude-haiku-4-5"] を設定した場合、チェーンは ["claude-sonnet-5"] のみになります。Claude Code はリストから最大 3 つの異なる許可されたモデルを保持し、残りは無視します。フォールバックモデルチェーンを参照してください。

fastMode

利用可能なセッションで fast mode をオンにします。トークンあたりのコストが高くても速度を優先したい、迅速な反復作業やライブデバッグなどの対話的な作業向けです。通常、このキーを手動で編集することはありません。/fast を実行すると ~/.claude/settings.json に fastMode: true が書き込まれ、もう一度実行して fast mode をオフにするとキーが削除されます。 Anthropic API で fast mode をサポートしているのは Fable 5.2、Opus 5.5、Opus 5、Opus 4.8 のみです。他のモデルで /fast を実行すると Opus に切り替わり、サポートされていないモデルに切り替えると fast mode はオフになります。fast mode がオンの状態でモデルを切り替えるを参照してください。Google Cloud’s Agent Platform では、代わりに /fast によって Fable 5.2 に切り替わり、このキーは書き込まれません。また、Claude Code は保存された true を無視します。
  • スコープ: Any file
  • 型: Boolean
  • デフォルト: 未設定。fast mode はオフです
  • セッションごとの上書き: CLAUDE_CODE_DISABLE_FAST_MODE は 1 つのセッションに限り fast mode をオフにし、このキーで再びオンにすることはできません
settings.json

fastModePerSessionOptIn

通常、/fast を実行すると fastMode がユーザー設定に保存されるため、サポートされているモデルでの新しいセッションは fast mode がオンの状態で開始します。Fable 5.2 では、これは Fable 5.2 の使用中にオンにした場合にのみ起こります。各ユーザーが fast mode を使いたいセッションごとに /fast を実行するようにするには、このキーを true に設定します。Claude Code はユーザーのファイル内の fastMode を残すため、このキーをオフにすると以前の動作に戻ります。 Team プランまたは Enterprise プランのオーナーは、サーバー管理設定を通じて組織全体にデプロイできます。管理設定でこのキーが設定されている場合、対話型ターミナルセッション以外では /fast on が拒否され、組織によって fast mode が無効化されていることが通知されます。これには、非対話モード、VS Code 拡張機能、クラウドセッションが含まれます。
  • スコープ: Any file
  • 型: Boolean
    • true: 保存された fastMode: true はセッション開始時に fast mode をオンにしなくなるため、各ユーザーは fast mode を使いたいセッションごとに /fast を実行します。--settings で渡された fastMode: true は、管理設定でこのキーが設定されていない限り、そのセッションでは引き続き有効です
    • false: 保存された fastMode: true は、fastMode で説明しているとおりに機能します
  • デフォルト: false
settings.json
セッションごとのオプトインを必須にするを参照してください。

language

Claude がデフォルトで英語以外の言語で応答するようにします。応答に使える言語の固定リストはありません。Claude Code はこの値を、常にその言語で応答するという指示としてそのまま Claude に渡すため、Claude が読み取れる言語名であれば何でも機能します。Claude Code は値をチェックしないため、スペルを誤った名前はエラーにならず、記述したとおりに Claude に渡されます。同じ値は、音声入力(こちらにはサポートされている音声入力言語の固定リストがあります)と、自動生成されるセッションタイトルの言語も設定します。
  • スコープ: Any file
  • 型: 文字列。"japanese"、"spanish"、"french" など任意の言語名。Claude Code は検証しません
  • デフォルト: 未設定。その場合、セッションタイトルは会話の言語に合わせられます
settings.json

maxEffortLevel

セッションで使用できる effort レベルに上限を設け、それより低いレベルは使用可能なままにします。それより高いレベルは、/effort、/model ピッカー、--effort、CLAUDE_CODE_EFFORT_LEVEL、スキルやサブエージェントの effort フロントマター、またはモデル自体のデフォルトから指定されたものを含め、すべて上限のレベルで実行されます。Claude Code は各リクエストの前に自ら上限を適用するため、Amazon Bedrock、Google Cloud’s Agent Platform、Microsoft Foundry を含むすべてのプロバイダーで上限が維持されます。Claude Code v2.1.267 以降が必要です。
  • スコープ: Any file。組織全体に適用するには、管理設定でデプロイします。複数のスコープで上限が設定されている場合は最も低いものが適用されるため、あるスコープで設定された上限を別のスコープから引き上げることはできません
  • 型: 文字列。"low"、"medium"、"high"、"xhigh"、"max" のいずれか。"max" を指定すると上限は設定されません
  • デフォルト: 未設定。上限は適用されません
  • モデルごとの上限: モデルの modelSettings エントリに maxEffortLevel を追加します。そのエントリは、ユーザー設定や 1 つの管理ソースなど、両方を設定している設定ソース内に限り、そのモデルについてこのキーを置き換えます。そこで "max" を設定すると、そのモデルをそのソースの上限から除外できます。ただし、Claude Code は他のソースからの上限を引き続き適用します
この例では、すべてのモデルの上限を medium に設定し、Sonnet 4.6 を除外します。
settings.json
組織がモデルに対して effort の制限も設定している場合は、2 つの上限のうち低い方が適用されます。

model

新しいセッションごとに使用するモデルを設定し、毎回 /model で選択しなくて済むようにします。ここで設定しても、セッションの途中で切り替えることはできます。管理者がユーザーの選択を上書きする組織のデフォルトモデルを設定している場合は、ユーザー設定、プロジェクト設定、ローカル設定でこのキーを設定していても、そのモデルが使用されます。
  • スコープ: Any file
  • 型: 文字列。モデルのエイリアスまたは完全なモデル ID
  • デフォルト: 未設定。Claude Code はアカウントのデフォルトモデルを使用します
  • セッションごとの上書き: --model は ANTHROPIC_MODEL よりも優先され、どちらも 1 つのセッションに限り、管理された model を含めてこのキーよりも優先されます。ただし、availableModels リストは引き続き選択に適用されます
settings.json
ここで設定した値は、ANTHROPIC_DEFAULT_MODEL よりも優先されます。Claude Code が ANTHROPIC_DEFAULT_MODEL を使用するのは、他に何もモデルを選択していない場合のみです。

modelOverrides

Anthropic のモデル ID を、Amazon Bedrock の推論プロファイル ARN などのプロバイダー固有のモデル ID にマッピングします。これにより、モデルピッカーの各エントリは、プロバイダー API を呼び出す際にマッピングされた値を使用します。管理者は Amazon Bedrock、Google Cloud’s Agent Platform、Microsoft Foundry でこれを使用して、ガバナンス、コスト配分、リージョンルーティングのために、各モデルバージョンを特定の推論プロファイル、バージョン名、またはデプロイにルーティングします。
  • スコープ: Any file
  • 型: モデル ID をプロバイダーのモデル ID にマッピングするオブジェクト
  • デフォルト: 未設定
この例では、Opus 4.6 へのすべての呼び出しを指定した Bedrock 推論プロファイルにルーティングします。
settings.json
バージョンごとにモデル ID を上書きするを参照してください。

modelPicker

/model ピッカーに表示するモデルを、記述した順序と選択したラベルで一覧にします。これにより、ピッカーには組織で実行しているモデルが、組み込みのラインナップの後に、またはその代わりに表示されます。各行の model はそのまま使用されるため、--model が受け付けるものは何でも指定できます。opus のようなエイリアス、Anthropic のモデル ID、または Amazon Bedrock、Google Cloud’s Agent Platform、Microsoft Foundry、LLM ゲートウェイ向けのプロバイダー形式の ID です。Claude Code v2.1.242 以降が必要です。
  • スコープ: User or managed。Claude Code はこのキーを管理設定、--settings、ユーザー設定から読み取り、プロジェクト設定とローカル設定では無視します。これにより、クローンしたリポジトリがピッカーのラベルを変更することはできません。これら 3 つのうちこのキーを設定している最も優先順位の高いものがラインナップ全体を提供し、Claude Code が 2 つのソースのラインナップを組み合わせることはありません。
  • 型: 行の配列である options と、省略可能な Boolean の replaceBuiltInOptions を持つオブジェクト
  • デフォルト: 未設定。ピッカーには組み込みのラインナップが表示されます
この例では、チームが認識できる名前で、組み込みのラインナップの後に 2 つの Bedrock デプロイを追加します。
managed-settings.json

modelPicker のフィールド

このキーは 2 つのフィールドを受け取ります。1 つは行そのもの用、もう 1 つはそれらの行が組み込みのラインナップを置き換えるか、追加されるかを指定するものです。 options 内のエントリには、model と並んで省略可能な behavesAs 文字列を含めることもでき、これには v2.1.257 以降が必要です。model が使用中のバージョンより新しいエントリに対して、claude-opus-4-8 など、使用中の Claude Code バージョンがすでに認識しているモデルの ID を設定します。すると Claude Code は、そのモデルを不明なモデルとして扱う代わりに、既知のモデルの機能と effort のデフォルトをそのエントリに適用します。エントリのラベルと、Claude Code がリクエストで送信するモデル ID は変わりません。 replaceBuiltInOptions がオンの場合、Claude Code は他のすべての行を非表示にします。対象は、組み込みのラインナップ、availableModels のエントリに対して追加される行、ゲートウェイ検出で見つかったモデル、および ANTHROPIC_CUSTOM_MODEL_OPTION です。オフの場合、Claude Code は組み込みのラインナップですでにカバーされているリスト内のモデルをスキップします。ラベルはピッカーの表示を変えるだけで、Claude Code が実行するモデルは変わりません。 availableModels 許可リストは、これらの行にも引き続き適用されます。リスト内のモデルを許可リストに追加する前に、マージの動作を読んでください。特定のモデル ID は、そのファミリーのワイルドカードエントリを絞り込みます。Claude Code は、ピッカーを表示する前に各行をセッションに照らしてチェックすることも行います。
  • 削除: 廃止されたモデルや組織がアクセスできないモデルなど、Claude Code が提供できない行
  • グレーアウト: まだ選択できない行。理由とともに表示されます
  • 残る行がない場合: Claude Code は組み込みのラインナップを保持し、通常どおり許可リストで絞り込みます
Claude Code は解析できない行を削除し、残りを保持します。壊れた設定ファイルを修正するを参照してください。

modelPricing

表示価格ではなく、組織が実際に支払っている料金で支出を報告します。組織に契約料金がある場合に設定すると、開発者が目にする金額が請求額と一致するようになります。Claude Code はこの料金を、/usage、ステータスライン、Agent SDK の total_cost_usd、--max-budget-usd の上限、および OpenTelemetry のコストメトリクスとイベントに適用します。料金はユーザーが指定します。Claude Code が契約や Claude Console から料金を読み取ることはありません。Claude Code v2.1.242 以降が必要です。
  • スコープ: Managed。このキーは、サーバー管理設定、MDM ポリシー、managed-settings.json ファイル、またはポリシーヘルパーを通じてデプロイします。Claude Code は、ユーザー設定、プロジェクト設定、ローカル設定、--settings、および Windows ではユーザーが書き込み可能な HKCU レジストリ内のこのキーを無視します。サーバー管理設定を使用する場合、各セッションは、そのセッションの設定の取得で設定が確認されるまで、表示価格でコストを報告します。Claude Code を組み込み、CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST を設定しているホストアプリケーションは、SDK の managedSettings オプションを通じて独自の料金表を提供できます。Claude Code がこれを使用するのは、どの管理ソースもこのキーを設定していない場合のみで、Claude Code v2.1.246 以降に限られます。
  • 型: 省略可能な multiplier と省略可能な overrides マップを持つオブジェクト
  • デフォルト: 未設定。ホストアプリケーションが料金表を提供しない限り、Claude Code は表示価格で報告します
一律の割引または上乗せには multiplier のみを、モデルごとの料金には overrides のみを設定するか、両方を設定します。 この例では、Sonnet 4.6 の契約料金を設定したうえで、Sonnet の行を含むすべての金額を 15% 引き下げます。
managed-settings.json
すべての金額を上乗せするには、multiplier を 1 より大きく 10 以下の値に設定します。上乗せには Claude Code v2.1.271 以降が必要です。それより前のバージョンでは、1 より大きい multiplier は警告付きで無視され、設定の残りは保持されます。 料金が有効になっていることを確認する方法を含む手順については、契約料金で支出を報告するを参照してください。

modelPricing のフィールド

Claude Code は、fast mode の追加料金や米国内のみでの推論の料金を加算せず、行の料金を記述したとおりに使用します。multiplier も設定している場合、Claude Code はそれを行の料金に重ねて適用します。Claude Code は、解析できない料金を持つ行や、解析できない multiplier を削除し、残りを保持します。壊れた設定ファイルを修正するを参照してください。

modelPricing の行が適用されるモデル

Claude Code は、行のキーからその行がどのモデルに適用されるかを判断します。
  • 組み込みモデルの ID: Claude Code 自身が組み込みモデルに使用するキーで、claude-sonnet-4-6 のようなモデル自体の ID であるか、Bedrock、Agent Platform、Foundry の ID であるかは問いません。Claude Code は、そのモデルのすべての日付付きスナップショット ID とプロバイダー固有の ID にその行を適用します。
  • その他のキー: ゲートウェイのモデルエイリアスなど、組み込みモデルの ID ではないキー。Claude Code はその 1 つの ID にのみ行を適用します。モデル ID がいずれかのキーに完全に一致し、かつ組み込みモデルの ID をキーとする行にも該当する場合、Claude Code は完全一致を使用します。
  • Bedrock のアプリケーション推論プロファイル: Claude Code が modelOverrides マップまたは bedrock:GetInferenceProfile による検索を通じて、プロファイルをルーティング先のモデルに解決すると、Claude Code はそのモデルの行をプロファイルに適用します。

modelSettings

使用するモデルごとに effort レベルを保存します。Claude Code v2.1.251 以降が必要です。 自分のマシン上の対話セッションで、/effort または /model ピッカーの effort スライダーを使って low、medium、high、xhigh をデフォルトとして保存すると、Claude Code は使用中のモデルの下にそのレベルをここに書き込むため、このキーを自分で編集することはほとんどありません。VS Code 拡張機能のモデルピッカーでこれらのレベルのいずれかを選択した場合も、Claude Code は同じようにここに保存します。/effort がそのセッションにのみ適用されるセッションについては、effortLevel のエントリに記載しています。 保存したレベルを変更または削除するには、このキーを手動で編集します。 ここでのモデルの effortLevel は、同じ設定ファイル内のトップレベルの effortLevel よりも優先されます。ファイル間では、Claude Code はモデルごとに個別に解決します。そのモデルの effortLevel、またはそのモデルに適用されるトップレベルの effortLevel のいずれかを設定している、最も優先順位の高い設定ファイルが決定するため、管理設定の effortLevel はユーザー設定に保存したレベルよりも優先されます。起動時の --effort など、保存されたレベルを上書きできるその他の要素については、effort レベルを調整するに記載しています。 1 つのモデルのレベルを設定するのではなく effort に上限を設けるには、そのモデルのエントリに maxEffortLevel フィールドを追加します。このフィールドには Claude Code v2.1.267 以降が必要です。
  • スコープ: Any file
  • 型: モデル名を、次のいずれかのフィールドを持つオブジェクトにマッピングするオブジェクト:
    • effortLevel: "low"、"medium"、"high"、"xhigh" のいずれか
    • maxEffortLevel: モデルが実行できる最も高い effort レベル
    • autoCompactWindow: 100000 から 1000000 までのトークン数、またはモデル向けに調整されたウィンドウを表す "auto"。/autocompact はここに保存します。そのモデルについては、この値が同じ設定ファイル内のトップレベルの autoCompactWindow よりも優先されます。Claude Code v2.1.288 以降が必要です
  • デフォルト: 未設定
Claude Code は各エントリを claude-opus-5-5 のようなモデルの正規名の下に書き込み、そのモデルのエイリアス、日付サフィックス付き、[1m]、および認識されたプロバイダー固有の ID を同じエントリに照合します。 この例では、他のモデルがそれぞれ保存済みまたはデフォルトのレベルを使用する一方で、Opus 5.5 を high に保ちます。
settings.json
使用中のモデルについて保存したレベルをクリアするには、/effort auto を実行します。Claude Code は、他のエントリとトップレベルの effortLevel をそのまま残します。

outputStyle

名前で出力スタイルを選択します。出力スタイルとは、Claude の役割、トーン、出力形式を変更する指示の保存済みセットで、組み込みの Explanatory スタイルや Learning スタイル、または自分で作成したスタイルなどがあります。 セッション中にこのキーを変更すると、Claude は次のメッセージから新しいスタイルを使用します。そのメッセージのプロンプトキャッシュにおけるコストについては、出力スタイルの変更を参照してください。v2.1.251 より前は、変更は /clear を実行するか新しいセッションを開始した後にのみ適用されていました。
  • スコープ: Any file
  • 型: 文字列。組み込みまたはカスタムの出力スタイルの名前
  • デフォルト: 未設定。Claude Code はデフォルトのスタイルを使用します
この例では、タスクの合間に教育的な解説を追加する組み込みの Explanatory スタイルを選択します。
settings.json

promptCacheTtl

プロンプトキャッシュがメインの会話を保持する期間を選択します。このキーは、対話、-p、および Agent SDK のターンと、それらとインラインで Claude Code が実行するヘルパーに適用されます。1 時間の有効期間では、長めの休憩をはさんでもキャッシュがウォームな状態に保たれますが、API は 5 分の有効期間よりも高い料金で各キャッシュ書き込みを請求します。Claude Code v2.1.242 以降が必要です。 この例では、メインの会話を 1 時間の有効期間に保ち、サブエージェントは 5 分のままにします。
settings.json
各有効期間のコストについては、キャッシュの有効期間を参照してください。

showThinkingSummaries

対話セッションで Claude の拡張思考の要約を表示します。Ctrl+O で思考を展開したときに完全な要約を表示したい場合に設定します。未設定または false の場合、Anthropic API は思考ブロックを編集済み(非表示)にし、Claude Code は折りたたまれたスタブを表示します。
  • スコープ: Any file
  • 型: Boolean
    • true: Ctrl+O で思考を展開すると、完全な思考の要約が表示されます
    • false: Anthropic API は思考ブロックを編集済み(非表示)にし、Claude Code は折りたたまれたスタブを表示します
  • デフォルト: false
settings.json
編集による非表示化で変わるのは表示内容だけであり、モデルが生成する内容は変わりません。思考の費用を削減するには、代わりに予算を下げるか思考を無効にします。

subagentPromptCacheTtl

Claude Code がメインの会話の外で行うリクエストをプロンプトキャッシュが保持する期間を選択します。このキーは、サブエージェント、ワークフロー、およびコンテキスト圧縮やセッションタイトルなど、Claude Code 自身のバックグラウンドリクエストとヘルパーリクエストに適用されます。1 時間の有効期間では、長めの休憩をはさんでもキャッシュがウォームな状態に保たれますが、API は 5 分の有効期間よりも高い料金で各キャッシュ書き込みを請求します。Claude Code v2.1.242 以降が必要です。 この例では、サブエージェントとメインの会話の外で行われるその他のリクエストに 1 時間の有効期間を与えます。
settings.json
このキーは promptCacheTtl が対象としないリクエストをカバーするため、両方を設定すると Claude Code が行うすべてのリクエストの有効期間を選択できます。サブエージェントのキャッシュがメインの会話のキャッシュとどのように異なるかについては、サブエージェントとキャッシュを参照してください。

switchModelsOnFlag

安全性分類器がリクエストを警告したときの動作を選択します。フォールバックモデルに切り替えて続行するか、一時停止して切り替えるかプロンプトを編集するかを選べるようにするかのいずれかです。
  • スコープ: Any file。/config では Switch models when a message is flagged として表示され、オプションは Switch automatically と Ask each time です。
  • 型: Boolean
    • true: Claude Code はフォールバックモデルに切り替えて続行します
    • false: 対話セッションでは、Claude Code は一時停止し、切り替えるかプロンプトを編集するかを選べるようにします。-p の実行など、ダイアログを表示できない場合は、警告されたリクエストはエラーとして終了します
  • デフォルト: 未設定。Claude Code は自動的に切り替えますが、対話セッションでは先に確認する場合があります
settings.json
切り替える前に確認するを参照してください。

ultracode

ultracode をオンにした状態でセッションを開始します。オンにすると、Claude はユーザーからの依頼を待たずに、実質的なタスクごとにワークフローを計画します。Claude がワークフローを計画するのは、ユーザーに対して動的ワークフローが有効で、かつモデルが xhigh の effort をサポートしている場合のみです。このキーはセッションの effort レベルを変更しません。ultracode はセッションが使用しているレベルで実行されます。Claude Code はこのキーを読み取りますが、書き込むことはありません。/effort ultracode は現在のセッションに限り ultracode をオンにします。
  • スコープ: Any file
  • 型: Boolean
    • true: ユーザーに対して動的ワークフローが有効で、かつモデルが xhigh をサポートしている場合、セッションは ultracode がオンの状態で開始します
    • false: セッションは ultracode がオフの状態で開始します
  • デフォルト: 未設定。ultracode はオフです
  • セッションごとの上書き: /effort ultracode はこのキーなしで 1 つのセッションに限り ultracode をオンにし、/effort ultracode off はこのキーが true の場合に 1 つのセッションに限りオフにします。--effort ultracode フラグも、1 つのセッションに限り xhigh の effort で ultracode をオンにします
settings.json
セッションの effort レベルは、effortLevel、modelSettings、およびその他の effort のソースから決まります。maxEffortLevel などの effort の上限は、ultracode をオフにすることなくそのレベルを引き下げます。この動作と /effort ultracode off の形式には Claude Code v2.1.284 以降が必要です。v2.1.284 より前は、ultracode: true はセッションを xhigh の effort で実行し、xhigh 未満の effort の上限があると ultracode はオフのままでした。Agent SDK の apply_flag_settings コントロールリクエストもこのキーを受け付けます。

権限設定

Claude が何を確認なしで実行できるか、新しいセッションのデフォルトの権限モード、auto モードの分類器が何を許可するかを決定します。ルール構文と権限モデルについては、権限を設定するを参照してください。

allowManagedPermissionRulesOnly

管理設定を権限ルールの唯一の設定ソースにします。Claude Code はユーザー、プロジェクト、ローカル、および --settings ファイル内の allow、ask、deny ルールを無視し、--allowedTools を無視し、権限プロンプトで常に許可する選択肢を非表示にし、新しいルールの保存を停止します。 埋め込みホストからの親設定が適用される場合、Claude Code はそれらを管理層の一部として扱います。それらの allow ルールと additionalDirectories を削除し、deny および ask ルールは保持します。ただし、パターンが ! で始まる Read および Edit ルールは除きます。このキーを設定しているかどうかに関わらず、ホストは ! ルールで管理ルールからパスを除外することはできません。 --disallowedTools ルールと現在のセッションの deny および ask ルールは、Claude Code が設定をセッション中に再度読み込んだ後を含めて、引き続き適用されます。これらは制限のみを行うため、管理ルールが付与するものを拡大することはできません。v2.1.257 より前では、Claude Code は最初の設定再度読み込み時にそれらのコマンドラインおよびセッションルールを削除していました。 --disallowedTools またはセッションルール内の ! パターンが除外できるものについては、Read および Edit ルールを参照してください。 このキーを設定すると、Claude Code v2.1.282 以降では、次のソースにあるスキルおよび .claude/commands/ ファイルの allowed-tools フロントマターも無視されます。 管理設定からのスキルとバンドルスキルは allowed-tools を保持します。これらの Desktop セッション外の @inline プラグインも、anthropic-skills という名前のものを除き、それを保持します。スキルの disallowed-tools は引き続き適用されます。Claude Code がこのフィールドを無視したときに開発者に何が表示されるかについては、管理権限ルールのみが適用される場合を参照してください。
  • スコープ: Managed
  • タイプ: ブール値
    • true: 管理設定が権限ルールの唯一の設定ソースになります
    • false: Claude Code は管理ルールに加えて、ユーザー、プロジェクト、ローカル、および --settings ファイルから権限ルールを適用します
  • デフォルト: 未設定。Claude Code はユーザー、プロジェクト、ローカル設定、および --settings から権限ルールを管理ルールに加えて適用します
managed-settings.json
このキーは MCP サーバーの許可リストをロックダウンしません。そのためには、allowManagedMcpServersOnlyを設定してください。管理のみの設定を参照してください。

autoMode

auto モードの分類器がブロックおよび許可するものに独自のルールを追加します。これを使用して、分類器に組織が信頼するリポジトリ、バケット、ドメインを伝え、日常的な内部操作のブロックを停止させます。分類器には組み込みの許可および拒否ルールが付属しています。リテラル文字列 "$defaults" を配列に含めて、それらの組み込みルールをその位置に保持し、その周りに独自のルールを追加します。省略すると、それらを独自のルールに置き換えます。
  • スコープ: User or managed
  • タイプ: environment、allow、soft_deny、hard_deny の散文ルール配列、および classifyAllShell ブール値を含むオブジェクト
  • デフォルト: 未設定。分類器は組み込みルールのみを使用します
この例は、"$defaults" を通じて組み込みの soft_deny ルールを保持し、terraform apply をブロックするルールを 1 つ追加します。
settings.json
これらのファイルの複数が同じ配列を設定する場合、Claude Code はエントリを連結します。ルール形式と各配列の適用方法については、auto モードを設定するを参照してください。

autoMode.classifyAllShell

auto モードがアクティブな間、すべての Bash および PowerShell コマンドを auto モードの分類器に通します。デフォルトでは、auto モードは任意のコードを実行できる許可ルールのみを一時停止します。具体的には、Bash(*) などのツール全体およびワイルドカードのルールと、Bash(python *) などのインタープリタまたはシェルラッパーのプレフィックスです。Bash(npm test) など、それ以外の許可ルールに一致するコマンドは、コマンドごとの許可ドメインを持たない限り分類器をスキップします。スキップした場合、ルールのプレフィックスが想定していなかった破壊的な引数が見過ごされたまま通過する可能性があります。このキーを設定すると、セッションのすべてのシェル許可ルールが一時停止され、分類器がすべてのコマンドを確認します。Claude Code v2.1.193 以降が必要です。
  • スコープ: User or managed。autoModeが読み取られる場所で読み取られます。
  • タイプ: ブール値
    • true: auto モードがアクティブな間、Claude Code はすべての Bash および PowerShell コマンドを分類器に通し、シェル許可ルールを一時停止します。auto モード外では、ルールは引き続き適用されます
    • false: auto モードは Bash(*) や Bash(python *) など、任意のコードを実行できる許可ルールのみを一時停止します。それ以外の許可ルールに一致するコマンドは、コマンドごとの許可ドメインを持たない限り分類器をスキップし、その他すべてのシェルコマンドは分類器を通ります
  • デフォルト: false
settings.json
Code Mode セッションでは、このキーの動作が異なります。すべてのシェルコマンドを分類器にルーティングするを参照してください。

disableAutoMode

auto モードを Shift+Tab サイクルから削除します。--permission-mode auto、設定ファイル、または組み込みデフォルトからauto モードで開始する可能性があるセッションは、代わりに default で開始します。管理者は管理設定で設定して、組織内の開発者が auto モードを使用するのを防ぎます。
  • スコープ: Any file。管理設定で最も有用です。ユーザーはそれを上書きできません。permissions の下で permissions.disableAutoMode としても受け入れられます。
  • タイプ: 文字列 "disable"
  • デフォルト: 未設定
settings.json

permissions

Claude が確認なしで使用できるツール、プロンプトを表示するツール、ブロックされるツールを制御します。また、新しいセッションのデフォルトの権限モードも設定します。以下のすべての permissions.* キーはこのオブジェクトの下にネストされます。
  • スコープ: Any file
  • タイプ: allow、ask、deny、additionalDirectories、blockReadsOutsideWorkingDirectories、blockWritesOutsideWorkingDirectories、defaultMode、denyInsteadOfPrompting、disableBypassPermissionsMode、disableAutoMode を含むオブジェクト
  • デフォルト: 未設定
この例は npm run コマンドを確認なしで承認し、git push の前にプロンプトを表示し、.env の読み取りをブロックし、セッションを acceptEdits で開始します。
settings.json
3 つのルール配列は 1 つの構文を共有します。permissions.allow の下の権限ルール構文を参照してください。異なるファイルからの権限ルールがどのように結合されるかについては、スコープ全体での権限ルールのマージ方法を参照してください。一般的に設定キーがどのように結合されるかについては、設定ガイドの設定の優先順位を参照してください。

useAutoModeDuringPlan

Claude Code が plan モード中にシェルコマンドを確認するために auto モードの分類器を使用するかどうかを選択します。デフォルトの true では、auto モードが利用可能な場合、分類器は計画中に各コマンドを確認し、プロンプトは表示されません。ただし、重要パスの削除を除きます。false に設定すると、組み込みの読み取り専用セット外のすべてのコマンドに対して権限プロンプトが表示されます。/config に Use auto mode during plan として表示されます。
  • スコープ: User, local, or managed。リポジトリがこれをオフにすることはできません。
    • これらのファイルのいずれか、または --settings で false が設定されていると、オフになります。ただし、--setting-sources などのオプションでそのユーザーまたはローカルファイルを除外した場合は除きます。除外されたファイルを無視するには Claude Code v2.1.314 以降が必要です
  • タイプ: ブール値
    • true: 未設定と同じです。auto モードが利用可能な場合、分類器は計画中にシェルコマンドを確認します
    • false: 組み込みの読み取り専用セット外のすべてのコマンドに対して権限プロンプトが表示されます
  • デフォルト: true
settings.json

permissions.allow

Claude Code が確認なしで承認するツール使用をリストします。MCP ルールでは、* はツール名内の mcp__<server>__ プレフィックスの後にのみ使用できます(例:mcp__github__get_*)。サーバー名には使用できません。
  • スコープ: Any file
  • タイプ: 権限ルール文字列の配列
  • デフォルト: 未設定
  • セッションごとの上書き: --allowedTools は 1 つのセッションに許可ルールを追加しますが、任意の設定ファイルからの拒否ルールは、それが指定するツールを引き続きブロックします
この例は git diff を承認し、Claude Code が確認なしに .zshrc を読み取ることを許可します。
settings.json
Claude Code はプロジェクトの .claude/settings.json から allow ルールを適用するのは、そのフォルダのワークスペース信頼ダイアログを受け入れた後のみです。

権限ルール構文

権限ルールは Tool または Tool(specifier) の形式に従います。Claude Code は deny ルールを最初に評価し、次に ask、次に allow を評価し、各ルールの具体性に関係なく最初に一致したものが結果を決定します。権限ルール評価順序を参照してください。 各行は 1 つのルール形状とそれが一致するものを示します。 ワイルドカード動作、Read、Edit、WebFetch、MCP、Agent ルールのツール固有パターン、および Bash パターンのセキュリティ制限を含む完全なルール構文については、権限ルール構文を参照してください。

permissions.ask

acceptEdits や bypassPermissions など、本来であれば承認される権限モードであっても確認を求めるツール使用をリストします。dontAsk モードでは、Claude Code は一致するツール使用に対してプロンプトを表示する代わりに拒否します。
  • スコープ: Any file
  • タイプ: 権限ルール文字列の配列
  • デフォルト: 未設定
settings.json

permissions.deny

Claude Code がブロックするツール使用をリストします。API キー、シークレット、または環境値を保持するファイルに使用します。Claude Code は一致するファイルをファイル検出と検索結果から除外し、それらの読み取りを拒否し、一致するパスのEdit および Write ツールをブロックします。 Read および Edit 拒否ルールは Claude の組み込みファイルツール、Claude Code が Bash で認識するファイルコマンド(cat、head、tail、sed、tee など)、および > file や < file などの Bash リダイレクションのターゲットに適用されます。ファイル名を指定せずにファイルを読み取るコマンド(grep -r pattern . など)や任意のサブプロセスには適用されないため、OS レベルで強制するにはサンドボックスを有効にしてください。
  • スコープ: Any file
  • タイプ: 権限ルール文字列の配列
  • デフォルト: 未設定
  • セッションごとの上書き: --disallowedTools はこのキーと並行して 1 つのセッションに拒否ルールを追加します
この例は .env ファイル、secrets ディレクトリ、認証情報ファイルの読み取りを拒否し、curl コマンドをブロックします。
settings.json
ツール名はグロブパターンを受け入れるため、"*" はすべてのツールを拒否し、"mcp__*" はすべての MCP ツールを拒否します。Claude Code は、他のツールがまだ Claude で利用可能である限り、EndConversationツールの拒否ルールを無視します。Bash 拒否ルールは Claude が書いたコマンドと一致するため、Bash(curl *) は /usr/bin/curl や sh -c 'curl …' を停止しません。Bash ルールが一致しないものを参照してください。このキーは非推奨の ignorePatterns 設定に置き換わるものです。

permissions.additionalDirectories

Claude に開始したディレクトリ外のディレクトリへのファイルアクセスを付与し、追加の作業ディレクトリとして使用します。ほとんどの .claude/ 設定は、これらのディレクトリから検出されません。
  • スコープ: Any file。ただし、プロジェクトおよびローカルのエントリが付与するサンドボックスの書き込みアクセスには制限があります
  • タイプ: ディレクトリパスの配列
  • デフォルト: 未設定
  • セッションごとの上書き: --add-dir および /add-dir はこのキーと並行して 1 つのセッションにディレクトリを追加します
settings.json
allow ルールと同様に、プロジェクトの .claude/settings.json のエントリは、そのフォルダのワークスペース信頼ダイアログを受け入れた後にのみ有効になります。

permissions.blockReadsOutsideWorkingDirectories

bypassPermissions を含むすべての権限モードで、Claude のファイルツールが作業ディレクトリ外の読み取りを拒否するようにします。Claude Code はそれらのパスに対する Read、Grep、Glob、LSP の呼び出しを拒否し、/add-dir でディレクトリを追加するようユーザーに求めるよう Claude に指示します。Claude Code 自体が必要とするファイル(~/.claude/ の下のスキル、プラグイン、ルール、エージェント、コマンド、CLAUDE.md メモリファイルなど)は読み取り可能なままです。Claude Code v2.1.257 以降が必要です。 Claude Code はシェルコマンドを同じ方法では拒否しません。 シェルパーサーが追跡できない Bash コマンド(複数回ディレクトリを変更するものやサブシェルを実行するものなど)は、auto モードおよび bypassPermissions モードでもプロンプトを表示します。プロンプトは、コマンドが作業ディレクトリ外のパスを指定していない場合でも表示されます。このプロンプトは、コマンドがサンドボックスで実行され、サンドボックスがブロックを強制する場合には適用されません。 また、作業ディレクトリ外の最初の読み取り前に表示される auto モードのプロンプトでそのような読み取りをブロックすることを選択した場合も、Claude Code はここに true を書き込みます。
  • スコープ: Any file。いずれかのファイルの true が適用されるため、リポジトリは自身に対してブロックをオンにできますが、ユーザーが設定したブロックを解除することはできません。
  • タイプ: ブール値
    • true: Claude のファイルツールは作業ディレクトリ外の読み取りを拒否します
    • false: 未設定と同じです。別のファイルが true を設定している場合、ブロックは引き続き適用されます
  • デフォルト: 未設定。作業ディレクトリ外の読み取りは権限モードに従います
settings.json
ブロックを解除するには、それを設定しているすべての設定ファイルからキーを削除し、実行中の各セッションを再起動します。 --add-dir、/add-dir、またはユーザー設定や管理設定の additionalDirectories で追加したディレクトリは、ブロックにおいて作業ディレクトリとしてカウントされます。リポジトリ設定でのみ追加されたディレクトリはカウントされません。該当するのは .claude/settings.json のディレクトリと、git がそのファイルを未追跡として報告する場合を除く .claude/settings.local.json のディレクトリです。git リポジトリではないディレクトリ、または git がそのファイルを追跡している場合、Claude Code は .claude/settings.local.json をリポジトリ設定として扱うため、読み取り可能にしておきたいディレクトリは代わりにユーザー設定に配置してください。 autoMemoryDirectoryがプロジェクトの .claude/settings.json から、またはリポジトリ提供として扱われる.claude/settings.local.json から来る場合、Claude Code はそのディレクトリから自動メモリを読み込まず、そこに保存もしません。

ブロック下のサンドボックス化されたコマンド

サンドボックス化がオンの場合、ブロックはサンドボックス化されたコマンドにも適用されます。Claude Code はホームディレクトリおよびユーザーファイルを保持する他のルート(/Users、/home、/root、/Volumes、/mnt、/media、/run/media、/srv)への読み取りアクセスを拒否します。その後、作業ディレクトリ、Claude Code がセッション中に作成する worktree、セッションの一時ディレクトリ、およびコマンドが必要とする ~/.claude の部分(スキルやプラグインなど)を再度開きます。ブロックが有効な間、リポジトリ設定からの allowRead および allowWrite エントリはカウントされません。 セッションの作業ディレクトリがリンクされた git worktree である場合(Claude Code がセッション中に入ったものを含む)、リポジトリの共通 .git ディレクトリはサンドボックス化されたコマンドに対して読み取り可能および書き込み可能なままなので、git はそこで引き続き機能します。 次の場合、ブロックはサンドボックス化されたコマンドには及びませんが、Claude のファイルツールは引き続きそれを強制します。
  • ファイルシステム分離が sandbox.filesystem.disabled によってオフになっている
  • allowManagedReadPathsOnly が設定されている
  • Claude Code を開始したディレクトリのパスに *、?、[ などのグロブ文字が含まれている
ブロック下で、Claude Code はサンドボックス化されたコマンドに対してグローバル git 設定ファイルを再度開くため、git はユーザーのアイデンティティと設定を保持します。
  • ~/.gitconfig
  • $XDG_CONFIG_HOME/git の下の config、ignore、attributes ファイル(デフォルトは ~/.config/git)
  • グローバル git 設定が [include]、[includeIf]、core.excludesFile、core.attributesFile を通じて指定するファイル
Claude Code は各ファイルを個別に判断します。ファイルが、サンドボックス化されたコマンドが直接またはシンボリックリンクを通じて書き込める場所にある場合、Claude Code はそのファイルが指定するファイルを再度開きません。 Linux および WSL2 では、シンボリックリンクである設定ファイルはそれ自身のパスで読み取り不可のままになることがあり、その場合 git はそのファイルなしで実行されます。~/.git-credentials および $XDG_CONFIG_HOME/git/credentials はブロックされたままです。 再度開いたファイルがシークレット(http.extraHeader トークンなど)を保持する場合、そのパスを sandbox.filesystem.denyRead に追加してください。ファイルをカバーする denyRead エントリは、常にこの再度開く処理より優先されます。

permissions.blockWritesOutsideWorkingDirectories

bypassPermissions を含むすべての権限モードで、Write、Edit、NotebookEdit ツールが作業ディレクトリ外のパスを拒否するようにします。ただし、Claude Code 自身の一部のファイルは除きます。このキーは、シェルコマンド、MCP ツール、またはフックが実行するプログラムを制限しません。シェルコマンドの書き込み先を制限するには、サンドボックス化をオンにしてください。Claude Code v2.1.314 以降が必要です。 このキーがオンになると、Claude Code は EnterWorktree および ExitWorktree ツールも削除するか、それらへの呼び出しを拒否します。worktree での作業を続けるには、Claude に EnterWorktree ツールがないの手順に従ってください。
  • スコープ: Any file。セッションが読み込むいずれかのファイルの true が適用されるため、リポジトリは自身に対してブロックをオンにできますが、ユーザーが設定したブロックを解除することはできません。クラウドセッションでは、ファイルツールがそれ自体が境界となるコンテナ内で実行されるため、Claude Code がこのキーを適用しない場合があります。
  • タイプ: ブール値
    • true: ブロックをオンにします
    • false: 未設定と同じです。別のファイルが true を設定している場合、ブロックは引き続き適用されます
  • デフォルト: 未設定。作業ディレクトリ外への書き込みは権限モードに従います。Claude Code が管理設定の permissions オブジェクトを読み取れない間も、ブロックはオンになります。
settings.json
ブロックをテストするには、作業ディレクトリ外にファイルを作成するために Write ツールを使用するよう Claude に依頼します(ホームディレクトリが作業ディレクトリに含まれていない場合は ~/block-test.txt など)。Claude Code はその呼び出しを拒否し、拒否メッセージには設定によって作業ディレクトリ外への書き込みがブロックされていることが示されます。 ブロックを解除するには、それを設定しているすべての設定ファイルからキーを削除し、Claude Code を再起動します。

書き込みブロックが拒否するものと書き込み可能なままのもの

Claude Code 自身の一部のファイルは書き込み可能なままです。たとえば、プランファイル、スクラッチパッド、バックグラウンドセッションの tmp ディレクトリ、このプロジェクトの自動メモリ内の .md ファイルなどです。 作業ディレクトリ外にあるユーザー自身のファイルに加えて、ブロックは次への書き込みを拒否します。
  • Claude Code の設定ファイル: 設定ファイルはブロックを解除できるため、Claude Code は作業ディレクトリ内でもこれらの書き込みを拒否します。設定ファイルはユーザー自身で編集してください。
  • リポジトリ設定のみが追加するディレクトリ: additionalDirectories が .claude/settings.json のみ、または git がそのファイルを未追跡として報告する場合を除き .claude/settings.local.json のみでリストしているディレクトリ
  • サブエージェントの worktree: isolation: worktree サブエージェントの worktree が作業ディレクトリ外にある場合、そのファイル編集は拒否されます
  • リポジトリが選択したディレクトリ内の自動メモリ: リポジトリ設定で autoMemoryDirectory が指定するディレクトリ
何を追加しても、設定ファイルへの書き込みは拒否されたままです。それ以外のいずれかのケースで書き込みを通すには、作業ディレクトリを追加します。/add-dir には存在するディレクトリが必要なため、サブエージェントの worktree については、リポジトリルートの .claude/worktrees ディレクトリを指定してください。

読み取りまたは書き込みのブロックに 1 つのディレクトリを通す

blockReadsOutsideWorkingDirectories または blockWritesOutsideWorkingDirectories が true の間に Claude がプロジェクト外の 1 つのディレクトリにアクセスできるようにするには、そのディレクトリを作業ディレクトリとして追加します。セッション内で /add-dir <directory> を実行するか、Claude Code の開始時に --add-dir <directory> を渡すか、ユーザー設定または管理設定の additionalDirectories にリストしてください。どちらのブロックについても、Claude のファイルツールを通過させる許可ルールはありません。

permissions.defaultMode

新しいセッションのデフォルトの権限モードを設定します。未設定のままにすると、使用しているサーフェスの組み込みデフォルトが適用されます。
  • スコープ: Any file。auto および bypassPermissions はプロジェクトまたはローカル設定からは有効にならないため、代わりに ~/.claude/settings.json で設定してください。v2.1.257 より前では、bypassPermissions は任意のファイルから有効になりました。VS Code 拡張機能が開始する会話の場合、Claude Code はユーザー、管理、および --settings の値のみを読み取ります。
  • タイプ: 文字列。次のいずれか:
    • "default": Claude Code は確認なしで読み取りのみを実行します
    • "acceptEdits": Claude Code は確認なしでファイル編集と mkdir や mv などの一般的なファイルシステムコマンドも実行します
    • "plan": Claude Code は読み取りと計画を行いますが、計画を承認するまで編集をブロックします
    • "auto": Claude Code は日常的なプロンプトなしで実行します。シェルコマンドやネットワークリクエストなどのアクションが実行される前に、バックグラウンドの分類器がそれらがユーザーのリクエストに沿っているかを確認します
    • "dontAsk": Claude Code はプロンプトを表示するはずのすべての呼び出しを自動的に拒否します。ただし、インストールした mod はそれらの呼び出しの一部を引き続き承認できます。作業ディレクトリ内のファイル読み取り、承認が不要な他のアクション、事前承認されたツールは引き続き実行されます。ただし、ネットワークパスからの読み取りは除きます
    • "bypassPermissions": Claude Code はすべてを確認なしで実行します
    • "manual": "default" のエイリアス
  • デフォルト: 未設定
  • セッションごとの上書き: --permission-mode、および bypassPermissions に相当する --dangerously-skip-permissions は、1 つのセッションにおいてこのキーより優先されます
settings.json
権限ルールはすべてのモードの上に重ねて適用されます。deny ルールは bypassPermissions を含むすべてのモードでブロックします。権限モードを参照してください。クラウドセッションでは、Claude Code はこのキーのうち acceptEdits、plan、default、auto のみを尊重します。VS Code 拡張機能が開始する会話については、拡張機能が開始権限モードとして読み取る設定を参照してください。

permissions.denyInsteadOfPrompting

権限プロンプトに応答する人がいないときにセッションを実行し続けるには、これを true に設定します。Claude Code は、本来であればプロンプトを待つツール呼び出しを拒否し、ターンは続行されます。Claude Code v2.1.319 以降が必要です。 許可ルール、権限モード、または auto モードの分類器が承認した呼び出しは実行されます。本来であればプロンプトを表示するほとんどの呼び出しを許可するには、PermissionRequest フックから応答します。
  • スコープ: User or managed、および --settings。リポジトリがこれを設定することはできません。
  • タイプ: ブール値
    • true: Claude Code は本来であればプロンプトを表示する呼び出しを拒否します
    • false: 未設定と同じです。これらのソースの別のものが true を設定している場合、呼び出しは引き続き拒否されます
  • デフォルト: 未設定。承認が必要な呼び出しではプロンプトが表示されます
~/.claude/settings.json でのこの例は、セッションを auto モードで開始し、それでもプロンプトにフォールバックするものをすべて拒否します。
settings.json
このキーは、-p 実行、対話型ターミナルセッション、VS Code 拡張機能、Desktop アプリのローカルセッション、サブエージェント、エージェントチームに適用されます。代わりに単一の非対話型実行でプロンプトを表示するものを拒否するには、-p とともに --permission-prompts none を渡します。

denyInsteadOfPrompting が他に停止するもの

この設定がオンの場合、Claude Code は応答を求める次のリクエストも停止します。
  • 質問ツールと計画ツール: Claude Code は AskUserQuestion、EnterPlanMode、ExitPlanMode を除外するため、plan モードのセッションは自力で plan モードを終了できません。エージェントチームのチームメイトは EnterPlanMode と ExitPlanMode を保持します
  • MCP elicitation: Elicitation フックが応答しない限り、Claude Code は elicitation リクエストをキャンセルします
  • 権限ホスト: Claude Code は canUseTool コールバックや --permission-prompt-tool に問い合わせません。コードから呼び出しを承認するには、PermissionRequest フックから応答します。一部の呼び出しは、フックに問い合わせる前に拒否されます。たとえば、どの確認ルールも対象としていない、auto モードでの重要パスの削除などです。
  • 分類器の課金通知: 課金される分類器リクエストに関する通知がダイアログを開く場合、Claude Code はそれを表示せず、それらのリクエストを必要とするアクションを拒否します
セッションは、ワークスペース信頼ダイアログとプロジェクト MCP サーバーの承認では引き続き待機する可能性があります。セッションを実行したまま離れる前に、両方に応答してください。

denyInsteadOfPrompting からのメッセージ

これらのメッセージは拒否された呼び出しを報告します。プロンプトではないため、応答を待つものはありません。 Claude が読み取る拒否は、次のテキストで始まる場合があります。
stream-json 出力では、permission_denied メッセージを出力する実行は次の decision_reason を報告します。
この設定がオンの auto モードでは、分類器がブロックした、または安全性チェックが拒否した呼び出しが 20 回連続するとターンが終了し、次のメッセージが表示されます。
-p 実行は、そのターンを error_during_execution として報告します。

permissions.disableBypassPermissionsMode

誰も bypassPermissions モードに入れないようにします。Claude Code は --dangerously-skip-permissions フラグを拒否し、エージェント定義の permissionMode: bypassPermissions を無視するため、サブエージェントは親セッションの権限モードで実行されます。
  • スコープ: Any file。通常、組織のポリシーを強制するために管理設定で設定します。
  • タイプ: 文字列 "disable"
  • デフォルト: 未設定
  • セッションごとの上書き: このキーは --dangerously-skip-permissions より優先されます。キーが設定されている間、Claude Code はそのフラグを拒否します
settings.json