~/.claude.json 中的簡短鍵組。若要選擇檔案或檢查優先順序,請從設定檔和優先順序開始。
設定索引
下方每個鍵都連結至其條目。範圍列出該鍵可放置的檔案:使用者 是 ~/.claude/settings.json,專案 是 .claude/settings.json,本機 是 .claude/settings.local.json,而 受管 是您的組織所部署的內容。任何檔案 表示以上四者皆可,而 全域設定 表示 ~/.claude.json。
模型與回應
選擇 Claude Code 使用哪些模型以及其回應方式。關於這些設定如何與/model 命令及環境變數互動,請參閱模型設定。
advisorModel
選擇當 Claude 呼叫伺服器端 advisor 工具時由哪個模型回答。取消設定即可關閉 advisor。advisor 的能力必須至少與您的主要模型相當。請參閱選擇 advisor 模型,了解可接受的組合,以及選擇不被接受的組合時會發生什麼情況。
通常不需要手動編輯此鍵。執行 /advisor 會開啟一個選擇器,顯示目前的選擇、可擔任 advisor 的模型,以及 No advisor。Claude Code 會將您的選擇儲存到 ~/.claude/settings.json 中的此鍵。如果您是從 Remote Control 用戶端,或在連接至遠端 worker 的工作階段中進行選擇,該選擇僅套用於該工作階段,不會變更此鍵。
如果您的帳戶需要用量點數同意,請先執行 /model fable 接受同意。在您接受之前,於 /advisor 中選擇 Fable 不會儲存任何內容,且 Claude Code 會提示您先執行 /model fable。
- 範圍:
Any file - 類型:字串,為別名
"fable"、"opus"或"sonnet"之一(會解析為 Claude Code 目前該模型系列的預設版本),或完整的模型 ID,例如"claude-opus-5-5" - 預設值:未設定,因此 advisor 為關閉狀態
- 每個工作階段的覆寫:
--advisor在單一工作階段中優先於此鍵。CLAUDE_CODE_DISABLE_ADVISOR_TOOL會關閉 advisor,且此鍵無法將其重新開啟
settings.json
"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),Claude Code 會傳送 effort high 而非更高的等級。
- 範圍:
Any file - 類型:Boolean
true:沒有作用;思考已開啟false:Claude Code 在每個工作階段中關閉延伸思考
- 預設值:未設定,因此支援思考的模型會開啟思考
- 每個工作階段的覆寫:
MAX_THINKING_TOKENS在單一工作階段中優先於此鍵:0會關閉思考,受與false相同的模型和供應商限制;正值則會開啟思考,即使此鍵為false亦然。在自適應推理模型上,數值本身會被忽略
settings.json
availableModels
限制使用者可為主要工作階段、subagent、skill 以及 advisor 選擇哪些模型。受管清單會限制 /model、--model,以及開發者自己檔案中的 model 鍵;清單以外的模型無法被選擇。在預設的前綴比對下,此鍵本身不會影響 Default 選項;若要影響該選項,請搭配 enforceAvailableModels 使用。
- 範圍:
Any file。將其部署於受管設定中,即可為組織強制執行。 - 類型:模型別名或 ID 的陣列
- 預設值:未設定,因此所有模型皆可使用
settings.json
"claude-opus-5" 這樣的模型 ID 項目,也會允許延伸自該 ID 的後續版本,例如 Opus 5.5。若要封鎖其中某個版本,請使用 deniedModels。若要讓每個模型 ID 項目只允許其所指定的版本,請使用 availableModelsMatch。請參閱限制模型選擇。關於第三方供應商的 ID,請參閱為第三方部署固定模型。
availableModelsMatch
選擇 availableModels 項目如何比對模型 ID。預設情況下,模型 ID 項目也會允許延伸自該 ID 的後續版本,因此 "claude-opus-5" 會允許 Opus 5.5。使用 "exact" 時,每個模型 ID 項目只允許其所指定的版本,因此該模型的較新版本在您將其列出之前都會保持封鎖。需要 Claude Code v2.1.283 或更新版本。
- 範圍:
Managed。Claude Code 會忽略使用者、專案及本機設定中以及--settings中的此鍵,並顯示警告 - 類型:字串,為下列之一:
"prefix":模型 ID 項目允許其版本,以及任何以另一個片段延伸該 ID 的模型 ID"exact":模型 ID 項目只允許其所指定的版本,因此"claude-opus-5"允許 Opus 5 但不允許claude-opus-5-5。像"claude-opus-4-5"這樣的項目也會允許其帶日期的 Anthropic 模型 IDclaude-opus-4-5-20251101。像"opus"這樣的系列別名仍會允許整個系列,而best、opusplan和default項目會被忽略
- 預設值:
"prefix"
managed-settings.json
"exact" 時,只要清單至少列出一個模型或系列,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 - 沒有次版本號的模型 ID,例如
"claude-opus-5",也會封鎖後續的次版本,例如 Opus 5.5。若只要封鎖 Opus 5,請寫成"claude-opus-5-0" best、opusplan和default項目會被忽略
- 像
- 預設值:未設定,因此不會封鎖任何模型
managed-settings.json
effortLevel
為尚未儲存等級的模型設定預設的 effort 等級。較低的等級在簡單任務上更快且更便宜,較高的等級則會針對複雜問題進行更深入的推理。
當您在本機的互動式工作階段中執行 /effort low、medium、high 或 xhigh 時,Claude Code 會將該等級儲存在 modelSettings 中目前使用的模型之下,而不是寫入此鍵。在 v2.1.251 之前,/effort 會寫入此鍵。
在同一個設定檔中,Claude Code 會使用模型已儲存的等級,而非此鍵。modelSettings 說明了跨檔案的優先順序。
在連接至遠端 worker 的工作階段、-p 執行以及 Agent SDK 中,/effort 只會套用於該工作階段。調整 effort 等級列出了同樣只套用於該工作階段的互動式選擇。/effort 所顯示的訊息會說明實際發生的情況。
- 範圍:
Any file - 類型:字串,為下列之一:
"low":最少的推理,適用於簡短、範圍明確、對延遲敏感且不需要高度智慧的任務"medium":為對成本敏感、可犧牲部分智慧的工作減少 token 使用量"high":在 token 使用量與智慧之間取得平衡"xhigh":以較高的 token 花費進行更深入的推理
- 預設值:未設定
- 每個工作階段的覆寫:
--effort在單一工作階段中優先於此鍵,而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
settings.json
availableModels 未設定或為空時,此鍵不會產生作用。請參閱為 Default 模型強制執行允許清單。需要 Claude Code v2.1.175 或更新版本。
fallbackModel
指定當您的主要模型過載或無法使用時,Claude Code 依序嘗試的備援模型。Claude Code 會在該回合的剩餘部分切換至鏈中下一個可用的模型,並顯示通知。若沒有設定鏈,Claude Code 會重試同一個模型,然後顯示伺服器的錯誤,由您自行重試或切換模型。
一次切換代表在備援模型上會有一個提示快取為冷狀態的回合;您的下一則訊息會再次先嘗試主要模型。
- 範圍:
Any file - 類型:模型別名或 ID 的陣列;
"default"會展開為預設模型 - 預設值:未設定,因此失敗的請求不會在其他模型上重試
- 每個工作階段的覆寫:
--fallback-model在單一工作階段中優先於此鍵
settings.json
["claude-sonnet-5"],而使用者檔案設定為 ["claude-haiku-4-5"],則鏈僅為 ["claude-sonnet-5"]。Claude Code 最多保留清單中三個不同的允許模型,並忽略其餘模型。請參閱備援模型鏈。
fastMode
在可使用快速模式的工作階段中開啟快速模式,適用於快速迭代或即時除錯等互動式工作,讓您以較高的每 token 成本換取速度。通常不需要手動編輯此鍵。執行 /fast 會將 fastMode: true 寫入 ~/.claude/settings.json,再次執行以關閉快速模式則會移除此鍵。
在 Anthropic API 上,只有 Fable 5.2、Opus 5.5、Opus 5 和 Opus 4.8 支援快速模式。從其他模型執行 /fast 會將您切換至 Opus,而切換至不支援的模型則會關閉快速模式。請參閱在快速模式開啟時切換模型。在 Google Cloud’s Agent Platform 上,/fast 會改為將您切換至 Fable 5.2,且不會寫入此鍵,而 Claude Code 會忽略已儲存的 true。
- 範圍:
Any file - 類型:Boolean
true:Claude Code 在可使用快速模式的工作階段中開啟快速模式。在 Fable 5.2 上,您還必須在使用 Fable 5.2 時執行/fastfalse:快速模式保持關閉
- 預設值:未設定,因此快速模式為關閉狀態
- 每個工作階段的覆寫:
CLAUDE_CODE_DISABLE_FAST_MODE會在單一工作階段中關閉快速模式,且此鍵無法將其重新開啟
settings.json
fastModePerSessionOptIn
通常,執行 /fast 會將 fastMode 儲存到使用者的使用者設定中,因此在支援的模型上,新的工作階段開始時快速模式都會開啟。在 Fable 5.2 上,只有在使用者於使用 Fable 5.2 時開啟快速模式的情況下才會如此。若要讓每位使用者在需要的每個工作階段中自行執行 /fast,請將此鍵設為 true。Claude Code 會保留其檔案中的 fastMode,因此關閉此鍵即可恢復舊有行為。
Team 或 Enterprise 方案的擁有者可以透過伺服器受管設定在整個組織中部署此鍵。當受管設定設定了此鍵時,/fast on 在互動式終端機工作階段以外會被拒絕,並回報您的組織已停用快速模式。這包括非互動模式、VS Code 擴充功能以及雲端工作階段。
- 範圍:
Any file - 類型:Boolean
true:已儲存的fastMode: true不再於工作階段開始時開啟快速模式,因此每位使用者需在需要的每個工作階段中執行/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、skill 或 subagent 的 effort frontmatter,或模型自身預設值的等級。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。該項目只會在同時設定兩者的設定來源中(例如您的使用者設定或某一個受管來源),針對該模型取代此鍵。在該處設定"max"可讓該模型免受該來源的上限限制;Claude Code 仍會套用其他來源的上限
medium,並讓 Sonnet 4.6 免受限制:
settings.json
model
設定每個新工作階段使用的模型,這樣您就不必每次都用 /model 選擇。在此設定不會妨礙您在工作階段中途切換模型。如果您的管理員設定了組織預設模型來覆寫使用者的選擇,即使您在使用者、專案或本機設定中設定了此鍵,您仍會使用該模型。
- 範圍:
Any file - 類型:字串,模型別名或完整的模型 ID
- 預設值:未設定,因此 Claude Code 會使用您帳戶的預設模型
- 每個工作階段的覆寫:
--model優先於ANTHROPIC_MODEL,而兩者在單一工作階段中都優先於此鍵,包括優先於受管的model;availableModels清單仍會套用於所選模型
settings.json
ANTHROPIC_DEFAULT_MODEL,Claude Code 只在沒有其他項目選擇模型時才會使用後者。
modelOverrides
將 Anthropic 模型 ID 對應至供應商特定的模型 ID,例如 Amazon Bedrock 推論設定檔 ARN。模型選擇器中的每個項目在呼叫供應商 API 時,就會使用其對應的值。管理員會在 Amazon Bedrock、Google Cloud’s Agent Platform 和 Microsoft Foundry 上使用此設定,將每個模型版本導向特定的推論設定檔、版本名稱或部署,以用於治理、成本分攤或區域路由。
- 範圍:
Any file - 類型:將模型 ID 對應至供應商模型 ID 的物件
- 預設值:未設定
settings.json
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和使用者設定讀取此鍵,並忽略專案及本機設定中的此鍵,以免您複製的儲存庫重新標記選擇器。這三者中設定了此鍵且優先順序最高者會提供整個陣容,Claude Code 絕不會合併來自兩個來源的陣容。 - 類型:包含列組成的
options陣列以及選用的replaceBuiltInOptionsBoolean 的物件 - 預設值:未設定,因此選擇器會顯示內建陣容
managed-settings.json
modelPicker 的欄位
此鍵接受兩個欄位,一個用於列本身,另一個用於決定這些列是取代內建陣容還是加入其中。
options 中的項目也可以在其 model 旁加上選用的 behavesAs 字串,這需要 v2.1.257 或更新版本。在 model 比您的 Claude Code 版本更新的項目上,將其設為您的 Claude Code 版本已知的模型 ID,例如 claude-opus-4-8。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 會保留內建陣容,並如常依允許清單篩選
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 會完全依照您撰寫的方式使用一列的費率,不會加上快速模式附加費或僅限美國推論的費率。如果您也設定了
multiplier,Claude Code 會在該列的費率之上套用它。Claude Code 會捨棄包含無法解析之費率的列,或無法解析的 multiplier,並保留其餘部分;請參閱修正損壞的設定檔。
modelPricing 的一列適用於哪些模型
Claude Code 會根據列的鍵來決定該列適用於哪些模型:
- 內建模型的 ID:Claude Code 本身用於內建模型的鍵,無論該鍵是模型自身的 ID(例如
claude-sonnet-4-6),還是其 Bedrock、Agent Platform 或 Foundry ID。Claude Code 會將該列套用至該模型的每個帶日期快照 ID 和供應商特定 ID。 - 任何其他鍵:不是內建模型 ID 的鍵,例如閘道模型別名。Claude Code 只會將該列套用至那一個 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 也會以相同方式將其儲存於此。effortLevel 項目列出了 /effort 只套用於該工作階段的工作階段。
手動編輯此鍵即可變更或移除您已儲存的等級。
此處模型的 effortLevel 優先於同一個設定檔中頂層的 effortLevel。跨檔案時,Claude Code 會分別解析每個模型:設定了該模型的 effortLevel,或設定了適用於該模型的頂層 effortLevel,且優先順序最高的設定檔會決定結果,因此受管設定中的 effortLevel 優先於您在使用者設定中儲存的等級。調整 effort 等級列出了其他可覆寫已儲存等級的項目,例如啟動時的 --effort。
若要為某個模型的 effort 設定上限而非設定其等級,請在該模型的項目中加入 maxEffortLevel 欄位。此欄位需要 Claude Code v2.1.267 或更新版本。
- 範圍:
Any file - 類型:將模型名稱對應至物件的物件,該物件可包含下列任一欄位:
effortLevel:"low"、"medium"、"high"或"xhigh"之一maxEffortLevel:該模型可執行的最高 effort 等級autoCompactWindow:從100000到1000000的 token 數量,或"auto"表示針對該模型調整的視窗。/autocompact會儲存於此。對於該模型,此值優先於同一個設定檔中頂層的autoCompactWindow。需要 Claude Code v2.1.288 或更新版本
- 預設值:未設定
claude-opus-5-5)寫入每個項目,並將該模型的別名、帶日期後綴的 ID、[1m] 以及可辨識的供應商特定 ID 對應至同一個項目。
此範例讓 Opus 5.5 保持在 high,而其他模型則使用其自身已儲存的等級或預設等級:
settings.json
/effort auto 即可清除您正在使用之模型的已儲存等級。Claude Code 會保留其他項目以及任何頂層的 effortLevel。
outputStyle
依名稱選擇輸出風格。輸出風格是一組已儲存的指令,可改變 Claude 的角色、語氣和輸出格式,例如內建的 Explanatory 和 Learning 風格,或您自己撰寫的風格。
如果您在工作階段期間變更此鍵,Claude 會從您的下一則訊息開始使用新風格。關於該訊息在提示快取方面的成本,請參閱變更輸出風格。在 v2.1.251 之前,此編輯只會在您執行 /clear 或開始新的工作階段後才生效。
此範例選擇內建的 Explanatory 風格,它會在任務之間加入教育性的見解:
settings.json
promptCacheTtl
選擇提示快取保留主要對話的時間長度。此鍵套用於您的互動式、-p 以及 Agent SDK 回合,以及 Claude Code 與其一同內嵌執行的輔助程式。一小時的存留期可在較長的中斷期間保持快取為熱狀態,而 API 會以高於五分鐘存留期的費率對每次快取寫入計費。需要 Claude Code v2.1.242 或更新版本。
- 範圍:
Any file - 類型:字串,為下列之一:
"5m":快取保留五分鐘"1h":快取保留一小時
- 預設值:未設定,因此每個主要對話請求會取得其預設存留期
- 每個工作階段的覆寫:
FORCE_PROMPT_CACHING_5M優先於其他所有項目,其次是CLAUDE_CODE_PROMPT_CACHE_TTL,然後是此鍵,最後是ENABLE_PROMPT_CACHING_1H
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 在主要對話以外發出之請求的時間長度。此鍵套用於 subagent、工作流程,以及 Claude Code 自身的背景和輔助請求,例如壓縮和工作階段標題。一小時的存留期可在較長的中斷期間保持快取為熱狀態,而 API 會以高於五分鐘存留期的費率對每次快取寫入計費。需要 Claude Code v2.1.242 或更新版本。
- 範圍:
Any file - 類型:字串,為下列之一:
"5m":快取保留五分鐘"1h":快取保留一小時
- 預設值:未設定,因此這些請求各自取得其預設存留期
- 每個工作階段的覆寫:
FORCE_PROMPT_CACHING_5M優先於其他所有項目,其次是CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL,然後是此鍵,再來是ENABLE_PROMPT_CACHING_1H,它會要求每個請求都使用一小時的存留期。關於 subagent 自身 frontmatter 值的優先順序,請參閱自行選擇 TTL
settings.json
promptCacheTtl 未涵蓋的請求,因此同時設定兩者即可為 Claude Code 發出的每個請求選擇存留期。關於 subagent 的快取與主要對話快取的差異,請參閱Subagent 與快取。
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 會為每個實質性任務規劃工作流程,而不是等待您要求。只有在您啟用了動態工作流程且您的模型支援 xhigh effort 時,Claude 才會規劃工作流程。此鍵不會改變工作階段的 effort 等級:ultracode 會以工作階段所使用的任何等級執行。Claude Code 會讀取此鍵但絕不會寫入:/effort ultracode 只會在目前工作階段中開啟 ultracode。
- 範圍:
Any file - 類型:Boolean
true:當您啟用了動態工作流程且您的模型支援xhigh時,工作階段會以開啟 ultracode 的狀態啟動false:工作階段會以關閉 ultracode 的狀態啟動
- 預設值:未設定,因此 ultracode 為關閉狀態
- 每個工作階段的覆寫:
/effort ultracode會在沒有此鍵的情況下於單一工作階段中開啟 ultracode,而當此鍵為true時,/effort ultracode off會在單一工作階段中將其關閉。--effort ultracode旗標也會以xhigheffort 在單一工作階段中開啟 ultracode
settings.json
effortLevel、modelSettings 以及其他 effort 來源,而 effort 上限(例如 maxEffortLevel)會降低該等級,但不會關閉 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 可以在不詢問的情況下執行的操作、新工作階段的預設權限模式,以及自動模式分類器允許的內容。如需規則語法和權限模型,請參閱設定權限。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 或更新版本也會忽略來自下列來源的 skill 和 .claude/commands/ 檔案中的 allowed-tools frontmatter:
- 儲存庫的
.claude/目錄 - 您的
~/.claude/skills/和~/.claude/commands/目錄,包括從 claude.ai 同步的 skill --add-dir目錄- 位於
~/.claude/skills/或專案的.claude/skills/內、以.claude-plugin資訊清單宣告的外掛 - 僅為單一工作階段載入、其 id 以
@inline結尾的外掛,且下列條件全部成立時:- 該工作階段是由 Claude Desktop 應用程式本身啟動 Claude Code 的 Code 工作階段或 Cowork 工作階段,雲端工作階段除外
- 此設定鍵由您的受管設定設定,而不僅是由嵌入主機的父設定設定
- 該工作階段執行 Claude Code v2.1.305 或更新版本
allowed-tools。這些 Desktop 工作階段之外的 @inline 外掛也會保留其 allowed-tools,但名為 anthropic-skills 的外掛除外。skill 的 disallowed-tools 仍然適用。如需 Claude Code 忽略此欄位時開發人員會看到的內容,請參閱僅套用受管權限規則時。
- 範圍:
Managed - 類型:布林值
true:受管設定成為權限規則的唯一設定來源false:Claude Code 除了套用受管規則外,還會套用來自使用者、專案、本機和--settings檔案的權限規則
- 預設值:未設定,因此 Claude Code 會套用來自使用者、專案和本機設定以及
--settings的權限規則,以及受管規則
managed-settings.json
allowManagedMcpServersOnly。請參閱僅受管設定。
autoMode
將您自己的規則新增至自動模式分類器封鎖和允許的內容。使用它來告訴分類器您的組織信任哪些儲存庫、貯體和網域,以便它停止封鎖例行的內部操作。分類器隨附內建的允許和拒絕規則。在陣列中包含字面字串 "$defaults" 以在該位置保留這些內建規則,並在其周圍新增您的規則;省略它以用您的規則取代它們。
- 範圍:
User or managed - 類型:物件,包含
environment、allow、soft_deny和hard_deny散文規則陣列,加上classifyAllShell布林值 - 預設值:未設定,因此分類器僅使用其內建規則
"$defaults" 保留內建的 soft_deny 規則,並新增一個封鎖 terraform apply 的規則:
settings.json
autoMode.classifyAllShell
在自動模式啟用時,將每個 Bash 和 PowerShell 命令傳送到自動模式分類器。根據預設,自動模式只會暫停可能執行任意程式碼的允許規則:工具範圍和萬用字元規則(例如 Bash(*))以及解譯器或 shell 包裝器前綴(例如 Bash(python *))。與其他允許規則相符的命令(例如 Bash(npm test))會跳過分類器,除非它帶有每個命令允許的網域。當它跳過時,規則的前綴未預期的破壞性引數可能會通過而不被看到。設定此設定鍵會暫停工作階段的每個 shell 允許規則,以便分類器看到每個命令。需要 Claude Code v2.1.193 或更新版本。
- 範圍:
User or managed。讀取位置與autoMode相同。 - 類型:布林值
true:在自動模式啟用時,Claude Code 會將每個 Bash 和 PowerShell 命令傳送到分類器,並暫停您的 shell 允許規則;在自動模式外,規則仍然適用false:自動模式只會暫停可能執行任意程式碼的允許規則,例如Bash(*)和Bash(python *);與任何其他允許規則相符的命令會跳過分類器,除非它帶有每個命令允許的網域,每個其他 shell 命令都會通過它
- 預設值:
false
settings.json
disableAutoMode
從 Shift+Tab 循環中移除自動模式。任何原本會以自動模式啟動的工作階段(無論是來自 --permission-mode auto、設定檔或內建預設值)都會改為以 default 啟動。管理員在受管設定中設定它,以防止其組織中的開發人員使用自動模式。
- 範圍:
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
permissions.allow 下的權限規則語法。如需來自不同檔案的權限規則如何組合,請參閱權限規則如何跨範圍合併;如需設定鍵的一般組合方式,請參閱設定指南上的設定優先順序。
useAutoModeDuringPlan
選擇 Claude Code 是否在 plan mode 中使用自動模式分類器來檢查 shell 命令。使用預設值 true,分類器在規劃期間檢查每個命令(當自動模式可用且您看不到提示時),除了關鍵路徑移除。設定 false 以針對內建唯讀集之外的每個命令獲得權限提示。在 /config 中顯示為在計畫期間使用自動模式。
- 範圍:
User, local, or managed。儲存庫無法為您關閉它。- 這些檔案中任一個或
--settings中的false都會將其關閉,除非您使用--setting-sources等選項排除該使用者或本機檔案。忽略被排除的檔案需要 Claude Code v2.1.314 或更新版本
- 這些檔案中任一個或
- 類型:布林值
true:與未設定相同;當自動模式可用時,分類器會在規劃期間檢查 shell 命令false:您會針對內建唯讀集之外的每個命令獲得權限提示
- 預設值:
true
settings.json
permissions.allow
列出 Claude Code 在不詢問您的情況下核准的工具使用。在 MCP 規則中,* 只能出現在 mcp__<server>__ 前綴之後的工具名稱中,例如 mcp__github__get_*;它不能出現在伺服器名稱中。
- 範圍:
Any file - 類型:權限規則字串陣列
- 預設值:未設定
- 每個工作階段的覆寫:
--allowedTools為一個工作階段新增允許規則,任何設定檔中的拒絕規則仍然會封鎖它命名的工具
git diff 並讓 Claude Code 在不詢問的情況下讀取您的 .zshrc:
settings.json
.claude/settings.json 中的 allow 規則。
權限規則語法
權限規則遵循格式Tool 或 Tool(specifier)。Claude Code 首先評估 deny 規則,然後 ask,然後 allow,第一個相符項決定結果,無論每個規則的具體程度如何;請參閱權限規則評估順序。
每一列顯示一個規則形狀及其相符的內容。
如需完整的規則語法,包括萬用字元行為、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)以及 Bash 重新導向的目標(例如 > file 和 < file);它們不適用於讀取檔案而不命名它們的命令(例如 grep -r pattern .)或任意子程序,因此如需作業系統層級的強制執行,請啟用沙箱。
- 範圍:
Any file - 類型:權限規則字串陣列
- 預設值:未設定
- 每個工作階段的覆寫:
--disallowedTools在此設定鍵之外為一個工作階段新增拒絕規則
.env 檔案、secrets 目錄和憑證檔案,並封鎖 curl 命令:
settings.json
"*" 拒絕每個工具,"mcp__*" 拒絕每個 MCP 工具。只要任何其他工具仍然可供 Claude 使用,Claude Code 就會忽略 EndConversation 工具的拒絕規則。Bash 拒絕規則與 Claude 寫入的命令相符,因此 Bash(curl *) 不會停止 /usr/bin/curl 或 sh -c 'curl …';請參閱Bash 規則不相符的內容。此設定鍵取代已棄用的 ignorePatterns 設定。
permissions.additionalDirectories
給予 Claude 檔案存取權限,以存取您啟動的目錄之外的目錄,作為額外的工作目錄。大多數 .claude/ 設定未從這些目錄探索。
- 範圍:
Any file,專案和本機項目所給予的沙箱寫入存取權有其限制 - 類型:目錄路徑陣列
- 預設值:未設定
- 每個工作階段的覆寫:
--add-dir和/add-dir在此設定鍵之外為一個工作階段新增目錄
settings.json
allow 規則一樣,專案 .claude/settings.json 中的項目只有在您接受該資料夾的工作區信任對話後才會生效。
permissions.blockReadsOutsideWorkingDirectories
使 Claude 的檔案工具在每個權限模式(包括 bypassPermissions)中拒絕讀取您的工作目錄之外的路徑。Claude Code 拒絕對這些路徑的 Read、Grep、Glob 和 LSP 呼叫,並告訴 Claude 要求您使用 /add-dir 新增目錄。Claude Code 本身需要的檔案保持可讀,例如您的 skill、外掛、規則、agent、命令以及 ~/.claude/ 下的 CLAUDE.md 記憶檔案。需要 Claude Code v2.1.257 或更新版本。
Claude Code 不會以相同方式拒絕 shell 命令:
- 沒有任何模式自動核准的操作涵蓋讀取此類路徑的 shell 命令何時提示您
- 區塊下的沙箱化命令涵蓋沙箱化命令可以讀取的內容
bypassPermissions 模式中也會提示您。即使命令未命名工作目錄外的任何路徑,提示仍然會出現。當命令在沙箱中執行且沙箱強制執行封鎖時,此提示不適用。
Claude Code 也會在此處寫入 true,當您選擇在自動模式的提示中封鎖此類讀取(在第一次讀取工作目錄外之前)時。
- 範圍:
Any file。如果任何檔案設定true,則區塊適用,因此儲存庫可以為自己開啟區塊,但無法解除您設定的區塊。 - 類型:布林值
true:Claude 的檔案工具拒絕讀取工作目錄之外的路徑false:與未設定相同;另一個檔案中的true仍然會套用區塊
- 預設值:未設定,因此工作目錄外的讀取遵循您的權限模式
settings.json
--add-dir、/add-dir 或您的使用者或受管設定中的 additionalDirectories 新增的目錄計為區塊的工作目錄。僅在儲存庫設定中新增的目錄不計:.claude/settings.json 中的目錄,以及 .claude/settings.local.json 中的目錄,除非 git 報告該檔案為未追蹤。在不是 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 中命令需要的部分,例如 skill 和外掛。當區塊生效時,來自儲存庫設定的 allowRead 和 allowWrite 項目不計。
當工作階段的工作目錄是連結的 git worktree(包括 Claude Code 在工作階段中途進入的)時,儲存庫的通用 .git 目錄對沙箱化命令保持可讀和可寫,因此 git 在該處保持運作。
在這些情況下,區塊不會到達沙箱化命令,而 Claude 的檔案工具保持強制執行它:
- 檔案系統隔離透過
sandbox.filesystem.disabled關閉 allowManagedReadPathsOnly已設定- 您啟動 Claude Code 的目錄路徑包含 glob 字元,例如
*、?或[
git 保持您的身分和設定:
~/.gitconfig$XDG_CONFIG_HOME/git下的config、ignore和attributes檔案,預設為~/.config/git- 您的全域 git 設定透過
[include]、[includeIf]、core.excludesFile或core.attributesFile命名的檔案
git 在沒有它的情況下執行。~/.git-credentials 和 $XDG_CONFIG_HOME/git/credentials 保持被區塊。
如果重新開啟的檔案保存機密,例如 http.extraHeader token,請將其路徑新增到 sandbox.filesystem.denyRead。涵蓋檔案的 denyRead 項目始終優先於此重新開啟。
permissions.blockWritesOutsideWorkingDirectories
使 Write、Edit 和 NotebookEdit 工具在每個權限模式(包括 bypassPermissions)中拒絕您的工作目錄之外的路徑,但 Claude Code 自身的部分檔案除外。此設定鍵不會限制 shell 命令、MCP 工具或 hook 執行的程式。若要限制 shell 命令寫入的位置,請開啟沙箱機制。需要 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
~/block-test.txt(如果您的家目錄不屬於工作目錄)。Claude Code 會拒絕該呼叫,且拒絕訊息會說明設定封鎖了工作目錄之外的寫入。
若要解除封鎖,請從設定它的每個設定檔中移除此設定鍵,然後重新啟動 Claude Code。
寫入封鎖拒絕的內容以及保持可寫入的內容
Claude Code 自身的部分檔案保持可寫入,例如計畫檔案、暫存區、背景工作階段的tmp 目錄,以及此專案自動記憶中的 .md 檔案。
除了您自己位於工作目錄之外的檔案,封鎖也會拒絕寫入:
- Claude Code 設定檔:即使在工作目錄內,Claude Code 也會拒絕這些寫入,因為設定檔可以解除封鎖。請自行編輯設定檔。
- 僅由儲存庫設定新增的目錄:僅在
.claude/settings.json中,或在.claude/settings.local.json中(除非 git 報告該檔案為未追蹤)由additionalDirectories列出的目錄 - subagent 的 worktree:當
isolation: worktreesubagent 的 worktree 位於工作目錄之外時,其檔案編輯會被拒絕 - 儲存庫選擇之目錄中的自動記憶:儲存庫設定中
autoMemoryDirectory所指定的目錄
/add-dir 需要已存在的目錄,因此對於 subagent worktree,請指定儲存庫根目錄下的 .claude/worktrees 目錄。
讓單一目錄通過讀取或寫入封鎖
若要在blockReadsOutsideWorkingDirectories 或 blockWritesOutsideWorkingDirectories 為 true 時讓 Claude 存取專案之外的某個目錄,請將其新增為工作目錄。在工作階段中執行 /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 在沒有例行提示的情況下執行;在 shell 命令和網路請求等操作執行之前,背景分類器會檢查它們是否符合您的請求"dontAsk":Claude Code 自動拒絕每個原本會提示的呼叫,不過您安裝的 mod 仍可核准其中部分呼叫。工作目錄內的檔案讀取、不需要核准的其他操作以及預先核准的工具仍然執行,但從網路路徑的讀取除外"bypassPermissions":Claude Code 在不詢問的情況下執行所有操作"manual":"default"的別名
- 預設值:未設定
- 每個工作階段的覆寫:
--permission-mode及其bypassPermissions的等效項--dangerously-skip-permissions對一個工作階段優先於此設定鍵
settings.json
deny 規則在每個模式中封鎖,包括 bypassPermissions。請參閱權限模式。在雲端工作階段中,Claude Code 只從此設定鍵中接受 acceptEdits、plan、default 和 auto。對於 VS Code 擴充功能啟動的對話,請參閱擴充功能為啟動權限模式讀取的設定。
permissions.denyInsteadOfPrompting
將此設定為 true,可在沒有人能回應權限提示時讓工作階段持續執行。Claude Code 會拒絕原本會等待提示的工具呼叫,且該回合會繼續進行。需要 Claude Code v2.1.319 或更新版本。
如果允許規則、您的權限模式或自動模式的分類器核准某個呼叫,該呼叫就會執行。若要允許大多數原本會提示的呼叫,請從 PermissionRequest hook 回應。
- 範圍:
User or managed,以及--settings。儲存庫無法為您設定它。 - 類型:布林值
true:Claude Code 拒絕原本會提示的呼叫false:與未設定相同;如果這些來源中的另一個設定true,呼叫仍會被拒絕
- 預設值:未設定,因此需要核准的呼叫會提示您
~/.claude/settings.json 中,此範例以自動模式啟動工作階段,並拒絕任何仍會退回到提示的操作:
settings.json
-p 執行、互動式終端機工作階段、VS Code 擴充功能、Desktop 應用程式中的本機工作階段、subagent 和 agent team。若要改為只在單一非互動式執行中拒絕會提示的操作,請搭配 -p 傳入 --permission-prompts none。
denyInsteadOfPrompting 還會停止哪些項目
開啟此設定後,Claude Code 也會停止下列需要回應的請求:
- 問題和計畫工具:Claude Code 會省略
AskUserQuestion、EnterPlanMode和ExitPlanMode,因此處於 plan mode 的工作階段無法自行離開。agent team 中的隊員會保留EnterPlanMode和ExitPlanMode - MCP elicitation:Claude Code 會取消 elicitation 請求,除非有
Elicitationhook 回應它 - 權限主機:Claude Code 不會詢問您的
canUseTool回呼或--permission-prompt-tool。若要從程式碼核准呼叫,請從PermissionRequesthook 回應。有些呼叫會在詢問任何 hook 之前就被拒絕,例如auto模式中沒有任何 ask 規則涵蓋的關鍵路徑移除。 - 分類器計費通知:在關於計費分類器請求的通知會開啟對話框的情況下,Claude Code 不會顯示它,並拒絕需要這些請求的操作
來自 denyInsteadOfPrompting 的訊息
這些訊息回報被拒絕的呼叫。它們不是提示,因此不會有任何東西等待您的回應。
Claude 讀取的拒絕訊息可能以下列文字開頭:
stream-json 輸出中,發出 permission_denied 訊息的執行會回報此 decision_reason:
-p 執行會將該回合回報為 error_during_execution。
permissions.disableBypassPermissionsMode
防止任何人進入 bypassPermissions 模式。Claude Code 隨後會拒絕 --dangerously-skip-permissions 旗標,並忽略 agent 定義中的 permissionMode: bypassPermissions,因此 subagent 會以父工作階段的權限模式執行。
- 範圍:
Any file。通常在受管設定中設定以強制執行組織原則。 - 類型:字串
"disable" - 預設值:未設定
- 每個工作階段的覆寫:此設定鍵優先於
--dangerously-skip-permissions,在設定此設定鍵時 Claude Code 會拒絕它
settings.json
skipAutoPermissionPrompt
跳過 Claude Code 在您自己進入自動模式時顯示的一次性通知,描述自動模式,例如透過您自己的設定或模式選擇器,而不是當內建預設值在其中啟動工作階段時。Claude Code 顯示該通知一次,然後記錄它已顯示,因此此設定鍵只在通知尚未出現的地方重要。
- 範圍:
User or managed。儲存庫無法為您設定它。 - 類型:布林值
true:Claude Code 跳過通知false:與未設定相同;除非這些檔案中的另一個設定true,否則通知會出現一次
- 預設值:未設定,因此通知會出現一次
settings.json
skipDangerousModePermissionPrompt
跳過 Claude Code 在工作階段進入 bypassPermissions 模式前顯示的確認對話,無論是來自 --dangerously-skip-permissions 還是 defaultMode: "bypassPermissions"。當您接受該對話一次時,Claude Code 會在您的使用者設定中寫入 true。
- 範圍:
User, local, or managed,以及以--settings傳入的檔案。背景工作階段只計入使用者和受管設定。不受信任的儲存庫無法為您跳過對話。 - 類型:布林值
true:Claude Code 在工作階段進入bypassPermissions模式前跳過確認對話false:與未設定相同;除非這些檔案中的另一個設定true,否則對話會出現
- 預設值:未設定,因此對話會出現
settings.json
沙箱設定
將 Claude 執行的命令與您的檔案系統、網路和憑證隔離。關於沙箱機制的運作方式和平台需求,請參閱沙箱機制。sandbox
透過沙箱機制將 Claude 執行的 Bash 命令與您的檔案系統和網路隔離。使用 enabled 開啟沙箱,再透過 filesystem、network 和 credentials 子物件縮小或擴大沙箱化命令可存取的範圍。沙箱可在 macOS、Linux 和 WSL2 上執行。
- 範圍:
Any file - 類型:包含
enabled、failIfUnavailable、autoAllowBashIfSandboxed、excludedCommands、allowUnsandboxedCommands、enableWeakerNestedSandbox、enableWeakerNetworkIsolation、allowAppleEvents、allowNestedUserNamespaces、bwrapPath、socatPath、ignoreViolations和ripgrep,以及filesystem、network和credentials物件的物件 - 預設值:未設定,因此 Claude Code 會在沒有沙箱的情況下執行命令
docker、開放兩個額外的寫入路徑、隱藏您的 AWS 憑證檔案,並預先允許 GitHub 和 npm:
settings.json
enabled 或 failIfUnavailable 等布林值鍵時,該值會覆寫開發人員所設定的任何值。Claude Code 會在工作階段載入的所有設定範圍之間合併陣列鍵,因此開發人員可以附加項目;關於僅限受管設定的鎖定,請參閱防止開發人員擴大政策。若要為組織強制要求沙箱,請參閱使用受管設定強制執行沙箱機制。
sandbox.enabled
為 Bash 命令開啟沙箱機制。當您在 /sandbox 面板中選擇模式時,Claude Code 會將此鍵寫入目前專案的 .claude/settings.local.json;若要讓每個專案都使用沙箱,請在 ~/.claude/settings.json 中設定。
- 範圍:
Any file,但對專案和本機設定有所限制 - 類型:布林值
true:Claude Code 會將 Bash 命令沙箱化false:Bash 命令在沙箱外執行
- 預設值:
false
settings.json
bubblewrap 和 socat;請參閱設定 Linux 和 WSL2。當沙箱無法啟動時,Claude Code 會在沙箱外執行命令,除非您也設定了 failIfUnavailable。
sandbox.failIfUnavailable
當 sandbox.enabled 為 true,但由於平台不支援或相依性檢查失敗而導致沙箱無法啟動時,讓 Claude Code 在啟動時以錯誤結束。若未設定此鍵,Claude Code 會不經沙箱執行命令。將沙箱機制視為安全關卡的受管部署可以使用此設定。
在沙箱不支援的平台上,開啟此鍵時 Claude Code 不會啟動。請參閱使用受管設定強制執行沙箱機制。
- 範圍:
Any file,但對專案和本機設定有所限制 - 類型:Boolean
true:當sandbox.enabled為true但沙箱無法啟動時,Claude Code 會在啟動時以錯誤結束。若沙箱通過該檢查後初始化失敗,工作階段會繼續執行,而 Claude Code 會拒絕每個沙箱化命令false:當沙箱無法啟動時,Claude Code 會在沙箱外執行命令
- 預設值:
false
failIfUnavailable 設為 true:
managed-settings.json