SpyBara
Go Premium

Documentation 2026-10-02 22:59 UTC to 2026-10-03 08:58 UTC

44 files changed +1,366 −1,202. View all changes and history on the product overview
2026
Sat 3 09:58 Fri 2 22:59 Thu 1 23:59
Details

145某些行為未針對螢幕閱讀器模式進行調整:145某些行為未針對螢幕閱讀器模式進行調整:

146 146 

147* 當螢幕閱讀器執行時,螢幕閱讀器模式不會自動開啟。147* 當螢幕閱讀器執行時,螢幕閱讀器模式不會自動開啟。

148* Claude Code 不會宣佈以任何方式進行的權限模式變更,除了使用 `Shift+Tab` 循環,例如從命令進入[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。148* Claude Code 不會宣佈您透過命令進行的權限模式變更,例如使用 `/plan` 進入 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。

149* 使用 `claude attach` 或從代理檢視附加到[背景工作階段](/docs/zh-TW/agent-view)會進入終端的替代螢幕,該螢幕沒有原生回滾。這與[其他附加工作階段的行為相同](/docs/zh-TW/fullscreen)。若要返回,請在空提示上按左箭頭,或如果對話框有焦點,請按 Ctrl+Z。149* 使用 `claude attach` 或從代理檢視附加到[背景工作階段](/docs/zh-TW/agent-view)會進入終端的替代螢幕,該螢幕沒有原生回滾。這與[其他附加工作階段的行為相同](/docs/zh-TW/fullscreen)。若要返回,請在空提示上按左箭頭,或如果對話框有焦點,請按 Ctrl+Z。

150* Claude Code 在其在結束時列印的摘要中宣佈成本,而不是按回合。150* Claude Code 在其在結束時列印的摘要中宣佈成本,而不是按回合。

151* 螢幕閱讀器模式不會使用 `-p` 旗標變更[非互動模式](/docs/zh-TW/headless)。非互動模式已寫入純文字,並保持為指令碼的替代方案。151* 螢幕閱讀器模式不會使用 `-p` 旗標變更[非互動模式](/docs/zh-TW/headless)。非互動模式已寫入純文字,並保持為指令碼的替代方案。

Details

154| `PostToolUse` | 是 | 是 | 工具執行結果 | 將所有檔案變更記錄到審計追蹤 |154| `PostToolUse` | 是 | 是 | 工具執行結果 | 將所有檔案變更記錄到審計追蹤 |

155| `PostToolUseFailure` | 是 | 是 | 工具執行失敗 | 處理或記錄工具錯誤 |155| `PostToolUseFailure` | 是 | 是 | 工具執行失敗 | 處理或記錄工具錯誤 |

156| `PostToolBatch` | 否 | 是 | 一整批工具呼叫解決,每批一次,在下一個模型呼叫之前 | 為整個批次注入約定 |156| `PostToolBatch` | 否 | 是 | 一整批工具呼叫解決,每批一次,在下一個模型呼叫之前 | 為整個批次注入約定 |

157| `UserPromptSubmit` | 是 | 是 | 使用者提示提交 | 將額外上下文注入提示 |157| [`UserPromptSubmit`](/docs/zh-TW/hooks#userpromptsubmit) | 是 | 是 | 提交提示詞時,包括 Claude Code 自行開始的回合 | 將額外上下文注入提示詞 |

158| [`UserPromptExpansion`](/docs/zh-TW/hooks#userpromptexpansion) | 否 | 是 | 使用者輸入的命令或 MCP 提示在到達 Claude 之前擴展為提示。當 Claude 自己呼叫技能時不會觸發 | 阻止命令直接呼叫或在輸入技能時新增上下文 |158| [`UserPromptExpansion`](/docs/zh-TW/hooks#userpromptexpansion) | 否 | 是 | 使用者輸入的命令或 MCP 提示在到達 Claude 之前擴展為提示。當 Claude 自己呼叫技能時不會觸發 | 阻止命令直接呼叫或在輸入技能時新增上下文 |

159| `MessageDisplay` | 否 | 是 | 助手訊息包含文字完成,每則訊息一次,包含完整訊息文字 | 編輯或重新格式化顯示的文字,不改變記錄 |159| `MessageDisplay` | 否 | 是 | 助手訊息包含文字完成,每則訊息一次,包含完整訊息文字 | 編輯或重新格式化顯示的文字,不改變記錄 |

160| `Stop` | 是 | 是 | 代理執行停止 | 在退出前保存會話狀態 |160| `Stop` | 是 | 是 | 代理執行停止 | 在退出前保存會話狀態 |

Details

2241 "PreToolUse", # Called before tool execution2241 "PreToolUse", # Called before tool execution

2242 "PostToolUse", # Called after tool execution2242 "PostToolUse", # Called after tool execution

2243 "PostToolUseFailure", # Called when a tool execution fails2243 "PostToolUseFailure", # Called when a tool execution fails

2244 "UserPromptSubmit", # Called when user submits a prompt2244 "UserPromptSubmit", # Called when a prompt is submitted

2245 "Stop", # Called when stopping execution2245 "Stop", # Called when stopping execution

2246 "SubagentStop", # Called when a subagent stops2246 "SubagentStop", # Called when a subagent stops

2247 "PreCompact", # Called before message compaction2247 "PreCompact", # Called before message compaction


2443| 欄位 | 類型 | 描述 |2443| 欄位 | 類型 | 描述 |

2444| :- | :- | :- |2444| :- | :- | :- |

2445| `hook_event_name` | `Literal["UserPromptSubmit"]` | 始終為 "UserPromptSubmit" |2445| `hook_event_name` | `Literal["UserPromptSubmit"]` | 始終為 "UserPromptSubmit" |

2446| `prompt` | `str` | 使用者提交的提示 |2446| `prompt` | `str` | 提交的提示詞 |

2447 2447 

2448<h3 id="stophookinput">2448<h3 id="stophookinput">

2449 `StopHookInput`2449 `StopHookInput`

Details

275| `options.version` | `string` | 可選版本字符串 |275| `options.version` | `string` | 可選版本字符串 |

276| `options.instructions` | `string` | 可選伺服器指示,從 `initialize` 返回並作為 MCP 指示區塊呈現給模型 |276| `options.instructions` | `string` | 可選伺服器指示,從 `initialize` 返回並作為 MCP 指示區塊呈現給模型 |

277| `options.tools` | `Array<SdkMcpToolDefinition>` | 使用 [`tool()`](#tool) 創建的工具定義陣列 |277| `options.tools` | `Array<SdkMcpToolDefinition>` | 使用 [`tool()`](#tool) 創建的工具定義陣列 |

278| `options.alwaysLoad` | `boolean` | 當為 `true` 時,此伺服器的每個工具都保留在初始提示中,永遠不會延遲到 [tool search](/docs/zh-TW/agent-sdk/tool-search) 後面。與 [`tool()`](#tool) 中的每個工具 `alwaysLoad` 結合 |278| `options.alwaysLoad` | `boolean` | 若為 `true`,此伺服器的每個工具都會保留在初始提示詞中,而不是延遲到 [tool search](/docs/zh-TW/agent-sdk/tool-search) 之後才載入。可與 [`tool()`](#tool) 中個別工具的 `alwaysLoad` 搭配使用 |

279| `options.timeout` | `number` | 此伺服器的工具調用超時時間(毫秒)。Claude Code 將其應用於此伺服器以代替 [`MCP_TOOL_TIMEOUT`](/docs/zh-TW/env-vars)。傳遞至少 1000 的整數。Claude Code 忽略其他值。需要 TypeScript Agent SDK v0.3.248 或更高版本 |279| `options.timeout` | `number` | 此伺服器的工具調用超時時間(毫秒)。Claude Code 將其應用於此伺服器以代替 [`MCP_TOOL_TIMEOUT`](/docs/zh-TW/env-vars)。傳遞至少 1000 的整數。Claude Code 忽略其他值。需要 TypeScript Agent SDK v0.3.248 或更高版本 |

280 280 

281<h3 id="listsessions">281<h3 id="listsessions">

agent-teams.md +1 −1

Details

91* **Enter**:開啟所選隊友的記錄並直接向其傳送訊息91* **Enter**:開啟所選隊友的記錄並直接向其傳送訊息

92* **Escape**:清除選擇。當您檢視隊友的記錄時,Escape 會中斷該隊友的目前回合92* **Escape**:清除選擇。當您檢視隊友的記錄時,Escape 會中斷該隊友的目前回合

93 93 

94自 v2.1.199 起,當任何隊友或子 agent 仍在工作時,閒置隊友的列會保留在面板中,因此您可以選擇它來檢視其記錄或向其分配更多工作。一旦面板中的每個 agent 都閒置,閒置列會在 30 秒後隱藏,並在隊友的下一個回合時重新出現;隊友在隱藏時仍保持執行狀態且可定址。在 v2.1.181 至 v2.1.198 中,閒置列在其自己的回合結束後 30 秒隱藏,即使其他隊友仍在工作;v2.1.181 之前的版本不會隱藏閒置列。94當任何隊友或 subagent 仍在工作時,閒置隊友的列會保留在面板中,因此您可以選擇它來檢視其逐字稿或向其分配更多工作。一旦面板中的每個 agent 都閒置,閒置列會在 30 秒後隱藏,並在隊友的下一個回合時重新出現;隊友在隱藏時仍保持執行狀態且可定址。

95 95 

96當超過三個隊友同時閒置時,前三個之外的列會摺疊成單一列,計算摺疊的隊友,例如當五個閒置時顯示 `2 idle agents`。選擇它並按 Enter 以展開摺疊的列,或按 Esc 以再次摺疊它們。工作中的隊友、失敗的隊友和您正在檢視的隊友始終保持自己的列。96當超過三個隊友同時閒置時,前三個之外的列會摺疊成單一列,計算摺疊的隊友,例如當五個閒置時顯示 `2 idle agents`。選擇它並按 Enter 以展開摺疊的列,或按 Esc 以再次摺疊它們。工作中的隊友、失敗的隊友和您正在檢視的隊友始終保持自己的列。

97 97 

champion-kit.md +12 −12

Details

50可重複使用的技術範例:50可重複使用的技術範例:

51 51 

52* "我發現 @-提及一個目錄是有效的。我將其指向 `@src/components/`,並詢問哪些缺少測試,這暴露了我忽略的兩個。"52* "我發現 @-提及一個目錄是有效的。我將其指向 `@src/components/`,並詢問哪些缺少測試,這暴露了我忽略的兩個。"

53* "Plan Mode(`Shift+Tab`)在進行任何編輯之前準確顯示將觸及哪些檔案,這就是為什麼我對在共享程式碼上使用它感到放心。"53* "plan mode(`Shift+Tab`)會先列出建議的變更,這就是為什麼我對在共享程式碼上使用它感到放心。"

54* "我配置了一個 Stop hook,以便在長任務完成時收到桌面通知。配置在執行緒中。"54* "我配置了一個 Stop hook,以便在長任務完成時收到桌面通知。配置在執行緒中。"

55* "執行 `/init` 會從儲存庫生成一個 `CLAUDE.md`,所以助手停止重複詢問我們的約定。"55* "執行 `/init` 會從儲存庫生成一個 `CLAUDE.md`,所以助手停止重複詢問我們的約定。"

56 56 


86```86```

87 87 

88```text theme={null}88```text theme={null}

89Plan Mode 是我對在重要程式碼上使用它感到放心的原因。按 Shift+Tab 直到你看到89plan mode 是我對在重要程式碼上使用它感到放心的原因。按 Shift+Tab 直到您看到

90「plan」;它準確列出它打算觸及的檔案,然後才改變任何東西。90「plan」;它會列出它建議的變更,而不會編輯您的原始碼。

91```91```

92 92 

93<h2 id="be-the-person-people-ask">93<h2 id="be-the-person-people-ask">


121| 問題 | 建議的回應 | 後續資源 |121| 問題 | 建議的回應 | 後續資源 |

122| - | - | - |122| - | - | - |

123| 「我應該先在什麼上試試?」 | 推薦一個真實但範圍有限的任務,最好是這個人一直在推遲的錯誤或雜務,因為它很繁瑣而不是困難。 | [常見工作流程](/docs/zh-TW/common-workflows) |123| 「我應該先在什麼上試試?」 | 推薦一個真實但範圍有限的任務,最好是這個人一直在推遲的錯誤或雜務,因為它很繁瑣而不是困難。 | [常見工作流程](/docs/zh-TW/common-workflows) |

124| 「我怎樣才能相信它處理我的程式碼?」 | 介紹 plan mode:按 `Shift+Tab` 可以循環進入它,Claude 會精確提出它打算進行的更改,在使用者批准之前不會修改任何內容。 | [權限](/docs/zh-TW/permissions) |124| 「我怎樣才能相信它處理我的程式碼?」 | 介紹 plan mode:按 `Shift+Tab` 可以循環進入它,Claude 會進行研究並提出變更,而不會編輯您的原始碼。 | [權限](/docs/zh-TW/permissions) |

125| 「設定值得付出努力嗎?」 | 安裝大約需要兩分鐘,在終端機中執行,不需要 IDE 擴充功能。執行一次 `/init` 就足以開始工作。 | [快速開始](/docs/zh-TW/quickstart) |125| 「設定值得付出努力嗎?」 | 安裝大約需要兩分鐘,在終端機中執行,不需要 IDE 擴充功能。執行一次 `/init` 就足以開始工作。 | [快速開始](/docs/zh-TW/quickstart) |

126| 「它產生了不正確的結果。」 | 鼓勵他們將失敗反饋給 Claude。貼上錯誤訊息或失敗的測試遠比重新表述原始請求更有效。 | [常見工作流程](/docs/zh-TW/common-workflows) |126| 「它產生了不正確的結果。」 | 鼓勵他們將失敗反饋給 Claude。貼上錯誤訊息或失敗的測試遠比重新表述原始請求更有效。 | [常見工作流程](/docs/zh-TW/common-workflows) |

127| 「它不理解我們的程式碼庫慣例。」 | 建議執行 `/init` 來生成 `CLAUDE.md` 檔案,然後添加團隊的慣例、測試命令和任何應該避免的目錄。 | [記憶](/docs/zh-TW/memory) |127| 「它不理解我們的程式碼庫慣例。」 | 建議執行 `/init` 來生成 `CLAUDE.md` 檔案,然後添加團隊的慣例、測試命令和任何應該避免的目錄。 | [記憶](/docs/zh-TW/memory) |


189 回應常見疑慮189 回應常見疑慮

190</h2>190</h2>

191 191 

192健康的懷疑是預期的;工程師應該對觸及他們代碼的工具保持謹慎。最有效的回應很少是論證一般情況。相反,承認疑慮,提供簡短的重新框架,並在該人自己的代碼上提議一個具體的演示。大多數疑慮通過單一成功的經驗得到解決。192抱持合理的懷疑是正常的;工程師對於會接觸其程式碼的工具理應保持謹慎。最有效的回應方式很少是泛泛地爭論整體情況。相反地,應先認同對方的疑慮,提供簡短的換個角度思考,並提議在對方自己的程式碼上進行一次具體示範。大多數疑慮只需一次成功的經驗即可化解。

193 193 

194| 疑慮 | 建議回應 | 提供的證據 |194| 疑慮 | 建議回應 | 可提供的證據 |

195| - | - | - |195| - | - | - |

196| "我沒有它更快。" | 這對該人日常編寫的代碼可能是真的。建議在他們傾向於避免的工作上嘗試它:遺留文件、不熟悉的服務或測試腳手架,其中它幫助最多。 | 計時一個繁瑣的任務兩種方式並比較。 |196| 「不用它我反而更快。」 | 對於對方日常撰寫的程式碼而言,這很可能是事實。建議在他們傾向逃避的工作上試用:舊有檔案、不熟悉的服務或測試框架程式碼,這些正是它最能發揮作用之處。 | 以兩種方式各完成一項繁瑣任務並計時比較。 |

197| "我不相信 AI 觸及生產代碼。" | 同意沒有更改應該在未閱讀的情況下登陸。Plan mode 結合正常的 diff 審查意味著沒有應用工程師未檢查的內容,與任何拉取請求相同的標準。 | 在真實文件上演示 plan mode。 |197| 「我不信任 AI 修改正式環境的程式碼。」 | 同意任何變更都不應在未經審閱的情況下合併。建議使用 plan mode 先查看提議的變更,然後以審閱任何 pull request 的相同標準來審閱差異。 | 在真實檔案上示範 plan mode。 |

198| "它會使初級工程師變弱。" | 使用得當,它是一個有效的解釋者。鼓勵初級工程師在要求它更改任何內容之前要求 Claude 解釋一個文件及其調用站點。 | 一起運行"解釋 @file 及其被調用的位置"。 |198| 「它會讓初階工程師變弱。」 | 善加運用的話,它是很有效的解說工具。鼓勵初階工程師在要求 Claude 修改任何內容之前,先請它解說某個檔案及其呼叫位置。 | 一起執行「Explain @file and where it is called from」。 |

199| "我嘗試過一次,它產生了幻覺。" | 這通常是上下文問題而不是模型問題。@-提及相關文件、運行 `/init` 和提供實際錯誤輸出通常會解決它。 | 用適當的 `@` 上下文重新運行他們的原始提示。 |199| 「我試過一次,它產生了幻覺。」 | 這通常是上下文的問題,而非模型的問題。以 @ 提及相關檔案、執行 `/init`,並提供實際的錯誤輸出,通常即可解決。 | 以適當的 `@` 上下文重新執行他們原本的提示詞。 |

200| "我們沒有時間學習另一個工具。" | Claude Code 是一個終端命令而不是平台。如果它在第一個會話中不返回價值,設置它是合理的。 | 兩分鐘安裝後跟一個真實錯誤。 |200| 「我們沒有時間學習另一個工具。」 | Claude Code 是一個終端機命令,而非一個平台。如果在第一個工作階段內沒有帶來價值,將它擱置一旁也是合理的。 | 兩分鐘完成安裝,接著處理一個真實的錯誤。 |

201 201 

202<h2 id="quick-reference-sheet">202<h2 id="quick-reference-sheet">

203 快速參考表203 快速參考表


208| 技巧 | 如何應用 |208| 技巧 | 如何應用 |

209| - | - |209| - | - |

210| 提供正確的背景資訊 | 使用 `@file` 或 `@directory/` 參考,或直接貼上錯誤或日誌輸出。提供相關的背景資訊比精心設計的提示更有效。 |210| 提供正確的背景資訊 | 使用 `@file` 或 `@directory/` 參考,或直接貼上錯誤或日誌輸出。提供相關的背景資訊比精心設計的提示更有效。 |

211| 在編輯前檢查計畫 | 按 `Shift+Tab` 進入 Plan Mode。Claude 會在執行前描述預期的變更以供您批准。 |211| 在編輯前檢查計畫 | 按 `Shift+Tab` 進入 plan mode。Claude 會進行研究並提出變更建議,而不會編輯您的原始碼。 |

212| 教導它您的儲存庫 | 執行 `/init` 以產生 `CLAUDE.md` 檔案,然後新增您的慣例、測試命令和任何不應修改的目錄。請參閱 [Memory](/docs/zh-TW/memory)。 |212| 教導它您的儲存庫 | 執行 `/init` 以產生 `CLAUDE.md` 檔案,然後新增您的慣例、測試命令和任何不應修改的目錄。請參閱 [Memory](/docs/zh-TW/memory)。 |

213| 重複使用工作流程 | 在 `.claude/skills/<name>/` 中儲存 `SKILL.md` 檔案以建立整個團隊可以使用的 `/name` skill。請參閱 [Skills](/docs/zh-TW/skills)。 |213| 重複使用工作流程 | 在 `.claude/skills/<name>/` 中儲存 `SKILL.md` 檔案以建立整個團隊可以使用的 `/name` skill。請參閱 [Skills](/docs/zh-TW/skills)。 |

214| 在長時間任務期間保持知情 | 設定 Stop hook 以在長時間執行的任務完成時收到桌面通知。請參閱 [Hooks](/docs/zh-TW/hooks-guide)。 |214| 在長時間任務期間保持知情 | 設定 Stop hook 以在長時間執行的任務完成時收到桌面通知。請參閱 [Hooks](/docs/zh-TW/hooks-guide)。 |

channels.md +1 −1

Details

349 349 

350如果您設定空陣列,您會阻止允許清單中的所有 channel 外掛程式,但 `--dangerously-load-development-channels` 仍可以為本地測試繞過該阻止。若要完全阻止 channels,包括開發旗標,請改為保持 `channelsEnabled` 未設定。350如果您設定空陣列,您會阻止允許清單中的所有 channel 外掛程式,但 `--dangerously-load-development-channels` 仍可以為本地測試繞過該阻止。若要完全阻止 channels,包括開發旗標,請改為保持 `channelsEnabled` 未設定。

351 351 

352此設定需要 `channelsEnabled: true`。如果使用者傳遞一個不在您清單上的外掛程式到 `--channels`,Claude Code 會正常啟動,但 channel 不會註冊,啟動通知會解釋該外掛程式不在組織的已批准清單上。如果您將 `MCP_PROTOCOL_NEGOTIATION` 設定為 `auto` 在 v2 MCP 用戶端執行時,channel 也可能無法註冊,因為 Claude Code [不會註冊協商協議修訂版本 2026-07-28 的 channel 伺服器](/docs/zh-TW/mcp#push-messages-with-channels)。352此設定需要 `channelsEnabled: true`。如果使用者傳遞一個不在您清單上的外掛程式到 `--channels`,Claude Code 會正常啟動,但 channel 不會註冊,啟動通知會解釋該外掛程式不在組織的已批准清單上。在 v2 MCP 用戶端執行階段上,channel 也可能無法註冊,因為 Claude Code [不會註冊協商協議修訂版本 2026-07-28 的 channel 伺服器](/docs/zh-TW/mcp#push-messages-with-channels)。

353 353 

354<h2 id="research-preview">354<h2 id="research-preview">

355 研究預覽355 研究預覽

chrome.md +1 −1

Details

130在 VS Code 工作階段中,Claude Code 是否會在瀏覽器操作前詢問您,取決於該工作階段連線到瀏覽器的方式:130在 VS Code 工作階段中,Claude Code 是否會在瀏覽器操作前詢問您,取決於該工作階段連線到瀏覽器的方式:

131 131 

132* **您輸入了 `@browser`**:擴充功能會批准 Claude Code 原本會詢問您的每個瀏覽器操作。132* **您輸入了 `@browser`**:擴充功能會批准 Claude Code 原本會詢問您的每個瀏覽器操作。

133* **由[預設啟用](#enable-chrome-by-default)設定在啟動時連線**:在 Manual、Edit automatically、Auto 和 Bypass permissions 模式下,Claude Code 都會在瀏覽器操作前詢問您,直到您在該工作階段中輸入 `@browser` 為止。133* **由[預設啟用](#enable-chrome-by-default)設定在啟動時連線**:在 Manual、Edit automatically、Auto 和 Bypass permissions 模式下,Claude Code 都會在您尚未允許的網站上執行瀏覽器操作前詢問您,直到您在該工作階段中輸入 `@browser` 為止。

134 134 

135<h3 id="browser-tools-in-plan-mode">135<h3 id="browser-tools-in-plan-mode">

136 plan mode 中的瀏覽器工具136 plan mode 中的瀏覽器工具

Details

77| 欄位 | 必需 | 說明 |77| 欄位 | 必需 | 說明 |

78| - | - | - |78| - | - | - |

79| `issuer` | 是 | OIDC 發現基礎。必須在 `/.well-known/openid-configuration` 提供發現。在生產環境中使用 HTTPS;閘道接受 `http://` 簽發者。環回簽發者(例如 `http://localhost:8081`)會被[SSRF 防護](/docs/zh-TW/claude-apps-gateway-deploy#threat-model-summary)拒絕,除非在閘道的環境中設定了 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`。 |79| `issuer` | 是 | OIDC 發現基礎。必須在 `/.well-known/openid-configuration` 提供發現。在生產環境中使用 HTTPS;閘道接受 `http://` 簽發者。環回簽發者(例如 `http://localhost:8081`)會被[SSRF 防護](/docs/zh-TW/claude-apps-gateway-deploy#threat-model-summary)拒絕,除非在閘道的環境中設定了 `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1`。 |

80| `client_id` / `client_secret` | 是 | 來自您的 OAuth 用戶端註冊 |80| `client_id` | 是 | 來自您的 OAuth 用戶端註冊 |

81| `client_secret` | 除非 `token_endpoint_auth_method` 為 `private_key_jwt` | 來自您的 OAuth 用戶端註冊。使用[憑證用戶端身分驗證](#certificate-client-authentication)時請省略。 |

81| `allowed_email_domains` | 否 | 拒絕 `email` 宣告不在這些網域之一中的 id\_token,不區分大小寫。針對多租戶 IdP 誤設定的深度防禦。獨立於此設定,`email_verified` 宣告明確為 `false` 的 id\_token 始終被拒絕。 |82| `allowed_email_domains` | 否 | 拒絕 `email` 宣告不在這些網域之一中的 id\_token,不區分大小寫。針對多租戶 IdP 誤設定的深度防禦。獨立於此設定,`email_verified` 宣告明確為 `false` 的 id\_token 始終被拒絕。 |

82| `allowed_groups` | 否 | 限制登入為這些 IdP 群組的成員,與 `groups_claim` 相符。允許電子郵件網域中但不在這些群組中的使用者被拒絕。需要 IdP 發出群組宣告。匹配是針對該宣告中值的精確、區分大小寫的字串比較,閘道不展開嵌套群組:若要允許子群組的成員,請在此列出子群組或設定 IdP 以發出扁平化成員資格。 |83| `allowed_groups` | 否 | 限制登入為這些 IdP 群組的成員,與 `groups_claim` 相符。允許電子郵件網域中但不在這些群組中的使用者被拒絕。需要 IdP 發出群組宣告。匹配是針對該宣告中值的精確、區分大小寫的字串比較,閘道不展開嵌套群組:若要允許子群組的成員,請在此列出子群組或設定 IdP 以發出扁平化成員資格。 |

83| `groups_claim` | 否 | 哪個 id\_token 宣告攜帶群組成員資格。預設 `groups`。Microsoft Entra 在 `roles` 下發出應用程式角色。接受平面鍵或 RFC 6901 JSON 指標,例如 `/resource_access/gateway/roles` 用於嵌套宣告。 |84| `groups_claim` | 否 | 哪個 id\_token 宣告攜帶群組成員資格。預設 `groups`。Microsoft Entra 在 `roles` 下發出應用程式角色。接受平面鍵或 RFC 6901 JSON 指標,例如 `/resource_access/gateway/roles` 用於嵌套宣告。 |


89| `userinfo_fallback` | 否 | 當 id\_token 省略電子郵件或群組時,從 `/userinfo` 擷取它們。Keycloak 輕量級存取令牌、Okta 組織伺服器和 ADFS 最小令牌需要。id\_token 保持權威;userinfo 僅填補空白。預設 `false`。 |90| `userinfo_fallback` | 否 | 當 id\_token 省略電子郵件或群組時,從 `/userinfo` 擷取它們。Keycloak 輕量級存取令牌、Okta 組織伺服器和 ADFS 最小令牌需要。id\_token 保持權威;userinfo 僅填補空白。預設 `false`。 |

90| `use_pkce` | 否 | 在授權請求上傳送 PKCE (S256) 挑戰。預設 `true`。僅當您的 IdP 為此機密用戶端拒絕 PKCE 時設定 `false`。 |91| `use_pkce` | 否 | 在授權請求上傳送 PKCE (S256) 挑戰。預設 `true`。僅當您的 IdP 為此機密用戶端拒絕 PKCE 時設定 `false`。 |

91| `clock_skew_seconds` | 否 | 驗證 id\_token 時間宣告時容許時鐘漂移。預設 `0`,這是嚴格的。如果您在登入後立即看到「令牌已過期/尚未有效」錯誤,請提高以應對主機/IdP 時鐘偏差。 |92| `clock_skew_seconds` | 否 | 驗證 id\_token 時間宣告時容許時鐘漂移。預設 `0`,這是嚴格的。如果您在登入後立即看到「令牌已過期/尚未有效」錯誤,請提高以應對主機/IdP 時鐘偏差。 |

92| `token_endpoint_auth_method` | 否 | 覆蓋令牌端點驗證方法。接受 `client_secret_basic` 或 `client_secret_post`。預設自動協商。 |93| `token_endpoint_auth_method` | 否 | 閘道向 IdP 的 token 端點進行身分驗證的方式:`client_secret_basic`、`client_secret_post`,或用於[憑證用戶端身分驗證](#certificate-client-authentication)的 `private_key_jwt`。預設情況下,閘道會根據 IdP 公告的內容,從兩種 `client_secret` 方法中選擇一種。 |

94| `client_assertion` | 使用 `private_key_jwt` 時 | 包含 `private_key_pem` 和 `certificate_pem` 的區塊:用於[憑證用戶端身分驗證](#certificate-client-authentication)的私密金鑰和憑證。需要 v2.1.284 或更新版本。 |

93| `id_token_signed_response_alg` | 否 | 預期的 id\_token 簽署演算法。預設 `RS256`。為使用 ES256、PS256 或 EdDSA 簽署的 IdP 設定。 |95| `id_token_signed_response_alg` | 否 | 預期的 id\_token 簽署演算法。預設 `RS256`。為使用 ES256、PS256 或 EdDSA 簽署的 IdP 設定。 |

94| `additional_authorized_parties` | 否 | 除了 `client_id` 之外要接受的額外 `azp` 值,用於 Keycloak 代理和令牌交換流程 |96| `additional_authorized_parties` | 否 | 除了 `client_id` 之外要接受的額外 `azp` 值,用於 Keycloak 代理和令牌交換流程 |

95| `discovery_url` | 否 | 從此 URL 擷取發現文件,而不是從 `issuer` 衍生,用於代理後面重寫簽發者主機的 IdP。路徑必須包含 `/.well-known/`。 |97| `discovery_url` | 否 | 從此 URL 擷取發現文件,而不是從 `issuer` 衍生,用於代理後面重寫簽發者主機的 IdP。路徑必須包含 `/.well-known/`。 |


97| `form_action_origins` | 否 | `/device` 頁面的 `Content-Security-Policy: form-action` 指令的其他來源。閘道已允許 `'self'` 和發現的 `authorization_endpoint` 來源,但 Chrome 對整個重新導向鏈強制執行 `form-action`。如果您的 IdP 透過第二個主機重新導向,例如 Azure AD 聯合到 ADFS、中樞輪輻 Okta 或公司 SSO 攔截器,列出授權請求可能重新導向的每個來源。 |99| `form_action_origins` | 否 | `/device` 頁面的 `Content-Security-Policy: form-action` 指令的其他來源。閘道已允許 `'self'` 和發現的 `authorization_endpoint` 來源,但 Chrome 對整個重新導向鏈強制執行 `form-action`。如果您的 IdP 透過第二個主機重新導向,例如 Azure AD 聯合到 ADFS、中樞輪輻 Okta 或公司 SSO 攔截器,列出授權請求可能重新導向的每個來源。 |

98| `ca_cert_pem` | 否 | PEM 編碼的 CA 憑證本身,而不是檔案的路徑。它替換 IdP 請求的系統信任存放區。若要載入掛載的檔案,請寫入 `${file:/etc/gateway/idp-ca.pem}`。用於公司 PKI 後面的 Keycloak 或 Dex。 |100| `ca_cert_pem` | 否 | PEM 編碼的 CA 憑證本身,而不是檔案的路徑。它替換 IdP 請求的系統信任存放區。若要載入掛載的檔案,請寫入 `${file:/etc/gateway/idp-ca.pem}`。用於公司 PKI 後面的 Keycloak 或 Dex。 |

99 101 

102<h4 id="certificate-client-authentication">

103 憑證用戶端身分驗證

104</h4>

105 

106如果您的身分識別提供者使用憑證而非用戶端密碼來驗證 OAuth 用戶端(如 Microsoft Entra 使用憑證認證的方式),請設定 `token_endpoint_auth_method: private_key_jwt`。需要閘道伺服器上的 Claude Code v2.1.284 或更新版本。

107 

108使用此設定時,閘道不會傳送任何密碼。當開發人員登入時,以及每次閘道重新整理其工作階段時,閘道都會使用以憑證私密金鑰簽署的短期 JWT 向 IdP 的 token 端點進行身分驗證。該 JWT 以 RS256 簽署,並透過 `x5t` 和 `x5t#S256` 指紋標頭(而非 `kid`)識別憑證。您的 IdP 必須能夠依指紋找到已註冊的憑證。

109 

110<Steps>

111 <Step title="建立金鑰和憑證">

112 建立至少 2048 位元、採用 PKCS#8 或 PKCS#1 PEM 格式的未加密 RSA 私密金鑰,並為其建立憑證。閘道會拒絕以任何不符合這些條件的金鑰啟動。此 `openssl` 命令會建立這樣的金鑰,以及有效期為一年的自我簽署憑證:

113 

114 ```bash theme={null}

115 openssl req -x509 -newkey rsa:2048 -nodes -keyout idp-client.key -out idp-client.crt -days 365 -subj "/CN=claude-gateway"

116 ```

117 

118 它會將 `idp-client.key` 和 `idp-client.crt` 寫入目前目錄。將這兩個檔案複製或掛載到閘道可讀取的位置。步驟 3 中的範例使用 `/etc/gateway/`。

119 </Step>

120 

121 <Step title="將憑證上傳到 IdP">

122 將憑證(而非私密金鑰)上傳到 IdP 上閘道的應用程式註冊。

123 </Step>

124 

125 <Step title="將金鑰和憑證新增到 gateway.yaml">

126 在 `client_assertion` 區塊中提供私密金鑰和憑證給閘道。省略 `client_secret`,因為當它與 `private_key_jwt` 一起設定時,閘道會拒絕啟動。此 `oidc` 區塊使用憑證讓閘道向 Microsoft Entra 租戶進行身分驗證:

127 

128 ```yaml theme={null}

129 oidc:

130 issuer: https://login.microsoftonline.com/<tenant-id>/v2.0

131 client_id: <application-id>

132 token_endpoint_auth_method: private_key_jwt

133 client_assertion:

134 private_key_pem: ${file:/etc/gateway/idp-client.key}

135 certificate_pem: ${file:/etc/gateway/idp-client.crt}

136 ```

137 

138 這兩個值都是 PEM 內容,而不是檔案路徑,因此請如範例所示使用 `${file:/path}` 載入掛載的檔案。除非 `certificate_pem` 是單一 PEM 憑證(不含其鏈的其餘部分),且其公開金鑰與 `private_key_pem` 相符,否則閘道會拒絕啟動。

139 </Step>

140 

141 <Step title="重新啟動閘道並檢查啟動日誌">

142 重新啟動閘道,並在啟動日誌中找到此行:

143 

144 ```text theme={null}

145 [gateway] 2026-10-01T23:07:40.512Z info oidc: client authentication private_key_jwt; certificate CN=claude-gateway, SHA-1 thumbprint DE92821854EE8BAA1D98C758FAA04AABE80B9F57, expires Oct 1 23:07:31 2027 GMT

146 ```

147 

148 將 SHA-1 指紋與 IdP 針對您上傳的憑證所顯示的指紋進行比較。如果憑證已過期或尚未生效,閘道仍會啟動,但會記錄一則警告,指出在您替換憑證之前,登入和重新整理都會失敗。若要確認 IdP 接受該憑證,請讓一位開發人員透過閘道登入。

149 </Step>

150</Steps>

151 

152<h4 id="rotate-the-client-certificate">

153 輪換用戶端憑證

154</h4>

155 

156閘道僅在啟動時讀取一次金鑰和憑證,因此變更的檔案僅在重新啟動後才會生效。請依照以下順序輪換,以確保沒有任何 token 請求出示 IdP 沒有的憑證:

157 

1581. 將新憑證上傳到 IdP,與舊憑證並存。

1592. 替換 `gateway.yaml` 載入的金鑰和憑證檔案,然後重新啟動閘道。

1603. 從 IdP 移除舊憑證。

161 

100<h4 id="idp-requests-through-a-forward-proxy">162<h4 id="idp-requests-through-a-forward-proxy">

101 透過轉發代理的 IdP 請求163 透過轉發代理的 IdP 請求

102</h4>164</h4>


1222| - | - | - | - |1284| - | - | - | - |

1223| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | 按用戶端位址的入站 IP 允許/拒絕,在 `trusted_proxies` 解析後。`deny_cidrs` 首先檢查;符合它的用戶端被拒絕,即使 `allow_cidrs` 也匹配。如果 `allow_cidrs` 非空,gateway 是預設拒絕。`/healthz` 和 `/readyz` 豁免於 `allow_cidrs`。當受信任代理伺服器傳送不是 IP 位址的 `X-Forwarded-For` 項目時,真實用戶端未知,gateway 記錄一次警告,命名要檢查的內容。其中任一清單適用於請求,它以 `403` 和稽核原因 `xff_unparseable` 拒絕它。其中都不適用,它提供請求並使用代理伺服器自己的位址作為用戶端 IP,用於每 IP 速率限制和稽核。 |1285| `access_control` | `allow_cidrs` / `deny_cidrs` | 空 | 按用戶端位址的入站 IP 允許/拒絕,在 `trusted_proxies` 解析後。`deny_cidrs` 首先檢查;符合它的用戶端被拒絕,即使 `allow_cidrs` 也匹配。如果 `allow_cidrs` 非空,gateway 是預設拒絕。`/healthz` 和 `/readyz` 豁免於 `allow_cidrs`。當受信任代理伺服器傳送不是 IP 位址的 `X-Forwarded-For` 項目時,真實用戶端未知,gateway 記錄一次警告,命名要檢查的內容。其中任一清單適用於請求,它以 `403` 和稽核原因 `xff_unparseable` 拒絕它。其中都不適用,它提供請求並使用代理伺服器自己的位址作為用戶端 IP,用於每 IP 速率限制和稽核。 |

1224| `limits` | `max_request_bytes` | 32 MiB | 最大入站請求本體;超大小請求在本體被緩衝之前獲得 `413`。為大型檔案或影像請求提高。 |1286| `limits` | `max_request_bytes` | 32 MiB | 最大入站請求本體;超大小請求在本體被緩衝之前獲得 `413`。為大型檔案或影像請求提高。 |

1225| `limits` | `max_request_header_bytes` | 未設定 | 設定時,超大小標頭返回 `431` |1287| `limits` | `max_request_header_bytes` | 未設定 | 降低 gateway 對請求標頭總大小的 256 KiB 限制。超過限制的請求返回 `431`,高於 256 KiB 的值沒有作用。如果開發者在登入後收到 `431`,請參閱[登入後請求標頭過大](/docs/zh-TW/claude-apps-gateway-deploy#request-headers-too-large-after-sign-in)。 |

1226| `limits` | `max_url_length` | 未設定 | 設定時,過長 URL 返回 `414` |1288| `limits` | `max_url_length` | 未設定 | 設定時,過長 URL 返回 `414` |

1227| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游回應標頭(首位元組時間)的最大時間。回應本體隨後以無牆鐘上限流式傳輸。適用於直接 Anthropic 上游路徑;在每個其他提供者上,gateway 等待最多一小時以開始回應。 |1289| `timeouts` | `upstream_ttfb_ms` | 120000 | 等待上游回應標頭(首位元組時間)的最大時間。回應本體隨後以無牆鐘上限流式傳輸。適用於直接 Anthropic 上游路徑;在每個其他提供者上,gateway 等待最多一小時以開始回應。 |

1228| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 未驗證裝置授權端點上的每 IP 速率限制。為共享出口 IP 或 NAT 後的大型組織提高。[大型推出](/docs/zh-TW/claude-apps-gateway-deploy#large-rollouts)顯示如何調整大小。這些限制只適用於裝置授予登入流程,不適用於 `/v1/messages` 推論。請參閱[使用者代碼暴力破解抵抗](/docs/zh-TW/claude-apps-gateway-deploy#user-code-brute-force-resistance)。 |1290| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | 未驗證裝置授權端點上的每 IP 速率限制。為共享出口 IP 或 NAT 後的大型組織提高。[大型推出](/docs/zh-TW/claude-apps-gateway-deploy#large-rollouts)顯示如何調整大小。這些限制只適用於裝置授予登入流程,不適用於 `/v1/messages` 推論。請參閱[使用者代碼暴力破解抵抗](/docs/zh-TW/claude-apps-gateway-deploy#user-code-brute-force-resistance)。 |

Details

25 身份提供者設定25 身份提供者設定

26</h2>26</h2>

27 27 

28向任何 OIDC 相容的身份提供者註冊機密 OAuth/OpenID Connect (OIDC) 網路應用程式,使用單一重新導向 URI `https://<gateway>/oauth/callback`,並將其分配給應該有閘道存取權限的使用者或群組。28註冊一個機密 OAuth/OpenID Connect (OIDC) 網路應用程式,使用單一重新導向 URI `https://<gateway>/oauth/callback`,並將其分配給應該有閘道存取權限的使用者或群組。閘道使用該註冊的用戶端密碼向 IdP 進行身分驗證;如果您的 IdP 改用[憑證式憑證](/docs/zh-TW/claude-apps-gateway-config#certificate-client-authentication),則使用您上傳至該註冊的憑證進行身分驗證。

29 29 

30任何 OIDC 相容的 IdP 都可以使用:Okta、Microsoft Entra ID、Google Workspace、Keycloak、Dex、PingFederate 等。IdP 必須滿足三個要求:30任何 OIDC 相容的 IdP 都可以使用:Okta、Microsoft Entra ID、Google Workspace、Keycloak、Dex、PingFederate 等。IdP 必須滿足三個要求:

31 31 


374 374 

375* **Gateway 問題**:gateway 的 stderr(針對相關視窗)、您的 `gateway.yaml`(已隱蔽機密)、gateway 版本(顯示在 `/` 的登陸頁面和 `/managed/settings` 上的 `x-cc-gateway-version` 回應標頭中),以及最近有什麼變更375* **Gateway 問題**:gateway 的 stderr(針對相關視窗)、您的 `gateway.yaml`(已隱蔽機密)、gateway 版本(顯示在 `/` 的登陸頁面和 `/managed/settings` 上的 `x-cc-gateway-version` 回應標頭中),以及最近有什麼變更

376* **登入問題**:開發者執行 `claude --debug-file ./claude-debug.txt`、重現問題,然後傳送該檔案加上 gateway 針對同一視窗的稽核日誌376* **登入問題**:開發者執行 `claude --debug-file ./claude-debug.txt`、重現問題,然後傳送該檔案加上 gateway 針對同一視窗的稽核日誌

377* **推論問題**:要求的模型、設定的上游,以及 gateway 針對該請求的稽核日誌,其中記錄了哪個上游提供了該請求以及回應狀態377* **推論問題**:請求的模型、設定的上游,以及 gateway 針對該請求的稽核日誌,其中記錄了哪個上游提供了該請求以及回應狀態

378 378 

379gateway 的 stderr 包含稽核事件串流,稽核日誌記錄開發者身分,除錯檔案記錄來自開發者機器的 hook 和 MCP 伺服器輸出。在發佈到公開議題之前,請檢查並隱蔽這些內容。379gateway 的 stderr 包含稽核事件串流,稽核日誌記錄開發者身分,除錯檔案記錄來自開發者機器的 hook 和 MCP 伺服器輸出。在發佈到公開議題之前,請檢查並隱蔽這些內容。

380 380 


383| 開發者的 `/login` 顯示標準帳戶選擇器,而不是 **Cloud gateway** 畫面 | 該機器上的受管設定中未設定 `forceLoginMethod` 或 `forceLoginGatewayUrl` | 將[受管設定檔](/docs/zh-TW/claude-apps-gateway#set-the-gateway-url)部署到裝置;`/login` 從該處讀取 gateway URL |383| 開發者的 `/login` 顯示標準帳戶選擇器,而不是 **Cloud gateway** 畫面 | 該機器上的受管設定中未設定 `forceLoginMethod` 或 `forceLoginGatewayUrl` | 將[受管設定檔](/docs/zh-TW/claude-apps-gateway#set-the-gateway-url)部署到裝置;`/login` 從該處讀取 gateway URL |

384| 開發者的請求失敗,顯示 `Not signed in to the Cloud gateway — run /login.` | 機器的受管設定設定了 `forceLoginMethod: "gateway"` 或 `forceLoginGatewayUrl`,且工作階段沒有 gateway 登入。遺留的 claude.ai 登入不符合要求。 | 讓開發者執行 `/login` 並完成 gateway 登入。另請參閱[系統管理員原則要求 Cloud gateway 登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)。 |384| 開發者的請求失敗,顯示 `Not signed in to the Cloud gateway — run /login.` | 機器的受管設定設定了 `forceLoginMethod: "gateway"` 或 `forceLoginGatewayUrl`,且工作階段沒有 gateway 登入。遺留的 claude.ai 登入不符合要求。 | 讓開發者執行 `/login` 並完成 gateway 登入。另請參閱[系統管理員原則要求 Cloud gateway 登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)。 |

385| Claude Desktop 報告其啟動設定無法擷取 | `/user/bootstrap` 傳回 404:符合使用者的原則不包含 `desktop` 金鑰,或沒有原則符合。gateway 的稽核日誌將每次拒絕記錄為 `desktop_bootstrap.denied`,並附上原因。 | 將 `desktop` 區塊新增到符合使用者的原則,或新增到 `match: {}` 基礎層;空的 `desktop: {}` 即可。請參閱 [Claude Desktop 覆蓋層](/docs/zh-TW/claude-apps-gateway-config#claude-desktop-overlay)。 |385| Claude Desktop 報告其啟動設定無法擷取 | `/user/bootstrap` 傳回 404:符合使用者的原則不包含 `desktop` 金鑰,或沒有原則符合。gateway 的稽核日誌將每次拒絕記錄為 `desktop_bootstrap.denied`,並附上原因。 | 將 `desktop` 區塊新增到符合使用者的原則,或新增到 `match: {}` 基礎層;空的 `desktop: {}` 即可。請參閱 [Claude Desktop 覆蓋層](/docs/zh-TW/claude-apps-gateway-config#claude-desktop-overlay)。 |

386| 啟動顯示 `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | 已安裝的 Claude Code 組建早於 gateway 支援 | 讓開發者將 Claude Code 更新到包含 Cloud gateway 支援的版本 |386| 啟動顯示 `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | 已安裝的 Claude Code 建置早於 gateway 支援 | 讓開發者將 Claude Code 更新到包含 Cloud gateway 支援的版本 |

387| 啟動結束,顯示 `Administrator policy requires a Cloud gateway sign-in on this machine` | 開發者的環境設定了 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN`、其設定配置了 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper),或來自較早 Claude Console 登入的 API 金鑰仍然被儲存 | 讓開發者清除每個適用的項目:取消設定變數、移除 `apiKeyHelper` 項目,或執行 `claude auth logout` 以移除已儲存的金鑰。然後讓他們啟動 `claude` 並使用 `/login` 登入。另請參閱[系統管理員原則要求 Cloud gateway 登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)。 |387| 啟動結束,顯示 `Administrator policy requires a Cloud gateway sign-in on this machine` | 開發者的環境設定了 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN`、其設定中指定了 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper),或來自較早 Claude Console 登入的 API 金鑰仍然被儲存 | 讓開發者清除每個適用的項目:取消設定變數、移除 `apiKeyHelper` 項目,或執行 `claude auth logout` 以移除已儲存的金鑰。之後,使用 `CLAUDE_CODE_USE_*` 選擇雲端供應商的工作階段會在不登入的情況下啟動;對於其他所有工作階段,請讓他們啟動 `claude` 並使用 `/login` 登入。另請參閱[系統管理員原則要求 Cloud gateway 登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)。 |

388| 啟動或 `/login` 在受管設定載入時出現 403 後報告 `Claude Code may not be enabled for your organization` | gateway 或其前面的某個東西以 403 回應了 `/managed/settings` 請求。gateway 自己的設定路由永遠不會回應 403。狀態來自 [`access_control`](/docs/zh-TW/claude-apps-gateway-config#http-tuning) IP 檢查或來自 gateway 前面的代理或 WAF。稽核日誌將 IP 檢查拒絕記錄為 `access.denied`,並附上原因。開發者保持登入狀態。 | 檢查稽核日誌中失敗時的 `access.denied`,並修正 `access_control` 清單或前端,然後讓開發者再次啟動 `claude` |388| 啟動或 `/login` 在受管設定載入時出現 403 後報告 `Claude Code may not be enabled for your organization` | gateway 或其前面的某個東西以 403 回應了 `/managed/settings` 請求。gateway 自己的設定路由永遠不會回應 403。狀態來自 [`access_control`](/docs/zh-TW/claude-apps-gateway-config#http-tuning) IP 檢查或來自 gateway 前面的代理伺服器或 WAF。稽核日誌將 IP 檢查拒絕記錄為 `access.denied`,並附上原因。開發者保持登入狀態。 | 檢查稽核日誌中失敗時的 `access.denied`,並修正 `access_control` 清單或前端,然後讓開發者再次啟動 `claude` |

389| CLI `/login`:`The gateway is limiting sign-in attempts right now`,或在較舊版本上 `Request failed with status code 429`。`/device` 頁面可能對尚未嘗試過的開發者顯示 `Too many attempts` | 達到了每個 IP 的登入速率限制。要麼 `listen.trusted_proxies` 不涵蓋負載平衡器,所以每個開發者共享其位址,要麼許多開發者共享 NAT 或 VPN 出口位址。具有 `result: rate_limited` 的稽核事件顯示相同的一個或幾個 `client_ip` 值。 | 首先將 `listen.trusted_proxies` 設定為負載平衡器的來源範圍,然後如果開發者仍然共享位址,請提高 `rate_limits`。請參閱[大規模推出](#large-rollouts)。 |389| CLI `/login`:`The gateway is limiting sign-in attempts right now`,或在較舊版本上 `Request failed with status code 429`。`/device` 頁面可能對尚未嘗試過的開發者顯示 `Too many attempts` | 達到了每個 IP 的登入速率限制。要麼 `listen.trusted_proxies` 不涵蓋負載平衡器,所以每個開發者共享其位址,要麼許多開發者共享 NAT 或 VPN 出口位址。具有 `result: rate_limited` 的稽核事件顯示相同的一個或幾個 `client_ip` 值。 | 首先將 `listen.trusted_proxies` 設定為負載平衡器的來源範圍,然後如果開發者仍然共享位址,請提高 `rate_limits`。請參閱[大規模推出](#large-rollouts)。 |

390| CLI `/login`:`Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | gateway 主機名稱解析為至少一個公開 IP 位址。Claude Code 檢查每個已解析的位址,並要求每個位址都是私有的。常見原因是雙堆疊名稱,其中一個系列解析為公開位址,包括 AWS 內部雙堆疊負載平衡器,它們傳回公開範圍的 AAAA 位址。 | 讓 gateway 名稱在開發者機器上只解析為私有位址。對於雙堆疊名稱,請刪除公開範圍記錄或提供單獨的僅限內部 DNS 名稱。請參閱[私有網路先決條件](/docs/zh-TW/claude-apps-gateway#prerequisites)。如果位址是您的組織擁有並在內部使用的公開空間,請改為[宣告該區塊](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)。 |390| CLI `/login`:`Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | gateway 主機名稱解析為至少一個公開 IP 位址。Claude Code 檢查每個已解析的位址,並要求每個位址都是私有的。常見原因是雙堆疊名稱,其中一個系列解析為公開位址,包括 AWS 內部雙堆疊負載平衡器,它們傳回公開範圍的 AAAA 位址。 | 讓 gateway 名稱在開發者機器上只解析為私有位址。對於雙堆疊名稱,請刪除公開範圍記錄或提供單獨的僅限內部 DNS 名稱。請參閱[私有網路先決條件](/docs/zh-TW/claude-apps-gateway#prerequisites)。如果位址是您的組織擁有並在內部使用的公開空間,請改為[宣告該區塊](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)。 |

391| CLI `/login`:`Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` 或 `HTTP_PROXY` 適用於 gateway 主機,且代理的主機名稱解析為公開位址。主機名稱只解析為私有位址的代理是允許的,不會觸發此錯誤 | 在開發者的機器上將 gateway 主機新增到 `NO_PROXY`,以便連線是直接的,或使用主機名稱解析為私有位址的代理。訊息會命名要新增的確切 `NO_PROXY` 項目 |391| CLI `/login`:`Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` 或 `HTTP_PROXY` 適用於 gateway 主機,且代理伺服器的主機名稱解析為公開位址。主機名稱只解析為私有位址的代理伺服器是允許的,不會觸發此錯誤 | 在開發者的機器上將 gateway 主機新增到 `NO_PROXY`,以便連線是直接的,或使用主機名稱解析為私有位址的代理伺服器。訊息會命名要新增的確切 `NO_PROXY` 項目 |

392| CLI `/login`:`Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | gateway 位於 [`gatewayInternalNetworks`](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) 中宣告的區塊上,開發者的機器從該區塊外的位址到達它:VPN 位址池、容器或 WSL2 NAT 區段,或不是您的網路 | 讓開發者從您網路上的主機 OS 執行 `/login`。如果顯示的位址也是您組織自己的公開空間,請將 gateway 的項目替換為涵蓋兩者的區塊,最多 `/8`;第二個重疊項目會被拒絕 |392| CLI `/login`:`Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | gateway 位於 [`gatewayInternalNetworks`](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) 中宣告的區塊上,開發者的機器從該區塊外的位址到達它:VPN 位址池、容器或 WSL2 NAT 區段,或不是您的網路 | 讓開發者從您網路上的主機 OS 執行 `/login`。如果顯示的位址也是您組織自己的公開空間,請將 gateway 的項目替換為涵蓋兩者的區塊,最多 `/8`;第二個重疊項目會被拒絕 |

393| CLI `/login`:`Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | gateway 的名稱解析為 [`gatewayInternalNetworks`](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) 中宣告的區塊外的位址:第二個網站,或雙堆疊名稱上的 IPv6 記錄。在宣告的區塊下,每條記錄都必須在該一個 IPv4 區塊內,包括私有和 IPv6 位址 | 在開發者機器上的 gateway 名稱只發佈區塊內的記錄,或提供單獨的僅限內部名稱 |393| CLI `/login`:`Every address for gateway host <host> must be inside its declared network <block>, and it also resolves to <ip>` | gateway 的名稱解析為 [`gatewayInternalNetworks`](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) 中宣告的區塊外的位址:第二個網站,或雙堆疊名稱上的 IPv6 記錄。在宣告的區塊下,每條記錄都必須在該一個 IPv4 區塊內,包括私有和 IPv6 位址 | 在開發者機器上的 gateway 名稱只發佈區塊內的記錄,或提供單獨的僅限內部名稱 |

394| CLI `/login`:`<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | `HTTPS_PROXY` 或 `HTTP_PROXY` 適用於宣告區塊上的 gateway | 在開發者的機器上,新增訊息命名的 `NO_PROXY` 項目 |394| CLI `/login`:`<host> is on the declared network <block>, which Claude Code checks over a direct connection, not through an HTTP proxy` | `HTTPS_PROXY` 或 `HTTP_PROXY` 適用於宣告區塊上的 gateway | 在開發者的機器上,新增訊息命名的 `NO_PROXY` 項目 |

395| CLI `/login`:訊息開頭為 `gatewayInternalNetworks in managed settings` | 該值違反了[驗證規則](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)之一,訊息會命名哪一個。在您修正它之前,Claude Code 拒絕機器上的每個新 gateway `/login`,包括私有位址上的 gateway;現有登入保持工作 | 在您部署的受管設定來源中,更正訊息命名的項目,然後重新執行 `/login` |395| CLI `/login`:訊息開頭為 `gatewayInternalNetworks in managed settings` | 該值違反了[驗證規則](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)之一,訊息會命名哪一個。在您修正它之前,Claude Code 拒絕機器上的每個新 gateway `/login`,包括私有位址上的 gateway;現有登入保持工作 | 在您部署的受管設定來源中,更正訊息命名的項目,然後重新執行 `/login` |

396| CLI `/login`:`Could not resolve the configured HTTP proxy` | `HTTPS_PROXY` 或 `HTTP_PROXY` 中的主機名稱無法從開發者的機器解析,通常是因為它未連線到公司網路 | 讓開發者連線到您的網路或 VPN 並重試,或修正代理 URL |396| CLI `/login`:`Could not resolve the configured HTTP proxy` | `HTTPS_PROXY` 或 `HTTP_PROXY` 中的主機名稱無法從開發者的機器解析,通常是因為它未連線到公司網路 | 讓開發者連線到您的網路或 VPN 並重試,或修正代理伺服器 URL |

397| CLI `/login`:`Could not resolve gateway host <host>` | 機器無法解析 gateway 的內部 DNS 名稱,通常是因為它不在公司網路上 | 讓開發者連線到您的網路或 VPN,然後重試 `/login` |397| CLI `/login`:`Could not resolve gateway host <host>` | 機器無法解析 gateway 的內部 DNS 名稱,通常是因為它不在公司網路上 | 讓開發者連線到您的網路或 VPN,然後重試 `/login` |

398| 啟動結束,顯示命名 `store.postgres_url` 的設定驗證錯誤 | 未設定 Postgres;gateway 需要 Postgres | 設定 `store.postgres_url`。對於本機開發,請使用一次性容器:`docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。 |398| 啟動結束,顯示命名 `store.postgres_url` 的設定驗證錯誤 | 未設定 Postgres;gateway 需要 Postgres | 設定 `store.postgres_url`。對於本機開發,請使用一次性容器:`docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`。 |

399| 啟動結束:`requires the native binary` | 在 Node 下執行而不是原生二進位檔 | 使用其中一種[獨立安裝方法](/docs/zh-TW/setup)安裝 Claude Code |399| 啟動結束:`requires the native binary` | 在 Node 下執行而不是原生二進位檔 | 使用其中一種[獨立安裝方法](/docs/zh-TW/setup)安裝 Claude Code |

400| 啟動結束,在 `config.load` 後出現 OIDC 探索錯誤 | `oidc.issuer` 無法到達,或 TLS 鏈不受信任 | 檢查發行者是否可從 pod 到達並提供 `/.well-known/openid-configuration`。為私有 PKI 設定 `ca_cert_pem`。如果 pod 只能通過轉發代理到達 IdP,請設定 [`oidc.use_proxy: true`](/docs/zh-TW/claude-apps-gateway-config#idp-requests-through-a-forward-proxy);在 v2.1.227 之前的版本上,改為給 pod 一條到 IdP 每個端點的直接路由。如果 pod 也無法解析 IdP 的主機名稱,或代理拒絕 `CONNECT` 到 IP 位址,請參閱[僅代理出口](/docs/zh-TW/claude-apps-gateway-config#proxy-only-egress),這需要 v2.1.277 或更新版本。 |400| 啟動結束,在 `config.load` 後出現 OIDC 探索錯誤 | `oidc.issuer` 無法到達,或 TLS 鏈不受信任 | 檢查發行者是否可從 pod 到達並提供 `/.well-known/openid-configuration`。為私有 PKI 設定 `ca_cert_pem`。如果 pod 只能透過轉送代理伺服器到達 IdP,請設定 [`oidc.use_proxy: true`](/docs/zh-TW/claude-apps-gateway-config#idp-requests-through-a-forward-proxy);在 v2.1.227 之前的版本上,改為給 pod 一條到 IdP 每個端點的直接路由。如果 pod 也無法解析 IdP 的主機名稱,或代理伺服器拒絕 `CONNECT` 到 IP 位址,請參閱[僅透過代理伺服器的出口](/docs/zh-TW/claude-apps-gateway-config#proxy-only-egress),這需要 v2.1.277 或更新版本。 |

401| 啟動結束,出現 Postgres 權限錯誤 | 資料庫角色在其結構描述上缺少 DDL 權限 | 授予角色在 gateway 結構描述上的 `CREATE` 權限,以便它可以在啟動時建立和更改其表格 |401| 啟動結束,出現 Postgres 權限錯誤 | 資料庫角色在其 schema 上缺少 DDL 權限 | 授予角色在 gateway schema 上的 `CREATE` 權限,以便它可以在啟動時建立和更改其表格 |

402| 日誌:`could not connect to Postgres at boot, attempt 1 of 3` | 當 gateway 啟動時資料庫無法到達,例如在冷執行個體上,其網路仍在啟動中 | 如果 gateway 隨後完成啟動,則無需採取任何行動。當資料庫無法到達時,gateway 在結束前嘗試連線三次,間隔兩秒。如果它結束時顯示 `could not connect to Postgres`,請檢查 `store.postgres_url` 和到資料庫的網路路徑。如果嘗試逾時而不是被拒絕,請提高 [`store.connect_timeout_seconds`](/docs/zh-TW/claude-apps-gateway-config#store) 以給每個嘗試更長的時間。 |402| 日誌:`could not connect to Postgres at boot, attempt 1 of 3` | 當 gateway 啟動時資料庫無法到達,例如在冷執行個體上,其網路仍在啟動中 | 如果 gateway 隨後完成啟動,則無需採取任何行動。當資料庫無法到達時,gateway 在結束前嘗試連線三次,間隔兩秒。如果它結束時顯示 `could not connect to Postgres`,請檢查 `store.postgres_url` 和到資料庫的網路路徑。如果嘗試逾時而不是被拒絕,請提高 [`store.connect_timeout_seconds`](/docs/zh-TW/claude-apps-gateway-config#store) 以給每個嘗試更長的時間。 |

403| `/oauth/callback` 顯示「Sign-in could not be completed」 | 電子郵件網域被拒絕、id\_token 驗證失敗,或 `email_verified` 明確為 `false`,gateway 始終拒絕且無法覆蓋 | 檢查 `allowed_email_domains` 以及 IdP 是否傳回已驗證的 `email` 宣告。對於 `email_verified: false`,修正 IdP 端驗證。如果您的 IdP 在不同的宣告名稱下發出電子郵件,請設定 `oidc.email_claim`。 |403| `/oauth/callback` 顯示「Sign-in could not be completed」 | 電子郵件網域被拒絕、id\_token 驗證失敗,或 `email_verified` 明確為 `false`,gateway 始終拒絕且無法覆寫 | 檢查 `allowed_email_domains` 以及 IdP 是否傳回已驗證的 `email` 宣告。對於 `email_verified: false`,修正 IdP 端驗證。如果您的 IdP 在不同的宣告名稱下發出電子郵件,請設定 `oidc.email_claim`。 |

404| 日誌:`token exchange failed request_id=<id>: id_token missing email claim` | IdP 預設不在 id\_token 中包含 `email`。此拒絕僅在設定 `allowed_email_domains` 時觸發;沒有它,遺漏的電子郵件會建立沒有電子郵件的工作階段 | 設定 IdP 在 id\_token 中發出 `email`。Okta:將 `email` 新增到自訂授權伺服器的 ID 令牌宣告。Entra:在應用程式註冊上新增 `email` 作為選用宣告。PingFederate:啟用發出 `email` 的 OpenID Connect 原則。如果 IdP 從 userinfo 端點提供 `email` 但不會在 id\_token 中包含它,例如 Okta 組織授權伺服器,請設定 `oidc.userinfo_fallback: true`。 |404| 日誌:`token exchange failed request_id=<id>: id_token missing email claim` | IdP 預設不在 id\_token 中包含 `email`。此拒絕僅在設定 `allowed_email_domains` 時觸發;沒有它,遺漏的電子郵件會建立沒有電子郵件的工作階段 | 設定 IdP 在 id\_token 中發出 `email`。Okta:將 `email` 新增到自訂授權伺服器的 ID token 宣告。Entra:在應用程式註冊上新增 `email` 作為選用宣告。PingFederate:啟用發出 `email` 的 OpenID Connect 原則。如果 IdP 從 userinfo 端點提供 `email` 但不會在 id\_token 中包含它,例如 Okta 組織授權伺服器,請設定 `oidc.userinfo_fallback: true`。 |

405| 日誌:`refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`,開發者每 `session.ttl_hours` 看到 `Cloud gateway session expired` | IdP 接受了重新整理令牌但沒有隨之傳回 id\_token,所以 gateway 詢問了 IdP 的 userinfo 端點以取得使用者的宣告。IdP 在那裡拒絕了重新整理的存取令牌。gateway 回應 `temporarily_unavailable`,所以 Claude Code 保留重新整理令牌但無法更新工作階段。v2.1.260 之前的 gateway 版本記錄相同的行,但沒有 `(at …)` 詳細資訊。 | 設定 [`oidc.scope_on_refresh: true`](/docs/zh-TW/claude-apps-gateway-config#oidc)(在 gateway v2.1.260 或更新版本中可用),以便重新整理請求再次要求 `openid`。某些 IdP(例如 Okta)僅在被要求時才在重新整理時傳回 id\_token。在 PingFederate 上,改為在 **Applications > OAuth > OpenID Connect Policy Management** 下啟用 **Return ID Token On Refresh Grant**。該金鑰不會改變 PingFederate 的行為。對於仍然省略它的其他 IdP,檢查 userinfo 端點是否接受由重新整理發出的存取令牌。作為臨時解決方案,提高 [`session.ttl_hours`](/docs/zh-TW/claude-apps-gateway-config#session)。請參閱[身分提供者設定](#identity-provider-setup)以了解取消佈建權衡。 |405| 日誌:`refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`,開發者每 `session.ttl_hours` 看到 `Cloud gateway session expired` | IdP 接受了重新整理 token 但沒有隨之傳回 id\_token,所以 gateway 詢問了 IdP 的 userinfo 端點以取得使用者的宣告。IdP 在那裡拒絕了重新整理的存取 token。gateway 回應 `temporarily_unavailable`,所以 Claude Code 保留重新整理 token 但無法更新工作階段。v2.1.260 之前的 gateway 版本記錄相同的行,但沒有 `(at …)` 詳細資訊。 | 設定 [`oidc.scope_on_refresh: true`](/docs/zh-TW/claude-apps-gateway-config#oidc)(在 gateway v2.1.260 或更新版本中可用),以便重新整理請求再次要求 `openid`。某些 IdP(例如 Okta)僅在被要求時才在重新整理時傳回 id\_token。在 PingFederate 上,改為在 **Applications > OAuth > OpenID Connect Policy Management** 下啟用 **Return ID Token On Refresh Grant**。該金鑰不會改變 PingFederate 的行為。對於仍然省略它的其他 IdP,檢查 userinfo 端點是否接受由重新整理發出的存取 token。作為臨時解決方案,提高 [`session.ttl_hours`](/docs/zh-TW/claude-apps-gateway-config#session)。請參閱[身分提供者設定](#identity-provider-setup)以了解取消佈建權衡。 |

406| 每個 Amazon Bedrock 請求都傳回 502;日誌顯示 `Could not load credentials from any providers` | 在 EC2 上,IMDSv2 的預設躍點限制為 1 會阻止來自容器內的執行個體中繼資料請求。啟動和 `/readyz` 仍然通過,因為 AWS SDK 在第一個請求時解析執行個體認證,而不是在用戶端建構時 | 使用 `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2` 提高躍點限制,或在啟動範本中設定它。變更適用於執行個體上的每個容器。在可用的地方優先使用 ECS 工作角色,它們從 ECS 容器認證端點讀取認證並完全避免變更,或在專用 gateway 執行個體上應用變更以限制暴露。 |406| 開發者登入後,該工作階段的每個請求都失敗並出現 `431` 錯誤 | 每個請求的 `Authorization` 標頭中的工作階段 token 會列出開發者的 IdP 群組,因此對於屬於許多群組的開發者,標頭總計可能超過 gateway 接受的大小 | 請參閱[登入後請求標頭過大](#request-headers-too-large-after-sign-in),了解適用的限制以及需要變更的內容 |

407| 每個 Amazon Bedrock 請求都傳回 502;日誌顯示 `Could not load credentials from any providers` | 在 EC2 上,IMDSv2 的預設躍點限制為 1 會阻止來自容器內的執行個體中繼資料請求。啟動和 `/readyz` 仍然通過,因為 AWS SDK 在第一個請求時解析執行個體憑證,而不是在用戶端建構時 | 使用 `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2` 提高躍點限制,或在啟動範本中設定它。變更適用於執行個體上的每個容器。在可用的地方優先使用 ECS 工作角色,它們從 ECS 容器憑證端點讀取憑證並完全避免變更,或在專用 gateway 執行個體上應用變更以限制暴露。 |

407| 在尖峰負載時,回應開始緩慢或似乎掛起,或在上游健康時失敗,顯示 502 `all upstreams failed` | 副本開啟的請求比它一次傳送到上游的請求多,所以額外的請求在 gateway 內等待。在 `provider: anthropic` 上游上,等待時間超過 `timeouts.upstream_ttfb_ms` 的請求會放棄該上游,當沒有後來的上游提供它時會產生 502。日誌顯示包含 `client requests are open` 的警告。 | 新增副本,或提高每個副本上的限制。請參閱[並行上游請求](#concurrent-upstream-requests)。 |408| 在尖峰負載時,回應開始緩慢或似乎掛起,或在上游健康時失敗,顯示 502 `all upstreams failed` | 副本開啟的請求比它一次傳送到上游的請求多,所以額外的請求在 gateway 內等待。在 `provider: anthropic` 上游上,等待時間超過 `timeouts.upstream_ttfb_ms` 的請求會放棄該上游,當沒有後來的上游提供它時會產生 502。日誌顯示包含 `client requests are open` 的警告。 | 新增副本,或提高每個副本上的限制。請參閱[並行上游請求](#concurrent-upstream-requests)。 |

408| IdP 錯誤:unknown or unsupported scope | IdP 拒絕它不認識的範圍 | 將 `oidc.scopes` 設定為您的 IdP 接受的確切清單;它必須包含 `openid`。預設值為 `openid profile email offline_access`。 |409| IdP 錯誤:unknown or unsupported scope | IdP 拒絕它不認識的範圍 | 將 `oidc.scopes` 設定為您的 IdP 接受的確切清單;它必須包含 `openid`。預設值為 `openid profile email offline_access`。 |

409| 設定 `oidc.scopes` 後工作階段不會無聲地更新 | `offline_access` 已從覆蓋中刪除 | 如果您的 IdP 支援,請新增 `offline_access` 回來。沒有重新整理令牌,開發者每 `session.ttl_hours` 重新執行瀏覽器登入。 |410| 設定 `oidc.scopes` 後工作階段不會無聲地更新 | `offline_access` 已從覆寫中刪除 | 如果您的 IdP 支援,請新增 `offline_access` 回來。沒有重新整理 token,開發者每 `session.ttl_hours` 重新執行瀏覽器登入。 |

410| 瀏覽器顯示「This request came from another site and was blocked」 | 跨網站表單 POST,被阻止作為 CSRF 保護。嵌入或代理頁面的預期行為 | 直接開啟驗證連結 |411| 瀏覽器顯示「This request came from another site and was blocked」 | 跨網站表單 POST,被阻止作為 CSRF 保護。嵌入或透過代理伺服器的頁面的預期行為 | 直接開啟驗證連結 |

411| Chrome 使用「Refused to send form data … violates … Content Security Policy directive: form-action」阻止「Approve」按鈕,但相同頁面在 Safari 或 Firefox 中工作 | Chrome 對整個重新導向鏈強制執行 `form-action`。您的 IdP 重新導向到未列入允許清單的第二個主機。 | 將重新導向鏈中的每個其他來源新增到 `oidc.form_action_origins`。在「Approve」頁面上開啟 Chrome DevTools → Console 以查看哪個來源被阻止。 |412| Chrome 使用「Refused to send form data … violates … Content Security Policy directive: form-action」阻止「Approve」按鈕,但相同頁面在 Safari 或 Firefox 中工作 | Chrome 對整個重新導向鏈強制執行 `form-action`。您的 IdP 重新導向到未列入允許清單的第二個主機。 | 將重新導向鏈中的每個其他來源新增到 `oidc.form_action_origins`。在「Approve」頁面上開啟 Chrome DevTools → Console 以查看哪個來源被阻止。 |

412| 登入在 IdP 完成但回呼失敗,Chrome 中出現 CSP 錯誤或 Safari 中出現「this sign-in link has expired」 | IdP 通過 `response_mode=form_post` 傳回代碼,它通過 POST 自動提交到 `/oauth/callback`。Chrome 在嚴格 CSP 下阻止該操作;Safari 允許提交但回呼只讀取查詢字串。 | 確保您的 IdP 遵守 `response_mode=query`,gateway 明確要求它以便回呼是純重新導向 |413| 登入在 IdP 完成但回呼失敗,Chrome 中出現 CSP 錯誤或 Safari 中出現「this sign-in link has expired」 | IdP 通過 `response_mode=form_post` 傳回代碼,它通過 POST 自動提交到 `/oauth/callback`。Chrome 在嚴格 CSP 下阻止該操作;Safari 允許提交但回呼只讀取查詢字串。 | 確保您的 IdP 遵守 `response_mode=query`,gateway 明確要求它以便回呼是純重新導向 |

413| 登入在本機工作但在 ALB 後面失敗 | `public_url` 仍然命名本機或內部 `http://` 來源,所以 IdP 獲得錯誤的 `redirect_uri` | 將 `listen.public_url` 設定為外部 `https://` 來源,並向 IdP 註冊 `<public_url>/oauth/callback` |414| 登入在本機工作但在 ALB 後面失敗 | `public_url` 仍然命名本機或內部 `http://` 來源,所以 IdP 獲得錯誤的 `redirect_uri` | 將 `listen.public_url` 設定為外部 `https://` 來源,並向 IdP 註冊 `<public_url>/oauth/callback` |

414| 開發者重複看到信任提示 | TLS 憑證按副本或按請求輪換 | 在入口使用穩定憑證,或終止 TLS 一次並在內部通過純 HTTP 執行副本 |415| 開發者重複看到信任提示 | TLS 憑證按副本或按請求輪換 | 在入口使用穩定憑證,或終止 TLS 一次並在內部通過純 HTTP 執行副本 |

415| CLI `/login`:「Could not verify the gateway's TLS certificate」或 `SELF_SIGNED_CERT_IN_CHAIN` | gateway 的 TLS 鏈由 CLI 主機信任存放區中沒有的私有 CA 簽署 | Claude Code 在原生二進位檔上預設讀取 OS 信任存放區,在 Node 22.15 或更新版本上;[`CLAUDE_CODE_CERT_STORE`](/docs/zh-TW/network-config#ca-certificate-store)控制此行為。如果 CA 安裝在 OS 信任存放區中,請確保開發者使用目前執行時。否則在啟動前將 `NODE_EXTRA_CA_CERTS` 設定為 CA 憑證 PEM。首次連線指紋提示仍然適用。 |416| CLI `/login`:「Could not verify the gateway's TLS certificate」或 `SELF_SIGNED_CERT_IN_CHAIN` | gateway 的 TLS 鏈由 CLI 主機信任存放區中沒有的私有 CA 簽署 | Claude Code 在原生二進位檔上預設讀取 OS 信任存放區,在 Node 22.15 或更新版本上;[`CLAUDE_CODE_CERT_STORE`](/docs/zh-TW/network-config#ca-certificate-store)控制此行為。如果 CA 安裝在 OS 信任存放區中,請確保開發者使用目前執行時。否則在啟動前將 `NODE_EXTRA_CA_CERTS` 設定為 CA 憑證 PEM。首次連線指紋提示仍然適用。 |

416| CLI `/login` 完成瀏覽器登入,然後工作階段結束,顯示 `Cloud gateway sign-in was not completed` 和 TLS 憑證不符 | 登入後的第一個請求上,gateway 提供了與 Claude Code 釘選的指紋不符的憑證,所以 Claude Code 沒有保留任何 gateway 認證。常見原因是一個位址後面的副本提供不同的憑證,或網路路徑上的某個東西攔截 TLS。 | 為主機名稱提供一個憑證,例如在入口終止 TLS 一次,然後讓開發者再次執行 `/login`。如果該憑證與釘選的不同,Claude Code 會再次顯示[信任提示](/docs/zh-TW/claude-apps-gateway#connect-developers),並警告憑證已變更。 |417| CLI `/login` 完成瀏覽器登入,然後工作階段結束,顯示 `Cloud gateway sign-in was not completed` 和 TLS 憑證不符 | 登入後的第一個請求上,gateway 提供了與 Claude Code 釘選的指紋不符的憑證,所以 Claude Code 沒有保留任何 gateway 憑證。常見原因是一個位址後面的副本提供不同的憑證,或網路路徑上的某個東西攔截 TLS。 | 為主機名稱提供一個憑證,例如在入口終止 TLS 一次,然後讓開發者再次執行 `/login`。如果該憑證與釘選的不同,Claude Code 會再次顯示[信任提示](/docs/zh-TW/claude-apps-gateway#connect-developers),並警告憑證已變更。 |

417| CLI `/login` 停止,顯示 `The gateway's TLS certificate changed during sign-in: it no longer matches the one you trusted` | 登入請求到達了一個憑證與開發者在 `/login` 開始時接受的憑證不符的伺服器:一個位址後面的副本提供不同的憑證、路徑上的 TLS 攔截,或登入進行中的憑證輪換。 | 為主機名稱提供一個憑證,然後讓開發者再次開始登入並在[信任提示](/docs/zh-TW/claude-apps-gateway#connect-developers)上檢查新憑證。 |418| CLI `/login` 停止,顯示 `The gateway's TLS certificate changed during sign-in: it no longer matches the one you trusted` | 登入請求到達了一個憑證與開發者在 `/login` 開始時接受的憑證不符的伺服器:一個位址後面的副本提供不同的憑證、路徑上的 TLS 攔截,或登入進行中的憑證輪換。 | 為主機名稱提供一個憑證,然後讓開發者再次開始登入並在[信任提示](/docs/zh-TW/claude-apps-gateway#connect-developers)上檢查新憑證。 |

418 419 

419`Cloud gateway sign-in was not completed` 訊息會命名 gateway 主機名稱。當 Claude Code 同時具有釘選指紋和呈現的指紋時,訊息也會顯示每個的前 16 個字元。420`Cloud gateway sign-in was not completed` 訊息會命名 gateway 主機名稱。當 Claude Code 同時具有釘選指紋和呈現的指紋時,訊息也會顯示每個的前 16 個字元。

420 421 

421如果 Claude Code 在 gateway 登入後報告 `couldn't load your organization's managed settings`,Claude Code 會命名原因、就地重新啟動並繼續對話。如果 Claude Code 無法重新啟動(例如在背景工作階段中),Claude Code 會結束工作階段並保留登入。422如果 Claude Code 在 gateway 登入後報告 `couldn't load your organization's managed settings`,Claude Code 會命名原因、就地重新啟動並繼續對話。如果 Claude Code 無法重新啟動(例如在背景工作階段中),Claude Code 會結束工作階段並保留登入。

422 423 

424<h3 id="request-headers-too-large-after-sign-in">

425 登入後請求標頭過大

426</h3>

427 

428當開發者屬於許多 IdP 群組時,其請求可能在登入後失敗並出現 `431` 錯誤。

429 

430當請求的標頭總計超過 256 KiB,或超過 [`limits.max_request_header_bytes`](/docs/zh-TW/claude-apps-gateway-config#http-tuning)(若您有設定)時,gateway 會回應 `431`。它不會為這些請求寫入任何日誌行或稽核事件。v2.1.284 之前的 gateway 版本在超過 16 KiB 時即回應 `431`。

431 

432需要變更的內容取決於 gateway 的版本和設定:

433 

434* **早於 v2.1.284 的 gateway**:升級 gateway

435* **已設定 `limits.max_request_header_bytes`**:提高該值或移除該設定鍵

436* **以上皆不適用,或之後仍出現 `431`**:讓您的 IdP 發出較少的群組。[身分提供者設定](#identity-provider-setup)說明 Okta、Microsoft Entra ID 和 Google Workspace 如何提供群組

437 

423<h2 id="related">438<h2 id="related">

424 相關439 相關

425</h2>440</h2>

Details

1598 1598 

1599`<project>` 是你的工作目錄路徑,其中除字母和數字外的每個字元都被替換為 `-`,例如 `-Users-you-my-project`。如果你設定 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars),樹會改為移到該目錄下。Hooks 接收目前工作階段的路徑作為 [`scratchpad_dir`](/docs/zh-TW/hooks#common-input-fields)。1599`<project>` 是你的工作目錄路徑,其中除字母和數字外的每個字元都被替換為 `-`,例如 `-Users-you-my-project`。如果你設定 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars),樹會改為移到該目錄下。Hooks 接收目前工作階段的路徑作為 [`scratchpad_dir`](/docs/zh-TW/hooks#common-input-fields)。

1600 1600 

1601暫存簿檔案的持續時間與工作階段的文字記錄相同:[保留掃描](#cleaned-up-automatically) 在刪除文字記錄時刪除目錄,[`claude project purge`](#clear-local-data) 不會觸及暫存目錄。因為目錄位於系統暫存位置下,你的作業系統也可以清除它,例如在重新啟動時。要保留 Claude 在那裡寫入的內容,請要求 Claude 將其移到你的專案中。1601暫存簿檔案的存續時間與工作階段的逐字稿相同:[保留掃描](#cleaned-up-automatically)在刪除逐字稿時會刪除該目錄,而 [`claude purge`](#clear-local-data) 不會觸及暫存目錄。由於該目錄位於系統暫存位置下,您的作業系統也可能清除它,例如在重新啟動時。若要保留 Claude 在那裡寫入的內容,請要求 Claude 將其移到您的專案中。

1602 1602 

1603工作階段只有在以下所有情況都成立時才有暫存簿:1603工作階段只有在以下所有情況都成立時才有暫存簿:

1604 1604 


1645 清除本機資料1645 清除本機資料

1646</h3>1646</h3>

1647 1647 

1648執行 `claude project purge` 以刪除 Claude Code 為一個專案保存的狀態。它刪除:1648執行 `claude purge` 以刪除 Claude Code 為某個專案保存的狀態。它會刪除:

1649 1649 

1650* `projects/` 下的文字記錄和自動記憶1650* `projects/` 下的文字記錄和自動記憶

1651* 每個工作階段的 `tasks/`、`debug/` 和 `file-history/` 項目1651* 每個工作階段的 `tasks/`、`debug/` 和 `file-history/` 項目


1656 1656 

1657該命令列印完整的刪除計畫並在移除任何內容之前要求確認。1657該命令列印完整的刪除計畫並在移除任何內容之前要求確認。

1658 1658 

1659在 v2.1.288 之前,此命令為 `claude project purge`。

1660 

1659下面的範例使用 `~/work/my-repo` 作為佔位符。將其替換為你的專案的路徑。如果沒有狀態符合該路徑,該命令會列印錯誤並以狀態 1 退出。1661下面的範例使用 `~/work/my-repo` 作為佔位符。將其替換為你的專案的路徑。如果沒有狀態符合該路徑,該命令會列印錯誤並以狀態 1 退出。

1660 1662 

1661預覽計畫而不刪除任何內容:1663預覽計畫而不刪除任何內容:

1662 1664 

1663```bash theme={null}1665```bash theme={null}

1664claude project purge ~/work/my-repo --dry-run1666claude purge ~/work/my-repo --dry-run

1665```1667```

1666 1668 

1667該計畫列出每個匹配項目及其包含的原因:1669該計畫列出每個匹配項目及其包含的原因:


1684使用單一確認提示刪除:1686使用單一確認提示刪除:

1685 1687 

1686```bash theme={null}1688```bash theme={null}

1687claude project purge ~/work/my-repo1689claude purge ~/work/my-repo

1688```1690```

1689 1691 

1690該命令列印相同的計畫,然後詢問 `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` 並且只有在你回答 `y` 時才刪除。1692該命令列印相同的計畫,然後詢問 `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` 並且只有在你回答 `y` 時才刪除。


1694跳過確認提示以在指令碼中使用:1696跳過確認提示以在指令碼中使用:

1695 1697 

1696```bash theme={null}1698```bash theme={null}

1697claude project purge ~/work/my-repo --yes1699claude purge ~/work/my-repo --yes

1698```1700```

1699 1701 

1700傳遞 `--all` 而不是路徑以一次清除每個專案的狀態,這會直接刪除 `history.jsonl` 而不是篩選它。傳遞 `-i` 以逐項逐步執行刪除計畫。1702傳遞 `--all` 而不是路徑以一次清除每個專案的狀態,這會直接刪除 `history.jsonl` 而不是篩選它。傳遞 `-i` 以逐項逐步執行刪除計畫。

Details

500 限制500 限制

501</h2>501</h2>

502 502 

503* Projects 在 claude.ai/code、桌面應用程式和 Claude 行動應用程式中可用,不在終端 CLI、VS Code 擴充功能或 JetBrains 外掛程式中,也不通過 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。CLI 的 [`claude project`](/docs/zh-TW/cli-reference) 命令,它管理目錄的本地 Claude Code 狀態,是無關的。503* Projects 在 claude.ai/code、桌面應用程式和 Claude 行動應用程式中可用,不在終端機 CLI、VS Code 擴充功能或 JetBrains 外掛中,也不通過 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。

504* Project 執行緒是 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web),或通過 [Remote Control](/docs/zh-TW/remote-control) 在您自己的機器上的工作階段,兩種情況下 Anthropic 都是模型提供者。[安全](/docs/zh-TW/security) 和 [資料使用](/docs/zh-TW/data-usage) 涵蓋了雲端工作階段如何隔離以及保留什麼,[連線和安全](/docs/zh-TW/remote-control#connection-and-security) 涵蓋了您機器上的執行緒如何連線以及儲存什麼。504* Project 執行緒是 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web),或通過 [Remote Control](/docs/zh-TW/remote-control) 在您自己的機器上的工作階段,兩種情況下 Anthropic 都是模型提供者。[安全](/docs/zh-TW/security) 和 [資料使用](/docs/zh-TW/data-usage) 涵蓋了雲端工作階段如何隔離以及保留什麼,[連線和安全](/docs/zh-TW/remote-control#connection-and-security) 涵蓋了您機器上的執行緒如何連線以及儲存什麼。

505* 您無法將自己在機器上啟動的工作階段新增到 project。Project 只能通過 [Remote Control 在您的機器上執行執行緒](#run-a-thread-on-your-own-computer)到達您的機器,該部分列出了它需要的內容。505* 您無法將自己在機器上啟動的工作階段新增到 project。Project 只能通過 [Remote Control 在您的機器上執行執行緒](#run-a-thread-on-your-own-computer)到達您的機器,該部分列出了它需要的內容。

506* 雲端執行緒的沙箱在轉換之間暫停,並在執行緒繼續時恢復。如果沙箱無法恢復,執行緒從新克隆繼續,因此未提交的變更可能會遺失。在長任務上,要求 Claude 提交並推送進行中的工作。506* 雲端執行緒的沙箱在轉換之間暫停,並在執行緒繼續時恢復。如果沙箱無法恢復,執行緒從新克隆繼續,因此未提交的變更可能會遺失。在長任務上,要求 Claude 提交並推送進行中的工作。

Details

40| `claude mcp login <name>` | 執行已設定 MCP 伺服器的 OAuth 流程,無需開啟互動式 `/mcp` 面板。適用於 HTTP、SSE 和 claude.ai 連接器伺服器。在 SSH 上新增 `--no-browser` 以列印授權 URL 而非開啟瀏覽器,然後將重新導向 URL 貼回提示處。請參閱 [從命令列進行身分驗證](/docs/zh-TW/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |40| `claude mcp login <name>` | 執行已設定 MCP 伺服器的 OAuth 流程,無需開啟互動式 `/mcp` 面板。適用於 HTTP、SSE 和 claude.ai 連接器伺服器。在 SSH 上新增 `--no-browser` 以列印授權 URL 而非開啟瀏覽器,然後將重新導向 URL 貼回提示處。請參閱 [從命令列進行身分驗證](/docs/zh-TW/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

41| `claude mcp logout <name>` | 清除 MCP 伺服器的已儲存 OAuth 憑證 | `claude mcp logout sentry` |41| `claude mcp logout <name>` | 清除 MCP 伺服器的已儲存 OAuth 憑證 | `claude mcp logout sentry` |

42| `claude plugin` | 管理 Claude Code [外掛](/docs/zh-TW/plugins/overview)。別名:`claude plugins`。請參閱 [外掛參考](/docs/zh-TW/plugins/cli-reference#claude-plugin-commands) 以取得子命令 | `claude plugin install code-review@claude-plugins-official` |42| `claude plugin` | 管理 Claude Code [外掛](/docs/zh-TW/plugins/overview)。別名:`claude plugins`。請參閱 [外掛參考](/docs/zh-TW/plugins/cli-reference#claude-plugin-commands) 以取得子命令 | `claude plugin install code-review@claude-plugins-official` |

43| `claude project purge [path]` | 刪除專案的所有本機 Claude Code 狀態:逐字稿、工作清單、偵錯日誌、檔案編輯歷史記錄、提示詞歷史記錄行和專案在 `~/.claude.json` 中的項目。省略 `[path]` 以從互動式清單中選擇。旗標:`--dry-run` 以預覽,`-y`/`--yes` 以跳過確認,`-i`/`--interactive` 以確認每個項目,`--all` 用於每個專案。請參閱 [清除本機資料](/docs/zh-TW/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` |43| `claude purge [path]` | 刪除專案的所有本機 Claude Code 狀態:逐字稿、工作清單、偵錯日誌、檔案編輯歷史記錄、提示詞歷史記錄行和專案在 `~/.claude.json` 中的項目。省略 `[path]` 以從互動式清單中選擇。旗標:`--dry-run` 以預覽,`-y`/`--yes` 以跳過確認,`-i`/`--interactive` 以確認每個項目,`--all` 用於每個專案。請參閱 [清除本機資料](/docs/zh-TW/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |

44| `claude remote-control` | 啟動 [Remote Control](/docs/zh-TW/remote-control) 伺服器以從 Claude.ai 或 Claude 應用程式控制 Claude Code。以伺服器模式執行(無本機互動式工作階段)。請參閱 [伺服器模式旗標](/docs/zh-TW/remote-control#start-a-remote-control-session)。停止伺服器後,您可以恢復它正在服務的工作階段。請參閱 [停止伺服器後繼續工作階段](/docs/zh-TW/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |44| `claude remote-control` | 啟動 [Remote Control](/docs/zh-TW/remote-control) 伺服器以從 Claude.ai 或 Claude 應用程式控制 Claude Code。以伺服器模式執行(無本機互動式工作階段)。請參閱 [伺服器模式旗標](/docs/zh-TW/remote-control#start-a-remote-control-session)。停止伺服器後,您可以恢復它正在服務的工作階段。請參閱 [停止伺服器後繼續工作階段](/docs/zh-TW/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` |

45| `claude respawn <id>` | 重新啟動 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell)(執行中或已停止),保持其對話完整。使用 `--all` 重新啟動每個執行中的工作階段,例如以取得更新的 Claude Code 二進位檔 | `claude respawn 7c5dcf5d` |45| `claude respawn <id>` | 重新啟動 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell)(執行中或已停止),保持其對話完整。使用 `--all` 重新啟動每個執行中的工作階段,例如以取得更新的 Claude Code 二進位檔 | `claude respawn 7c5dcf5d` |

46| `claude rm <id>` | 從清單中移除 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell)。當移除因工作階段的 worktree [而被拒絕](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 且第二個 `claude rm` 可以解決時,拒絕會列印要傳遞的確切旗標和值:`--discard-unpushed <commit>@<worktree-id>` 會捨棄具有未推送提交的 worktree 以及這些提交,`--force-remove-worktree <worktree-id>` 刪除 git 或 `WorktreeRemove` hook 無法移除的 worktree 目錄。`--discard-unpushed` 需要 Claude Code v2.1.260 或更新版本,而 `--force-remove-worktree` 需要 v2.1.268 或更新版本。對話逐字稿保留在您的本機機器上,可透過 `claude --resume` 取得 | `claude rm 7c5dcf5d` |46| `claude rm <id>` | 從清單中移除 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell)。當移除因工作階段的 worktree [而被拒絕](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 且第二個 `claude rm` 可以解決時,拒絕會列印要傳遞的確切旗標和值:`--discard-unpushed <commit>@<worktree-id>` 會捨棄具有未推送提交的 worktree 以及這些提交,`--force-remove-worktree <worktree-id>` 刪除 git 或 `WorktreeRemove` hook 無法移除的 worktree 目錄。`--discard-unpushed` 需要 Claude Code v2.1.260 或更新版本,而 `--force-remove-worktree` 需要 v2.1.268 或更新版本。對話逐字稿保留在您的本機機器上,可透過 `claude --resume` 取得 | `claude rm 7c5dcf5d` |


51 51 

52如果您輸入錯誤的子命令,Claude Code 會建議最接近的符合項並退出而不啟動工作階段。例如,`claude udpate` 會列印 `Did you mean claude update?`。52如果您輸入錯誤的子命令,Claude Code 會建議最接近的符合項並退出而不啟動工作階段。例如,`claude udpate` 會列印 `Did you mean claude update?`。

53 53 

54自 v2.1.199 起,`claude --dangerously-skip-permissions daemon <subcommand>` 執行 `daemon` 子命令。較早版本將 `daemon <subcommand>` 視為新互動式工作階段的提示詞,因此當旗標在前面時子命令永遠不會執行,這是 `claude` 別名為包含旗標時的常見設定。只有前導 `--dangerously-skip-permissions` 或 `--allow-dangerously-skip-permissions` 以這種方式路由到 `daemon`;任何其他前導旗標仍然啟動互動式工作階段。54`claude --dangerously-skip-permissions daemon <subcommand>` 會執行 `daemon` 子命令,因此當 `claude` 的別名包含該旗標時,子命令仍可正常運作。只有前導 `--dangerously-skip-permissions` 或 `--allow-dangerously-skip-permissions` 會以這種方式路由到 `daemon`;若 `daemon` 前面有任何其他旗標,子命令就不會執行。

55 55 

56<h2 id="cli-flags">56<h2 id="cli-flags">

57 CLI 旗標57 CLI 旗標

Details

118 新增認證118 新增認證

119</h4>119</h4>

120 120 

121您從已存在的環境編輯器一次新增一個認證。新環境的對話框不提供它們。也沒有編輯。若要變更認證的主機或值,請刪除它並再次新增。121您一次新增一個憑證,新增後無法編輯憑證。若要變更憑證的主機或值,請刪除它並再次新增。

122 122 

123<Steps>123<Steps>

124 <Step title="開啟環境的 API 認證">124 <Step title="開啟環境的 API 憑證">

125 在 [claude.ai/code](https://claude.ai/code) [開啟環境進行編輯](#configure-your-environment)。在**編輯雲端環境**對話框中,在**環境變數**下方找到 **API 認證**。您會看到環境上已有的認證,每個都顯示它適用的主機。125 在 [claude.ai/code](https://claude.ai/code) [開啟環境進行編輯](#configure-your-environment)。在**編輯環境**對話框中,找到 **API 憑證**區段。您會看到環境上已有的憑證,每個都顯示它適用的主機。

126 </Step>126 </Step>

127 127 

128 <Step title="新增認證">128 <Step title="新增憑證">

129 選擇**新增認證**並填寫表單。保留預設的**認證類型** **Bearer**,用於在請求標頭中傳輸的 API 金鑰,並填寫這些欄位:129 選擇**新增憑證**並填寫表單。保留預設的**憑證類型** **Bearer**,用於在請求標頭中傳輸的 API 金鑰,並填寫這些欄位:

130 130 

131 * **名稱**:認證的標籤,例如 `Internal billing API`131 * **名稱**:認證的標籤,例如 `Internal billing API`

132 * **允許的網站**:API 的主機,例如 `api.example.com`。前導 `*.` 符合每個子網域132 * **允許的網站**:API 的主機,例如 `api.example.com`。前導 `*.` 符合每個子網域

code-review.md +2 −1

Details

347 347 

348 * `--fix`:在審查後將發現結果應用到您的工作樹348 * `--fix`:在審查後將發現結果應用到您的工作樹

349 * `--comment`:將發現結果作為內聯評論發佈在 GitHub pull request 上,或作為單一備註發佈在 GitLab merge request 上349 * `--comment`:將發現結果作為內聯評論發佈在 GitHub pull request 上,或作為單一備註發佈在 GitLab merge request 上

350 * `--post`:在 `github.com` pull request 的 `ultra` 雲審查上,在啟動對話框中預先選擇將完成的發現結果發佈到 PR;請參閱[將發現結果發佈到 pull request](/docs/zh-TW/ultrareview#post-findings-to-the-pull-request)。需要 Claude Code v2.1.227 或更新版本350 * `--post`:在 `github.com` pull request 的 `ultra` 雲端審查上,在啟動對話框中預先選擇將完成的發現結果發佈到 PR;請參閱[將發現結果發佈到 pull request](/docs/zh-TW/ultrareview#post-findings-to-the-pull-request)。需要 Claude Code v2.1.227 或更新版本

351 * `--max-findings <n>`、`--max-findings all` 或 `--max-findings default`:最多報告 `n` 個發現結果,或使用 `all` 報告所有發現結果,以取代審查的一般上限。之後的審查會重用您輸入的值,直到您傳遞 `--max-findings default` 為止。需要 Claude Code v2.1.288 或更新版本

351 352 

352 當您為 GitLab merge request 傳遞 `--comment` 時,Claude Code 透過 GitLab 的 `glab` CLI 發佈發現結果。需要 Claude Code v2.1.257 或更新版本。當 `glab` 未安裝時,Claude 會改為在終端中列印發現結果。353 當您為 GitLab merge request 傳遞 `--comment` 時,Claude Code 透過 GitLab 的 `glab` CLI 發佈發現結果。需要 Claude Code v2.1.257 或更新版本。當 `glab` 未安裝時,Claude 會改為在終端中列印發現結果。

353 354 

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為您的專案語言載入 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 參考資料。當您的程式碼匯入 `anthropic` 或 `@anthropic-ai/sdk` 時也會自動啟動。有關每個子命令的作用以及它需要的版本,請參閱[在 Claude API 專案上工作](/docs/zh-TW/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為您的專案語言載入 [Claude API](https://platform.claude.com/docs/en/api/overview) 和 [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) 參考資料。當您的程式碼匯入 `anthropic` 或 `@anthropic-ai/sdk` 時也會自動啟動。有關每個子命令的作用以及它需要的版本,請參閱[在 Claude API 專案上工作](/docs/zh-TW/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 讓 Claude 通過 [Claude in Chrome](/docs/zh-TW/chrome) 在您的瀏覽器中執行任務,例如測試頁面、填充表單或讀取控制台日誌。在為工作階段啟用 Chrome 整合時可用,例如使用 `claude --chrome`,或當 Claude Code 可以提供[安裝擴充功能](/docs/zh-TW/chrome#install-the-extension-when-claude-asks)時 |73| `/claude-in-chrome [task]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 讓 Claude 通過 [Claude in Chrome](/docs/zh-TW/chrome) 在您的瀏覽器中執行任務,例如測試頁面、填充表單或讀取控制台日誌。在為工作階段啟用 Chrome 整合時可用,例如使用 `claude --chrome`,或當 Claude Code 可以提供[安裝擴充功能](/docs/zh-TW/chrome#install-the-extension-when-claude-asks)時 |

74| `/clear [name]` | 使用空上下文啟動新對話。傳遞名稱以在 `/resume` 選擇器中標記先前的對話。要在繼續相同對話的同時釋放上下文,請改用 `/compact`。使用 `/resume` 恢復先前的對話,或在同一 Claude Code 程序中,從[倒帶選單的上一個工作階段項目](/docs/zh-TW/checkpointing#rewind-past-a-cleared-conversation)恢復它。別名:`/reset`、`/new` |74| `/clear [name]` | 使用空上下文啟動新對話。傳遞名稱以在 `/resume` 選擇器中標記先前的對話。要在繼續相同對話的同時釋放上下文,請改用 `/compact`。使用 `/resume` 恢復先前的對話,或在同一 Claude Code 程序中,從[倒帶選單的上一個工作階段項目](/docs/zh-TW/checkpointing#rewind-past-a-cleared-conversation)恢復它。別名:`/reset`、`/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 檢查目前差異或您傳遞的 PR 編號、分支或路徑,以查找正確性錯誤。根據您的模型和 effort 等級,檢查也涵蓋清理機會。傳遞 `--fix` 以應用發現,`--comment` 以在 GitHub PR 或 GitLab merge request 上發佈它們,或 `ultra` 以運行深度[雲端審查](/docs/zh-TW/ultrareview)。發佈到 GitLab merge request 需要 Claude Code v2.1.257 或更新版本。在 `github.com` PR 目標上使用 `ultra` 時,傳遞 `--post` 以在啟動對話框中預先選擇[將完成的發現發佈到 PR](/docs/zh-TW/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更新版本。有關 effort 等級、目標設定以及它與 `/simplify` 的關係,請參閱[本地檢查差異](/docs/zh-TW/code-review#review-a-diff-locally)。別名:`/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 檢查目前差異或您傳遞的 PR 編號、分支或路徑,以查找正確性錯誤。根據您的模型和 effort 等級,檢查也涵蓋清理機會。傳遞 `--fix` 以應用發現,`--comment` 以在 GitHub PR 或 GitLab merge request 上發佈它們,或 `ultra` 以運行深度[雲端審查](/docs/zh-TW/ultrareview)。發佈到 GitLab merge request 需要 Claude Code v2.1.257 或更新版本。在 `github.com` PR 目標上使用 `ultra` 時,傳遞 `--post` 以在啟動對話框中預先選擇[將完成的發現發佈到 PR](/docs/zh-TW/ultrareview#post-findings-to-the-pull-request);`--post` 需要 Claude Code v2.1.227 或更新版本。有關 effort 等級、目標設定以及它與 `/simplify` 的關係,請參閱[本地檢查差異](/docs/zh-TW/code-review#review-a-diff-locally)。別名:`/review` |

76| `/color [color\|default]` | 設定目前工作階段的提示詞欄顏色。可用顏色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或運行時不帶引數以選擇隨機顏色。當 [Remote Control](/docs/zh-TW/remote-control) 連接時,顏色會同步到 claude.ai/code。也可在非互動模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更新版本 |76| `/color [color\|default]` | 設定目前工作階段的提示詞欄顏色。可用顏色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或運行時不帶引數以選擇隨機顏色。當 [Remote Control](/docs/zh-TW/remote-control) 連接時,顏色會同步到 claude.ai/code。也可在非互動模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更新版本 |

77| `/compact [instructions]` | 通過總結到目前為止的對話來釋放上下文。可選地傳遞焦點指示以進行摘要。請參閱[壓縮如何處理規則、skill 和記憶檔案](/docs/zh-TW/context-window#what-survives-compaction) |77| `/compact [instructions]` | 通過總結到目前為止的對話來釋放上下文。可選地傳遞焦點指示以進行摘要。請參閱[壓縮如何處理規則、skill 和記憶檔案](/docs/zh-TW/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | 打開[設定](/docs/zh-TW/settings)介面以調整主題、模型、[輸出風格](/docs/zh-TW/output-styles)和其他偏好設定。傳遞一個或多個 `key=value` 對以直接設定設定而不打開介面,例如 `/config thinking=false`、`/config theme=dark` 或 `/config model=sonnet`。`key=value` 形式也適用於非互動模式 (`-p`) 和來自 Claude 行動應用程式通過 [Remote Control](/docs/zh-TW/remote-control)。`key=value` 形式無法打開需要您在面板中確認的設定,例如 [`autoContinueAtUsageLimit`](/docs/zh-TW/interactive-mode#turn-automatic-continue-off),儘管它可以關閉一個。運行 `/config --help` 以列出它接受的鍵。別名:`/settings` |78| `/config [key=value ...]` | 打開[設定](/docs/zh-TW/settings)介面以調整主題、模型、[輸出風格](/docs/zh-TW/output-styles)和其他偏好設定。傳遞一個或多個 `key=value` 對以直接設定設定而不打開介面,例如 `/config thinking=false`、`/config theme=dark` 或 `/config model=sonnet`。`key=value` 形式也適用於非互動模式 (`-p`) 和來自 Claude 行動應用程式通過 [Remote Control](/docs/zh-TW/remote-control)。`key=value` 形式無法打開需要您在面板中確認的設定,例如 [`autoContinueAtUsageLimit`](/docs/zh-TW/interactive-mode#turn-automatic-continue-off),儘管它可以關閉一個。運行 `/config --help` 以列出它接受的鍵。別名:`/settings` |


134| `/remote-env` | 為您從 CLI 啟動的雲端工作階段選擇預設[雲端環境](/docs/zh-TW/cloud-environments#select-an-environment-from-the-cli) |134| `/remote-env` | 為您從 CLI 啟動的雲端工作階段選擇預設[雲端環境](/docs/zh-TW/cloud-environments#select-an-environment-from-the-cli) |

135| `/rename [name]` | 重新命名目前工作階段並在提示詞欄上顯示名稱。沒有名稱時,從對話歷史記錄自動生成一個。也可在非互動模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更新版本。從每個重新命名的使用介面,包括 claude.ai 和桌面應用程式,Claude Code 會用空格替換新名稱中的控制和不可見字元,並將名稱上限設為 200 個字元。如果移除不可見字元後名稱為空,Claude Code 會拒絕它並顯示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字元替換和長度上限需要 Claude Code v2.1.221 或更新版本。如果此機器上的另一個活動工作階段已使用您傳遞的名稱,Claude Code 會改為應用[它的變體](/docs/zh-TW/sessions#name-your-sessions) |135| `/rename [name]` | 重新命名目前工作階段並在提示詞欄上顯示名稱。沒有名稱時,從對話歷史記錄自動生成一個。也可在非互動模式 (`-p`) 中使用;需要 Claude Code v2.1.205 或更新版本。從每個重新命名的使用介面,包括 claude.ai 和桌面應用程式,Claude Code 會用空格替換新名稱中的控制和不可見字元,並將名稱上限設為 200 個字元。如果移除不可見字元後名稱為空,Claude Code 會拒絕它並顯示 `That name is empty once invisible characters are removed. Usage: /rename <name>`。字元替換和長度上限需要 Claude Code v2.1.221 或更新版本。如果此機器上的另一個活動工作階段已使用您傳遞的名稱,Claude Code 會改為應用[它的變體](/docs/zh-TW/sessions#name-your-sessions) |

136| `/resume [session]` | 按 ID 或名稱恢復對話,或打開工作階段選擇器。[背景工作階段](/docs/zh-TW/agent-view)在選擇器中以 `bg` 標記出現。恢復仍在運行的工作階段時,無論是從選擇器或按 ID 或名稱,都會[打開該工作階段](/docs/zh-TW/sessions#resume-a-running-background-session):您目前的對話會移到背景,此終端機會附加到運行中的工作階段。在空提示詞上按 `←` 可返回 agent view,其中也會列出您離開的對話。在 v2.1.285 之前,Claude Code 會拒絕,並告訴您使用 `claude attach` 打開該工作階段或先停止它。別名:`/continue` |136| `/resume [session]` | 按 ID 或名稱恢復對話,或打開工作階段選擇器。[背景工作階段](/docs/zh-TW/agent-view)在選擇器中以 `bg` 標記出現。恢復仍在運行的工作階段時,無論是從選擇器或按 ID 或名稱,都會[打開該工作階段](/docs/zh-TW/sessions#resume-a-running-background-session):您目前的對話會移到背景,此終端機會附加到運行中的工作階段。在空提示詞上按 `←` 可返回 agent view,其中也會列出您離開的對話。在 v2.1.285 之前,Claude Code 會拒絕,並告訴您使用 `claude attach` 打開該工作階段或先停止它。別名:`/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | [`/code-review`](/docs/zh-TW/code-review#review-a-diff-locally) 的別名:檢查目前差異或您傳遞的 PR 編號、分支或路徑,例如 `/review 1234`,並採用相同的 effort 等級和旗標。沒有給定等級時,檢查重複使用您最後輸入的 `low` 到 `max` 等級;有關確切規則,請參閱[本地檢查差異](/docs/zh-TW/code-review#review-a-diff-locally)。對於深度雲端檢查,使用 [`/code-review ultra`](/docs/zh-TW/ultrareview)。在 v2.1.223 之前,`/review` 是一個單獨的命令,按編號對 GitHub pull request 進行單次通過、唯讀檢查,在運行時不帶引數時列出打開的 PR 以選擇;從 v2.1.186 到 v2.1.201,它運行與 `/code-review medium` 相同的多 agent 引擎 |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | [`/code-review`](/docs/zh-TW/code-review#review-a-diff-locally) 的別名:檢查目前差異或您傳遞的 PR 編號、分支或路徑,例如 `/review 1234`,並採用相同的 effort 等級和旗標。沒有給定等級時,檢查重複使用您最後輸入的 `low` 到 `max` 等級;有關確切規則,請參閱[本地檢查差異](/docs/zh-TW/code-review#review-a-diff-locally)。對於深度雲端檢查,使用 [`/code-review ultra`](/docs/zh-TW/ultrareview)。在 v2.1.223 之前,`/review` 是一個單獨的命令,按編號對 GitHub pull request 進行單次通過、唯讀檢查,在運行時不帶引數時列出打開的 PR 以選擇;從 v2.1.186 到 v2.1.201,它運行與 `/code-review medium` 相同的多 agent 引擎 |

138| `/rewind` | 倒帶對話和/或程式碼到上一個點,或從選定的訊息進行摘要。請參閱[檢查點功能](/docs/zh-TW/checkpointing)。別名:`/checkpoint`、`/undo` |138| `/rewind` | 倒帶對話和/或程式碼到上一個點,或從選定的訊息進行摘要。請參閱[檢查點功能](/docs/zh-TW/checkpointing)。別名:`/checkpoint`、`/undo` |

139| `/run` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 啟動並驅動您的專案應用程式以查看變更實際運作,而不僅僅是通過測試。請參閱[運行和驗證您的應用程式](/docs/zh-TW/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 啟動並驅動您的專案應用程式以查看變更實際運作,而不僅僅是通過測試。請參閱[運行和驗證您的應用程式](/docs/zh-TW/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 通過編寫每個專案的 [skill](/docs/zh-TW/skills#run-and-verify-your-app),教 `/run` 和 `/verify` 如何從乾淨環境建置、啟動和驅動您的專案應用程式 |140| `/run-skill-generator` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 通過編寫每個專案的 [skill](/docs/zh-TW/skills#run-and-verify-your-app),教 `/run` 和 `/verify` 如何從乾淨環境建置、啟動和驅動您的專案應用程式 |

Details

46 46 

47 團隊,47 團隊,

48 48 

49 從今天開始,您可以存取 Claude Code,這是一個在您的終端中執行、讀取您的實際程式碼庫並端到端完成實際任務的 AI 編碼代理:除錯、重構、測試、PR。它不是自動完成,也不是聊天視窗。它編輯檔案、執行您的命令,並在任何風險操作前請求許可。49 從今天開始,您可以存取 Claude Code,這是一個在您的終端機中執行、讀取您的實際程式碼庫並端到端完成實際任務的 AI 編碼 agent:除錯、重構、測試、PR。它不是自動完成,也不是聊天視窗。它會編輯檔案並執行您的命令。

50 50 

51 在兩分鐘內開始執行:51 在兩分鐘內開始執行:

52 52 


62 - "向我介紹 [module] 如何處理 [X]"62 - "向我介紹 [module] 如何處理 [X]"

63 - "查看我的工作差異並告訴我在我推送前什麼是風險的"63 - "查看我的工作差異並告訴我在我推送前什麼是風險的"

64 64 

65 您的程式碼去哪裡了:Claude Code 在您的終端中執行,並直接與 Anthropic 的 API 通訊,迴路中沒有第三方伺服器。它在編輯檔案或執行命令前請求許可。根據我們的企業協議,Anthropic 不使用您的程式碼或提示來訓練其模型。65 您的程式碼去哪裡了:Claude Code 在您的終端機中執行,並直接與 Anthropic 的 API 通訊。在我們的 Team 或 Enterprise 方案下,Anthropic 不會使用您的程式碼或提示詞來訓練其模型。

66 詳情:https://code.claude.com/docs/en/data-usage66 詳情:https://code.claude.com/docs/en/data-usage

67 https://code.claude.com/docs/en/security67 https://code.claude.com/docs/en/security

68 68 


70 70 

71 - [名稱]71 - [名稱]

72 72 

73 P.S. 更喜歡您的編輯器?有一個 VS Code 擴充功能和一個 JetBrains 外掛。相同的代理,不需要終端。73 P.S. 更喜歡您的編輯器?有一個 VS Code 擴充功能和一個 JetBrains 外掛。相同的 agent,不需要終端機。

74 ```74 ```

75 </Tab>75 </Tab>

76 76 


78 ```markdown theme={null}78 ```markdown theme={null}

79 🚀 *Claude Code 現已為 [團隊] 推出*79 🚀 *Claude Code 現已為 [團隊] 推出*

80 80 

81 AI 編碼代理,在您的終端中執行,讀取您的儲存庫,完成實際工作:81 AI 編碼 agent,在您的終端機中執行,讀取您的儲存庫,完成實際工作:

82 錯誤、重構、測試、PR。在觸及任何東西前請求許可。82 錯誤、重構、測試、PR。

83 83 

84 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`84 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

85 85 

86 *首先要嘗試的* → 執行 `/init`,然後:"檔案 [file] 中的測試不穩定,86 *首先要嘗試的* → 執行 `/init`,然後:"檔案 [file] 中的測試不穩定,

87 找出原因並修復它。"87 找出原因並修復它。"

88 88 

89 🔒 在您的終端中執行,僅與 Anthropic 的 API 通訊。根據我們的89 🔒 在您的終端機中執行,直接與 Anthropic 的 API 通訊。在我們的 Team 或

90 企業計畫,您的程式碼和提示不用於訓練模型。90 Enterprise 方案下,您的程式碼和提示詞不會用於訓練模型。

91 資料使用 → https://code.claude.com/docs/en/data-usage91 資料使用 → https://code.claude.com/docs/en/data-usage

92 92 

93 📚 快速入門 · VS Code · 免費 1 小時課程93 📚 快速入門 · VS Code · 免費 1 小時課程


164[繼續標準公告中的 "在兩分鐘內開始執行"]164[繼續標準公告中的 "在兩分鐘內開始執行"]

165 165 

166試點的一個額外事項:在您的第一個多檔案變更時,按 Shift+Tab166試點的一個額外事項:在您的第一個多檔案變更時,按 Shift+Tab

167直到您看到 "plan"。Claude 將在觸及任何檔案前準確說明它打算做什麼。這是校準您應該信任多少的最快方式。167直到您看到 "plan"。Claude 會說明它打算做什麼,而不會編輯您的原始碼。這是校準您應該信任多少的最快方式。

168```168```

169 169 

170<h3 id="champion-recruitment-dm">170<h3 id="champion-recruitment-dm">


276```markdown theme={null}276```markdown theme={null}

277🛡️ *提示:一個按鍵在「查看但不觸及」和「就做吧」之間*277🛡️ *提示:一個按鍵在「查看但不觸及」和「就做吧」之間*

278 278 

279有時您希望 Claude 在每次編輯前請求許可。有時您只是希望它發貨。您不應該永遠選擇一個。279有時您希望 Claude 在每次編輯前詢問。有時您只是希望它直接交付。您不應該永遠只選擇一個。

280 280 

281*Shift+Tab* 循環通過 Claude 可以做多少而不需要詢問:*Manual*(`default` 設定值)在檔案編輯和大多數 shell 命令前詢問,*acceptEdits* 讓檔案編輯和常見檔案系統命令流通,同時仍在其他 shell 命令前檢查,*plan* 在觸及任何東西前為您的批准提議變更。Plan Mode 是信任建立者,因此對於觸及多個檔案的任何事情,從那裡開始。281*Shift+Tab* 循環切換 Claude 無需詢問即可執行的範圍:*Manual*(`default` 設定值)在檔案編輯和大多數 shell 命令前詢問,*acceptEdits* 讓檔案編輯和常見檔案系統命令直接通過,同時仍在其他 shell 命令前檢查,而 *plan* 會研究並提議變更,而不編輯您的原始碼。plan mode 是信任建立者,因此對於觸及多個檔案的任何事情,從那裡開始。

282 282 

283*現在嘗試:* 在您的下一個重構上,按 Shift+Tab 直到您看到「plan」,然後描述變更。您將在單個檔案移動前獲得完整提案。283*現在嘗試:* 在您的下一個重構上,按 Shift+Tab 直到您看到「plan」,然後描述變更。您將獲得一份完整的提案供審閱。

284 284 

285📖 Permission modes → https://code.claude.com/docs/zh-TW/permissions285📖 Permission modes → https://code.claude.com/docs/zh-TW/permissions

286```286```


411您團隊中的某個人會問「等等,我的程式碼去哪裡了?」411您團隊中的某個人會問「等等,我的程式碼去哪裡了?」

412這是您可以貼上的簡短版本。412這是您可以貼上的簡短版本。

413 413 

414許可優先設計。每個檔案編輯、shell 命令和外部呼叫都由您的批准控制。CLI 在您的終端中執行,直接與 Anthropic 的 API 通訊,沒有第三方伺服器,並支援 shell 命令的可選作業系統級沙箱。根據我們的企業計畫,Anthropic 不使用您的程式碼或提示來訓練其模型。414權限模式決定 Claude 無需事先詢問您即可採取哪些動作。CLI 在您的終端機中執行,直接與 Anthropic 的 API 通訊,並支援 shell 命令的可選作業系統級沙箱機制。在 Team 或 Enterprise 方案中,Anthropic 不使用您的程式碼或提示詞來訓練其模型。

415 415 

416*現在嘗試:* 保存這兩個連結,以備下次問題出現時使用。它們回答了大多數安全審查問題。416*現在嘗試:* 保存這兩個連結,以備下次問題出現時使用。它們回答了大多數安全審查問題。

417 417 


450| - | - |450| - | - |

451| "它在 VS Code 中工作嗎?" | 是的。有一個 VS Code 擴充功能和一個 JetBrains 外掛,具有相同的功能,嵌入在您的編輯器中。[VS Code →](/docs/zh-TW/vs-code) |451| "它在 VS Code 中工作嗎?" | 是的。有一個 VS Code 擴充功能和一個 JetBrains 外掛,具有相同的功能,嵌入在您的編輯器中。[VS Code →](/docs/zh-TW/vs-code) |

452| "我必須先配置什麼嗎?" | 不。安裝,然後在任何儲存庫中執行 `claude`。執行一次 `/init`,您就設定好了。[快速入門 →](/docs/zh-TW/quickstart) |452| "我必須先配置什麼嗎?" | 不。安裝,然後在任何儲存庫中執行 `claude`。執行一次 `/init`,您就設定好了。[快速入門 →](/docs/zh-TW/quickstart) |

453| "我的程式碼去哪裡了?" | CLI 在您的終端中執行,並將上下文發送到 Anthropic 的 API 進行推理,沒有第三方伺服器。在 Team 或 Enterprise 計畫上,您的程式碼和提示不用於訓練模型。[資料使用 →](/docs/zh-TW/data-usage) |453| "我的程式碼去哪裡了?" | CLI 在您的終端機中執行,並將上下文發送到 Anthropic 的 API 進行推理。在 Team 或 Enterprise 計畫上,您的程式碼和提示詞不用於訓練模型。[資料使用 →](/docs/zh-TW/data-usage) |

454| "它能看到我的整個儲存庫嗎?" | 它讀取您給它存取權限的內容。您工作目錄內的檔案讀取不提示;許可提示控制編輯、非唯讀 shell 命令和該目錄外的檔案工具讀取。內建的一組唯讀 shell 命令(例如 `ls` 和 `cat`)無需提示即可執行;使用 [sandbox `denyRead` 規則](/docs/zh-TW/sandboxing#filesystem-isolation) 限制它。[許可 →](/docs/zh-TW/permissions) |454| "它能看到我的整個儲存庫嗎?" | 它讀取您給它存取權限的內容。您工作目錄內的檔案讀取不會提示。[權限 →](/docs/zh-TW/permissions) |

455| "這與 Copilot 有什麼不同?" | Copilot 自動完成行。Claude Code 是一個讀取檔案、執行命令和進行多檔案編輯的代理。[概述 →](/docs/zh-TW/overview) |455| "這與 Copilot 有什麼不同?" | Copilot 自動完成行。Claude Code 是一個讀取檔案、執行命令和進行多檔案編輯的代理。[概述 →](/docs/zh-TW/overview) |

456| "我應該首先嘗試什麼?" | 您一直在推遲的錯誤,因為它很乏味。"檔案 \[file] 中的測試不穩定,找出原因。" [快速入門 →](/docs/zh-TW/quickstart) |456| "我應該首先嘗試什麼?" | 您一直在推遲的錯誤,因為它很乏味。"檔案 \[file] 中的測試不穩定,找出原因。" [快速入門 →](/docs/zh-TW/quickstart) |

457 457 

Details

178 178 

179當工作階段 A 傳訊息給工作階段 B 時,Claude Code 會告訴 B 的 Claude 該訊息來自另一個工作階段,而不是來自您,並限制訊息可以執行的操作:179當工作階段 A 傳訊息給工作階段 B 時,Claude Code 會告訴 B 的 Claude 該訊息來自另一個工作階段,而不是來自您,並限制訊息可以執行的操作:

180 180 

181* **無法批准任何事項**:來自另一個工作階段的訊息永遠不會被視為您的同意,因此無法代表您回答待處理的權限提示。181* **無法核准任何事項**:來自另一個工作階段的訊息永遠不會被視為您的同意,因此無法代表您回答待處理的權限提示。

182* **無法變更設定**:Claude Code 指示接收端的 Claude 永遠不要變更權限設定、`CLAUDE.md` 或其他設定,因為另一個工作階段要求。182* **無法變更設定**:Claude Code 指示接收端的 Claude 永遠不要因為另一個工作階段的要求而變更權限設定、`CLAUDE.md` 或其他設定。

183* **命令不執行**:訊息文字中的命令(例如 `/compact`)會以純文字形式送達。Claude Code 永遠不會執行它。183* **命令不執行**:訊息文字中的命令(例如 `/compact`)會以純文字形式送達。Claude Code 永遠不會執行它。

184* **權限提示仍會觸發**:如果根據訊息採取行動需要接收工作階段沒有的權限,您會看到與任何其他工作相同的提示。184* **權限提示仍會觸發**:如果根據訊息採取行動需要接收工作階段沒有的權限,您會看到與任何其他工作相同的提示。

185 185 


191 191 

192以下任一方式都可以顯示完整文字:192以下任一方式都可以顯示完整文字:

193 193 

194* 按 `Ctrl+O` 開啟[文字記錄檢視器](/docs/zh-TW/interactive-mode#transcript-viewer),並在寄件者的工作階段名稱下閱讀完整文字。194* 按 `Ctrl+O` 開啟[逐字稿檢視器](/docs/zh-TW/interactive-mode#transcript-viewer),並在寄件者的工作階段名稱下閱讀完整文字。

195* 在以 [`--verbose`](/docs/zh-TW/cli-reference#cli-flags) 啟動的工作階段中,Claude Code 會顯示完整文字而不是預覽。195* 在以 [`--verbose`](/docs/zh-TW/cli-reference#cli-flags) 啟動的工作階段中,Claude Code 會顯示完整文字而不是預覽。

196 196 

197預覽只會縮短您看到的內容。無論您是否展開它,Claude 都會讀取完整訊息。197預覽只會縮短您看到的內容。無論您是否展開它,Claude 都會讀取完整訊息。


217| `hold` | Claude Code 為每條訊息顯示通知,不傳遞它。如果稍後應用 `accept`,根據[優先順序規則](/docs/zh-TW/settings-reference#crosssessioninbound),Claude Code 會釋放保留的訊息 |217| `hold` | Claude Code 為每條訊息顯示通知,不傳遞它。如果稍後應用 `accept`,根據[優先順序規則](/docs/zh-TW/settings-reference#crosssessioninbound),Claude Code 會釋放保留的訊息 |

218| `refuse` | Claude Code 丟棄每條訊息,不傳遞它 |218| `refuse` | Claude Code 丟棄每條訊息,不傳遞它 |

219 219 

220除了編輯設定檔外,您可以在 `/config` 列中選擇**來自您其他工作階段的訊息**的值。Claude Code 會將您選擇的值寫入您的使用者設定。該列需要 Claude Code v2.1.232 或更新版本,當受管設定或 `--settings` 旗標設定金鑰時不會出現,因為使用者設定值在那時不適用。Claude Code 拒絕此金鑰的 `/config crossSessionInbound=value` 簡寫。220除了編輯設定檔外,您可以在 `/config` 列中選擇**來自您其他工作階段的訊息**的值。Claude Code 會將您選擇的值寫入您的使用者設定。該列需要 Claude Code v2.1.232 或更新版本,當受管設定或 `--settings` 旗標設定此設定鍵時不會出現,因為使用者設定值在那時不適用。Claude Code 拒絕此設定鍵的 `/config crossSessionInbound=value` 簡寫。

221 221 

222若要查看適用的值,請遵循[設定參考](/docs/zh-TW/settings-reference#crosssessioninbound)中的 `crossSessionInbound` 優先順序規則。當沒有值適用時,Claude Code 會根據兩個工作階段的權限模式決定每條訊息。它將[略過權限提示](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode)的工作階段分組為一個類別,將所有其他工作階段分組為另一個類別。Plan Mode 在具有可用的略過權限的工作階段中計為略過,[auto](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)、`acceptEdits` 和 `dontAsk` 計為提示:222若要查看適用的值,請遵循[設定參考](/docs/zh-TW/settings-reference#crosssessioninbound)中的 `crossSessionInbound` 優先順序規則。

223 223 

224* **接收工作階段提示權限**:Claude Code 傳遞每條訊息。只有當傳送工作階段識別自己為略過權限提示時,它才會保留一條訊息以供您批准。224當沒有值適用時,Claude Code 會根據兩個工作階段的權限模式決定每條訊息。它將[略過權限提示](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode)的工作階段分組為一個類別,將所有其他工作階段分組為另一個類別。plan mode 在具有可用略過權限的互動式終端機工作階段中計為略過,[auto](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)、`acceptEdits` 和 `dontAsk` 計為提示:

225* **接收工作階段略過權限提示**:Claude Code 保留每條訊息以供您批准。只有當傳送工作階段識別自己也略過時,它才會傳遞一條訊息。

226 225 

227當預設保留訊息時,Claude Code 會在接收工作階段中開啟批准對話框。對話框顯示寄件者和預覽:226* **接收工作階段提示權限**:Claude Code 傳遞每條訊息。只有當傳送工作階段識別自己為略過權限提示時,它才會保留一條訊息以供您核准。

227* **接收工作階段略過權限提示**:Claude Code 保留每條訊息以供您核准。只有當傳送工作階段識別自己也略過時,它才會傳遞一條訊息。

228 228 

229* **批准**會將該訊息傳遞給 Claude。229當預設在互動式終端機工作階段中保留訊息時,Claude Code 會在該處開啟核准對話框。對話框顯示寄件者和預覽:

230* **拒絕**或關閉對話框會丟棄它。230 

231* **Approve** 會將該訊息傳遞給 Claude。

232* **Deny** 或關閉對話框會丟棄它。

231* 當對話框在 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 截止時間後仍未回答時,Claude Code 會關閉它並丟棄訊息。截止時間預設為五分鐘。233* 當對話框在 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 截止時間後仍未回答時,Claude Code 會關閉它並丟棄訊息。截止時間預設為五分鐘。

232* 當沒有終端連接到[背景工作階段](/docs/zh-TW/agent-view)時,Claude Code 會將對話框保持在截止時間之後。連接後,如果對話框在完整截止時間內仍未回答,Claude Code 會關閉它並丟棄訊息。234* 當沒有終端機連接到[背景工作階段](/docs/zh-TW/agent-view)時,Claude Code 會將對話框保持在截止時間之後。連接後,如果對話框在完整截止時間內仍未回答,Claude Code 會關閉它並丟棄訊息。

233* 如果此工作階段的權限模式類別在保留訊息時變更,Claude Code 會重新應用傳入規則,傳遞它們現在接受的訊息,並顯示通知。235* 如果此工作階段的權限模式類別在保留訊息時變更,Claude Code 會重新應用傳入規則,傳遞它們現在接受的訊息,並顯示通知。

234 236 

237VS Code 擴充功能或 Desktop 應用程式中的工作階段無法顯示該對話框。Claude Code 會在該處保留訊息直到相同的截止時間,如[非互動式工作階段](#non-interactive-sessions)所述。

238 

235Claude Code 最多保留 100 條訊息,超過該數量會丟棄最舊的訊息。239Claude Code 最多保留 100 條訊息,超過該數量會丟棄最舊的訊息。

236 240 

237<h3 id="non-interactive-sessions">241<h3 id="non-interactive-sessions">

238 非互動式工作階段242 非互動式工作階段

239</h3>243</h3>

240 244 

241Claude Code 為 [`claude -p`](/docs/zh-TW/headless) 工作階段綁定收件匣套接字,就像互動式工作階段一樣,因此長時間執行的 `-p` 背景工作程式可以接收訊息並出現在列表中。當您以[裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)啟動工作階段時,Claude Code 不會綁定套接字,因此該工作階段無法接收訊息,也不會出現在代理列表中。245Claude Code 為 [`claude -p`](/docs/zh-TW/headless) 工作階段綁定收件匣套接字,就像互動式工作階段一樣,因此長時間執行的 `-p` 背景工作程式可以接收訊息並出現在列表中。當您以 [bare 模式](/docs/zh-TW/headless#start-faster-with-bare-mode)啟動工作階段時,Claude Code 不會綁定套接字,因此該工作階段無法接收訊息,也不會出現在 agent 列表中。

242 246 

243`-p` 工作階段無法顯示批准對話框。當[傳入預設](#control-inbound-messages)在那裡保留訊息時,Claude Code 會為其保留相同的 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 截止時間,預設為五分鐘:247`-p` 工作階段無法顯示核准對話框。當[傳入預設](#control-inbound-messages)在那裡保留訊息時,Claude Code 會為其保留相同的 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 截止時間,預設為五分鐘:

244 248 

245* **在截止時間之前**:如果模式或設定變更允許訊息,Claude Code 會傳遞它。249* **在截止時間之前**:如果模式或設定變更允許訊息,Claude Code 會傳遞它。

246* **在截止時間之後**:Claude Code 會丟棄訊息,並向它可以到達的寄件者報告為已過期。250* **在截止時間之後**:Claude Code 會丟棄訊息,並向它可以到達的寄件者報告為已過期。


253 工作階段的收件匣套接字257 工作階段的收件匣套接字

254</h3>258</h3>

255 259 

256當您預期的工作階段不在代理列表中、當您想要指令碼或 hook 發佈到工作階段中,或當沙箱化命令無法到達套接字時,請閱讀本節。260當您預期的工作階段不在 agent 列表中、當您想要指令碼或 hook 發佈到工作階段中,或當沙箱化命令無法到達套接字時,請閱讀本節。

257 261 

258Claude Code 為啟用跨工作階段訊息的每個工作階段綁定收件匣套接字,其中機器上的其他工作階段傳遞訊息。套接字是 macOS 和 Linux 上的 Unix 網域套接字(包括 WSL 2 內的 Linux),以及原生 Windows 上的具名管道。有關哪些工作階段類型綁定一個,請參閱[非互動式工作階段](#non-interactive-sessions)。262Claude Code 為啟用跨工作階段訊息的每個工作階段綁定收件匣套接字,機器上的其他工作階段會透過它傳遞訊息。套接字是 macOS 和 Linux 上的 Unix 網域套接字(包括 WSL 2 內的 Linux),以及原生 Windows 上的具名管道。有關哪些工作階段類型綁定一個,請參閱[非互動式工作階段](#non-interactive-sessions)。

259 263 

260您可以在兩個位置找到套接字的路徑:264您可以在兩個位置找到套接字的路徑:

261 265 

262* `/status` 在 `Peer address` 列中顯示它。路徑前綴為 `uds:`。266* `/status` 在 `Peer address` 列中顯示它。路徑前綴為 `uds:`。

263* Claude Code 將其匯出到[hooks](/docs/zh-TW/hooks) 和 Bash 命令作為 [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/zh-TW/env-vars#variables) 環境變數:267* Claude Code 將其匯出到 [hooks](/docs/zh-TW/hooks) 和 Bash 命令作為 [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/zh-TW/env-vars#variables) 環境變數:

264 * 在以訊息開啟啟動的工作階段中,Claude Code 在任何 hook 執行前匯出變數,包括 `SessionStart`。268 * 在以訊息開啟啟動的工作階段中,Claude Code 在任何 hook 執行前匯出變數,包括 `SessionStart`。

265 269 

266在 macOS 和 Linux 上,Claude Code 將套接字限制為您的作業系統使用者。在原生 Windows 上,它改為要求每個連線首先使用只有您的作業系統使用者可以讀取的金鑰進行驗證。無論哪種方式,在共享機器上,另一個使用者的工作階段無法傳遞到它。270在 macOS 和 Linux 上,Claude Code 將套接字限制為您的作業系統使用者。在原生 Windows 上,它改為要求每個連線首先使用只有您的作業系統使用者可以讀取的金鑰進行驗證。無論哪種方式,在共享機器上,另一個使用者的工作階段無法傳遞到它。

267 271 

268在 macOS 和 Linux 上,Claude Code 也拒絕在無法接受的目錄中建立套接字,例如另一個使用者擁有的目錄,並改為使用私人的每使用者目錄 `/tmp/cc-socks-<uid>`。當它無法接受任何目錄時,工作階段會在沒有收件匣的情況下執行:Claude Code 會顯示通知,`/status` 在其 `Peer address` 列中顯示 `unavailable` 和原因,[`--debug`](/docs/zh-TW/cli-reference#cli-flags) 日誌會記錄完整拒絕。272在 macOS 和 Linux 上,Claude Code 也拒絕在無法接受的目錄中建立套接字,例如另一個使用者擁有的目錄,並改為使用私人的每使用者目錄 `/tmp/cc-socks-<uid>`。當它無法接受任何目錄時,工作階段會在沒有收件匣的情況下執行:Claude Code 會顯示通知,`/status` 在其 `Peer address` 列中顯示 `unavailable` 和原因,[`--debug`](/docs/zh-TW/cli-reference#cli-flags) 日誌會記錄完整拒絕。

269 273 

270除了套接字的路徑外,Claude Code 還會匯出每個工作階段的權杖作為 [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-TW/env-vars#variables)。發佈到其自己工作階段套接字的指令碼可以發送 `{"type":"auth","token":"<token>"}` 作為其連線的第一行,其中 `<token>` 是 `CLAUDE_CODE_MESSAGING_TOKEN` 的值。Claude Code 是否需要該行取決於平台:274除了套接字的路徑外,Claude Code 還會匯出每個工作階段的 token 作為 [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-TW/env-vars#variables)。發佈到其自己工作階段套接字的指令碼可以發送 `{"type":"auth","token":"<token>"}` 作為其連線的第一行,其中 `<token>` 是 `CLAUDE_CODE_MESSAGING_TOKEN` 的值。Claude Code 是否需要該行取決於平台:

271 275 

272* **macOS 和 Linux,包括 WSL 2**:該行是選擇性的。Claude Code 接受有或沒有它的連線。276* **macOS 和 Linux,包括 WSL 2**:該行是選擇性的。Claude Code 接受有或沒有它的連線。

273* **原生 Windows**:該行是必需的。Claude Code 會關閉任何第一行不是有效驗證行的連線,並且不會從該連線傳遞任何內容。277* **原生 Windows**:該行是必需的。Claude Code 會關閉任何第一行不是有效驗證行的連線,並且不會從該連線傳遞任何內容。

274 278 

275只有在您要發佈的訊息準備好時才開啟連線。Claude Code 會關閉在 30 秒內未發送完整行的連線,因此請先擷取緩慢命令的輸出,然後開啟連線以發送它。279只有在您要發佈的訊息準備好時才開啟連線。Claude Code 會關閉在 30 秒內未發送完整行的連線,因此請先擷取緩慢命令的輸出,然後開啟連線以發送它。

276 280 

277<span id="own-child-messages" />Claude Code 會透過與任何其他對等訊息相同的[傳入控制](#control-inbound-messages)執行到達套接字的訊息,但有一個例外和一個先決條件:281<span id="own-child-messages" />Claude Code 會透過與任何其他對等訊息相同的[傳入控制](#control-inbound-messages)處理到達套接字的訊息,但有一個例外和一個先決條件:

278 282 

279* **自有子訊息**:當沒有 `crossSessionInbound` 值適用時,Claude Code 會傳遞它驗證來自工作階段自己的子程序的訊息,例如 hook 或 Bash 命令發佈回其自己工作階段的套接字。283* **自有子訊息**:當沒有 `crossSessionInbound` 值適用時,Claude Code 會傳遞它驗證來自工作階段自己的子程序的訊息,例如 hook 或 Bash 命令發佈回其自己工作階段的套接字。

280 * 在 Linux 上(包括 WSL 2 內),Claude Code 即使對於已經退出的子程序也可以透過程序證據進行驗證。在 macOS 上,它只能在發佈程序仍在執行時以這種方式驗證,在 Claude Code 作為程序 ID 1 執行的容器中,它根本沒有程序證據。在原生 Windows 上也沒有。284 * 在 Linux 上(包括 WSL 2 內),Claude Code 即使對於已經退出的子程序也可以透過程序證據進行驗證。在 macOS 上,它只能在發佈程序仍在執行時以這種方式驗證,在 Claude Code 作為程序 ID 1 執行的容器中,它根本沒有程序證據。在原生 Windows 上也沒有。

281 * 在 macOS 上發佈程序已退出後,以及在 Claude Code 作為程序 ID 1 執行的容器中,該程序證據遺失,Claude Code 改為驗證在開啟其連線的驗證行中發送工作階段匯出的 [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-TW/env-vars#variables) 的子程序。在原生 Windows 上,該權杖是 Claude Code 驗證自有子訊息的唯一方式。285 * 在 macOS 上發佈程序已退出後,以及在 Claude Code 作為程序 ID 1 執行的容器中,該程序證據遺失,Claude Code 改為驗證在開啟其連線的驗證行中發送工作階段匯出的 [`CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-TW/env-vars#variables) 的子程序。在原生 Windows 上,該 token 是 Claude Code 驗證自有子訊息的唯一方式。

282 * 當 Claude Code 無法以任何方式驗證時,它會將訊息視為任何其他不聲稱權限類別的訊息,因此略過權限提示的工作階段會為您的批准保留它。286 * 當 Claude Code 無法以任何方式驗證時,它會將訊息視為任何其他不聲稱權限類別的訊息,因此略過權限提示的工作階段會保留它以供您核准。

283* **沙箱化工作階段**:使用沙箱的 Unix 套接字設定 [`sandbox.network.allowAllUnixSockets` 和 `sandbox.network.allowUnixSockets`](/docs/zh-TW/settings-reference#sandbox-settings) 控制 Bash 命令是否可以從[沙箱](/docs/zh-TW/sandboxing)內到達套接字。287* **沙箱化工作階段**:使用沙箱的 Unix 套接字設定 [`sandbox.network.allowAllUnixSockets` 和 `sandbox.network.allowUnixSockets`](/docs/zh-TW/settings-reference#sandbox-settings) 控制 Bash 命令是否可以從[沙箱](/docs/zh-TW/sandboxing)內到達套接字。

284 288 

285<h2 id="restrict-cross-session-messaging">289<h2 id="restrict-cross-session-messaging">

env-vars.md +310 −308

Details

127逾時、token 預算與重試次數等數值變數,除了純數字之外,也接受科學記號與數字分隔符號的寫法,但變數所在列註明僅接受純數字者除外。例如,Claude Code 會將 `2e3` 讀取為 2000,將 `64_000` 讀取為 64000。在 v2.1.211 之前,這些寫法可能會在無任何提示的情況下設定成小得多的值,例如 `1e6` 會將逾時設定為 1。127逾時、token 預算與重試次數等數值變數,除了純數字之外,也接受科學記號與數字分隔符號的寫法,但變數所在列註明僅接受純數字者除外。例如,Claude Code 會將 `2e3` 讀取為 2000,將 `64_000` 讀取為 64000。在 v2.1.211 之前,這些寫法可能會在無任何提示的情況下設定成小得多的值,例如 `1e6` 會將逾時設定為 1。

128 128 

129<Note>129<Note>

130 對於開啟或關閉某項行為的變數,設定 `1`、`true`、`yes` 或 `on` 即可開啟,設定 `0`、`false`、`no` 或 `off` 即可關閉,大小寫不拘。130 對於開啟或關閉某項行為的變數,設定 `1`、`true`、`yes` 或 `on` 可將其開啟,設定 `0`、`false`、`no` 或 `off` 可將其關閉,不區分大小寫。

131 131 

132 有些變數只判斷是否有設定,因此任何非空值(包括 `0`)都會開啟該行為,若要關閉該行為,請取消設定該變數或將其設為空值。以下變數採用這種方式:132 部分變數只判斷是否有設定,因此任何非空值(包括 `0`)都會開啟該行為,若要關閉該行為,請取消設定該變數或將其設為空值。以下變數採用此方式:

133 133 

134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`134 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

135 * `DISABLE_TELEMETRY`135 * `DISABLE_TELEMETRY`


138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`138 * `FALLBACK_FOR_ALL_PRIMARY_MODELS`

139 * `IS_DEMO`139 * `IS_DEMO`

140 140 

141 另有一個變數有其自身的規則:`FORCE_HYPERLINK` 讀取的是數字,因此只有 `0` 會將其關閉。每個變數所在列也會說明其自身的規則。141 另有一個變數有其專屬規則:`FORCE_HYPERLINK` 讀取的是數字,因此只有 `0` 會將其關閉。每個變數所在列也會說明其專屬規則。

142</Note>142</Note>

143 143 

144| 變數 | 用途 |144| 變數 | 用途 |

145| :- | :- |145| :- | :- |

146| `ANTHROPIC_API_KEY` | 以 `X-Api-Key` 標頭傳送的 API 金鑰。設定後,即使您已登入,也會使用此金鑰,而非您的 Claude Pro、Max、Team 或 Enterprise 訂閱。在非互動模式(`-p`)中,只要存在此金鑰就一律會使用。在互動模式中,系統會在該金鑰覆寫您的訂閱之前,提示您核准一次。若要改用您的訂閱,請執行 `unset ANTHROPIC_API_KEY` |146| `ANTHROPIC_API_KEY` | 以 `X-Api-Key` 標頭傳送的 API 金鑰。設定後,即使您已登入,也會使用此金鑰,而非您的 Claude Pro、Max、Team 或 Enterprise 訂閱。在非互動模式(`-p`)中,只要存在此金鑰就一律會使用。在互動模式中,系統會在此金鑰覆寫您的訂閱之前,提示您核准一次。若要改用您的訂閱,請執行 `unset ANTHROPIC_API_KEY` |

147| `ANTHROPIC_AUTH_TOKEN` | `Authorization` 標頭的自訂值(您在此設定的值會加上 `Bearer ` 前綴) |147| `ANTHROPIC_AUTH_TOKEN` | `Authorization` 標頭的自訂值(您在此設定的值會加上 `Bearer ` 前綴) |

148| `ANTHROPIC_AWS_API_KEY` | [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 的工作區 API 金鑰,於 AWS Console 中產生。以 `x-api-key` 傳送,且優先於 AWS SigV4 |148| `ANTHROPIC_AWS_API_KEY` | [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 的工作區 API 金鑰,於 AWS Console 中產生。以 `x-api-key` 傳送,且優先於 AWS SigV4 |

149| `ANTHROPIC_AWS_BASE_URL` | 覆寫 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 端點 URL。用於自訂區域,或透過 [LLM 閘道](/docs/zh-TW/llm-gateway)路由時。預設為 `https://aws-external-anthropic.{region}.api.aws`。Claude Code 會以[與 Amazon Bedrock 相同的優先順序](/docs/zh-TW/amazon-bedrock#3-configure-claude-code)解析區域 |149| `ANTHROPIC_AWS_BASE_URL` | 覆寫 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 端點 URL。用於自訂區域,或透過 [LLM 閘道](/docs/zh-TW/llm-gateway)路由時。預設為 `https://aws-external-anthropic.{region}.api.aws`。Claude Code 會以[與 Amazon Bedrock 相同的優先順序](/docs/zh-TW/amazon-bedrock#3-configure-claude-code)解析區域 |

150| `ANTHROPIC_AWS_WORKSPACE_ID` | [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 的必要項目。會在每個請求中以 `anthropic-workspace-id` 標頭傳送 |150| `ANTHROPIC_AWS_WORKSPACE_ID` | [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 的必要項目。在每個請求中以 `anthropic-workspace-id` 標頭傳送 |

151| `ANTHROPIC_BASE_URL` | 覆寫 API 端點,以透過代理伺服器或閘道路由請求。若設定為非第一方主機,[MCP tool search](/docs/zh-TW/mcp#scale-with-mcp-tool-search) 預設會停用。如果您的代理伺服器會轉送 `tool_reference` 區塊,請設定 `ENABLE_TOOL_SEARCH=true`。自 v2.1.196 起,當此變數指向 `api.anthropic.com` 以外的主機時,[Remote Control](/docs/zh-TW/remote-control#requirements) 會停用,與其在 Amazon Bedrock、Google Cloud's Agent Platform 及 Microsoft Foundry 上的行為一致 |151| `ANTHROPIC_BASE_URL` | 覆寫 API 端點,以透過代理伺服器或閘道路由請求。設定為非第一方主機時,[MCP Tool Search](/docs/zh-TW/mcp#scale-with-mcp-tool-search) 預設會停用。如果您的代理伺服器會轉送 `tool_reference` 區塊,請設定 `ENABLE_TOOL_SEARCH=true`。自 v2.1.196 起,當此變數指向 `api.anthropic.com` 以外的主機時,[Remote Control](/docs/zh-TW/remote-control#requirements) 會停用,與其在 Amazon Bedrock、Google Cloud's Agent Platform 及 Microsoft Foundry 上的行為一致 |

152| `ANTHROPIC_BEDROCK_BASE_URL` | 覆寫 Amazon Bedrock 端點 URL。用於自訂的 Amazon Bedrock 端點,或透過 [LLM 閘道](/docs/zh-TW/llm-gateway)路由時。請參閱 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | 覆寫 Amazon Bedrock 端點 URL。用於自訂 Amazon Bedrock 端點,或透過 [LLM 閘道](/docs/zh-TW/llm-gateway)路由時。請參閱 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | 覆寫 Amazon Bedrock Mantle 端點 URL。請參閱 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint) |153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | 覆寫 Amazon Bedrock Mantle 端點 URL。請參閱 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint) |

154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Claude Code 優先嘗試的跨區域推論設定檔前綴(`us`、`eu`、`apac`、`jp`、`au` 或 `global`),取代從 AWS 區域推導出的前綴。在 AWS GovCloud 區域中會被忽略。需要 Claude Code v2.1.224 或更新版本。請參閱 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock#cross-region-inference-profile-prefixes) |154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Claude Code 優先嘗試的跨區域推論設定檔前綴(`us`、`eu`、`apac`、`jp`、`au` 或 `global`),取代從 AWS 區域推導出的前綴。在 AWS GovCloud 區域中會被忽略。需要 Claude Code v2.1.224 或更新版本。請參閱 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock#cross-region-inference-profile-prefixes) |

155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Amazon Bedrock [服務層級](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html)(`default`、`flex` 或 `priority`)。以 `X-Amzn-Bedrock-Service-Tier` 標頭傳送。請參閱 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock#service-tiers) |155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | Amazon Bedrock [服務層級](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html)(`default`、`flex` 或 `priority`)。以 `X-Amzn-Bedrock-Service-Tier` 標頭傳送。請參閱 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock#service-tiers) |

156| `ANTHROPIC_BETAS` | 要包含在 API 請求中的額外 `anthropic-beta` 標頭值,以逗號分隔。Claude Code 已會傳送其所需的 beta 標頭;您可使用此變數,在 Claude Code 加入原生支援之前選擇加入某項 [Anthropic API beta](https://platform.claude.com/docs/en/api/beta-headers)。與需要 API 金鑰身分驗證的 [`--betas` 旗標](/docs/zh-TW/cli-reference#cli-flags)不同,此變數適用於所有驗證方式,包括 Claude.ai 訂閱 |156| `ANTHROPIC_BETAS` | 要包含在 API 請求中的額外 `anthropic-beta` 標頭值,以逗號分隔。Claude Code 已會傳送其所需的 beta 標頭;在 Claude Code 加入原生支援之前,可使用此變數選擇加入 [Anthropic API beta](https://platform.claude.com/docs/en/api/beta-headers)。與需要 API 金鑰身分驗證的 [`--betas` 旗標](/docs/zh-TW/cli-reference#cli-flags)不同,此變數適用於所有驗證方式,包括 Claude.ai 訂閱 |

157| `ANTHROPIC_CUSTOM_HEADERS` | 要加入請求的自訂標頭(`Name: Value` 格式,多個標頭以換行分隔)。如果名稱或值包含 HTTP 標頭無法承載的字元,例如彎引號或零寬空格,請求會失敗,並顯示依位置指出該組名稱與值的錯誤。需要 Claude Code v2.1.227 或更新版本。[無效的請求標頭值](/docs/zh-TW/errors#invalid-request-header-value)列出了確切的字元集以及檢查執行的位置。若某個值設定的是憑證、組織或租用戶、路由或 API 行為相關的標頭,例如 `Authorization` 或 `Host`,當由伺服器管理的設定傳遞時,該值會被視為[需要核准的設定](/docs/zh-TW/server-managed-settings#environment-variables-and-the-approval-dialog)。若來自專案或本機設定,此類值會遵循[`env` 值何時套用的規則](/docs/zh-TW/settings-reference#when-claude-code-applies-env-values) |157| `ANTHROPIC_CUSTOM_HEADERS` | 要加入請求的自訂標頭(`Name: Value` 格式,多個標頭以換行分隔)。如果名稱或值包含 HTTP 標頭無法承載的字元,例如彎引號或零寬空格,請求會失敗,並顯示依位置指出該組標頭的錯誤。需要 Claude Code v2.1.227 或更新版本。[Invalid request header value](/docs/zh-TW/errors#invalid-request-header-value) 列出確切的字元集以及檢查執行的位置。設定憑證、組織或租用戶、路由或 API 行為標頭(例如 `Authorization` 或 `Host`)的值,在由伺服器管理的設定傳遞時,會被視為[需要核准的設定](/docs/zh-TW/server-managed-settings#environment-variables-and-the-approval-dialog)。若來自專案或本機設定,此類值會遵循[何時套用 `env` 值的規則](/docs/zh-TW/settings-reference#when-claude-code-applies-env-values) |

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | 要在 `/model` 選擇器中新增為自訂項目的模型 ID。使用此變數可讓非標準或閘道專屬的模型可供選取,而不會取代內建別名。請參閱[模型設定](/docs/zh-TW/model-config#add-a-custom-model-option) |158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | 要在 `/model` 選擇器中新增為自訂項目的模型 ID。可用此變數讓非標準或閘道專屬的模型可供選擇,而不取代內建別名。請參閱[模型設定](/docs/zh-TW/model-config#add-a-custom-model-option) |

159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | `/model` 選擇器中自訂模型項目的顯示說明。未設定時預設為 `Custom model (<model-id>)` |159| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | `/model` 選擇器中自訂模型項目的顯示說明。未設定時預設為 `Custom model (<model-id>)` |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | `/model` 選擇器中自訂模型項目的顯示名稱。未設定時,如果 Claude Code [能辨識該 ID](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities),項目會顯示模型名稱,否則顯示模型 ID |160| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | `/model` 選擇器中自訂模型項目的顯示名稱。未設定時,如果 Claude Code [能辨識該 ID](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities),項目會顯示模型名稱,否則顯示模型 ID |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | 自訂模型所支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities)清單,以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |161| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | 自訂模型支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities),以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` 別名所解析成的模型 ID,也是 Claude Code 在第三方供應商上進行[自動模型備援](/docs/zh-TW/model-config#automatic-model-fallback)時辨識為 Fable 模型的 ID。請參閱[模型設定](/docs/zh-TW/model-config#environment-variables) |162| `ANTHROPIC_DEFAULT_FABLE_MODEL` | `fable` 別名所解析成的模型 ID,也是 Claude Code 在第三方供應商上為[自動模型備援](/docs/zh-TW/model-config#automatic-model-fallback)辨識為 Fable 模型的 ID。請參閱[模型設定](/docs/zh-TW/model-config#environment-variables) |

163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Fable 模型的顯示說明。未設定時,該列會顯示以 `Custom Fable model` 開頭的預設說明。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |163| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Fable 模型的顯示說明。未設定時,該列會顯示以 `Custom Fable model` 開頭的預設說明。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | `/model` 選擇器中固定 Fable 模型的顯示名稱。未設定時,如果 Claude Code 能辨識固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |164| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | `/model` 選擇器中固定 Fable 模型的顯示名稱。未設定時,如果 Claude Code 能辨識固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | 固定 Fable 模型所支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities)清單,以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |165| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | 固定 Fable 模型支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities),以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` 別名所解析成的模型 ID,也用於[背景功能](/docs/zh-TW/costs#background-token-usage)。請參閱[模型設定](/docs/zh-TW/model-config#environment-variables) |166| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | `haiku` 別名所解析成的模型 ID,也用於[背景功能](/docs/zh-TW/costs#background-token-usage)。請參閱[模型設定](/docs/zh-TW/model-config#environment-variables) |

167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Haiku 模型的顯示說明。未設定時,該列會顯示以 `Custom Haiku model` 開頭的預設說明。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Haiku 模型的顯示說明。未設定時,該列會顯示以 `Custom Haiku model` 開頭的預設說明。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | `/model` 選擇器中固定 Haiku 模型的顯示名稱。未設定時,如果 Claude Code 能辨識固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |168| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | `/model` 選擇器中固定 Haiku 模型的顯示名稱。未設定時,如果 Claude Code 能辨識固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | 固定 Haiku 模型所支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities)清單,以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | 固定 Haiku 模型支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities),以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_MODEL` | 新工作階段預設啟動時使用的模型。需要 Claude Code v2.1.236 或更新版本。請參閱[為新工作階段設定預設模型](/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) |170| `ANTHROPIC_DEFAULT_MODEL` | 新工作階段預設啟動時使用的模型。需要 Claude Code v2.1.236 或更新版本。請參閱[為新工作階段設定預設模型](/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) |

171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` 別名所解析成的模型 ID,也是 `opusplan` 在 Plan Mode 啟用時使用的模型。請參閱[模型設定](/docs/zh-TW/model-config#environment-variables) |171| `ANTHROPIC_DEFAULT_OPUS_MODEL` | `opus` 別名所解析成的模型 ID,也是 `opusplan` 在 Plan Mode 啟用時使用的模型。請參閱[模型設定](/docs/zh-TW/model-config#environment-variables) |

172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Opus 模型的顯示說明。未設定時,該列會顯示以 `Custom Opus model` 開頭的預設說明。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |172| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Opus 模型的顯示說明。未設定時,該列會顯示以 `Custom Opus model` 開頭的預設說明。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` 選擇器中固定 Opus 模型的顯示名稱。未設定時,如果 Claude Code 能辨識固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |173| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` 選擇器中固定 Opus 模型的顯示名稱。未設定時,如果 Claude Code 能辨識固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 固定 Opus 模型所支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities)清單,以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 固定 Opus 模型支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities),以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` 別名所解析成的模型 ID,也是 `opusplan` 在 Plan Mode 未啟用時使用的模型。請參閱[模型設定](/docs/zh-TW/model-config#environment-variables) |175| `ANTHROPIC_DEFAULT_SONNET_MODEL` | `sonnet` 別名所解析成的模型 ID,也是 `opusplan` 在 Plan Mode 未啟用時使用的模型。請參閱[模型設定](/docs/zh-TW/model-config#environment-variables) |

176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Sonnet 模型的顯示說明。未設定時,該列會顯示以 `Custom Sonnet model` 開頭的預設說明。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |176| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Sonnet 模型的顯示說明。未設定時,該列會顯示以 `Custom Sonnet model` 開頭的預設說明。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | `/model` 選擇器中固定 Sonnet 模型的顯示名稱。未設定時,如果 Claude Code 能辨識固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |177| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | `/model` 選擇器中固定 Sonnet 模型的顯示名稱。未設定時,如果 Claude Code 能辨識固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | 固定 Sonnet 模型所支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities)清單,以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | 固定 Sonnet 模型支援的[功能](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities),以逗號分隔,例如 `effort,thinking`。請參閱[模型設定](/docs/zh-TW/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_FEDERATION_RULE_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的聯合規則 ID。當您將其與 `ANTHROPIC_ORGANIZATION_ID` 一起設定時,Claude Code 會選用聯合憑證,其優先順序高於您的 `/login` 憑證。請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence) |179| `ANTHROPIC_FEDERATION_RULE_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的聯合規則 ID。當您將其與 `ANTHROPIC_ORGANIZATION_ID` 一起設定時,Claude Code 會選用聯合憑證,其排序高於您的 `/login` 憑證。請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence) |

180| `ANTHROPIC_FOUNDRY_API_KEY` | 用於 Microsoft Foundry 身分驗證的 API 金鑰(請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)) |180| `ANTHROPIC_FOUNDRY_API_KEY` | 用於 Microsoft Foundry 身分驗證的 API 金鑰(請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)) |

181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | 用於 Microsoft Foundry 身分驗證的 Bearer token,例如 Microsoft Entra 存取 token。Claude Code 會將其以 `Authorization: Bearer` 標頭傳送。優先於 `ANTHROPIC_FOUNDRY_API_KEY` 及 Azure 預設憑證鏈。請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)。需要 Claude Code v2.1.203 或更新版本 |181| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | 用於 Microsoft Foundry 身分驗證的 Bearer token,例如 Microsoft Entra 存取 token。Claude Code 會將其以 `Authorization: Bearer` 標頭傳送。優先於 `ANTHROPIC_FOUNDRY_API_KEY` 以及 Azure 預設憑證鏈。請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)。需要 Claude Code v2.1.203 或更新版本 |

182| `ANTHROPIC_FOUNDRY_BASE_URL` | Microsoft Foundry 資源的完整基礎 URL(例如 `https://my-resource.services.ai.azure.com/anthropic`)。可替代 `ANTHROPIC_FOUNDRY_RESOURCE`(請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)) |182| `ANTHROPIC_FOUNDRY_BASE_URL` | Microsoft Foundry 資源的完整基礎 URL(例如 `https://my-resource.services.ai.azure.com/anthropic`)。為 `ANTHROPIC_FOUNDRY_RESOURCE` 的替代方式(請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 資源名稱(例如 `my-resource`)。Claude Code [會拒絕 URL 或主機名稱](/docs/zh-TW/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name)。若未設定 `ANTHROPIC_FOUNDRY_BASE_URL` 則為必要項目(請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 資源名稱(例如 `my-resource`)。Claude Code [會拒絕 URL 或主機名稱](/docs/zh-TW/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name)。若未設定 `ANTHROPIC_FOUNDRY_BASE_URL`,則為必要項目(請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)) |

184| `ANTHROPIC_MODEL` | 要使用的模型設定名稱(請參閱[模型設定](/docs/zh-TW/model-config#environment-variables)) |184| `ANTHROPIC_MODEL` | 要使用的模型設定名稱(請參閱[模型設定](/docs/zh-TW/model-config#environment-variables)) |

185| `ANTHROPIC_ORGANIZATION_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的組織 ID。請將其與 `ANTHROPIC_FEDERATION_RULE_ID` 一起設定。請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence) |185| `ANTHROPIC_ORGANIZATION_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的組織 ID。請與 `ANTHROPIC_FEDERATION_RULE_ID` 一起設定。請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence) |

186| `ANTHROPIC_PROFILE` | 用於身分驗證的 Anthropic 設定檔名稱,例如由 [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) 建立的設定檔,或[不使用 API 金鑰登入 Console 帳戶](/docs/zh-TW/authentication#sign-in-without-an-api-key)時建立的設定檔。請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence) |186| `ANTHROPIC_PROFILE` | 用於身分驗證的 Anthropic 設定檔名稱,例如由 [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) 或[在沒有 API 金鑰的情況下登入 Console 帳戶](/docs/zh-TW/authentication#sign-in-without-an-api-key)所建立的設定檔。請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence) |

187| `ANTHROPIC_SMALL_FAST_MODEL` | \[已棄用] [用於背景任務的 Haiku 級模型](/docs/zh-TW/costs)名稱 |187| `ANTHROPIC_SMALL_FAST_MODEL` | \[已棄用] [用於背景任務的 Haiku 等級模型](/docs/zh-TW/costs)名稱 |

188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | 使用 Amazon Bedrock 或 Amazon Bedrock Mantle 時,覆寫 Haiku 級模型的 AWS 區域。在 Amazon Bedrock 上,只有同時設定 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 或已棄用的 `ANTHROPIC_SMALL_FAST_MODEL` 時才會生效,因為否則 Amazon Bedrock 會在工作階段區域中以[預設 Sonnet 模型或主要模型](/docs/zh-TW/amazon-bedrock#4-pin-model-versions)執行背景任務 |188| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | 使用 Amazon Bedrock 或 Amazon Bedrock Mantle 時,覆寫 Haiku 等級模型的 AWS 區域。在 Amazon Bedrock 上,只有在同時設定 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 或已棄用的 `ANTHROPIC_SMALL_FAST_MODEL` 時才會生效,因為否則 Amazon Bedrock 會在工作階段區域中以[預設 Sonnet 模型或主要模型](/docs/zh-TW/amazon-bedrock#4-pin-model-versions)執行背景任務 |

189| `ANTHROPIC_VERTEX_BASE_URL` | 覆寫 Google Cloud's Agent Platform 端點 URL。用於自訂的 Google Cloud's Agent Platform 端點,或透過 [LLM 閘道](/docs/zh-TW/llm-gateway)路由時。請參閱 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai) |189| `ANTHROPIC_VERTEX_BASE_URL` | 覆寫 Google Cloud's Agent Platform 端點 URL。用於自訂 Google Cloud's Agent Platform 端點,或透過 [LLM 閘道](/docs/zh-TW/llm-gateway)路由時。請參閱 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai) |

190| `ANTHROPIC_VERTEX_PROJECT_ID` | Google Cloud's Agent Platform 請求所指向的 GCP 專案 ID。請參閱[設定 GCP 憑證](/docs/zh-TW/google-vertex-ai#3-configure-gcp-credentials) |190| `ANTHROPIC_VERTEX_PROJECT_ID` | Google Cloud's Agent Platform 請求所指向的 GCP 專案 ID。請參閱[設定 GCP 憑證](/docs/zh-TW/google-vertex-ai#3-configure-gcp-credentials) |

191| `ANTHROPIC_WORKSPACE_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的工作區 ID。當您的聯合規則範圍涵蓋多個工作區時請設定此變數,讓 token 交換得知要以哪個工作區為目標 |191| `ANTHROPIC_WORKSPACE_ID` | [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的工作區 ID。當您的聯合規則範圍涵蓋多個工作區時請設定此變數,讓 token 交換知道要以哪個工作區為目標 |

192| `API_FORCE_IDLE_TIMEOUT` | 覆寫 5 分鐘的主體閒置逾時;當沒有任何位元組抵達時,此逾時會中止串流模型回應。設定為 `0` 可關閉此逾時,例如當速度較慢的[閘道](/docs/zh-TW/llm-gateway)或本機模型在區塊之間暫停超過 5 分鐘時;設定為 `1` 則可讓所有供應商都保持開啟。未設定時,此逾時會在直接 Anthropic API、[Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws),以及設定了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 以外的供應商上啟用。[串流監控程式](/docs/zh-TW/network-config#streaming-idle-watchdogs)與其獨立運作,即使您在此設定 `0`,仍會中止長時間無回應的暫停 |192| `API_FORCE_IDLE_TIMEOUT` | 覆寫 5 分鐘的主體閒置逾時,此逾時會在沒有任何位元組抵達時中止串流模型回應。設為 `0` 可關閉此逾時,例如當緩慢的[閘道](/docs/zh-TW/llm-gateway)或本機模型在區塊之間暫停超過 5 分鐘時;設為 `1` 則會對每個供應商保持開啟。未設定時,此逾時會在直接 Anthropic API、[Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws),以及設定了 `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` 的 Amazon Bedrock 以外的供應商上啟用。[串流監控程式](/docs/zh-TW/network-config#streaming-idle-watchdogs)獨立於此運作,即使您在此設定 `0`,也會中止長時間無回應的暫停 |

193| `API_TIMEOUT_MS` | API 請求的逾時時間,以毫秒為單位(預設:600000,即 10 分鐘;最大值:2147483647)。當請求在速度較慢的網路上逾時,或透過代理伺服器路由時,請提高此值。超過最大值會導致底層計時器溢位,使請求立即失敗 |193| `API_TIMEOUT_MS` | API 請求的逾時,以毫秒為單位(預設:600000,即 10 分鐘;最大值:2147483647)。當請求在緩慢網路上逾時,或透過代理伺服器路由時,請調高此值。超過最大值的值會使底層計時器溢位,並導致請求立即失敗 |

194| `AWS_BEARER_TOKEN_BEDROCK` | 用於身分驗證的 Amazon Bedrock API 金鑰(請參閱 [Amazon Bedrock API 金鑰](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |194| `AWS_BEARER_TOKEN_BEDROCK` | 用於身分驗證的 Amazon Bedrock API 金鑰(請參閱 [Amazon Bedrock API 金鑰](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

195| `BASH_DEFAULT_TIMEOUT_MS` | 前景 Bash 或 PowerShell 工具命令的預設逾時,以毫秒為單位(預設:120000,即 2 分鐘)。超過 30 分鐘的預設值也會成為無人看管工作階段中[背景命令的預設時間限制](/docs/zh-TW/tools-reference#time-limit-for-background-commands)。背景時間限制需要 Claude Code v2.1.285 或更新版本 |195| `BASH_DEFAULT_TIMEOUT_MS` | 前景 Bash 或 PowerShell 工具命令的預設逾時,以毫秒為單位(預設:120000,即 2 分鐘)。超過 30 分鐘的預設值也會成為無人值守工作階段中[背景命令的預設時間限制](/docs/zh-TW/tools-reference#time-limit-for-background-commands)。背景時間限制需要 Claude Code v2.1.285 或更新版本 |

196| `BASH_MAX_OUTPUT_LENGTH` | Claude Code 讀回命令結果中的 bash 輸出最大字元數(預設:30000;最大值:150000)。如果您設定了 [`bashOutputMaxChars`](/docs/zh-TW/settings-reference#bashoutputmaxchars) 設定,Claude Code 會忽略此變數。請參閱[輸出限制](/docs/zh-TW/tools-reference#output-limits) |196| `BASH_MAX_OUTPUT_LENGTH` | Claude Code 讀回命令結果中的 bash 輸出最大字元數(預設:30000;最大值:150000)。如果您設定了 [`bashOutputMaxChars`](/docs/zh-TW/settings-reference#bashoutputmaxchars) 設定,Claude Code 會忽略此變數。請參閱[輸出限制](/docs/zh-TW/tools-reference#output-limits) |

197| `BASH_MAX_TIMEOUT_MS` | 模型可為前景 Bash 或 PowerShell 工具命令設定的最大逾時,以毫秒為單位(預設:600000,即 10 分鐘)。有效上限為此值與 `BASH_DEFAULT_TIMEOUT_MS` 中的較大者。超過 2 小時的有效上限也會成為無人看管工作階段中[背景命令的最大時間限制](/docs/zh-TW/tools-reference#time-limit-for-background-commands)。背景時間限制需要 Claude Code v2.1.285 或更新版本 |197| `BASH_MAX_TIMEOUT_MS` | 模型可為前景 Bash 或 PowerShell 工具命令設定的最大逾時,以毫秒為單位(預設:600000,即 10 分鐘)。實際上限為此值與 `BASH_DEFAULT_TIMEOUT_MS` 兩者中較大者。超過 2 小時的實際上限也會成為無人值守工作階段中[背景命令的最大時間限制](/docs/zh-TW/tools-reference#time-limit-for-background-commands)。背景時間限制需要 Claude Code v2.1.285 或更新版本 |

198| `BETA_TRACING_ENDPOINT` | [詳細 beta 追蹤](/docs/zh-TW/monitoring-usage#traces-beta)的 OTLP 端點:搭配 `ENABLE_BETA_TRACING_DETAILED=1` 時,日誌與追蹤會傳送至此處,而非已設定的匯出器。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略 |198| `BETA_TRACING_ENDPOINT` | [詳細 beta 追蹤](/docs/zh-TW/monitoring-usage#traces-beta)的 OTLP 端點:搭配 `ENABLE_BETA_TRACING_DETAILED=1` 時,日誌與追蹤會傳送至此處,而非已設定的匯出器。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略 |

199| `CCR_FORCE_BUNDLE` | 設定為 `1` 可強制 [`claude --cloud`](/docs/zh-TW/claude-code-on-the-web#send-local-repositories-without-github) 打包並上傳您的本機儲存庫,而非從其遠端複製 |199| `CCR_FORCE_BUNDLE` | 設為 `1` 可強制 [`claude --cloud`](/docs/zh-TW/claude-code-on-the-web#send-local-repositories-without-github) 打包並上傳您的本機儲存庫,而非從其遠端複製 |

200| `CLAUDECODE` | 在 Claude Code 產生的子程序中設定為 `1`(Bash 與 PowerShell 工具、tmux 工作階段、[hook](/docs/zh-TW/hooks) 命令、[狀態列](/docs/zh-TW/statusline)命令、stdio [MCP 伺服器](/docs/zh-TW/mcp)子程序)。IDE 擴充功能也會在其整合式終端機中設定此變數。可用來偵測腳本是否在 Claude Code 產生的子程序中執行。若要檢查目前程序是否由工具呼叫或 hook 直接產生,而非在 Claude Code 啟動的 stdio MCP 伺服器內,請改用 `CLAUDE_CODE_CHILD_SESSION` |200| `CLAUDECODE` | 在 Claude Code 產生的子程序中設為 `1`(Bash 與 PowerShell 工具、tmux 工作階段、[hook](/docs/zh-TW/hooks) 命令、[狀態列](/docs/zh-TW/statusline)命令、stdio [MCP 伺服器](/docs/zh-TW/mcp)子程序)。IDE 擴充功能也會在其整合式終端機中設定此變數。可用於偵測指令碼是否在 Claude Code 產生的子程序中執行。若要檢查目前程序是否由工具呼叫或 hook 直接產生,而非在 Claude Code 啟動的 stdio MCP 伺服器內部,請改用 `CLAUDE_CODE_CHILD_SESSION` |

201| `CLAUDE_AFK_COUNTDOWN_MS` | 在未回答的 [`AskUserQuestion`](/docs/zh-TW/tools-reference) 對話方塊自動繼續之前多少毫秒顯示螢幕上的倒數計時。預設為 `20000`(20 秒),上限為自動繼續逾時。除非開啟自動繼續,否則不會有任何作用;請參閱 [`askUserQuestionTimeout`](/docs/zh-TW/settings-reference#askuserquestiontimeout) 設定與 `CLAUDE_AFK_TIMEOUT_MS`。需要 Claude Code v2.1.198 或更新版本 |201| `CLAUDE_AFK_COUNTDOWN_MS` | 在未回答的 [`AskUserQuestion`](/docs/zh-TW/tools-reference) 對話方塊自動繼續之前多少毫秒,會出現畫面上的倒數計時。預設為 `20000`(20 秒),上限為自動繼續逾時。除非自動繼續已開啟,否則無效;請參閱 [`askUserQuestionTimeout`](/docs/zh-TW/settings-reference#askuserquestiontimeout) 設定與 `CLAUDE_AFK_TIMEOUT_MS`。需要 Claude Code v2.1.198 或更新版本 |

202| `CLAUDE_AFK_TIMEOUT_MS` | 未回答的 [`AskUserQuestion`](/docs/zh-TW/tools-reference) 對話方塊在閒置多少毫秒後,不等待您而自動繼續。自動繼續預設為關閉;請透過 [`askUserQuestionTimeout`](/docs/zh-TW/settings-reference#askuserquestiontimeout) 設定選擇加入。此變數是供示範與自動化測試使用的覆寫:設定後,它會優先於該設定,即使該設定未設定或為 `never`,也會開啟自動繼續。設定 `0` 並不會關閉逾時,而是會立即關閉對話方塊。在 v2.1.198 與 v2.1.199 中,自動繼續預設為開啟,逾時為 `60000`(60 秒)。需要 Claude Code v2.1.198 或更新版本 |202| `CLAUDE_AFK_TIMEOUT_MS` | 未回答的 [`AskUserQuestion`](/docs/zh-TW/tools-reference) 對話方塊在閒置多少毫秒後,會在您未回應的情況下自動繼續。自動繼續預設為關閉;請透過 [`askUserQuestionTimeout`](/docs/zh-TW/settings-reference#askuserquestiontimeout) 設定選擇加入。此變數是用於示範與自動化測試的覆寫:設定後,它會優先於該設定,即使該設定未設定或為 `never`,也會開啟自動繼續。設定 `0` 不會關閉逾時,而是會立即關閉對話方塊。在 v2.1.198 與 v2.1.199 中,自動繼續預設為開啟,逾時為 `60000`(60 秒)。需要 Claude Code v2.1.198 或更新版本 |

203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 設定為 `1` 可停用所有內建的 [subagent](/docs/zh-TW/sub-agents) 類型,例如 Explore 與 Plan。僅適用於非互動模式(`-p` 旗標)。適合想要從零開始的 SDK 使用者。這也會移除 `general-purpose`,也就是當 Agent 工具呼叫省略 `subagent_type` 時 Claude Code 執行的 subagent。此類呼叫接著會以 [`subagent_type is required`](/docs/zh-TW/errors#subagent-type-is-required) 失敗 |203| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | 設為 `1` 可停用所有內建的 [subagent](/docs/zh-TW/sub-agents) 類型,例如 Explore 與 Plan。僅適用於非互動模式(`-p` 旗標)。適合想要從零開始的 SDK 使用者。這也會移除 `general-purpose`,即 Agent 工具呼叫省略 `subagent_type` 時 Claude Code 執行的 subagent。此類呼叫隨後會以 [`subagent_type is required`](/docs/zh-TW/errors#subagent-type-is-required) 失敗 |

204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | 設定為 `1` 可略過由 SDK 建立的 MCP 伺服器工具名稱上的 `mcp__<server>__` 前綴。工具會使用其原始名稱。僅限 SDK 使用 |204| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | 設為 `1` 可略過 SDK 建立的 MCP 伺服器工具名稱上的 `mcp__<server>__` 前綴。工具會使用其原始名稱。僅限 SDK 使用 |

205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | subagent 的停滯逾時,以毫秒為單位。預設為 `600000`(10 分鐘);如果您在串流監控程式開啟時提高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,預設值會隨之提高,如[處理緩慢或停滯的 API 回應](/docs/zh-TW/agent-sdk/typescript#handle-slow-or-stalled-api-responses)所述。計時器會在每個串流進度事件時重設;若在此時間範圍內沒有收到任何進度,Claude Code 會中止該 subagent,並向上層回報停滯 |205| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | subagent 的停滯逾時,以毫秒為單位。預設為 `600000`(10 分鐘);如果您在串流監控程式開啟時調高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,預設值會隨之提高,如[處理緩慢或停滯的 API 回應](/docs/zh-TW/agent-sdk/typescript#handle-slow-or-stalled-api-responses)所述。計時器會在每個串流進度事件時重設;如果在時間範圍內沒有任何進度,Claude Code 會中止該 subagent 並向上層回報停滯 |

206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 設定觸發自動壓縮時所佔自動壓縮視窗的百分比(1-100)。使用較低的值(例如 `50`)可更早壓縮;此變數無法提高閾值,因此高於預設百分比的值會被忽略。僅適用於[在模型上下文限制之前壓縮](/docs/zh-TW/model-config#context-window-and-auto-compaction)的工作階段。同時適用於主要對話與 subagent |206| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | 設定觸發自動壓縮時自動壓縮視窗的百分比(1-100)。使用較低的值(例如 `50`)可提早壓縮;此變數無法提高閾值,因此高於預設百分比的值會被忽略。僅適用於[在模型上下文限制之前壓縮](/docs/zh-TW/model-config#context-window-and-auto-compaction)的工作階段。同時適用於主要對話與 subagent |

207| `CLAUDE_AUTO_BACKGROUND_TASKS` | 設定為 `1` 可強制啟用長時間執行的 agent 任務自動移至背景的功能。啟用後,subagent 在執行約兩分鐘後會被移至背景。在 Claude Code v2.1.212 或更新版本中,也會在非互動模式中啟用[長時間 MCP 工具呼叫的自動背景化](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls) |207| `CLAUDE_AUTO_BACKGROUND_TASKS` | 設為 `1` 可強制啟用長時間執行之 agent 任務的自動背景化。啟用後,subagent 在執行約兩分鐘後會移至背景。在 Claude Code v2.1.212 或更新版本中,也會在非互動模式中啟用[長時間 MCP 工具呼叫的自動背景化](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls) |

208| `CLAUDE_AX_PREPARK_MS` | 在[螢幕閱讀器模式](/docs/zh-TW/accessibility)中,Claude Code 在寫入新的或已變更的行之前等待的毫秒數。預設為 `0`,因此 Claude Code 不會等待。在 v2.1.287 之前,預設值為 `50`。Claude Code 將等待時間上限設為 `5000`。需要 Claude Code v2.1.233 或更新版本 |208| `CLAUDE_AX_PREPARK_MS` | 在[螢幕閱讀器模式](/docs/zh-TW/accessibility)中,Claude Code 寫入新的或變更的行之前等待的毫秒數。預設為 `0`,因此 Claude Code 不會等待。在 v2.1.287 之前,預設值為 `50`。Claude Code 將等待時間上限設為 `5000`。需要 Claude Code v2.1.233 或更新版本 |

209| `CLAUDE_AX_SCREEN_READER` | 設定為 `1` 可輸出對螢幕閱讀器友善的內容:不含裝飾性邊框或動畫的平面文字。設定為 `0` 可強制關閉螢幕閱讀器模式,即使 [`axScreenReader`](/docs/zh-TW/settings-reference#axscreenreader) 為 `true` 亦然。[`--ax-screen-reader`](/docs/zh-TW/cli-reference#cli-flags) 旗標優先。需要 Claude Code v2.1.181 或更新版本 |209| `CLAUDE_AX_SCREEN_READER` | 設為 `1` 可呈現適合螢幕閱讀器的輸出:不含裝飾性邊框或動畫的純文字。設為 `0` 可強制關閉螢幕閱讀器模式,即使 [`axScreenReader`](/docs/zh-TW/settings-reference#axscreenreader) 為 `true` 亦然。[`--ax-screen-reader`](/docs/zh-TW/cli-reference#cli-flags) 旗標優先。需要 Claude Code v2.1.181 或更新版本 |

210| `CLAUDE_AX_STARTUP_QUIET_MS` | 在[螢幕閱讀器模式](/docs/zh-TW/accessibility)中,Claude Code 在啟動確認行之後延遲第一次介面轉譯的毫秒數,讓您的螢幕閱讀器能在新輸出打斷之前完整唸出該行。預設為 `3000`。設定 `0` 可立即轉譯。Claude Code 將延遲上限設為 `600000`(10 分鐘)。您的第一次按鍵會提前結束延遲。需要 Claude Code v2.1.217 或更新版本 |210| `CLAUDE_AX_STARTUP_QUIET_MS` | 在[螢幕閱讀器模式](/docs/zh-TW/accessibility)中,Claude Code 在啟動確認行之後延後第一次介面呈現的毫秒數,讓您的螢幕閱讀器能在新輸出打斷之前完整唸出該行。預設為 `3000`。設定 `0` 可立即呈現。Claude Code 將延後時間上限設為 `600000`(10 分鐘)。您的第一次按鍵會提早結束延後。需要 Claude Code v2.1.217 或更新版本 |

211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 在主要工作階段中,每個 Bash 或 PowerShell 命令之後都返回原始工作目錄 |211| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | 在主要工作階段中,每個 Bash 或 PowerShell 命令執行後返回原始工作目錄 |

212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | 位元組層級串流閒置監控程式的逾時,以毫秒為單位;設定後,對於該監控程式,它會優先於 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,且不會變更事件層級監控程式。Claude Code 會將此變數限制在 10 秒至 30 分鐘之間。需要 Claude Code v2.1.210 或更新版本 |212| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | 位元組層級串流閒置監控程式的逾時,以毫秒為單位;設定後,對於該監控程式會優先於 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,且不影響事件層級監控程式。Claude Code 會將此變數限制在 10 秒到 30 分鐘之間。需要 Claude Code v2.1.210 或更新版本 |

213| `CLAUDE_CLIENT_PRESENCE_FILE` | 某個檔案的路徑;外部工具(例如螢幕鎖定監聽器)會在您解鎖螢幕時建立該檔案,並在您鎖定螢幕時刪除它。當該檔案存在時,Claude Code 會略過 [Remote Control 行動推播通知](/docs/zh-TW/remote-control#mobile-push-notifications),讓您在主動使用電腦時不再收到推播。當檔案不存在或無法讀取時,通知會照常傳送。Claude Code 會在每次觸發推播的事件時檢查該檔案一次,而非輪詢。需要 Claude Code v2.1.181 或更新版本 |213| `CLAUDE_CLIENT_PRESENCE_FILE` | 一個檔案的路徑,由外部工具(例如螢幕鎖定監聽程式)在您解鎖螢幕時建立、鎖定螢幕時刪除。檔案存在期間,Claude Code 會略過 [Remote Control 行動推播通知](/docs/zh-TW/remote-control#mobile-push-notifications),讓您在積極使用電腦時不再收到推播。當檔案不存在或無法讀取時,通知會照常傳送。Claude Code 會在每個觸發推播的事件時檢查一次該檔案,而非輪詢。需要 Claude Code v2.1.181 或更新版本 |

214| `CLAUDE_CODE_ACCESSIBILITY` | 設定為 `1` 可保持原生終端機游標可見,並停用反白文字游標指示器。讓 macOS Zoom 等螢幕放大鏡能追蹤游標位置 |214| `CLAUDE_CODE_ACCESSIBILITY` | 設為 `1` 可保持原生終端機游標可見,並停用反白文字游標指示器。讓 macOS 縮放等螢幕放大鏡能追蹤游標位置 |

215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | 設定為 `1` 可從以 `--add-dir` 指定的目錄載入記憶檔案。會載入 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 與 `CLAUDE.local.md`。預設情況下,額外目錄不會載入記憶檔案 |215| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | 設為 `1` 可從以 `--add-dir` 指定的目錄載入記憶檔案。會載入 `CLAUDE.md`、`.claude/CLAUDE.md`、`.claude/rules/*.md` 與 `CLAUDE.local.md`。預設情況下,額外目錄不會載入記憶檔案 |

216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | 設定為 `1` 可在[全螢幕轉譯](/docs/zh-TW/fullscreen)中每一幀都重繪整個螢幕,而非傳送增量更新。如果全螢幕模式顯示過時或錯位的文字片段,請使用此設定。Claude Code 會在 Windows 上的背景工作階段與 [agent view](/docs/zh-TW/agent-view) 中自動啟用此設定 |216| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | 設為 `1` 可在[全螢幕呈現](/docs/zh-TW/fullscreen)中每一影格重繪整個畫面,而非傳送增量更新。如果全螢幕模式顯示過時或錯位的文字片段,請使用此變數。Claude Code 會在 Windows 上為背景工作階段與 [agent view](/docs/zh-TW/agent-view) 自動啟用此功能 |

217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | 設定為 `1` 可在每個請求中傳送 [effort](/docs/zh-TW/model-config#adjust-effort-level) 參數,即使 Claude Code 無法將模型 ID 辨識為支援 effort 的模型亦然。當您透過 [LLM 閘道](/docs/zh-TW/llm-gateway)或以自訂識別碼提供模型的第三方供應商路由時,請使用此設定。在 API 端拒絕 effort 參數的模型,包括 Claude 3 模型、Sonnet 4.0 與 4.5、Opus 4.0 與 4.1,以及 Haiku 4.5,仍會被排除,以免請求失敗 |217| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | 設為 `1` 可在每個請求中傳送 [effort](/docs/zh-TW/model-config#adjust-effort-level) 參數,即使 Claude Code 未將該模型 ID 辨識為支援 effort 亦然。當透過以自訂識別碼提供模型的 [LLM 閘道](/docs/zh-TW/llm-gateway)或第三方供應商路由時,請使用此變數。在 API 層級拒絕 effort 參數的模型(包括 Claude 3 模型、Sonnet 4.0 與 4.5、Opus 4.0 與 4.1,以及 Haiku 4.5)仍會被排除,以免請求失敗 |

218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 重新整理憑證的間隔,以毫秒為單位(使用 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 時) |218| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | 憑證應重新整理的間隔,以毫秒為單位(使用 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 時) |

219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 設定為 `0` 可在發佈新 [artifact](/docs/zh-TW/artifacts#create-an-artifact) 時,阻止 Claude Code 自動開啟瀏覽器 |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 設為 `0` 可讓 Claude Code 在發布新的 [artifact](/docs/zh-TW/artifacts#create-an-artifact) 時不自動開啟瀏覽器 |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | 設定為 `0` 可阻止 Claude 讀取與回覆 [artifact 上的留言](/docs/zh-TW/artifacts#collect-comments-on-an-artifact)。當 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 已[關閉 artifact](/docs/zh-TW/artifacts#availability) 時不會有任何作用。需要 Claude Code v2.1.221 或更新版本 |220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | 設為 `0` 可讓 Claude 不再讀取與回覆 [artifact 上的留言](/docs/zh-TW/artifacts#collect-comments-on-an-artifact)。當 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 已[關閉 artifact](/docs/zh-TW/artifacts#availability) 時無效。需要 Claude Code v2.1.221 或更新版本 |

221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | 設定為 `0` 可阻止 Claude [自行回覆傳送給它的留言](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own)。需要 Claude Code v2.1.228 或更新版本 |221| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | 設為 `0` 可讓 Claude 不再[自行回覆傳送給它的留言](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own)。需要 Claude Code v2.1.228 或更新版本 |

222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 設定為 `0` 可從系統提示詞開頭省略[歸屬區塊](/docs/zh-TW/llm-gateway-protocol#system-prompt-attribution-block),該區塊包含用戶端版本與提示詞指紋。無論如何設定,直接連線至 Anthropic API 時的快取都不受影響。在某些直接連線設定中,即使您設定 `0`,Claude Code 仍會在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器請求中保留此區塊。請在[系統提示詞歸屬區塊](/docs/zh-TW/llm-gateway-protocol#system-prompt-attribution-block)中查看此情況涵蓋哪些連線與憑證。在 v2.1.181 之前,此區塊在自訂基礎 URL 與 Microsoft Foundry 連線上包含每個請求各自的 token,因此在那些版本中,當您的 LLM 閘道依請求主體進行快取或將請求轉送至第三方供應商時,或當您直接連線至 Microsoft Foundry 時,請將其設定為 `0` |222| `CLAUDE_CODE_ATTRIBUTION_HEADER` | 設為 `0` 可從系統提示詞開頭省略[歸屬區塊](/docs/zh-TW/llm-gateway-protocol#system-prompt-attribution-block),該區塊包含用戶端版本與提示詞指紋。無論如何設定,直接連線至 Anthropic API 時的快取都不受影響。在某些直接連線的設定中,即使您設定 `0`,Claude Code 仍會在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器請求中保留該區塊。請在[系統提示詞歸屬區塊](/docs/zh-TW/llm-gateway-protocol#system-prompt-attribution-block)中查看此情況涵蓋哪些連線與憑證。在 v2.1.181 之前,該區塊在自訂基礎 URL 與 Microsoft Foundry 連線上會包含每個請求專屬的 token,因此在這些版本上,當您的 LLM 閘道依請求主體進行快取或將請求轉送至第三方供應商,或您直接連線至 Microsoft Foundry 時,請將其設為 `0` |

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | 啟用 `CLAUDE_AUTO_BACKGROUND_TASKS` 時,提醒 Claude 檢查仍在執行的[背景 subagent](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background) 的間隔秒數。僅接受 `1` 至 `86400` 的純整數;任何其他值或寫法都會視為未設定。未設定時不會有檢查提醒。需要 Claude Code v2.1.248 或更新版本 |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | 啟用 `CLAUDE_AUTO_BACKGROUND_TASKS` 時,提醒 Claude 檢查仍在執行中之[背景 subagent](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background) 的間隔秒數。僅接受 `1` 到 `86400` 的純整數;任何其他值或寫法都會視為未設定。未設定時,不會有檢查提醒。需要 Claude Code v2.1.248 或更新版本 |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 以 token 為單位設定[自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window),範圍為 `100000` 至 `1000000`。僅接受純整數,例如 `500000`:像 `500k` 這樣的值會被讀取為 `500`,並被限制至 100K 的最小值。有效視窗也會受限於模型的上下文視窗。優先於 `/autocompact` 命令、`--autocompact` 旗標與 `autoCompactWindow` 設定。狀態列的 `used_percentage` 一律以模型的完整上下文視窗衡量,因此一旦設定此變數,該百分比便不再能表示何時會執行壓縮 |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | 以 token 為單位設定[自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window),範圍從 `100000` 到 `1000000`。僅接受純整數,例如 `500000`:像 `500k` 這樣的值會被讀取為 `500`,並被限制為 100K 的最小值。實際視窗也會受限於模型的上下文視窗。優先於 `/autocompact` 命令、`--autocompact` 旗標與 `autoCompactWindow` 設定。狀態列的 `used_percentage` 一律以模型的完整上下文視窗為基準計算,因此一旦設定此變數,該百分比就不再代表何時會執行壓縮 |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 覆寫自動 [IDE 連線](/docs/zh-TW/vs-code)。預設情況下,在受支援 IDE 的整合式終端機中啟動時,Claude Code 會自動連線。設定為 `false` 可防止此行為。設定為 `true` 可在自動偵測失敗時強制嘗試連線,例如當 tmux 遮蔽了上層終端機時。優先於 [`autoConnectIde`](/docs/zh-TW/settings-reference#autoconnectide) 全域設定 |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | 覆寫自動 [IDE 連線](/docs/zh-TW/vs-code)。預設情況下,在支援的 IDE 整合式終端機中啟動時,Claude Code 會自動連線。設為 `false` 可防止此行為。設為 `true` 可在自動偵測失敗時(例如 tmux 遮蔽了上層終端機)強制嘗試連線。優先於 [`autoConnectIde`](/docs/zh-TW/settings-reference#autoconnectide) 全域設定 |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | 控制 Claude Code 是否請伺服器[審查自動模式動作](/docs/zh-TW/permission-modes#server-side-classifier-review)。設定為 `0` 可改用 Claude Code 自身的分類器請求。直接連線至 Anthropic API 時,需要 v2.1.281 或更新版本。連結的章節列出了在未設定此變數時哪些工作階段會詢問伺服器,以及從哪個版本開始。需要 Claude Code v2.1.271 或更新版本 |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | 控制 Claude Code 是否要求伺服器[審查自動模式動作](/docs/zh-TW/permission-modes#server-side-classifier-review)。設為 `0` 可改用 Claude Code 自身的分類器請求。在直接連線至 Anthropic API 時,需要 v2.1.281 或更新版本。連結的章節列出了變數未設定時哪些工作階段會詢問伺服器,以及從哪個版本開始。需要 Claude Code v2.1.271 或更新版本 |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Claude Code 等待 AWS 預設憑證提供者鏈產生憑證的時間,以毫秒為單位,逾時後請求會以 [`AWS default-chain credential resolve timed out`](/docs/zh-TW/errors#aws-default-chain-credential-resolve-timed-out) 失敗(預設:`60000`)。當您的憑證鏈中某個步驟確實需要更長時間時,請提高此值,例如透過 `aws-vault` 等包裝工具進行以瀏覽器為基礎、搭配 MFA 的 SSO 登入。適用於 Claude Code 使用預設憑證鏈簽署的所有情況:[Amazon Bedrock](/docs/zh-TW/amazon-bedrock#credential-caching-and-resolution-timeout)、[Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 與 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)。需要 Claude Code v2.1.207 或更新版本 |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Claude Code 等待 AWS 預設憑證供應者鏈產生憑證的時間(毫秒),逾時後請求會以 [`AWS default-chain credential resolve timed out`](/docs/zh-TW/errors#aws-default-chain-credential-resolve-timed-out) 失敗(預設:`60000`)。當您的憑證鏈中某個步驟確實需要更長時間時請調高此值,例如透過 `aws-vault` 等包裝程式進行含 MFA 的瀏覽器式 SSO 登入。適用於 Claude Code 以預設鏈簽署的所有情況:[Amazon Bedrock](/docs/zh-TW/amazon-bedrock#credential-caching-and-resolution-timeout)、[Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws),以及 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)。需要 Claude Code v2.1.207 或更新版本 |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | 設定為 `0` 可關閉[Bash 命令執行期間變更之檔案的差異](/docs/zh-TW/hooks#bash),設定為 `1` 則可在每種權限模式中記錄它。優先於 [`bashEditDiffEnabled`](/docs/zh-TW/settings-reference#basheditdiffenabled) 設定。需要 Claude Code v2.1.269 或更新版本 |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | 設為 `0` 可關閉 [Bash 命令執行期間所變更檔案的差異](/docs/zh-TW/hooks#bash),設為 `1` 則會在每個權限模式中記錄該差異。優先於 [`bashEditDiffEnabled`](/docs/zh-TW/settings-reference#basheditdiffenabled) 設定。需要 Claude Code v2.1.269 或更新版本 |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | 設定為 `0` 可讓非互動工作階段在每個回合結束時向其主機回報閒置狀態,即使背景工作仍在執行亦然。預設情況下,當背景 agent 或[工作流程](/docs/zh-TW/workflows)執行等背景工作仍在進行時,工作階段在回合結束後會持續回報執行中狀態。這可避免監看狀態的主機(例如遠端工作階段清單)在工作進行中宣告 Claude 正在等待您的輸入。背景 shell 命令(例如開發伺服器)不會維持執行中狀態。執行中狀態的預設行為與 `0` 選擇退出需要 Claude Code v2.1.269 或更新版本;在較早版本中,請設定 `1` 以維持執行中狀態 |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | 設為 `0` 可讓非互動工作階段在每個回合結束時向其主機回報閒置狀態,即使背景工作仍在執行中亦然。預設情況下,當背景 agent 或[工作流程](/docs/zh-TW/workflows)執行等背景工作仍在進行時,工作階段在回合結束後仍會持續回報執行中狀態。這可避免監看狀態的主機(例如遠端工作階段清單)在工作進行中宣告 Claude 正在等待您的輸入。背景 shell 命令(例如開發伺服器)不會維持執行中狀態。執行中狀態的預設行為與 `0` 選擇退出需要 Claude Code v2.1.269 或更新版本;在較早版本上,請設定 `1` 以維持執行中狀態 |

230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | 當工作階段有作用中的 [Remote Control](/docs/zh-TW/remote-control) 連線時,會在 Bash 工具與 [hook 命令](/docs/zh-TW/hooks)子程序中自動設定,並在連線結束時移除。其值為 `session_` 形式的工作階段 ID,與工作階段的 `claude.ai/code` URL 中出現的識別碼相同,因此腳本可以連結回執行它的工作階段。需要 Claude Code v2.1.199 或更新版本。在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中,請改為讀取 `CLAUDE_CODE_REMOTE_SESSION_ID` |230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | 當工作階段有作用中的 [Remote Control](/docs/zh-TW/remote-control) 連線時,會在 Bash 工具與 [hook 命令](/docs/zh-TW/hooks)子程序中自動設定,並在連線結束時移除。其值為 `session_` 形式的工作階段 ID,與工作階段的 `claude.ai/code` URL 中出現的識別碼相同,讓指令碼可以連結回執行它的工作階段。需要 Claude Code v2.1.199 或更新版本。在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中,請改為讀取 `CLAUDE_CODE_REMOTE_SESSION_ID` |

231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | 設定為 `0` 可讓 Claude Code 將 `0x08` 位元組(也寫作 `^H`)讀取為一般的 Backspace,設定為 `1` 則讀取為 Ctrl+Backspace。任一值都會取代平台預設值。預設情況下,Claude Code 在 Windows 上會將其讀取為 Ctrl+Backspace,但 `TERM_PROGRAM` 為 `mintty` 或 `TERM` 為 `cygwin` 時除外;在 macOS 與 Linux 上則讀取為一般的 Backspace。若在 Windows 終端機中 [Backspace 會刪除整個單字](/docs/zh-TW/terminal-config#fix-backspace-deleting-a-whole-word-on-windows),請設定 `0` |231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | 設為 `0` 可讓 Claude Code 將 `0x08` 位元組(也寫作 `^H`)讀取為一般 Backspace,設為 `1` 則讀取為 Ctrl+Backspace。任一值都會取代平台預設值。預設情況下,Claude Code 在 Windows 上會將其讀取為 Ctrl+Backspace(但 `TERM_PROGRAM` 為 `mintty` 或 `TERM` 為 `cygwin` 時除外),在 macOS 與 Linux 上則讀取為一般 Backspace。若在 Windows 終端機中 [Backspace 會刪除整個單字](/docs/zh-TW/terminal-config#fix-backspace-deleting-a-whole-word-on-windows),請設定 `0` |

232| `CLAUDE_CODE_CERT_STORE` | TLS 連線的 CA 憑證來源清單,以逗號分隔。`bundled` 是隨 Claude Code 提供的 Mozilla CA 集。`system` 是作業系統的信任存放區,僅在具備 `tls.getCACertificates` 的執行環境中讀取:原生二進位檔,或 npm 安裝時的 Node 22.15 或更新版本。請參閱 [CA 憑證存放區](/docs/zh-TW/network-config#ca-certificate-store)。預設為 `bundled,system` |232| `CLAUDE_CODE_CERT_STORE` | TLS 連線的 CA 憑證來源,以逗號分隔。`bundled` 是 Claude Code 隨附的 Mozilla CA 集合。`system` 是作業系統信任存放區,僅在具有 `tls.getCACertificates` 的執行環境中讀取:原生二進位檔,或 npm 安裝時使用 Node 22.15 或更新版本。請參閱 [CA 憑證存放區](/docs/zh-TW/network-config#ca-certificate-store)。預設為 `bundled,system` |

233| `CLAUDE_CODE_CHILD_SESSION` | 在 Claude Code 透過 Bash、PowerShell 與 Monitor 工具、[hook](/docs/zh-TW/hooks) 命令及[狀態列](/docs/zh-TW/statusline)命令產生的子程序中設定為 `1`。不會為 stdio [MCP 伺服器](/docs/zh-TW/mcp)子程序設定,因為這些子程序存續時間長,且會比產生它們的工作階段存續得更久。與 `CLAUDECODE` 不同,此變數只會由 Claude Code 本身在啟動子程序時設定,而不會由 IDE 擴充功能設定,因此能可靠地區分巢狀工作階段與在 IDE 整合式終端機中啟動的頂層 `claude`。以此方式啟動的巢狀互動式 `claude` TUI 會自動從 `--resume`、`--continue`、向上鍵歷史記錄與 `claude agents` 清單中排除。非互動式 `claude -p` 工作階段仍會保存。設定 `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` 可覆寫此排除。需要 Claude Code v2.1.172 或更新版本 |233| `CLAUDE_CODE_CHILD_SESSION` | 在 Claude Code 透過 Bash、PowerShell 與 Monitor 工具、[hook](/docs/zh-TW/hooks) 命令以及[狀態列](/docs/zh-TW/statusline)命令產生的子程序中設為 `1`。不會為 stdio [MCP 伺服器](/docs/zh-TW/mcp)子程序設定,因為這些子程序長期存在,且會比產生它們的工作階段存活更久。與 `CLAUDECODE` 不同,此變數只會由 Claude Code 本身在啟動子程序時設定,而不會由 IDE 擴充功能設定,因此能可靠地區分巢狀工作階段與在 IDE 整合式終端機中啟動的頂層 `claude`。以此方式啟動的巢狀互動式 `claude` TUI 會自動從 `--resume`、`--continue`、向上鍵歷程記錄與 `claude agents` 清單中排除。非互動式 `claude -p` 工作階段仍會保存。設定 `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` 可覆寫此排除。需要 Claude Code v2.1.172 或更新版本 |

234| `CLAUDE_CODE_CLIENT_CERT` | 用於 mTLS 身分驗證的用戶端憑證檔案路徑 |234| `CLAUDE_CODE_CLIENT_CERT` | 用於 mTLS 身分驗證的用戶端憑證檔案路徑 |

235| `CLAUDE_CODE_CLIENT_KEY` | 用於 mTLS 身分驗證的用戶端私密金鑰檔案路徑 |235| `CLAUDE_CODE_CLIENT_KEY` | 用於 mTLS 身分驗證的用戶端私密金鑰檔案路徑 |

236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 已加密 CLAUDE\_CODE\_CLIENT\_KEY 的密碼片語(選用) |236| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | 加密的 CLAUDE\_CODE\_CLIENT\_KEY 的密碼片語(選用) |

237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | 已於 v2.1.186 移除,現在不會有任何作用。先前用於為串流 API 請求的連線、TLS 與回應標頭階段設定個別的逾時。每個請求的逾時請使用 `API_TIMEOUT_MS`。串流請求的回應標頭階段請參閱 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | 已在 v2.1.186 中移除,現在不會有任何作用。先前用於為串流 API 請求的連線、TLS 與回應標頭階段設定個別的逾時。請使用 `API_TIMEOUT_MS` 設定每個請求的逾時。關於串流請求的回應標頭階段,請參閱 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 覆寫偵錯日誌檔案路徑。儘管名稱如此,這是檔案路徑而非目錄。需要另外透過 `--debug`、`/debug` 或 `DEBUG` 環境變數啟用偵錯模式:僅設定此變數並不會啟用日誌記錄。[`--debug-file`](/docs/zh-TW/cli-reference#cli-flags) 旗標可同時完成這兩件事。預設為 `~/.claude/debug/<session-id>.txt` |238| `CLAUDE_CODE_DEBUG_LOGS_DIR` | 覆寫偵錯日誌檔案路徑。儘管名稱如此,這是檔案路徑,而非目錄。需要另外透過 `--debug`、`/debug` 或 `DEBUG` 環境變數啟用偵錯模式:單獨設定此變數並不會啟用日誌記錄。[`--debug-file`](/docs/zh-TW/cli-reference#cli-flags) 旗標可同時完成兩者。預設為 `~/.claude/debug/<session-id>.txt` |

239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 寫入偵錯日誌檔案的最低日誌等級。值:`verbose`、`debug`(預設)、`info`、`warn`、`error`。設定為 `verbose` 可包含大量診斷資訊,例如完整的狀態列命令輸出;或提高至 `error` 以減少雜訊 |239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | 寫入偵錯日誌檔案的最低日誌等級。值:`verbose`、`debug`(預設)、`info`、`warn`、`error`。設為 `verbose` 可包含大量診斷資訊,例如完整的狀態列命令輸出;或提高至 `error` 以減少雜訊 |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 設定為 `1` 可停用 [1M 上下文視窗](/docs/zh-TW/model-config#extended-context)支援。設定後,模型選擇器中將無法使用 1M 模型變體,且 Claude Code 會將使用原生 1M 視窗模型(例如 [Sonnet 5.5](/docs/zh-TW/model-config#sonnet-5-5-and-sonnet-5-context-window) 與 Fable 模型)的工作階段限制在 200K 視窗;關於此限制如何強制執行,請參閱[延伸上下文](/docs/zh-TW/model-config#extended-context)。適用於有合規要求的企業環境。關於其在修正無法辨識之 `[1m]` 模型 ID 視窗方面的作用,請參閱[修正閘道或自訂模型 ID 的視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | 設為 `1` 可停用 [1M 上下文視窗](/docs/zh-TW/model-config#extended-context)支援。設定後,模型選擇器中將無法使用 1M 模型變體,且 Claude Code 會將使用原生 1M 視窗模型(例如 [Sonnet 5.5](/docs/zh-TW/model-config#sonnet-5-5-and-sonnet-5-context-window) 與 Fable 模型)的工作階段限制在 200K 視窗;關於此限制的執行方式,請參閱[延伸上下文](/docs/zh-TW/model-config#extended-context)。適用於有合規需求的企業環境。關於其在修正無法辨識之 `[1m]` 模型 ID 視窗中的角色,請參閱[修正閘道或自訂模型 ID 的視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | 設定為 `1` 可在 Opus 4.6 與 Sonnet 4.6 上停用[自適應推理](/docs/zh-TW/model-config#adjust-effort-level),並改用由 `MAX_THINKING_TOKENS` 控制的固定思考預算。對 [Fable 模型](/docs/zh-TW/model-config#extended-thinking)、Sonnet 5 及更新版本,或 Opus 4.7 及更新版本沒有作用,這些模型一律使用自適應推理 |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | 設為 `1` 可在 Opus 4.6 與 Sonnet 4.6 上停用[自適應推理](/docs/zh-TW/model-config#adjust-effort-level),並改用由 `MAX_THINKING_TOKENS` 控制的固定思考預算。對 [Fable 模型](/docs/zh-TW/model-config#extended-thinking)、Sonnet 5 及更新版本,或 Opus 4.7 及更新版本無效,這些模型一律使用自適應推理 |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | 設定為 `1` 可阻止 Claude Code 在各管理來源之間逐鍵合併[受管設定](/docs/zh-TW/managed-settings#precedence-within-the-managed-tier)的 `env` 區塊,如此只會套用最高優先順序來源的整個 `env` 區塊,與 v2.1.223 之前相同。請在啟動 Claude Code 的環境中設定,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.223 或更新版本 |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | 設為 `1` 可讓 Claude Code 不再跨管理來源依鍵合併[受管設定](/docs/zh-TW/managed-settings#precedence-within-the-managed-tier)的 `env` 區塊,因此只會套用最高優先順序來源的整個 `env` 區塊,與 v2.1.223 之前相同。請在啟動 Claude Code 的環境中設定,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.223 或更新版本 |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | 設定為 `1` 可停用 [advisor 工具](/docs/zh-TW/advisor)。`/advisor` 命令將無法使用,任何已設定的 `advisorModel` 都會被忽略,而 `--advisor` 旗標仍會被接受但沒有作用,因此傳遞此旗標的現有腳本可以繼續正常運作而不會出錯 |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | 設為 `1` 可停用 [advisor 工具](/docs/zh-TW/advisor)。`/advisor` 命令會變成無法使用,任何已設定的 `advisorModel` 都會被忽略,而 `--advisor` 旗標仍會被接受但無效,因此傳遞此旗標的現有指令碼仍可正常運作而不會出錯 |

244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | 設定為 `1` 可關閉[背景 agent 與 agent view](/docs/zh-TW/agent-view):`claude agents`、`--bg`、`/background` 以及隨需監督程式。等同於 [`disableAgentView`](/docs/zh-TW/settings-reference#disableagentview) 設定 |244| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | 設為 `1` 可關閉[背景 agent 與 agent view](/docs/zh-TW/agent-view):`claude agents`、`--bg`、`/background` 以及隨需監督程式。等同於 [`disableAgentView`](/docs/zh-TW/settings-reference#disableagentview) 設定 |

245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | 設定為 `1` 可停用[全螢幕轉譯](/docs/zh-TW/fullscreen),並使用傳統的主畫面轉譯器。對話會保留在終端機的原生捲動緩衝區中,因此 `Cmd+f` 與 tmux 複製模式會照常運作。優先於 `CLAUDE_CODE_NO_FLICKER` 與 [`tui`](/docs/zh-TW/settings-reference#tui) 設定。您也可以使用 `/tui default` 切換。不適用於從 [agent view](/docs/zh-TW/agent-view) 開啟的背景工作階段,這些工作階段一律使用全螢幕轉譯 |245| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | 設為 `1` 可停用[全螢幕呈現](/docs/zh-TW/fullscreen)並使用傳統的主畫面呈現器。對話會保留在終端機的原生捲動緩衝區中,因此 `Cmd+f` 與 tmux 複製模式可照常運作。優先於 `CLAUDE_CODE_NO_FLICKER` 與 [`tui`](/docs/zh-TW/settings-reference#tui) 設定。您也可以使用 `/tui default` 切換。不適用於從 [agent view](/docs/zh-TW/agent-view) 開啟的背景工作階段,這些工作階段一律使用全螢幕呈現 |

246| `CLAUDE_CODE_DISABLE_ARTIFACT` | 設定為 `1` 可關閉 [Artifact](/docs/zh-TW/artifacts) 工具,該工具會將工作階段輸出發佈為 claude.ai 上的私人網頁。一旦設定,任何設定檔都無法重新開啟此工具。若要改從設定檔關閉此工具,請將 [`enableArtifact`](/docs/zh-TW/settings-reference#enableartifact) 設定為 `false`;已棄用的 [`disableArtifact`](/docs/zh-TW/settings-reference#disableartifact) 鍵也能將其關閉 |246| `CLAUDE_CODE_DISABLE_ARTIFACT` | 設為 `1` 可關閉 [Artifact](/docs/zh-TW/artifacts) 工具,該工具會將工作階段輸出發布為 claude.ai 上的私人網頁。一旦設定,任何設定檔都無法重新開啟此工具。若要改從設定檔關閉此工具,請將 [`enableArtifact`](/docs/zh-TW/settings-reference#enableartifact) 設為 `false`;已棄用的 [`disableArtifact`](/docs/zh-TW/settings-reference#disableartifact) 鍵也會將其關閉 |

247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 設定為 `1` 可停用附件處理。使用 `@` 語法的檔案提及會以純文字傳送,而不會展開為檔案內容 |247| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | 設為 `1` 可停用附件處理。使用 `@` 語法的檔案提及會以純文字傳送,而不會展開為檔案內容 |

248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | 設定為 `1` 可讓 Claude Code 程序自行執行其 [`gcpAuthRefresh`](/docs/zh-TW/settings-reference#gcpauthrefresh) 或 [`awsAuthRefresh`](/docs/zh-TW/settings-reference#awsauthrefresh) 命令,而非在另一個程序執行時等待。需要 Claude Code v2.1.286 或更新版本 |248| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | 設為 `1` 可讓 Claude Code 程序自行執行其 [`gcpAuthRefresh`](/docs/zh-TW/settings-reference#gcpauthrefresh) 或 [`awsAuthRefresh`](/docs/zh-TW/settings-reference#awsauthrefresh) 命令,而非在另一個程序執行時等待。需要 Claude Code v2.1.286 或更新版本 |

249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 設定為 `1` 可停用[自動記憶](/docs/zh-TW/memory#auto-memory)。設定為 `0` 可強制開啟自動記憶,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](/docs/zh-TW/settings-reference#automemoryenabled) 原本會停用它亦然。停用後,Claude 不會建立或載入自動記憶檔案 |249| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 設為 `1` 可停用[自動記憶](/docs/zh-TW/memory#auto-memory)。設為 `0` 可強制開啟自動記憶,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](/docs/zh-TW/settings-reference#automemoryenabled) 原本會將其停用亦然。停用時,Claude 不會建立或載入自動記憶檔案 |

250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設定為 `1` 可停用所有背景任務功能,包括 Bash 與 subagent 工具上的 `run_in_background` 參數、自動背景化以及 Ctrl+B 快速鍵 |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設為 `1` 可停用所有背景任務功能,包括 Bash 與 subagent 工具上的 `run_in_background` 參數、自動背景化以及 Ctrl+B 快捷鍵 |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 設定為 `1` 可阻止 Claude Code 將缺少 `Content-Type` 標頭或該標頭為空的 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應視為 Amazon Bedrock 的二進位事件串流。預設情況下,Claude Code 會假設是閘道從原本未經修改的回應中移除了該標頭,因此會解碼主體,讓串流持續運作。只有當閘道也將串流重新發送為伺服器推送事件時才設定此變數;此時 Claude Code 會改將無標頭的主體讀取為伺服器推送事件。需要 Claude Code v2.1.239 或更新版本 |251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 設為 `1` 可讓 Claude Code 不再將缺少或為空 `Content-Type` 標頭的 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應視為 Amazon Bedrock 的二進位事件串流。預設情況下,Claude Code 會假設閘道從原本未經修改的回應中移除了該標頭,因此會解碼主體,讓串流持續運作。僅在閘道也將串流重新以伺服器傳送事件形式發出時才設定此變數;Claude Code 接著會將無標頭的主體讀取為伺服器傳送事件。需要 Claude Code v2.1.239 或更新版本 |

252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 設定為 `1` 可略過檢查 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應是否帶有 `application/vnd.amazon.eventstream` content-type。若未設定此變數,當回應帶有不同的 content-type 時,Claude Code 會讓請求失敗,並顯示指出該類型的錯誤,這表示有[閘道或代理伺服器正在轉換回應](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。請將閘道設定為不經修改地轉送 `Content-Type` 標頭與主體,而非設定此變數。需要 Claude Code v2.1.208 或更新版本 |252| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 設為 `1` 可略過檢查 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應是否帶有 `application/vnd.amazon.eventstream` content-type。若未設定此變數,當回應帶有不同的 content-type 時,Claude Code 會讓請求失敗並顯示指出該類型的錯誤,這表示[閘道或代理伺服器正在轉換回應](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。請將閘道設定為原封不動地轉送 `Content-Type` 標頭與主體,而非設定此變數。需要 Claude Code v2.1.208 或更新版本 |

253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 設定為 `1` 可在[監督程式](/docs/zh-TW/agent-view#the-supervisor-process)停止、重新啟動或更新[背景工作階段](/docs/zh-TW/agent-view)的程序時,停止該工作階段正在執行的背景 shell 命令、動態工作流程,以及自 v2.1.198 起的背景 subagent,而不是將它們移交給該工作階段的下一個程序。僅影響該移交:使用 `←` 或 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,仍會帶過進行中的工作,而 `CLAUDE_DISABLE_ADOPT` 會同時關閉兩者。需要 Claude Code v2.1.196 或更新版本 |253| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 設為 `1` 可在[監督程式](/docs/zh-TW/agent-view#the-supervisor-process)停止、重新啟動或更新[背景工作階段](/docs/zh-TW/agent-view)的程序時,停止該工作階段正在執行的背景 shell 命令、動態工作流程,以及自 v2.1.198 起的背景 subagent,而不是將它們移交給該工作階段的下一個程序。僅影響該移交:使用 `←` 或 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段背景化時,仍會延續進行中的工作,而 `CLAUDE_DISABLE_ADOPT` 會同時關閉兩者。需要 Claude Code v2.1.196 或更新版本 |

254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 設定為 `1` 可阻止 Claude Code 在記憶體壓力下終止[背景 shell 命令](/docs/zh-TW/interactive-mode#background-bash-commands)。預設情況下,在 macOS 與 Linux 上,當作業系統回報嚴重記憶體壓力,且工作階段已閒置 30 分鐘、沒有任何回合或 subagent 正在執行時,Claude Code 會終止背景 shell。Windows 沒有記憶體壓力訊號,因此此變數在該平台上沒有作用。需要 Claude Code v2.1.193 或更新版本 |254| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | 設為 `1` 可讓 Claude Code 不再於記憶體壓力下終止[背景 shell 命令](/docs/zh-TW/interactive-mode#background-bash-commands)。預設情況下,在 macOS 與 Linux 上,當作業系統回報嚴重記憶體壓力,且工作階段已閒置 30 分鐘而沒有任何回合或 subagent 在執行時,Claude Code 會終止背景 shell。Windows 沒有記憶體壓力訊號,因此此變數在該平台上無效。需要 Claude Code v2.1.193 或更新版本 |

255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | 設定為 `1` 可停用 Claude Code 隨附的 [skill](/docs/zh-TW/skills) 與工作流程:隨附 skill 與工作流程會被完全移除,而 `/init` 等內建命令仍可輸入,但會對模型隱藏。`/doctor` 與內建命令一樣仍可輸入;若要隱藏它,請改用 `DISABLE_DOCTOR_COMMAND`。來自外掛、`.claude/skills/` 與 `.claude/commands/` 的 skill 不受影響。等同於 [`disableBundledSkills`](/docs/zh-TW/settings-reference#disablebundledskills) 設定 |255| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | 設為 `1` 可停用 Claude Code 隨附的 [skill](/docs/zh-TW/skills) 與工作流程:隨附 skill 與工作流程會完全移除,而 `/init` 等內建命令仍可輸入,但會對模型隱藏。`/doctor` 如同內建命令一樣仍可輸入;請改用 `DISABLE_DOCTOR_COMMAND` 將其隱藏。來自外掛、`.claude/skills/` 與 `.claude/commands/` 的 skill 不受影響。等同於 [`disableBundledSkills`](/docs/zh-TW/settings-reference#disablebundledskills) 設定 |

256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | 設定為 `1` 可保留 [Claude in Chrome](/docs/zh-TW/chrome) 瀏覽器工具,同時省略系統提示詞中的 Chrome 區段以及 `/claude-in-chrome` [隨附 skill](/docs/zh-TW/skills#bundled-skills)。適用於內嵌 Claude Code 並提供自己瀏覽器指引的主機。需要 Claude Code v2.1.257 或更新版本 |256| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | 設為 `1` 可保留 [Claude in Chrome](/docs/zh-TW/chrome) 瀏覽器工具,同時省略系統提示詞中的 Chrome 區段與 `/claude-in-chrome` [隨附 skill](/docs/zh-TW/skills#bundled-skills)。適用於嵌入 Claude Code 並提供自身瀏覽器指引的主機。需要 Claude Code v2.1.257 或更新版本 |

257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 設定為 `1` 可防止將任何 CLAUDE.md 記憶檔案載入上下文,包括使用者、專案與自動記憶檔案 |257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 設為 `1` 可防止將任何 CLAUDE.md 記憶檔案載入上下文,包括使用者、專案與自動記憶檔案 |

258| `CLAUDE_CODE_DISABLE_CRON` | 設定為 `1` 可停用[排程任務](/docs/zh-TW/scheduled-tasks)。`/loop` skill 與 cron 工具將無法使用,任何已排程的任務都會停止觸發,包括已在工作階段中途執行的任務 |258| `CLAUDE_CODE_DISABLE_CRON` | 設為 `1` 可停用[排程任務](/docs/zh-TW/scheduled-tasks)。`/loop` skill 與 cron 工具會變成無法使用,且任何已排程的任務都會停止觸發,包括已在工作階段中途執行的任務 |

259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | 設定為 `1` 可關閉[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)提示的時間限制。在 `auto` 模式中,Claude Code 會改將這些移除操作傳送給分類器;在 `bypassPermissions` 模式中,提示會等待您的回答。請在啟動 Claude Code 的環境中設定,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.281 或更新版本 |259| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | 設為 `1` 可關閉[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)提示的時間限制。在 `auto` 模式中,Claude Code 接著會改將這些移除動作送交分類器;在 `bypassPermissions` 模式中,提示會等待您的回答。請在啟動 Claude Code 的環境中設定,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.281 或更新版本 |

260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 設定為 `1` 可從 API 請求中移除預先發行版的 `anthropic-beta` 請求標頭、與其搭配的主體欄位,以及 `defer_loading` 和 `eager_input_streaming` 等 beta 工具結構描述欄位。當代理伺服器閘道因 `anthropic-beta` 標頭而以 `Unexpected value(s)` 錯誤或 `Extra inputs are not permitted` 錯誤拒絕請求時,請使用此設定。[停用預先發行版功能](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities)列出了此變數移除的項目(包括 [MCP tool search](/docs/zh-TW/mcp#scale-with-mcp-tool-search)),以及 Claude Code 仍會繼續傳送的內容 |260| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 設為 `1` 可從 API 請求中移除預發布的 `anthropic-beta` 請求標頭、與其搭配的主體欄位,以及 `defer_loading` 與 `eager_input_streaming` 等 beta 工具結構描述欄位。當代理伺服器閘道針對 `anthropic-beta` 標頭以 `Unexpected value(s)` 錯誤或 `Extra inputs are not permitted` 錯誤拒絕請求時,請使用此變數。[停用預發布功能](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities)列出此變數移除的項目(包括 [MCP Tool Search](/docs/zh-TW/mcp#scale-with-mcp-tool-search)),以及 Claude Code 仍會傳送的項目 |

261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | 設定為 `1` 可停用內建的 [Explore 與 Plan subagent](/docs/zh-TW/sub-agents#built-in-subagents)。Claude 會改用其搜尋工具或 general-purpose subagent 進行探索,而 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 會直接讀取檔案,而非啟動 Explore 與 Plan agent。名為 `Explore` 或 `Plan` 的自訂 subagent 不受影響。若要在 Agent SDK 或非互動模式中移除所有內建 subagent 類型,請改用 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`。需要 Claude Code v2.1.198 或更新版本 |261| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | 設為 `1` 可停用內建的 [Explore 與 Plan subagent](/docs/zh-TW/sub-agents#built-in-subagents)。Claude 會改用其搜尋工具或 general-purpose subagent 進行探索,而 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 會直接讀取檔案,而非啟動 Explore 與 Plan agent。名為 `Explore` 或 `Plan` 的自訂 subagent 不受影響。若要在 Agent SDK 或非互動模式中移除所有內建 subagent 類型,請改用 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`。需要 Claude Code v2.1.198 或更新版本 |

262| `CLAUDE_CODE_DISABLE_FAST_MODE` | 設定為 `1` 可停用[快速模式](/docs/zh-TW/fast-mode) |262| `CLAUDE_CODE_DISABLE_FAST_MODE` | 設為 `1` 可停用[快速模式](/docs/zh-TW/fast-mode) |

263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | 設定為 `1` 可停用「How is Claude doing?」工作階段品質問卷。當設定了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 時,問卷也會停用,除非 `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` 重新選擇加入。若要設定抽樣率而非完全停用,請使用 [`feedbackSurveyRate`](/docs/zh-TW/settings-reference#feedbacksurveyrate) 設定。請參閱[工作階段品質問卷](/docs/zh-TW/data-usage#session-quality-surveys) |263| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | 設為 `1` 可停用「How is Claude doing?」工作階段品質問卷。當設定了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 時,問卷也會停用,除非 `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` 重新選擇加入。若要設定取樣率而非完全停用,請使用 [`feedbackSurveyRate`](/docs/zh-TW/settings-reference#feedbacksurveyrate) 設定。請參閱[工作階段品質問卷](/docs/zh-TW/data-usage#session-quality-surveys) |

264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 設定為 `1` 可停用檔案[檢查點功能](/docs/zh-TW/checkpointing)。`/rewind` 命令將無法還原程式碼變更。覆寫 [`fileCheckpointingEnabled`](/docs/zh-TW/settings-reference#filecheckpointingenabled) 設定 |264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 設為 `1` 可停用檔案[檢查點功能](/docs/zh-TW/checkpointing)。`/rewind` 命令將無法還原程式碼變更。覆寫 [`fileCheckpointingEnabled`](/docs/zh-TW/settings-reference#filecheckpointingenabled) 設定 |

265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 設定為 `1` 可從 Claude 的上下文中移除內建的提交與 PR 工作流程指令,以及 git 狀態快照。適用於使用您自己的 git 工作流程 skill 的情況。設定後,優先於 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 設定 |265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 設為 `1` 可從 Claude 的上下文中移除內建的提交與 PR 工作流程指令,以及 git 狀態快照。在使用您自己的 git 工作流程 skill 時很有用。設定時優先於 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 設定 |

266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 設定為 `1` 可防止在 Anthropic API 上將 Opus 4.0 與 4.1 自動重新對應至目前的 Opus 版本。當您刻意想固定使用較舊的模型時使用。此重新對應不會在 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 上執行 |266| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 設為 `1` 可防止在 Anthropic API 上將 Opus 4.0 與 4.1 自動重新對應至目前的 Opus 版本。當您刻意想固定使用較舊的模型時使用。此重新對應不會在 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry 上執行 |

267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | 設定為 `1` 可阻止 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock#when-a-model-is-disabled-mid-session) 與 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai#when-a-model-is-disabled-mid-session) 上的 Claude Code 在您的帳戶於工作階段中途失去該工作階段模型的存取權時切換至較舊的模型;被拒絕的請求會改為立即失敗。您設定的[備援模型鏈](/docs/zh-TW/model-config#fallback-model-chains)仍會在該拒絕時切換,而[啟動時的模型檢查](/docs/zh-TW/amazon-bedrock#startup-model-checks)仍會在啟動時改用備援模型。需要 Claude Code v2.1.285 或更新版本 |267| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | 設為 `1` 可在您的帳戶於工作階段中途失去對該工作階段模型的存取權時,讓 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock#when-a-model-is-disabled-mid-session) 與 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai#when-a-model-is-disabled-mid-session) 上的 Claude Code 不再切換至較舊的模型;被拒絕的請求會立即失敗。您設定的[備援模型鏈](/docs/zh-TW/model-config#fallback-model-chains)仍會在該拒絕時切換,且[啟動模型檢查](/docs/zh-TW/amazon-bedrock#startup-model-checks)在啟動時仍會改用其他模型。需要 Claude Code v2.1.285 或更新版本 |

268| `CLAUDE_CODE_DISABLE_MOUSE` | 設定為 `1` 可在[全螢幕轉譯](/docs/zh-TW/fullscreen)中停用滑鼠追蹤。使用 `PgUp` 與 `PgDn` 的鍵盤捲動仍可運作。使用此設定可保留終端機原生的選取即複製行為 |268| `CLAUDE_CODE_DISABLE_MOUSE` | 設為 `1` 可在[全螢幕呈現](/docs/zh-TW/fullscreen)中停用滑鼠追蹤。使用 `PgUp` 與 `PgDn` 的鍵盤捲動仍可運作。使用此變數可保留終端機原生的選取即複製行為 |

269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | 設定為 `1` 可在[全螢幕轉譯](/docs/zh-TW/fullscreen)中停用點擊、拖曳與懸停處理,同時保留滑鼠滾輪捲動。當您希望滾輪捲動在 Claude Code 中運作,但不希望點擊會定位游標、展開工具輸出或開啟連結時,請使用此設定。兩者都設定時,`CLAUDE_CODE_DISABLE_MOUSE` 優先。需要 Claude Code v2.1.195 或更新版本 |269| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | 設為 `1` 可在[全螢幕呈現](/docs/zh-TW/fullscreen)中停用點選、拖曳與滑鼠懸停處理,同時保留滑鼠滾輪捲動。當您希望滾輪捲動在 Claude Code 中運作,但不希望點選會定位游標、展開工具輸出或開啟連結時使用。兩者皆設定時,`CLAUDE_CODE_DISABLE_MOUSE` 優先。需要 Claude Code v2.1.195 或更新版本 |

270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | 設定為 `1` 可阻止 Claude Code 在 API 請求因連線層級錯誤(例如連線重設或 TLS 交握錯誤)而失敗時,重新讀取 [mTLS 用戶端憑證與金鑰](/docs/zh-TW/network-config#mtls-authentication)。停用重新載入後,Claude Code 只會在下次套用設定時或下次啟動時載入輪替後的檔案。需要 Claude Code v2.1.232 或更新版本 |270| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | 設為 `1` 可讓 Claude Code 在 API 請求因連線層級錯誤(例如連線重設或 TLS 交握錯誤)而失敗時,不再重新讀取 [mTLS 用戶端憑證與金鑰](/docs/zh-TW/network-config#mtls-authentication)。停用重新載入後,Claude Code 只會在下次套用設定時或下次啟動時載入輪替後的檔案。需要 Claude Code v2.1.232 或更新版本 |

271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | 設定為任何非空值(例如 `1`)可停用非必要的網路流量:自動更新、遙測、錯誤回報、`/feedback` 命令、[Claude 草擬的意見回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)、版本資訊、[PR 與 MR 狀態徽章](/docs/zh-TW/interactive-mode#pr-review-status)檢查,以及[快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)檢查等可用性檢查。它也會停止[外掛 `command` 來源的背景執行](/docs/zh-TW/plugins/loading#when-a-command-source-re-runs),這些是本機命令而非網路流量,但因為它們可能觸發相依套件安裝而一併停止。**將其設定為 `0` 或 `false` 仍會停用此流量**,這與大多數開關變數不同;請取消設定該變數以重新允許。也會停用功能旗標擷取,這會使 [Remote Control](/docs/zh-TW/remote-control#requirements) 以及其他[需要功能旗標擷取的功能](#features-that-need-feature-flag-fetching)無法使用。官方外掛市集的自動安裝不在涵蓋範圍內;請使用 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 將其停用。不影響[閘道模型探索](/docs/zh-TW/llm-gateway-connect#add-gateway-models-to-the-model-picker),該功能有自己的選擇加入機制 |271| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | 設為任何非空值(例如 `1`)可停用非必要的網路流量:自動更新、遙測、錯誤回報、`/feedback` 命令、[Claude 草擬的意見回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)、版本資訊、[PR 與 MR 狀態徽章](/docs/zh-TW/interactive-mode#pr-review-status)檢查,以及[快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)檢查等可用性檢查。它也會停止[外掛 `command` 來源的背景執行](/docs/zh-TW/plugins/loading#when-a-command-source-re-runs),這些是本機命令而非網路流量,但因為它們可能觸發相依套件安裝。**將其設為 `0` 或 `false` 仍會停用此流量**,這與大多數開啟/關閉變數不同;請取消設定此變數以重新允許。也會停用功能旗標擷取,這會使 [Remote Control](/docs/zh-TW/remote-control#requirements) 以及其他[需要功能旗標擷取的功能](#features-that-need-feature-flag-fetching)無法使用。官方外掛市集自動安裝不在涵蓋範圍內;請使用 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 將其停用。不影響[閘道模型探索](/docs/zh-TW/llm-gateway-connect#add-gateway-models-to-the-model-picker),該功能有其自己的選擇加入機制 |

272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 設定為 `1` 可在串流請求於串流中途失敗時停用非串流備援。串流錯誤會改為傳遞至重試層。適用於代理伺服器或閘道導致備援產生重複工具執行的情況 |272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 設為 `1` 可在串流請求於串流中途失敗時停用非串流備援。串流錯誤會改為傳遞至重試層。當代理伺服器或閘道導致備援產生重複的工具執行時很有用 |

273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | 設定為 `1` 可讓 `PushNotification` 工具的桌面通知即使在您於終端機中輸入或焦點在終端機上時仍會傳送。預設情況下,當工具偵測到近期的鍵盤活動或終端機焦點時,會同時略過桌面通知與[行動推播](/docs/zh-TW/remote-control#mobile-push-notifications)。此變數僅停用該本機檢查,因此當伺服器偵測到您處於活動狀態時,仍可抑制行動推播。需要 Claude Code v2.1.193 或更新版本 |273| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | 設為 `1` 可讓 `PushNotification` 工具即使在您於終端機中輸入或終端機處於焦點時,仍傳送桌面通知。預設情況下,當工具偵測到最近的鍵盤活動或終端機焦點時,會同時略過桌面通知與[行動推播](/docs/zh-TW/remote-control#mobile-push-notifications)。此變數只停用該本機檢查,因此當伺服器偵測到您處於活動狀態時,仍可抑制行動推播。需要 Claude Code v2.1.193 或更新版本 |

274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 設定為 `1` 可停用官方外掛市集的自動註冊。Claude Code 會在即將註冊市集時讀取此變數,通常是在電腦第一次互動式啟動期間。如果當時已設定此變數,Claude Code 會永久略過註冊。之後取消設定此變數並不會撤銷略過。隨時執行 `claude plugin marketplace add anthropics/claude-plugins-official` 即可註冊市集 |274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 設為 `1` 可停用官方外掛市集的自動註冊。Claude Code 會在即將註冊市集時讀取此變數,通常是在電腦第一次互動式啟動期間。如果當時已設定此變數,Claude Code 會永久略過註冊。之後取消設定此變數並不會撤銷該略過。隨時執行 `claude plugin marketplace add anthropics/claude-plugins-official` 即可註冊該市集 |

275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 設定為 `1` 可在 Claude Code 將未回應的權限請求傳送至 Agent SDK 的 `canUseTool` 回呼的工作階段中(這是 Claude Desktop 與 VS Code 擴充功能承載 Claude Code 的方式),阻止 Claude Code 執行您[針對未回應權限請求的 `Notification` hook](/docs/zh-TW/hooks#notification)。在終端機工作階段中沒有作用。需要 Claude Code v2.1.233 或更新版本 |275| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 設為 `1` 可讓 Claude Code 在將未回答的權限請求傳送至 Agent SDK 的 `canUseTool` 回呼的工作階段中(Claude Desktop 與 VS Code 擴充功能即以此方式託管 Claude Code),不再執行您[針對未回答權限請求的 `Notification` hook](/docs/zh-TW/hooks#notification)。在終端機工作階段中無效。需要 Claude Code v2.1.233 或更新版本 |

276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 設定為 `1` 可略過從全系統受管 skill 目錄載入 skill。適用於不應載入由營運人員佈建之 skill 的容器或 CI 工作階段 |276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 設為 `1` 可略過從全系統受管 skill 目錄載入 skill。適用於不應載入營運者佈建之 skill 的容器或 CI 工作階段 |

277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | 設定為 `1` 可關閉 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)的檢查,該檢查會拒絕在[系統路徑](/docs/zh-TW/permission-modes#remove-item-in-powershell)(例如磁碟機根目錄或您的家目錄)上使用 `cmd` 內建命令 `rd`、`rmdir`、`del` 與 `erase`。Claude Code 會忽略設定檔 `env` 區塊中的此變數。需要 Claude Code v2.1.283 或更新版本 |277| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | 設為 `1` 可關閉 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)的檢查,該檢查會拒絕在[系統路徑](/docs/zh-TW/permission-modes#remove-item-in-powershell)(例如磁碟機根目錄或您的家目錄)上使用 `cmd` 內建命令 `rd`、`rmdir`、`del` 與 `erase`。Claude Code 會忽略設定檔 `env` 區塊中的此變數。需要 Claude Code v2.1.283 或更新版本 |

278| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | 設定為 `1` 可關閉針對目標完全是命令替換輸出之遞迴 `rm`(例如 `rm -rf "$(pwd)"`)的[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)檢查。其他關鍵路徑檢查會持續執行。請在啟動 Claude Code 的環境中設定,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.281 或更新版本 |278| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | 設為 `1` 可讓 Claude Code 不再傳送結構化輸出的 `output_config.format` 欄位及與其搭配的 `anthropic-beta` 值,適用於上游會拒絕這些項目的 [LLM 閘道](/docs/zh-TW/llm-gateway-protocol#feature-pass-through)。這會保留 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities) 所關閉的其他預發布功能。需要 Claude Code v2.1.288 或更新版本 |

279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 設定為 `1` 可停用根據對話上下文自動更新終端機標題。這也會略過用來[產生工作階段標題](/docs/zh-TW/sessions#name-your-sessions)的背景小型/快速模型請求 |279| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | 設為 `1` 可關閉針對目標完全為命令替換輸出之遞迴 `rm`(例如 `rm -rf "$(pwd)"`)的[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)檢查。其他關鍵路徑檢查會持續執行。請在啟動 Claude Code 的環境中設定,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.281 或更新版本 |

280| `CLAUDE_CODE_DISABLE_THINKING` | 設定為 `1` 可從 API 請求中完全省略 `thinking` 參數。這是針對會拒絕此參數之代理伺服器與閘道的相容性選項。在預設會思考的模型上,省略此參數意味著模型仍可能思考。若要在 Anthropic API 上明確停用[延伸思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),請改用 `MAX_THINKING_TOKENS=0`。這兩個變數都無法在 Opus 5.5、Sonnet 5.5 或 Fable 模型上關閉思考,因為這些模型無法關閉思考。在[第三方供應商](/docs/zh-TW/third-party-integrations)上,`MAX_THINKING_TOKENS=0` 同樣會省略此參數,因此這兩個變數在那裡的行為相同 |280| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 設為 `1` 可停用依據對話上下文自動更新終端機標題。這也會略過[產生工作階段標題](/docs/zh-TW/sessions#name-your-sessions)的背景小型/快速模型請求 |

281| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | 設定為 `1` 可在 Claude Code 無法辨識模型 ID(例如 [LLM 閘道](/docs/zh-TW/llm-gateway)別名)時略過主動[自動壓縮](/docs/zh-TW/costs#reduce-token-usage)。若未設定此變數,Claude Code 會在其為該 ID 假設的上下文視窗處進行壓縮。`CLAUDE_CODE_MAX_CONTEXT_TOKENS` 可以改為修正假設的視窗;關於各變數的適用時機,請參閱[修正閘道或自訂模型 ID 的視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。需要 Claude Code v2.1.223 或更新版本 |281| `CLAUDE_CODE_DISABLE_THINKING` | 設為 `1` 可從 API 請求中完全省略 `thinking` 參數。這是針對會拒絕此參數之代理伺服器與閘道的相容性選項。在預設會思考的模型上,省略此參數代表模型仍可能進行思考。若要在 Anthropic API 上明確停用[延伸思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking),請改用 `MAX_THINKING_TOKENS=0`。在 Opus 5.5、Sonnet 5.5 或 Fable 模型上,兩個變數都無法關閉思考,因為這些模型無法關閉思考。在[第三方供應商](/docs/zh-TW/third-party-integrations)上,`MAX_THINKING_TOKENS=0` 同樣會省略此參數,因此兩個變數在該處的行為相同 |

282| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 設定為 `1` 可在[全螢幕轉譯](/docs/zh-TW/fullscreen)中停用虛擬捲動,並轉譯逐字稿中的每則訊息。如果在全螢幕模式中捲動時,原本應顯示訊息之處出現空白區域,請使用此設定 |282| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | 設為 `1` 可在 Claude Code 無法辨識模型 ID(例如 [LLM 閘道](/docs/zh-TW/llm-gateway)別名)時略過主動[自動壓縮](/docs/zh-TW/costs#reduce-token-usage)。若未設定此變數,Claude Code 會依其為該 ID 假設的上下文視窗進行壓縮。`CLAUDE_CODE_MAX_CONTEXT_TOKENS` 可改為修正假設的視窗;關於各變數的適用時機,請參閱[修正閘道或自訂模型 ID 的視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。需要 Claude Code v2.1.223 或更新版本 |

283| `CLAUDE_CODE_DISABLE_WEB_FETCH` | 設定為 `1` 可關閉 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 工具。[WebSearch](/docs/zh-TW/tools-reference#websearch-tool-behavior) 工具仍可使用。需要 Claude Code v2.1.285 或更新版本 |283| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 設為 `1` 可在[全螢幕呈現](/docs/zh-TW/fullscreen)中停用虛擬捲動,並呈現逐字稿中的每則訊息。如果在全螢幕模式中捲動時,訊息應出現的位置顯示空白區域,請使用此變數 |

284| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | 設定為 `1` 可在 Windows 上直接啟動 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)命令,而非透過 `cmd.exe` 啟動器。預設情況下,啟動器可讓[在背景執行](/docs/zh-TW/tools-reference#background-commands)的 PowerShell 命令[延續至工作階段的下一個程序](/docs/zh-TW/agent-view#the-supervisor-process),例如當您[將工作階段移至背景](/docs/zh-TW/agent-view#from-inside-a-session)時。如果您設定此變數,背景化的 PowerShell 命令會在工作階段的程序結束時停止。Bash 命令不受影響。需要 Claude Code v2.1.269 或更新版本 |284| `CLAUDE_CODE_DISABLE_WEB_FETCH` | 設為 `1` 可關閉 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 工具。[WebSearch](/docs/zh-TW/tools-reference#websearch-tool-behavior) 工具仍可使用。需要 Claude Code v2.1.285 或更新版本 |

285| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 設定為 `1` 可停用[工作流程](/docs/zh-TW/workflows#turn-workflows-off)。等同於 [`disableWorkflows`](/docs/zh-TW/settings-reference#disableworkflows) 設定 |285| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | 設為 `1` 可在 Windows 上直接啟動 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)命令,而非透過 `cmd.exe` 啟動器。預設情況下,啟動器讓[在背景執行](/docs/zh-TW/tools-reference#background-commands)的 PowerShell 命令能[延續至工作階段的下一個程序](/docs/zh-TW/agent-view#the-supervisor-process),例如當您[將工作階段背景化](/docs/zh-TW/agent-view#from-inside-a-session)時。如果您設定此變數,背景化的 PowerShell 命令會在工作階段的程序結束時停止。Bash 命令不受影響。需要 Claude Code v2.1.269 或更新版本 |

286| `CLAUDE_CODE_EFFORT_LEVEL` | 為支援的模型設定 effort 等級。值:`low`、`medium`、`high`、`xhigh`、`max`,或 `auto` 以使用模型預設值。可用的等級取決於模型。優先於 `--effort`、`/effort` 以及 `modelSettings` 與 `effortLevel` 設定。[`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel) 上限仍然適用。請參閱[調整 effort 等級](/docs/zh-TW/model-config#adjust-effort-level) |286| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 設為 `1` 可停用[工作流程](/docs/zh-TW/workflows#turn-workflows-off)。等同於 [`disableWorkflows`](/docs/zh-TW/settings-reference#disableworkflows) 設定 |

287| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 為了與較舊版本相容而接受,但沒有作用。自動模式預設在所有供應商上都可使用,包括 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry,以及已登入的 [Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)工作階段。在 v2.1.158 至 v2.1.206 中,必須將此變數設定為 `1`,才能在這些供應商上使用[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) |287| `CLAUDE_CODE_EFFORT_LEVEL` | 為支援的模型設定 effort 等級。值:`low`、`medium`、`high`、`xhigh`、`max`,或使用 `auto` 以採用模型預設值。可用的等級取決於模型。優先於 `--effort`、`/effort`,以及 `modelSettings` 與 `effortLevel` 設定。[`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel) 上限仍然適用。請參閱[調整 effort 等級](/docs/zh-TW/model-config#adjust-effort-level) |

288| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆寫[工作階段摘要](/docs/zh-TW/interactive-mode#session-recap)的可用性。設定為 `0` 可強制關閉摘要,不論 `/config` 切換開關為何。設定為 `1` 可在 [`awaySummaryEnabled`](/docs/zh-TW/settings-reference#awaysummaryenabled) 為 `false` 時強制開啟摘要。優先於該設定與 `/config` 切換開關 |288| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 為了與較舊版本相容而接受,但不會有任何作用。自動模式在每個供應商上預設皆可使用,包括 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry,以及已登入的 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 工作階段。在 v2.1.158 至 v2.1.206 中,必須將此變數設為 `1`,才能在這些供應商上使用[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) |

289| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 設定為 `1` 可在[非互動模式](/docs/zh-TW/headless)中,於背景安裝完成後在回合邊界重新整理外掛狀態。預設為關閉,因為重新整理會在工作階段中途變更系統提示詞,導致該回合的[提示快取](/docs/zh-TW/prompt-caching)失效 |289| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆寫[工作階段回顧](/docs/zh-TW/interactive-mode#session-recap)的可用性。設為 `0` 可強制關閉回顧,不論 `/config` 切換開關為何。設為 `1` 可在 [`awaySummaryEnabled`](/docs/zh-TW/settings-reference#awaysummaryenabled) 為 `false` 時強制開啟回顧。優先於該設定與 `/config` 切換開關 |

290| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | 設定為 `1`,可在傳送至 Anthropic 的非必要流量遭封鎖時,將「How is Claude doing?」工作階段品質問卷導向您自己的 [OpenTelemetry collector](/docs/zh-TW/monitoring-usage)。問卷評分僅會以 OTEL 事件的形式傳送至您設定的 collector。在此模式下,不會有任何問卷資料傳送給 Anthropic。適用於已設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`、`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 的情況,否則不會有任何效果。`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` 與組織的產品意見回饋政策優先於此變數 |290| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 設為 `1` 可在[非互動模式](/docs/zh-TW/headless)中,於背景安裝完成後在回合邊界重新整理外掛狀態。預設為關閉,因為重新整理會在工作階段中途變更系統提示詞,導致該回合的[提示快取](/docs/zh-TW/prompt-caching)失效 |

291| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | 控制工具呼叫輸入是否在 Claude 產生時從 API 串流傳輸。關閉時,大型工具輸入(例如寫入長檔案)只會在 Claude 產生完畢後才送達,看起來可能像是卡住了。在 Anthropic API 上預設為啟用。在 Amazon Bedrock 與 Google Cloud's Agent Platform 上,會在部署的容器支援時依模型啟用。設定為 `0` 以選擇停用。透過 `ANTHROPIC_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL` 或 `ANTHROPIC_BEDROCK_BASE_URL` 經由代理伺服器路由時,設定為 `1` 以強制啟用。在 Microsoft Foundry 與[閘道](/docs/zh-TW/llm-gateway)連線上預設為關閉 |291| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | 設為 `1` 可在傳送至 Anthropic 的非必要流量遭封鎖時,將「How is Claude doing?」工作階段品質調查導向您自己的 [OpenTelemetry collector](/docs/zh-TW/monitoring-usage)。調查評分僅會以 OTEL 事件的形式傳送至您設定的 collector。在此模式下,不會有任何調查資料傳送給 Anthropic。適用於已設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`、`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 的情況,否則不會有任何作用。`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` 與組織的產品意見回饋政策優先於此變數 |

292| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 設定為 `1`,可在 `ANTHROPIC_BASE_URL` 指向與 Anthropic 相容的閘道(例如 LiteLLM、Kong 或內部代理伺服器)時,從閘道的 `/v1/models` 端點填入 `/model` 選擇器。預設為關閉,因為若閘道以共用 API 金鑰為後盾,否則會向每位使用者顯示該金鑰可存取的所有模型。探索到的模型仍會依工作階段收到的 [`availableModels`](/docs/zh-TW/settings-reference#availablemodels) 允許清單進行篩選;請透過 [MDM 或受管設定檔](/docs/zh-TW/managed-settings#delivery-mechanisms)提供該清單,因為[閘道設定不支援伺服器受管的傳遞方式](/docs/zh-TW/server-managed-settings#platform-availability) |292| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | 控制工具呼叫輸入是否在 Claude 產生時從 API 串流傳輸。關閉此功能時,大型工具輸入(例如寫入長檔案)只會在 Claude 完成產生後才送達,看起來可能像是停滯。在 Anthropic API 上預設為啟用。在 Amazon Bedrock 與 Google Cloud's Agent Platform 上,會依模型在所部署的容器支援時啟用。設為 `0` 可選擇停用。透過 `ANTHROPIC_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL` 或 `ANTHROPIC_BEDROCK_BASE_URL` 經由代理伺服器路由時,設為 `1` 可強制啟用。在 Microsoft Foundry 與[閘道](/docs/zh-TW/llm-gateway)連線上預設為關閉 |

293| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | 當 `ANTHROPIC_BASE_URL` 指向與 Anthropic 相容的閘道(例如 LiteLLM、Kong 或內部代理伺服器)時,設為 `1` 可從閘道的 `/v1/models` 端點填入 `/model` 選擇器。預設為關閉,否則以共用 API 金鑰為後端的閘道會向每位使用者顯示該金鑰可存取的所有模型。探索到的模型仍會依工作階段接收到的 [`availableModels`](/docs/zh-TW/settings-reference#availablemodels) 允許清單進行篩選;請透過 [MDM 或受管設定檔](/docs/zh-TW/managed-settings#delivery-mechanisms)提供此清單,因為[伺服器受管傳遞不適用於閘道設定](/docs/zh-TW/server-managed-settings#platform-availability) |

293| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | 已於 v2.1.142 移除,當時[快速模式](/docs/zh-TW/fast-mode)的預設模型從 Opus 4.6 改為 Opus 4.7 |294| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | 已於 v2.1.142 移除,當時[快速模式](/docs/zh-TW/fast-mode)的預設模型從 Opus 4.6 改為 Opus 4.7 |

294| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 設定為 `false` 可關閉提示詞建議,也就是出現在提示詞輸入框中的灰色預測。優先於 [`promptSuggestionEnabled`](/docs/zh-TW/settings-reference#promptsuggestionenabled) 設定,即 `/config` 中 **Prompt suggestions** 切換開關所寫入的設定。Claude Code 也會[在您的帳戶接近或已達用量上限時暫停建議](/docs/zh-TW/interactive-mode#when-claude-code-skips-suggestions)。設定為 `true` 可讓建議持續開啟,直到您達到上限為止。需要 Claude Code v2.1.238 或更新版本。請參閱[提示詞建議](/docs/zh-TW/interactive-mode#prompt-suggestions) |295| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 設為 `false` 可關閉提示詞建議,也就是出現在提示詞輸入框中的灰色預測。優先於 [`promptSuggestionEnabled`](/docs/zh-TW/settings-reference#promptsuggestionenabled) 設定,即 `/config` 中 **Prompt suggestions** 切換開關所寫入的設定。Claude Code 也會[在您的帳戶接近或已達用量上限時暫停建議](/docs/zh-TW/interactive-mode#when-claude-code-skips-suggestions)。設為 `true` 可讓建議保持開啟,直到您達到上限為止。需要 Claude Code v2.1.238 或更新版本。請參閱[提示詞建議](/docs/zh-TW/interactive-mode#prompt-suggestions) |

295| `CLAUDE_CODE_ENABLE_TASKS` | 選擇 Claude Code 在[具備任務追蹤工具的工作階段](/docs/zh-TW/tools-reference#task-tool-availability)中提供哪些任務追蹤工具。預設情況下,Claude Code 提供 Task 工具 `TaskCreate`、`TaskUpdate`、`TaskGet` 與 `TaskList`。設定為 `0` 可改為取得舊版 `TodoWrite` 工具。請參閱[任務清單](/docs/zh-TW/interactive-mode#task-list) |296| `CLAUDE_CODE_ENABLE_TASKS` | 選擇 Claude Code 在[具備這些工具的工作階段](/docs/zh-TW/tools-reference#task-tool-availability)中提供哪些任務追蹤工具。預設情況下,Claude Code 提供 Task 工具 `TaskCreate`、`TaskUpdate`、`TaskGet` 與 `TaskList`。設為 `0` 可改用舊版的 `TodoWrite` 工具。請參閱[任務清單](/docs/zh-TW/interactive-mode#task-list) |

296| `CLAUDE_CODE_ENABLE_TELEMETRY` | 設定為 `1` 以啟用 OpenTelemetry 的指標與日誌資料收集。設定 OTel 匯出器之前必須先設定此變數。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略。請參閱[監控](/docs/zh-TW/monitoring-usage) |297| `CLAUDE_CODE_ENABLE_TELEMETRY` | 設為 `1` 可啟用用於指標與日誌的 OpenTelemetry 資料收集。設定 OTel exporter 之前必須先設定此變數。請在您的 shell、使用者設定或受管設定中設定它。在[專案與本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略。請參閱[監控](/docs/zh-TW/monitoring-usage) |

297| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | 設定為 `1` 以在每個模型上取得任務追蹤工具。若未設定,Claude Code 預設只會在 [Task 工具可用性](/docs/zh-TW/tools-reference#task-tool-availability)下列出的模型上提供這些工具。`CLAUDE_CODE_ENABLE_TASKS` 仍會決定使用 Task 工具或 `TodoWrite`。需要 Claude Code v2.1.233 或更新版本 |298| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | 設為 `1` 可在每個模型上取得任務追蹤工具。若未設定,Claude Code 預設僅在 [Task 工具可用性](/docs/zh-TW/tools-reference#task-tool-availability)下列出的模型上提供這些工具。`CLAUDE_CODE_ENABLE_TASKS` 仍會選擇 Task 工具或 `TodoWrite`。需要 Claude Code v2.1.233 或更新版本 |

298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查詢迴圈進入閒置後,自動結束前要等待的時間(毫秒)。適用於使用 SDK 模式的自動化工作流程與指令碼 |299| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查詢迴圈進入閒置後,自動結束前要等待的時間(毫秒)。適用於使用 SDK 模式的自動化工作流程與腳本 |

299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 設定為 `1` 以啟用 [agent teams](/docs/zh-TW/agent-teams)。Agent teams 為實驗性功能,預設為停用 |300| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 設為 `1` 可啟用 [agent teams](/docs/zh-TW/agent-teams)。Agent teams 為實驗性功能,預設為停用 |

300| `CLAUDE_CODE_EXTRA_BODY` | 要合併至每個 API 請求主體最上層的 JSON 物件。適用於傳遞 Claude Code 未直接公開的供應商特定參數。在 shell 中 export 的值也會套用至您以 `claude agents` 或 `--bg` 分派的[背景工作階段](/docs/zh-TW/agent-view)。在 v2.1.206 之前,背景工作階段會忽略 shell export 的值,並使用背景監督程序所繼承的任何副本 |301| `CLAUDE_CODE_EXTRA_BODY` | 要合併至每個 API 請求主體頂層的 JSON 物件。適用於傳遞 Claude Code 未直接公開的供應商專屬參數。在 shell 中匯出的值也會套用至您使用 `claude agents` 或 `--bg` 分派的[背景工作階段](/docs/zh-TW/agent-view)。在 v2.1.206 之前,背景工作階段會忽略 shell 匯出的值,而使用背景監督程序所繼承的副本 |

301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆寫檔案讀取的預設 token 上限。適用於需要完整讀取較大檔案時 |302| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆寫檔案讀取的預設 token 上限。適用於需要完整讀取較大檔案時 |

302| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 設定為 `1`,即使此 `claude` 是從另一個 Claude Code 工作階段內部啟動,也會強制保存逐字稿、提示詞歷史記錄以及 `claude agents` 註冊。當繼承的 `CLAUDE_CODE_CHILD_SESSION` 值(例如來自 `screen` 工作階段,或最初由 Claude Code 的 Bash 工具啟動的背景啟動器)導致真正的頂層工作階段被誤判為巢狀工作階段時使用。自 v2.1.178 起,Claude Code 會自動偵測 tmux 的情況並忽略繼承的標記,因此 tmux 不再需要此變數。在 v2.1.169 及更早版本中同樣有效;在 v2.1.170 與 v2.1.171 中沒有效果,因為這兩個版本移除了它所覆寫的巢狀工作階段偵測 |303| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | 設為 `1` 可強制保存逐字稿、提示詞歷史記錄與 `claude agents` 註冊,即使此 `claude` 是從另一個 Claude Code 工作階段內啟動的也一樣。當繼承的 `CLAUDE_CODE_CHILD_SESSION` 值(例如來自 `screen` 工作階段,或最初由 Claude Code 的 Bash 工具啟動的背景啟動器)導致真正的頂層工作階段被誤判為巢狀工作階段時使用。自 v2.1.178 起,Claude Code 會自動偵測 tmux 的情況並忽略繼承的標記,因此 tmux 不再需要此變數。在 v2.1.169 及更早版本中同樣有效;在 v2.1.170 與 v2.1.171 中沒有作用,因為這兩個版本移除了它所覆寫的巢狀工作階段偵測 |

303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 設定為 `1`,可在終端機支援但未被自動偵測到時(例如透過 SSH 且未轉送 `TERM_PROGRAM`),強制將 Claude 回應中的 `~~text~~` 以刪除線呈現。若未設定,未偵測到的終端機會顯示字面上的 `~~` 標記,而不是將文字呈現為刪除線。需要 Claude Code v2.1.186 或更新版本 |304| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 設為 `1` 可在終端機支援但未被自動偵測時(例如透過 SSH 連線且未轉送 `TERM_PROGRAM`),強制以刪除線呈現 Claude 回應中的 `~~text~~`。若未設定,未被偵測到的終端機會顯示字面的 `~~` 標記,而不是以刪除線呈現文字。需要 Claude Code v2.1.186 或更新版本 |

304| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 設定為 `1`,可在終端機支援但未被自動偵測到時,強制啟用 DEC private mode 2026 [同步輸出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。適用於 Emacs `eat` 等實作了 BSU/ESU 但不回應功能探測的模擬器。在 tmux 下沒有效果。與切換至[全螢幕呈現](/docs/zh-TW/fullscreen)的 `CLAUDE_CODE_NO_FLICKER` 不同,此變數不會變更呈現器 |305| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | 設為 `1` 可在終端機支援但未被自動偵測時,強制啟用 DEC private mode 2026 [同步輸出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。適用於實作了 BSU/ESU 但不回應功能探測的模擬器,例如 Emacs `eat`。在 tmux 下沒有作用。與會切換至[全螢幕呈現](/docs/zh-TW/fullscreen)的 `CLAUDE_CODE_NO_FLICKER` 不同,此變數不會變更渲染器 |

305| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 [fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off),此模式讓 Claude 能自行產生 [forked subagent](/docs/zh-TW/sub-agents#fork-the-current-conversation),且預設僅在互動式工作階段中開啟。設定為 `1` 可在 `claude -p` 與 Agent SDK 中也開啟此模式,或設定為 `0` 以在所有類型的工作階段中關閉。無論 fork 模式是否開啟,您都可以執行 `/subtask`。互動式預設值需要 Claude Code v2.1.232 或更新版本;在較早版本中,請將此變數設定為 `1` 以開啟 fork 模式 |306| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 [fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off),此模式可讓 Claude 自行產生 [fork 的 subagent](/docs/zh-TW/sub-agents#fork-the-current-conversation),且僅在互動式工作階段中預設為開啟。設為 `1` 可在 `claude -p` 與 Agent SDK 中也開啟它,設為 `0` 則在所有類型的工作階段中關閉。無論 fork 模式是否開啟,您都可以執行 `/subtask`。互動式預設值需要 Claude Code v2.1.232 或更新版本;在較早版本中,請將此變數設為 `1` 以開啟 fork 模式 |

306| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 設定為 `1`,可在 `claude -p --output-format stream-json` 輸出中發出 [subagent](/docs/zh-TW/sub-agents) 的文字與思考區塊,行為與 [`--forward-subagent-text`](/docs/zh-TW/cli-reference#cli-flags) 旗標相同。當執行框架叫用 `claude` 且無法自行傳遞旗標時,請使用此變數。旗標在「搭配 stream-json 輸出的非互動模式」以外使用時會以錯誤結束,而此變數在這些情況下會被忽略,因此在整個程序範圍設定此變數時,巢狀叫用仍可正常運作。需要 Claude Code v2.1.211 或更新版本 |307| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | 設為 `1` 可在 `claude -p --output-format stream-json` 輸出中發出 [subagent](/docs/zh-TW/sub-agents) 的文字與思考區塊,行為與 [`--forward-subagent-text`](/docs/zh-TW/cli-reference#cli-flags) 旗標相同。當呼叫 `claude` 的執行框架無法自行傳遞該旗標時,請使用此變數。該旗標在搭配 stream-json 輸出的非互動模式之外使用時會以錯誤結束,而此變數在這些情況下會被忽略,因此在整個程序範圍設定此變數時,巢狀呼叫仍可正常運作。需要 Claude Code v2.1.211 或更新版本 |

307| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 設定為 `1`,可在自訂代理伺服器或第三方供應商(例如 Amazon Bedrock 或 Claude Platform on AWS)上傳送[閘道提示標頭](/docs/zh-TW/llm-gateway-protocol#gateway-hint-headers),例如 `x-claude-code-request-class` 與 `x-claude-code-compaction`。設定為 `0` 可在所有連線上停止傳送這些標頭,包括直接連線至 Anthropic API 的情況,而 Claude Code 預設會在該情況下傳送。需要 Claude Code v2.1.273 或更新版本 |308| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 設為 `1` 可在自訂代理伺服器或第三方供應商(例如 Amazon Bedrock 或 Claude Platform on AWS)上傳送[閘道提示標頭](/docs/zh-TW/llm-gateway-protocol#gateway-hint-headers),例如 `x-claude-code-request-class` 與 `x-claude-code-compaction`。設為 `0` 可在每個連線上停止傳送,包括直接連線至 Anthropic API 的情況,在該情況下 Claude Code 預設會傳送它們。需要 Claude Code v2.1.273 或更新版本 |

308| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | 由 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` 開啟的[閘道模型探索](/docs/zh-TW/llm-gateway-protocol#model-discovery)請求之逾時時間(毫秒)(預設:`3000`)。當您的閘道在啟動時需要超過三秒才能回應 `/v1/models` 時,請調高此值。僅接受純數字;`0`、負值及其他寫法都會保留預設值。需要 Claude Code v2.1.269 或更新版本 |309| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | 由 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` 開啟的[閘道模型探索](/docs/zh-TW/llm-gateway-protocol#model-discovery)請求的逾時時間(毫秒)(預設:`3000`)。當您的閘道在啟動時需要超過三秒才能回應 `/v1/models` 時,請調高此值。僅接受純數字;`0`、負值及其他寫法會維持預設值。需要 Claude Code v2.1.269 或更新版本 |

309| `CLAUDE_CODE_GIT_BASH_PATH` | 僅限 Windows:Git Bash 執行檔(`bash.exe`)的路徑。當 Git Bash 已安裝但不在您的 PATH 中時使用。如果路徑不存在,或檔案名稱不是 `bash.exe`、`sh.exe`、`bash` 或 `sh`,Claude Code 會忽略此變數,並如同未設定般自動偵測 Git Bash,同時記錄一則可透過 `--debug` 查看的警告。在 v2.1.219 之前,路徑不存在時 Claude Code 會在啟動時結束,並且會將任何現有檔案當作 shell 使用,而不檢查它是否為 bash 或 sh。請參閱 [Windows 設定](/docs/zh-TW/setup#set-up-on-windows) |310| `CLAUDE_CODE_GIT_BASH_PATH` | 僅限 Windows:Git Bash 執行檔(`bash.exe`)的路徑。當 Git Bash 已安裝但不在您的 PATH 中時使用。若路徑不存在,或檔案名稱不是 `bash.exe`、`sh.exe`、`bash` 或 `sh`,Claude Code 會忽略此變數,並如同未設定一般自動偵測 Git Bash,同時記錄一則可透過 `--debug` 看到的警告。在 v2.1.219 之前,當路徑不存在時 Claude Code 會在啟動時結束,並且會將任何現有檔案當作 shell 使用,而不檢查它是否為 bash 或 sh。請參閱 [Windows 設定](/docs/zh-TW/setup#set-up-on-windows) |

310| `CLAUDE_CODE_GLOB_HIDDEN` | 設定為 `false`,可在 Claude 叫用 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior)時將 dotfile 排除於結果之外。預設會包含。不影響 `@` 檔案自動完成、`ls`、Grep 或 Read |311| `CLAUDE_CODE_GLOB_HIDDEN` | 設為 `false` 可在 Claude 呼叫 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior)時從結果中排除 dotfile。預設會包含。不影響 `@` 檔案自動完成、`ls`、Grep 或 Read |

311| `CLAUDE_CODE_GLOB_NO_IGNORE` | 設定為 `false` 可讓 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior)遵循 `.gitignore` 模式。預設情況下,Glob 會傳回所有相符的檔案,包括被 gitignore 的檔案。不影響 `@` 檔案自動完成,後者有自己的 [`respectGitignore` 設定](/docs/zh-TW/settings-reference#respectgitignore) |312| `CLAUDE_CODE_GLOB_NO_IGNORE` | 設為 `false` 可讓 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior)遵循 `.gitignore` 模式。預設情況下,Glob 會傳回所有相符的檔案,包括被 gitignore 的檔案。不影響 `@` 檔案自動完成,其有自己的 [`respectGitignore` 設定](/docs/zh-TW/settings-reference#respectgitignore) |

312| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 工具檔案探索的逾時時間(秒)。在大多數平台上預設為 20 秒,在 WSL 上為 60 秒 |313| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 工具檔案探索的逾時時間(秒)。在大多數平台上預設為 20 秒,在 WSL 上為 60 秒 |

313| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | 背景工作可讓作用中的目標等待多少分鐘,超過後 Claude Code 會[要求 Claude 檢查其狀態](/docs/zh-TW/goal#background-work-defers-evaluation)。預設為 `30`。設定 `0` 可關閉檢查。請以純數字提供整數分鐘,最多 `10080`,也就是一週。Claude Code 會將其他任何值視為未設定並使用預設值。需要 Claude Code v2.1.234 或更新版本 |314| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | 背景工作可讓進行中的目標等待多少分鐘,之後 Claude Code 會[要求 Claude 檢查該目標](/docs/zh-TW/goal#background-work-defers-evaluation)。預設為 `30`。設為 `0` 可關閉檢查。請以純數字提供整數分鐘,最多 `10080`,即一週。Claude Code 會將任何其他值視為未設定並使用預設值。需要 Claude Code v2.1.234 或更新版本 |

314| `CLAUDE_CODE_HIDE_CWD` | 設定為 `1` 可在啟動 logo 中隱藏工作目錄。適用於路徑會暴露您作業系統使用者名稱的螢幕分享或錄影情境 |315| `CLAUDE_CODE_HIDE_CWD` | 設為 `1` 可在啟動標誌中隱藏工作目錄。適用於路徑會洩漏作業系統使用者名稱的螢幕分享或錄影情境 |

315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆寫用來連線至 IDE 擴充功能的主機位址。預設情況下,Claude Code 會自動偵測正確的位址,包括 WSL 至 Windows 的路由 |316| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆寫用於連線至 IDE 擴充功能的主機位址。預設情況下,Claude Code 會自動偵測正確的位址,包括 WSL 至 Windows 的路由 |

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 設定為 `1` 以略過 IDE 擴充功能的自動安裝。相當於將 [`autoInstallIdeExtension`](/docs/zh-TW/settings-reference#autoinstallideextension) 設定為 `false` |317| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 設為 `1` 可略過 IDE 擴充功能的自動安裝。相當於將 [`autoInstallIdeExtension`](/docs/zh-TW/settings-reference#autoinstallideextension) 設為 `false` |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 設定為 `1` 以在連線時略過 IDE lockfile 項目的驗證。當 IDE 正在執行但自動連線仍找不到它時使用 |318| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 設為 `1` 可在連線期間略過 IDE lockfile 項目的驗證。當 IDE 正在執行但自動連線仍找不到它時使用 |

318| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 一個工作階段中可同時執行多少個 [subagent](/docs/zh-TW/sub-agents#concurrent-subagent-limit),超過後 Agent 工具會拒絕再產生新的 subagent(預設:20)。接受以純數字表示的正整數;其他任何值都會被忽略,因此此變數可以調整上限,但無法停用上限。需要 Claude Code v2.1.217 或更新版本 |319| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 單一工作階段中可同時執行的 [subagent](/docs/zh-TW/sub-agents#concurrent-subagent-limit) 數量上限,超過時 Agent 工具會拒絕再產生新的 subagent(預設:20)。接受以純數字表示的正整數;其他任何值都會被忽略,因此此變數可以調整上限,但無法停用它。需要 Claude Code v2.1.217 或更新版本 |

319| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | 覆寫 Claude Code 為作用中模型所假設的上下文視窗大小。自 v2.1.193 起,其套用方式取決於 Claude Code 如何解析模型 ID;請參閱[修正閘道或自訂模型 ID 的視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。當透過 `ANTHROPIC_BASE_URL` 路由至某個模型,而其上下文視窗與該名稱的內建大小不符時使用 |320| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | 覆寫 Claude Code 為目前模型所假設的上下文視窗大小。自 v2.1.193 起,其套用方式取決於 Claude Code 如何解析模型 ID;請參閱[修正閘道或自訂模型 ID 的視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id)。當透過 `ANTHROPIC_BASE_URL` 路由至某個模型,而其上下文視窗與該名稱的內建大小不符時使用 |

320| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code 傳送給模型的每個 MCP 工具描述及每個 MCP 伺服器指令的最大長度(字元數)(預設:2048)。Claude Code 會[截斷較長的文字](/docs/zh-TW/mcp#for-mcp-server-authors)。接受以純數字表示的正整數。其他任何值都會被忽略並套用預設值。需要 Claude Code v2.1.280 或更新版本 |321| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Claude Code 傳送給模型的每個 MCP 工具描述與每個 MCP 伺服器指令的最大長度(字元數)(預設:2048)。Claude Code 會[截斷較長的文字](/docs/zh-TW/mcp#for-mcp-server-authors)。接受以純數字表示的正整數。其他任何值都會被忽略並套用預設值。需要 Claude Code v2.1.280 或更新版本 |

321| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 設定大多數請求的最大輸出 token 數。預設值與上限因模型而異;請參閱[最大輸出 token](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)。Claude Code 會將超過模型上限的值降為該上限。對於 Claude Code 無法解析為已知模型的模型 ID,預設值為 32000,上限為 128000。增加此值會減少觸發[自動壓縮](/docs/zh-TW/costs#reduce-token-usage)前可用的有效上下文視窗 |322| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 設定大多數請求的最大輸出 token 數量。預設值與上限因模型而異;請參閱[最大輸出 token](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)。若值超過模型上限,Claude Code 會將其降至上限。對於 Claude Code 無法解析為已知模型的模型 ID,預設值為 32000,上限為 128000。提高此值會減少觸發[自動壓縮](/docs/zh-TW/costs#reduce-token-usage)前可用的有效上下文視窗 |

322| `CLAUDE_CODE_MAX_RETRIES` | 覆寫失敗 API 請求的重試次數(預設:10)。自 v2.1.186 起上限為 15;自 v2.1.199 起,`CLAUDE_CODE_RETRY_WATCHDOG` 會提高預設值並移除上限。對於需要等待較長服務中斷的無人值守工作階段,請改為設定 `CLAUDE_CODE_RETRY_WATCHDOG` |323| `CLAUDE_CODE_MAX_RETRIES` | 覆寫失敗 API 請求的重試次數(預設:10)。自 v2.1.186 起上限為 15;自 v2.1.199 起,`CLAUDE_CODE_RETRY_WATCHDOG` 會提高預設值並移除上限。對於需要撐過較長服務中斷的無人值守工作階段,請改為設定 `CLAUDE_CODE_RETRY_WATCHDOG` |

323| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | 已於 v2.1.224 移除,現在不具作用。先前用於限制 Claude 在一個工作階段中可使用 Agent 工具產生的 [subagent](/docs/zh-TW/sub-agents) 總數(預設:200);超過上限的產生會以 `Subagent spawn limit reached` 失敗。[並行 subagent 上限](/docs/zh-TW/sub-agents#concurrent-subagent-limit)與[深度上限](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)仍然適用 |324| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | 已於 v2.1.224 移除,現在不具任何作用。先前用於限制 Claude 在單一工作階段中可使用 Agent 工具產生的 [subagent](/docs/zh-TW/sub-agents) 總數(預設:200);超過上限時產生會失敗並顯示 `Subagent spawn limit reached`。[並行 subagent 限制](/docs/zh-TW/sub-agents#concurrent-subagent-limit)與[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)仍然適用 |

324| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 主對話之下允許的 [subagent 層數](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) (預設:3)。在預設值下,subagent 可以產生自己的 subagent,而位於第三層的 subagent 無法再繼續產生;設定 `1` 可關閉巢狀產生。在 v2.1.217 至 v2.1.218 中,預設值為 1,因此除非您提高上限,否則 subagent 無法產生自己的 subagent;v2.1.219 將預設值提高為 3。接受以純數字表示的正整數;其他任何值都會被忽略,因此上限可以調整但無法移除。需要 Claude Code v2.1.217 或更新版本 |325| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | 主對話之下允許的 [subagent 層數](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) (預設:3)。在預設值下,subagent 可以產生自己的 subagent,而位於第三層的 subagent 無法再繼續產生;設為 `1` 可關閉巢狀。在 v2.1.217 至 v2.1.218 中,預設值為 1,因此除非您提高限制,否則 subagent 無法產生自己的 subagent;v2.1.219 將預設值提高為 3。接受以純數字表示的正整數;其他任何值都會被忽略,因此此限制可以調整但無法移除。需要 Claude Code v2.1.217 或更新版本 |

325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 可平行執行的唯讀工具與 subagent 的最大數量(預設:10)。較高的值會提高平行度,但會消耗更多資源 |326| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 可平行執行的唯讀工具與 subagent 的最大數量(預設:10)。較高的值會提高平行度,但會消耗更多資源 |

326| `CLAUDE_CODE_MAX_TURNS` | 在未傳遞明確上限時,限制 agentic 回合數。相當於傳遞 [`--max-turns`](/docs/zh-TW/cli-reference#cli-flags),兩者都設定時該旗標優先。不是正整數的值會在啟動時以錯誤遭到拒絕,而不會被視為無上限 |327| `CLAUDE_CODE_MAX_TURNS` | 在未傳遞明確限制時,限制 agentic 回合的數量。相當於傳遞 [`--max-turns`](/docs/zh-TW/cli-reference#cli-flags),若兩者皆設定則以該旗標為優先。非正整數的值會在啟動時以錯誤拒絕,而不是被視為無上限 |

327| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 一個工作階段可進行的 [WebSearch](/docs/zh-TW/tools-reference#websearch-tool-behavior) 呼叫總數上限(預設:200)。當 Claude 達到上限時,後續的 WebSearch 呼叫會傳回一則通知,告知它以已收集的資訊繼續進行。接受任意大小的正整數。其他任何值都會被忽略並套用預設值,因此上限可以提高但無法關閉。需要 Claude Code v2.1.212 或更新版本 |328| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | 單一工作階段可進行的 [WebSearch](/docs/zh-TW/tools-reference#websearch-tool-behavior) 呼叫總數上限(預設:200)。當 Claude 達到上限時,後續的 WebSearch 呼叫會傳回一則通知,告訴它以已蒐集的資訊繼續進行。接受沒有上限值的正整數。其他任何值都會被忽略並套用預設值,因此此上限可以提高但無法關閉。需要 Claude Code v2.1.212 或更新版本 |

328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 設定為 `1`,以僅含安全基準環境加上伺服器所設定之 `env` 的方式產生 stdio MCP 伺服器,而不是繼承您的 shell 環境 |329| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 設為 `1` 可讓 stdio MCP 伺服器僅以安全的基本環境加上伺服器所設定的 `env` 啟動,而不是繼承您的 shell 環境 |

329| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 仍在執行的 MCP 工具呼叫[移至背景任務](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls)前所經過的時間(毫秒)(預設:120000,即 2 分鐘)。設定為 `0` 以關閉自動背景化。需要 Claude Code v2.1.212 或更新版本 |330| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | 仍在執行的 MCP 工具呼叫[移至背景任務](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls)前經過的時間(毫秒)(預設:120000,即 2 分鐘)。設為 `0` 可關閉自動背景執行。需要 Claude Code v2.1.212 或更新版本 |

330| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [非互動](/docs/zh-TW/headless)工作階段的第一個回合等待仍在連線中之 MCP 伺服器的時間長度(毫秒),取代預設的[第一回合等待](/docs/zh-TW/agent-sdk/mcp#connection-timing)。設定後,等待會涵蓋所有擱置中的伺服器。設定為 `0` 以略過等待。無論此值為何,[`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 伺服器都會保留其自己的 `MCP_TIMEOUT` 等待。需要 Claude Code v2.1.274 或更新版本 |331| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | [非互動](/docs/zh-TW/headless)工作階段的第一個回合等待仍在連線中之 MCP 伺服器的時間(毫秒),取代預設的[第一回合等待](/docs/zh-TW/agent-sdk/mcp#connection-timing)。設定後,等待會涵蓋所有待處理的伺服器。設為 `0` 可略過等待。無論此值為何,[`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 伺服器都會保留其自己的 `MCP_TIMEOUT` 等待。需要 Claude Code v2.1.274 或更新版本 |

331| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 工具呼叫的閒置逾時(毫秒)。當 stdio、HTTP、SSE、WebSocket 或 [claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) MCP 伺服器在這段時間內沒有傳送任何回應與進度通知時,工具呼叫會以錯誤中止,而不是等待整體的 `MCP_TOOL_TIMEOUT`。覆寫各傳輸方式的預設值:網路伺服器為 300000(5 分鐘),stdio 伺服器為 1800000(30 分鐘)。設定為 `0` 以停用閒置檢查。低於 1000 的值會提高為一秒,且此值的上限為有效的 `MCP_TOOL_TIMEOUT`。在 `.mcp.json` 中為個別伺服器設定至少 1000 的 `timeout`,會將該伺服器的閒置時間窗口提高至至少該 `timeout` 值。不適用於 IDE 伺服器或 SDK 程序內伺服器。需要 Claude Code v2.1.187 或更新版本。在 v2.1.203 之前,stdio 伺服器不受閒置逾時限制 |332| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | MCP 工具呼叫的閒置逾時(毫秒)。當 stdio、HTTP、SSE、WebSocket 或 [claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) MCP 伺服器在這段時間內未傳送任何回應或進度通知時,工具呼叫會以錯誤中止,而不是等待整體的 `MCP_TOOL_TIMEOUT`。覆寫各傳輸方式的預設值:網路伺服器為 300000(5 分鐘),stdio 伺服器為 1800000(30 分鐘)。設為 `0` 可停用閒置檢查。低於 1000 的值會提高至一秒,且此值的上限為有效的 `MCP_TOOL_TIMEOUT`。`.mcp.json` 中至少為 1000 的個別伺服器 `timeout` 會將該伺服器的閒置時段提高至至少 `timeout` 值。不適用於 IDE 伺服器或 SDK 程序內伺服器。需要 Claude Code v2.1.187 或更新版本。在 v2.1.203 之前,stdio 伺服器不受閒置逾時限制 |

332| `CLAUDE_CODE_MESSAGING_SOCKET` | 由 Claude Code 設定,而非由您設定:在綁定[收件匣 socket](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket) 的工作階段中,Claude Code 會在綁定 socket 時將該 socket 的路徑匯出給 hook 與 Bash 命令。在啟動時即開啟訊息功能的工作階段中,Claude Code 會在任何 hook 執行前綁定 socket。機器上的其他工作階段會將訊息傳送至此路徑。每個工作階段都會匯出自己的 socket,而不是從父工作階段繼承的 socket,抵達的訊息會經過該工作階段的[傳入控制](/docs/zh-TW/cross-session-messaging#control-inbound-messages)。設定中的 `env` 區塊無法設定此變數。需要 Claude Code v2.1.224 或更新版本 |333| `CLAUDE_CODE_MESSAGING_SOCKET` | 由 Claude Code 設定,而非由您設定:在綁定[收件匣 socket](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket) 的工作階段中,Claude Code 會在綁定 socket 時將該 socket 的路徑匯出給 hook 與 Bash 命令。在啟用傳訊功能啟動的工作階段中,Claude Code 會在任何 hook 執行之前綁定 socket。機器上的其他工作階段會將訊息傳遞至此路徑。每個工作階段都會匯出自己的 socket,而非從父工作階段繼承的 socket,抵達該 socket 的訊息會經過工作階段的[傳入控制](/docs/zh-TW/cross-session-messaging#control-inbound-messages)。設定中的 `env` 區塊無法設定它。需要 Claude Code v2.1.224 或更新版本 |

333| `CLAUDE_CODE_MESSAGING_TOKEN` | 由 Claude Code 設定,而非由您設定:在綁定[收件匣 socket](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket) 的工作階段中,Claude Code 會將此工作階段專屬的 token 與 `CLAUDE_CODE_MESSAGING_SOCKET` 一起匯出給 hook 與 Bash 命令。傳送至 socket 的指令碼可以將 `{"type":"auth","token":"<token>"}` 作為第一行傳送,以證明它屬於該工作階段。在原生 Windows 上,Claude Code 要求必須有此行,並會關閉任何未以有效的此行開頭的連線。[自身子程序規則](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket)說明 Claude Code 何時會查驗 token。每個工作階段都會匯出自己的 token,絕不會使用從父工作階段繼承的 token。設定中的 `env` 區塊無法設定此變數。需要 Claude Code v2.1.228 或更新版本 |334| `CLAUDE_CODE_MESSAGING_TOKEN` | 由 Claude Code 設定,而非由您設定:在綁定[收件匣 socket](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket) 的工作階段中,Claude Code 會將此工作階段專屬的 token 連同 `CLAUDE_CODE_MESSAGING_SOCKET` 一起匯出給 hook 與 Bash 命令。張貼至 socket 的腳本可以傳送 `{"type":"auth","token":"<token>"}` 作為第一行,以證明它屬於該工作階段。在原生 Windows 上,Claude Code 要求此行,並會關閉任何未以有效的此行開頭的連線。[自身子程序規則](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket)說明 Claude Code 何時會參考此 token。每個工作階段都會匯出自己的 token,絕不會是從父工作階段繼承的 token。設定中的 `env` 區塊無法設定它。需要 Claude Code v2.1.228 或更新版本 |

334| `CLAUDE_CODE_NATIVE_CURSOR` | 設定為 `1`,在輸入插入點顯示終端機本身的游標,而非繪製的區塊。游標會遵循終端機的閃爍、形狀與焦點設定 |335| `CLAUDE_CODE_NATIVE_CURSOR` | 設為 `1` 可在輸入插入點顯示終端機本身的游標,而非繪製的方塊。游標會遵循終端機的閃爍、形狀與焦點設定 |

335| `CLAUDE_CODE_NEW_INIT` | 設定為 `1` 可讓 `/init` 執行互動式設定流程。此流程會在探索程式碼庫並寫入檔案之前,詢問要產生哪些檔案,包括 CLAUDE.md、skill 與 hook。若未設定此變數,`/init` 會自動產生 CLAUDE.md,而不會提示詢問 |336| `CLAUDE_CODE_NEW_INIT` | 設為 `1` 可讓 `/init` 執行互動式設定流程。此流程會在探索程式碼庫並寫入檔案之前,詢問要產生哪些檔案,包括 CLAUDE.md、skill 與 hook。若未設定此變數,`/init` 會自動產生 CLAUDE.md 而不進行詢問 |

336| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 設定為 `1`,透過第二個非阻塞檔案描述元寫入終端機輸出,使停止讀取的終端機(例如暫停的 tmux control-mode 窗格或停滯的 SSH 連線)無法讓 Claude Code 在工作階段中途凍結。當 stdout 為終端機時,適用於 macOS、Linux 與 WSL。需要 Claude Code v2.1.261 或更新版本 |337| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 設為 `1` 可透過第二個非阻塞檔案描述元寫入終端機輸出,讓停止讀取的終端機(例如已暫停的 tmux control-mode 窗格或停滯的 SSH 連線)無法在工作階段中途凍結 Claude Code。當 stdout 為終端機時,適用於 macOS、Linux 與 WSL。需要 Claude Code v2.1.261 或更新版本 |

337| `CLAUDE_CODE_NO_FLICKER` | 設定為 `1` 以啟用[全螢幕呈現](/docs/zh-TW/fullscreen),這是一項研究預覽功能,可減少閃爍並在長對話中維持穩定的記憶體用量。覆寫 [`tui`](/docs/zh-TW/settings-reference#tui) 設定;您也可以使用 `/tui fullscreen` 切換 |338| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | 限制 Claude Code 重新傳送逾時之[非串流請求](/docs/zh-TW/errors#streaming-response-ended-before-any-complete-data-was-received)的次數。設為 `0` 時,請求會在第一次逾時時失敗。預設為未設定,因此由 `CLAUDE_CODE_MAX_RETRIES` 限制這些重新傳送。有關逾時,請參閱[調整重試行為](/docs/zh-TW/errors#tune-retry-behavior)。需要 Claude Code v2.1.285 或更新版本 |

338| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | 用於 Claude.ai 身分驗證的 OAuth refresh token。設定後,`claude auth login` 會直接交換此 token,而不開啟瀏覽器。需要 `CLAUDE_CODE_OAUTH_SCOPES`。適用於在自動化環境中佈建身分驗證 |339| `CLAUDE_CODE_NO_FLICKER` | 設為 `1` 可啟用[全螢幕呈現](/docs/zh-TW/fullscreen),這是一項研究預覽功能,可減少閃爍並在長對話中維持記憶體用量穩定。覆寫 [`tui`](/docs/zh-TW/settings-reference#tui) 設定;您也可以使用 `/tui fullscreen` 切換 |

339| `CLAUDE_CODE_OAUTH_SCOPES` | 以空格分隔、發出 refresh token 時所使用的 OAuth 範圍,例如 `"user:profile user:inference user:sessions:claude_code"`。設定 `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` 時為必要 |340| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | 用於 Claude.ai 身分驗證的 OAuth refresh token。設定後,`claude auth login` 會直接交換此 token,而不是開啟瀏覽器。需要 `CLAUDE_CODE_OAUTH_SCOPES`。適用於在自動化環境中佈建身分驗證 |

340| `CLAUDE_CODE_OAUTH_TOKEN` | 用於 claude.ai 身分驗證的 OAuth 存取 token。在 SDK 與自動化環境中可作為 `/login` 的替代方案。優先於儲存在鑰匙圈中的憑證。使用 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token) 產生。除非您執行 [`/login`](/docs/zh-TW/authentication#authentication-precedence),否則 Claude Code 會在整個工作階段中使用您設定的 token。若要替換已過期的 token,請產生新的 token 並重新啟動 |341| `CLAUDE_CODE_OAUTH_SCOPES` | 核發 refresh token 時所使用的 OAuth 範圍,以空格分隔,例如 `"user:profile user:inference user:sessions:claude_code"`。設定 `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` 時為必要 |

341| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | 已於 v2.1.160 移除,現在不具作用。先前用於將[快速模式](/docs/zh-TW/fast-mode)固定於 Claude Opus 4.6,而非目前的預設值。Opus 4.6 已不再支援快速模式 |342| `CLAUDE_CODE_OAUTH_TOKEN` | 用於 claude.ai 身分驗證的 OAuth 存取 token。SDK 與自動化環境中 `/login` 的替代方案。優先於儲存在鑰匙圈中的憑證。使用 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token) 產生一個。除非您執行 [`/login`](/docs/zh-TW/authentication#authentication-precedence),否則 Claude Code 會在整個工作階段中使用您設定的 token。若要替換已過期的 token,請產生新的 token 並重新啟動 |

342| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 含內容之 OpenTelemetry 屬性(模型回應、工具內容、系統提示詞、原始 API 主體)的最大長度,包含截斷標記,以 UTF-16 程式碼單元計算(預設:61440,即 60 KB)。僅在您的遙測後端接受大於 64 KB 的屬性值時才調高此值,或調低此值以減少遙測量。需要 Claude Code v2.1.214 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage) |343| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | 已於 v2.1.160 移除,現在不具任何作用。先前用於將[快速模式](/docs/zh-TW/fast-mode)固定為 Claude Opus 4.6,而非目前的預設值。Opus 4.6 已不再支援快速模式 |

343| `CLAUDE_CODE_OTEL_DIAG_STDERR` | 設定為 `1` 以將 OpenTelemetry 匯出器的診斷錯誤寫入 stderr。預設情況下,這些錯誤只會在使用 `--debug` 時出現,因此設定錯誤的匯出器(例如 Prometheus 連接埠衝突)否則會無聲無息地失敗。需要 Claude Code v2.1.179 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage) |344| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | 承載內容之 OpenTelemetry 屬性(模型回應、工具內容、系統提示詞、原始 API 主體)的最大長度,包含截斷標記在內,以 UTF-16 程式碼單元計算(預設:61440,即 60 KB)。僅在您的遙測後端接受大於 64 KB 的屬性值時才提高此值,或降低此值以減少遙測量。需要 Claude Code v2.1.214 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage) |

344| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 排清擱置中 OpenTelemetry span 的逾時時間(毫秒)(預設:5000)。請參閱[監控](/docs/zh-TW/monitoring-usage) |345| `CLAUDE_CODE_OTEL_DIAG_STDERR` | 設為 `1` 可將 OpenTelemetry exporter 的診斷錯誤寫入 stderr。預設情況下,這些錯誤只會在使用 `--debug` 時出現,因此設定錯誤的 exporter(例如 Prometheus 連接埠衝突)原本會無聲無息地失敗。需要 Claude Code v2.1.179 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage) |

346| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 清除待處理 OpenTelemetry span 的逾時時間(毫秒)(預設:5000)。請參閱[監控](/docs/zh-TW/monitoring-usage) |

345| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 重新整理動態 OpenTelemetry 標頭的間隔(毫秒)(預設:1740000 / 29 分鐘)。請參閱[動態標頭](/docs/zh-TW/monitoring-usage#dynamic-headers) |347| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 重新整理動態 OpenTelemetry 標頭的間隔(毫秒)(預設:1740000 / 29 分鐘)。請參閱[動態標頭](/docs/zh-TW/monitoring-usage#dynamic-headers) |

346| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | OpenTelemetry 匯出器在關閉時完成作業的逾時時間(毫秒)(預設:2000)。若指標在結束時遭到捨棄,請調高此值。請參閱[監控](/docs/zh-TW/monitoring-usage) |348| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | OpenTelemetry exporter 在關閉時完成作業的逾時時間(毫秒)(預設:2000)。若指標在結束時遺失,請提高此值。請參閱[監控](/docs/zh-TW/monitoring-usage) |

347| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 設定為 `1`,讓 Claude Code 在有新版本時於背景執行您套件管理員的升級命令。適用於 Homebrew 與 WinGet 安裝。其他套件管理員仍會只顯示升級命令而不執行。請參閱[自動更新](/docs/zh-TW/setup#auto-updates) |349| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 設為 `1` 可讓 Claude Code 在有新版本可用時,於背景執行套件管理器的升級命令。適用於 Homebrew 與 WinGet 安裝。其他套件管理器仍會顯示升級命令而不執行。請參閱[自動更新](/docs/zh-TW/setup#auto-updates) |

348| `CLAUDE_CODE_PERFORCE_MODE` | 設定為 `1` 以啟用感知 Perforce 的寫入保護。設定後,若目標檔案缺少擁有者寫入位元(Perforce 會在同步的檔案上清除此位元,直到 `p4 edit` 開啟它們為止),Edit、Write 與 NotebookEdit 會失敗並顯示 `p4 edit <file>` 提示。這可防止 Claude Code 繞過 Perforce 的變更追蹤 |350| `CLAUDE_CODE_PERFORCE_MODE` | 設為 `1` 可啟用 Perforce 感知的寫入保護。設定後,若目標檔案缺少擁有者寫入位元(Perforce 會在同步的檔案上清除此位元,直到 `p4 edit` 開啟它們為止),Edit、Write 與 NotebookEdit 會失敗並顯示 `p4 edit <file>` 提示。這可防止 Claude Code 繞過 Perforce 變更追蹤 |

349| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆寫外掛根目錄。儘管名稱如此,此變數設定的是父目錄,而非快取本身:市集與外掛快取位於此路徑下的子目錄中。預設為 `~/.claude/plugins` |351| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆寫外掛根目錄。儘管名稱如此,此變數設定的是父目錄,而非快取本身:市集與外掛快取位於此路徑下的子目錄中。預設為 `~/.claude/plugins` |

350| `CLAUDE_CODE_PLUGIN_DIRS` | 要為工作階段載入的外掛目錄,每個目錄的載入方式與 [`--plugin-dir`](/docs/zh-TW/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) 旗標相同。在 Unix 上以 `:` 分隔多個路徑,在 Windows 上以 `;` 分隔。每個路徑請提供絕對路徑或以 `~` 開頭,因為 Claude Code 會略過相對路徑。需要 Claude Code v2.1.280 或更新版本。請參閱[為單一工作階段載入外掛](/docs/zh-TW/plugins/create#load-a-directory-or-archive-for-one-session) |352| `CLAUDE_CODE_PLUGIN_DIRS` | 要為工作階段載入的外掛目錄,每個目錄的載入方式與 [`--plugin-dir`](/docs/zh-TW/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) 旗標相同。在 Unix 上以 `:` 分隔多個路徑,在 Windows 上以 `;` 分隔。請將每個路徑指定為絕對路徑或以 `~` 開頭,因為 Claude Code 會略過相對路徑。需要 Claude Code v2.1.280 或更新版本。請參閱[為單一工作階段載入外掛](/docs/zh-TW/plugins/create#load-a-directory-or-archive-for-one-session) |

351| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | clone 或重新整理外掛市集的逾時時間(毫秒)(預設:120000)。對於大型儲存庫或緩慢的網路連線,請調高此值。請參閱 [Git clone 逾時](/docs/zh-TW/plugins/troubleshooting#git-clone-timed-out-after-120s) |353| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 複製或重新整理外掛市集的逾時時間(毫秒)(預設:120000)。對於大型儲存庫或緩慢的網路連線,請提高此值。請參閱 [Git clone timed out](/docs/zh-TW/plugins/troubleshooting#git-clone-timed-out-after-120s) |

352| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 設定為 `1`,當市集重新整理無法連線至遠端或無法向遠端進行身分驗證時,略過重新 clone 的嘗試,並繼續使用現有的市集 checkout。適用於離線或實體隔離環境,在這些環境中重新 clone 也會以相同方式失敗。請參閱[市集更新在離線環境中失敗](/docs/zh-TW/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |354| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 設為 `1` 可在市集重新整理無法連線至遠端或無法向遠端驗證身分時,略過重新複製的嘗試並繼續使用現有的市集 checkout。適用於重新複製同樣會失敗的離線或氣隙環境。請參閱[市集更新在離線環境中失敗](/docs/zh-TW/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

353| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 設定為 `1` 以透過 HTTPS 而非 SSH clone GitHub `owner/repo` 簡寫來源。適用於外掛的安裝與更新,以及 `/plugin marketplace add` 與 `update`。適用於 CI runner、容器,或任何未針對 `github.com` 設定 SSH 金鑰的環境 |355| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 設為 `1` 可透過 HTTPS 而非 SSH 複製 GitHub `owner/repo` 簡寫來源。適用於外掛安裝與更新,以及 `/plugin marketplace add` 與 `update`。適用於 CI runner、容器或任何未針對 `github.com` 設定 SSH 金鑰的環境 |

354| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一或多個唯讀外掛種子目錄的路徑,在 Unix 上以 `:` 分隔,在 Windows 上以 `;` 分隔。使用此變數可將預先填入的外掛目錄打包進容器映像。Claude Code 會在啟動時從這些目錄註冊市集,並使用預先快取的外掛而無需重新 clone。請參閱[為容器預先填入外掛](/docs/zh-TW/plugins/org#seed-containers-and-ci) |356| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一個或多個唯讀外掛種子目錄的路徑,在 Unix 上以 `:` 分隔,在 Windows 上以 `;` 分隔。使用此變數可將預先填入的外掛目錄打包至容器映像中。Claude Code 會在啟動時從這些目錄註冊市集,並使用預先快取的外掛而無需重新複製。請參閱[為容器預先填入外掛](/docs/zh-TW/plugins/org#seed-containers-and-ci) |

355| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 設定為 `1`,讓 Claude Code 在為工具呼叫、hook 與狀態列命令產生 PowerShell 時不再傳遞 `-ExecutionPolicy Bypass`,而是遵循機器的有效執行原則。預設情況下,Claude Code 會在程序範圍內略過執行原則,讓 `.ps1` 指令碼與模組匯入能在預設為 Restricted 的 Windows 安裝上運作。無論此設定為何,程序範圍的略過都絕不會覆寫群組原則 `MachinePolicy` 或 `UserPolicy` |357| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 設為 `1` 可讓 Claude Code 在為工具呼叫、hook 與狀態列命令產生 PowerShell 時,停止傳遞 `-ExecutionPolicy Bypass`,改為遵循機器的有效執行原則。預設情況下,Claude Code 會在程序範圍略過執行原則,讓 `.ps1` 腳本與模組匯入能在預設為 Restricted 的 Windows 安裝上運作。無論此設定為何,程序範圍的略過都絕不會覆寫群組原則 `MachinePolicy` 或 `UserPolicy` |

356| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | 在使用 `-p` 旗標的[非互動模式](/docs/zh-TW/headless#background-tasks-at-exit)中,最後一個回合結束後,閒置等待背景 subagent 與工作流程的上限時間(毫秒)。每當 Claude 進行一個回合來處理背景結果時,閒置等待都會重新計算。預設:`600000`,即 10 分鐘。當閒置等待達到上限時,Claude Code 會停止等待剩餘的背景任務並結束。設定為 `0` 以無限期等待。此上限與適用於一般背景 shell 的五秒寬限期是分開的。需要 Claude Code v2.1.182 或更新版本 |358| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | 在使用 `-p` 旗標的[非互動模式](/docs/zh-TW/headless#background-tasks-at-exit)中,最後一個回合之後閒置等待背景 subagent 與工作流程的上限(毫秒)。每當 Claude 花一個回合處理背景結果時,閒置等待就會重新計時。預設:`600000`,即 10 分鐘。當閒置等待達到上限時,Claude Code 會停止等待剩餘的背景任務並結束。設為 `0` 可無限期等待。此上限與適用於一般背景 shell 的五秒寬限期是分開的。需要 Claude Code v2.1.182 或更新版本 |

357| `CLAUDE_CODE_PROCESS_WRAPPER` | 透過以 argv 前綴形式提供的企業啟動器(例如 `/opt/corp/launcher`),啟動 Claude Code 從自身二進位檔啟動的程序,例如承載 [agent view](/docs/zh-TW/agent-view) 工作階段的背景服務。請在使用者設定或[受管設定](/docs/zh-TW/managed-settings)的 `env` 區塊中設定,而非以 shell export 設定,讓分離的背景服務能繼承它;專案與本機設定無法設定此變數。相當於 [`processWrapper` 設定](/docs/zh-TW/settings-reference#processwrapper),該設定需要 Claude Code v2.1.210 或更新版本;兩者都設定時,此變數優先。VS Code 擴充功能會透過其 `claudeProcessWrapper` 設定另行設定自己的啟動器。在 Windows 上會被忽略。如需值的格式、啟動器涵蓋的範圍,以及啟動器必須滿足的約定,請參閱[在企業啟動器後方執行 Claude Code](/docs/zh-TW/corporate-launcher)。需要 Claude Code v2.1.208 或更新版本 |359| `CLAUDE_CODE_PROCESS_WRAPPER` | 透過以 argv 前綴形式指定的企業啟動器(例如 `/opt/corp/launcher`),啟動 Claude Code 從其自身二進位檔啟動的程序,例如承載 [agent view](/docs/zh-TW/agent-view) 工作階段的背景服務。請在使用者設定或[受管設定](/docs/zh-TW/managed-settings)的 `env` 區塊中設定,而不是以 shell export 設定,讓分離的背景服務能繼承它;專案與本機設定無法設定它。相當於 [`processWrapper` 設定](/docs/zh-TW/settings-reference#processwrapper),該設定需要 Claude Code v2.1.210 或更新版本;兩者皆設定時以此變數為優先。VS Code 擴充功能會透過其 `claudeProcessWrapper` 設定另外設定自己的啟動器。在 Windows 上會被忽略。有關值的格式、啟動器涵蓋的範圍,以及啟動器必須滿足的約定,請參閱[在企業啟動器後方執行 Claude Code](/docs/zh-TW/corporate-launcher)。需要 Claude Code v2.1.208 或更新版本 |

358| `CLAUDE_CODE_PROJECT_DIR_NAME` | 與 `CLAUDE_CONFIG_DIR` 一起設定,以選擇 Claude Code 儲存該工作階段逐字稿與自動記憶所用的 `projects/` 目錄名稱,取代從工作目錄路徑衍生的名稱。例如,以 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` 啟動 Claude Code,會將它們儲存在 `/srv/tenant-a/projects/work/` 下。當 `CLAUDE_CONFIG_DIR` 未設定時,Claude Code 會忽略此變數,且只會從您啟動 `claude` 的環境中讀取此變數,絕不會從[設定檔的 `env` 區塊](#in-settings-files)讀取。請參閱[自行命名專案目錄](/docs/zh-TW/sessions#name-the-project-directory-yourself)。需要 Claude Code v2.1.234 或更新版本 |360| `CLAUDE_CODE_PROJECT_DIR_NAME` | 與 `CLAUDE_CONFIG_DIR` 一起設定,以選擇 Claude Code 儲存該工作階段逐字稿與自動記憶所使用的 `projects/` 目錄名稱,取代從工作目錄路徑衍生的名稱。例如,以 `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` 啟動 Claude Code 時,會將它們儲存在 `/srv/tenant-a/projects/work/` 下。當 `CLAUDE_CONFIG_DIR` 未設定時,Claude Code 會忽略此變數,且只會從您啟動 `claude` 的環境中讀取它,絕不會從[設定檔的 `env` 區塊](#in-settings-files)讀取。請參閱[自行命名專案目錄](/docs/zh-TW/sessions#name-the-project-directory-yourself)。需要 Claude Code v2.1.234 或更新版本 |

359| `CLAUDE_CODE_PROMPT_CACHE_TTL` | 設定 `5m` 或 `1h`(Claude Code 僅接受這兩個值),為主對話選擇[提示快取 TTL](/docs/zh-TW/prompt-caching#cache-lifetime):包括您的互動式、`-p` 與 SDK 回合,以及與這些回合內嵌執行的輔助作業。優先於 `promptCacheTtl` 設定與 `ENABLE_PROMPT_CACHING_1H`,而 `FORCE_PROMPT_CACHING_5M` 會覆寫此變數。API 會以較高費率計費 1 小時的快取寫入。需要 Claude Code v2.1.242 或更新版本 |361| `CLAUDE_CODE_PROMPT_CACHE_TTL` | 設為 `5m` 或 `1h`(Claude Code 僅接受這兩個值),以選擇主對話的[提示快取 TTL](/docs/zh-TW/prompt-caching#cache-lifetime):包括您的互動式、`-p` 與 SDK 回合,以及與其一併內嵌執行的輔助程式。優先於 `promptCacheTtl` 設定與 `ENABLE_PROMPT_CACHING_1H`,而 `FORCE_PROMPT_CACHING_5M` 會覆寫它。API 會以較高的費率計費 1 小時快取寫入。需要 Claude Code v2.1.242 或更新版本 |

360| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | 設定為 `1`,在 `ANTHROPIC_BASE_URL` 指向自訂代理伺服器時傳播 W3C trace context。傳播範圍涵蓋模型與 HTTP MCP 請求上的 `traceparent` 標頭,以及 Bash、PowerShell 與 hook 子程序的 `TRACEPARENT` 環境變數。預設情況下,僅在直接連線至 Anthropic API 時才會啟用傳播。於 v2.1.152 新增。請參閱[追蹤(beta)](/docs/zh-TW/monitoring-usage#traces-beta) |362| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | 設為 `1` 可在 `ANTHROPIC_BASE_URL` 指向自訂代理伺服器時傳播 W3C trace context。傳播範圍涵蓋模型與 HTTP MCP 請求上的 `traceparent` 標頭,以及 Bash、PowerShell 與 hook 子程序的 `TRACEPARENT` 環境變數。預設情況下,僅在直接連線至 Anthropic API 時才會啟用傳播。於 v2.1.152 新增。請參閱[追蹤(beta)](/docs/zh-TW/monitoring-usage#traces-beta) |

361| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | 由嵌入 Claude Code 並代為管理模型供應商路由的主機平台設定。設定後,Claude Code 會忽略設定檔中的供應商選擇、端點與身分驗證變數,例如 `CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL` 與 `ANTHROPIC_API_KEY`,使使用者設定無法覆寫主機的路由。Claude Code 也會忽略[受管設定](/docs/zh-TW/managed-settings)中的模型選擇鍵,例如 `model`、`fallbackModel` 與 `modelOverrides`,無論由哪個受管來源傳遞,讓主機的模型設定優先於過時的受管模型固定值。Claude Code 也會忽略受管 `env` 區塊中的模型選擇變數,例如 `ANTHROPIC_MODEL` 與 `ANTHROPIC_DEFAULT_*_MODEL` 系列;受管設定中的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單仍然適用,除非主機提供自己的允許清單。Claude Code 也會略過它在第三方供應商(例如 Amazon Bedrock、Claude Platform on AWS、Google Cloud's Agent Platform 與 Microsoft Foundry)上原本會套用的自動遙測選擇退出,讓遙測遵循標準的 `DISABLE_TELEMETRY` 選擇退出機制。請參閱[依 API 供應商區分的預設行為](/docs/zh-TW/data-usage#default-behaviors-by-api-provider) |363| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | 由嵌入 Claude Code 並代為管理模型供應商路由的主機平台設定。設定後,Claude Code 會忽略設定檔中的供應商選擇、端點與身分驗證變數,例如 `CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL` 與 `ANTHROPIC_API_KEY`,讓使用者設定無法覆寫主機的路由。Claude Code 也會忽略[受管設定](/docs/zh-TW/managed-settings)中的模型選擇鍵,例如 `model`、`fallbackModel` 與 `modelOverrides`,無論由哪個受管來源提供,讓主機的模型設定優先於過時的受管模型固定設定。Claude Code 也會忽略受管 `env` 區塊中的模型選擇變數,例如 `ANTHROPIC_MODEL` 與 `ANTHROPIC_DEFAULT_*_MODEL` 系列;受管設定中的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單仍然適用,除非主機提供自己的允許清單。Claude Code 也會略過它原本在第三方供應商(例如 Amazon Bedrock、Claude Platform on AWS、Google Cloud's Agent Platform 與 Microsoft Foundry)上套用的自動遙測退出,讓遙測遵循標準的 `DISABLE_TELEMETRY` 退出機制。請參閱[依 API 供應商區分的預設行為](/docs/zh-TW/data-usage#default-behaviors-by-api-provider) |

362| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 設定為 `1` 以允許代理伺服器執行 DNS 解析,而非由呼叫端執行。適用於應由代理伺服器處理主機名稱解析之環境的選擇性功能 |364| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 設為 `1` 可允許代理伺服器執行 DNS 解析,而非由呼叫端執行。適用於應由代理伺服器處理主機名稱解析之環境的選擇加入設定 |

363| `CLAUDE_CODE_REMOTE` | 當 Claude Code 以[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)執行時,會自動設定為 `true`。可從 hook 或設定指令碼讀取此值,以偵測您是否位於雲端工作階段中 |365| `CLAUDE_CODE_REMOTE` | 當 Claude Code 以[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)執行時,會自動設為 `true`。可從 hook 或設定腳本讀取此值,以偵測您是否在雲端工作階段中 |

364| `CLAUDE_CODE_REMOTE_SESSION_ID` | 在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中自動設定為目前工作階段的 ID。讀取此值可建構返回工作階段逐字稿的連結。請參閱[將輸出連結回工作階段](/docs/zh-TW/cloud-environments#link-output-back-to-the-session) |366| `CLAUDE_CODE_REMOTE_SESSION_ID` | 在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中會自動設為目前工作階段的 ID。讀取此值可建構返回工作階段逐字稿的連結。請參閱[將輸出連結回工作階段](/docs/zh-TW/cloud-environments#link-output-back-to-the-session) |

365| `CLAUDE_CODE_RESTRICTED` | 設定為 `1` 以受限模式啟動工作階段,與傳遞 [`--restricted`](/docs/zh-TW/cli-reference#cli-flags) 相同。Claude Code 會忽略設定檔 `env` 區塊中的此變數。需要 Claude Code v2.1.248 或更新版本 |367| `CLAUDE_CODE_RESTRICTED` | 設為 `1` 可以受限模式啟動工作階段,與傳遞 [`--restricted`](/docs/zh-TW/cli-reference#cli-flags) 相同。Claude Code 會忽略設定檔 `env` 區塊中的此變數。需要 Claude Code v2.1.248 或更新版本 |

366| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 設為 `1` 可在前一個工作階段於回合中途結束時自動繼續。用於 SDK 模式,讓模型無需 SDK 重新傳送提示詞即可繼續。若要關閉,請取消設定此變數或將其設為 `0`。關於 VS Code 聊天面板,請參閱[重新載入後繼續對話](/docs/zh-TW/vs-code#continue-conversations-after-a-reload) |368| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 設為 `1` 可在前一個工作階段於回合中途結束時自動繼續。用於 SDK 模式,讓模型無需 SDK 重新傳送提示詞即可繼續。若要關閉,請取消設定此變數或將其設為 `0`。關於 VS Code 聊天面板,請參閱[重新載入後繼續對話](/docs/zh-TW/vs-code#continue-conversations-after-a-reload) |

367| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 對於在回合中途結束的工作階段,若要在繼續時自動接續,其最後一則逐字稿訊息的最大存在時間(毫秒)。當最後一則訊息早於此界限時,Claude Code 會略過 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 的自動繼續及其 `CLAUDE_CODE_RESUME_PROMPT` 接續訊息,工作階段會以閒置狀態開始,讓您明確地繼續。未設定或 `0` 表示沒有界限,但最後一個請求因 API 錯誤而失敗的回合,僅在該錯誤發生未滿六小時時才會繼續。正值會限制每個回合,包括上述回合;負值或非數值則套用一小時的界限。長時間執行 agent 的產生指令碼可設定此值,避免針對舊逐字稿重新啟動時重新執行過時的提示詞。當 Claude Code 重新啟動一個從互動式工作階段繼承其對話、但已當機的 [agent view](/docs/zh-TW/agent-view) 工作階段時,會自行設定一小時的界限。需要 Claude Code v2.1.211 或更新版本 |369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 對於在回合中途結束的工作階段,若要在繼續時自動接續,其最後一則逐字稿訊息所允許的最長存在時間(毫秒)。當最後一則訊息早於此界限時,Claude Code 會略過 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 自動繼續及其 `CLAUDE_CODE_RESUME_PROMPT` 接續訊息,工作階段會以閒置狀態啟動,讓您明確地繼續。未設定或 `0` 表示沒有界限,但最後一個請求因 API 錯誤而失敗的回合,只有在該錯誤發生未滿六小時時才會繼續。正值會限制每個回合,包括上述回合;負值或非數值會套用一小時的界限。長時間執行 agent 的產生腳本可以設定此值,讓針對舊逐字稿的重新啟動不會重新執行過時的提示詞。當 Claude Code 重新啟動一個從互動式工作階段繼承對話而當機的 [agent view](/docs/zh-TW/agent-view) 工作階段時,會自行設定一小時的界限。需要 Claude Code v2.1.211 或更新版本 |

368| `CLAUDE_CODE_RESUME_PROMPT` | 覆寫當 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 接續中斷的回合而非重新傳送其提示詞時,或當您以 `-p` 繼續[延後的工具呼叫](/docs/zh-TW/hooks#defer-a-tool-call-for-later)時,Claude Code 傳送給 Claude 的接續訊息。預設為 `Continue from where you left off.`。空字串會使用預設值 |370| `CLAUDE_CODE_RESUME_PROMPT` | 覆寫當 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 接續中斷的回合而非重新傳送其提示詞時,或當您使用 `-p` 繼續[延後的工具呼叫](/docs/zh-TW/hooks#defer-a-tool-call-for-later)時,Claude Code 傳送給 Claude 的接續訊息。預設為 `Continue from where you left off.`。空字串會使用預設值 |

369| `CLAUDE_CODE_RETRY_WATCHDOG` | 設定為 `1`,適用於無人值守的工作階段,例如評估框架、CI 作業或遠端 worker。會無限期重試 `429` 與 `529` 容量錯誤,而不會在 `CLAUDE_CODE_MAX_RETRIES` 次嘗試後失敗。當標準速度請求收到回報消費上限或用量點數耗盡的 `429` 時,Claude Code 會立即失敗,即使該錯誤來自依排程重設的[閘道消費上限](/docs/zh-TW/errors#spend-limit-reached)也是如此。在 v2.1.239 之前,watchdog 會無限期重試這些錯誤。關於快速模式請求,請參閱[處理速率限制](/docs/zh-TW/fast-mode#handle-rate-limits)。watchdog 在兩次嘗試之間最多退避 5 分鐘,或在回應帶有速率限制重設時間時等到限制重設,因此達到用量上限的工作階段會等待剩餘的時段結束。在 v2.1.199 或更新版本中,它也會將其他暫時性錯誤(例如伺服器錯誤、逾時與連線中斷)的預設重試次數提高至 300,約三小時的退避時間,並在您明確設定 `CLAUDE_CODE_MAX_RETRIES` 時移除其 15 次的上限。需要 Claude Code v2.1.186 或更新版本 |371| `CLAUDE_CODE_RETRY_WATCHDOG` | 針對無人值守的工作階段(例如評估執行框架、CI 作業或遠端 worker)設為 `1`。會無限期重試 `429` 與 `529` 容量錯誤,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次嘗試後失敗。當標準速度請求收到回報花費上限或用量點數耗盡的 `429` 時,Claude Code 會立即失敗,即使該錯誤來自依排程重設的[閘道花費上限](/docs/zh-TW/errors#spend-limit-reached)也一樣。在 v2.1.239 之前,watchdog 會無限期重試這些錯誤。關於快速模式請求,請參閱[處理速率限制](/docs/zh-TW/fast-mode#handle-rate-limits)。watchdog 會在兩次嘗試之間退避最多 5 分鐘,或在回應帶有速率限制重設時間時等到限制重設為止,因此達到用量上限的工作階段會等待剩餘的時段結束。在 v2.1.199 或更新版本中,它也會將其他暫時性錯誤(例如伺服器錯誤、逾時與連線中斷)的預設重試次數提高至 300 次(約三小時的退避),並在您明確設定 `CLAUDE_CODE_MAX_RETRIES` 時移除其 15 次的上限。需要 Claude Code v2.1.186 或更新版本 |

370| `CLAUDE_CODE_SAFE_MODE` | 設定為 `1` 以安全模式啟動:CLAUDE.md、skill、外掛、hook、MCP 伺服器、自訂命令與 agent、輸出風格、工作流程、自訂主題、自訂快捷鍵、狀態列與檔案建議命令、LSP 伺服器以及自動記憶都不會載入,用於對損壞的設定進行疑難排解。受管設定原則仍然適用,包括由原則設定的 hook、狀態列與檔案建議命令;受管外掛、受管 skill、受管 CLAUDE.md 以及由原則設定的 MCP 伺服器則不會載入。相當於傳遞 [`--safe-mode`](/docs/zh-TW/cli-reference#cli-flags)。直接產生的子程序會繼承此變數 |372| `CLAUDE_CODE_SAFE_MODE` | 設為 `1` 可以安全模式啟動:CLAUDE.md、skill、外掛、hook、MCP 伺服器、自訂命令與 agent、輸出風格、工作流程、自訂主題、自訂快捷鍵、狀態列與檔案建議命令、LSP 伺服器以及自動記憶都不會載入,以便對損壞的設定進行疑難排解。受管設定原則仍然適用,包括原則設定的 hook、狀態列與檔案建議命令;受管外掛、受管 skill、受管 CLAUDE.md 與原則設定的 MCP 伺服器則不會載入。相當於傳遞 [`--safe-mode`](/docs/zh-TW/cli-reference#cli-flags)。直接產生的子程序會繼承此變數 |

371| `CLAUDE_CODE_SCRIPT_CAPS` | 在設定 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 時,限制特定指令碼在每個工作階段中可被叫用次數的 JSON 物件。鍵是與命令文字比對的子字串;值是整數呼叫上限。例如,`{"deploy.sh": 2}` 允許 `deploy.sh` 最多被呼叫兩次。比對以子字串為基礎,因此像 `./scripts/deploy.sh $(evil)` 這類 shell 展開技巧仍會計入上限。透過 `xargs` 或 `find -exec` 進行的執行期擴散不會被偵測到;這是一項縱深防禦控制 |373| `CLAUDE_CODE_SCRIPT_CAPS` | 當設定 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 時,用於限制特定腳本在每個工作階段中可被呼叫次數的 JSON 物件。鍵是與命令文字比對的子字串;值是整數呼叫上限。例如,`{"deploy.sh": 2}` 允許 `deploy.sh` 最多被呼叫兩次。比對以子字串為基礎,因此像 `./scripts/deploy.sh $(evil)` 這類 shell 展開技巧仍會計入上限。透過 `xargs` 或 `find -exec` 的執行階段擴散不會被偵測到;這是一項縱深防禦控制 |

372| `CLAUDE_CODE_SCROLL_SPEED` | 設定[全螢幕呈現](/docs/zh-TW/fullscreen#mouse-wheel-scrolling)中的滑鼠滾輪捲動倍率。接受最高 20 的任何正值,包括低於 1 的小數值(例如 `0.5`),可在已放大滾輪事件的終端機中減緩加速的觸控板與滾輪捲動。如果您的終端機每一格只傳送一個滾輪事件且未放大,設定為 `3` 可與 `vim` 一致。在 JetBrains IDE 終端機中會被忽略,因為 Claude Code 在其中使用自己的捲動處理 |374| `CLAUDE_CODE_SCROLL_SPEED` | 設定[全螢幕呈現](/docs/zh-TW/fullscreen#mouse-wheel-scrolling)中的滑鼠滾輪捲動倍數。接受最高 20 的任何正值,包括低於 1 的小數值(例如 `0.5`),以在已會放大滾輪事件的終端機中減緩加速的觸控板與滾輪捲動。若您的終端機每格傳送一個滾輪事件而未放大,請設為 `3` 以與 `vim` 一致。在 JetBrains IDE 終端機中會被忽略,Claude Code 在其中使用自己的捲動處理 |

373| `CLAUDE_CODE_SEND_FEEDBACK` | 設定為 `0` 以關閉工作階段的 [Claude 草擬的意見回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)。設定為 `1` 可在您的帳戶已具存取權的情況下開啟;此變數本身無法授予存取權,而其他關閉意見回饋的開關,例如 `DISABLE_FEEDBACK_COMMAND` 以及 [`feedbackDrafts`](/docs/zh-TW/settings-reference#feedbackdrafts) 設定的 `off` 值,仍然適用 |375| `CLAUDE_CODE_SEND_FEEDBACK` | 設為 `0` 可為工作階段關閉 [Claude 草擬的意見回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)。設為 `1` 可在您的帳戶已具備存取權時開啟;此變數本身無法授予存取權,且其他會關閉意見回饋的開關,例如 `DISABLE_FEEDBACK_COMMAND` 與 [`feedbackDrafts`](/docs/zh-TW/settings-reference#feedbackdrafts) 設定的 `off` 值,仍然適用 |

374| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | 覆寫 [SessionEnd](/docs/zh-TW/hooks#sessionend) hook 的時間預算(毫秒)。此值也是每個未自行設定 `timeout` 之 hook 的逾時時間。適用於工作階段結束、`/clear`,以及透過互動式 `/resume` 切換工作階段。預設預算為 1.5 秒,會自動提高至設定檔中所設定的最高個別 hook `timeout`,最多 60 秒。外掛提供之 hook 上的逾時不會提高預算 |376| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | 覆寫 [SessionEnd](/docs/zh-TW/hooks#sessionend) hook 的時間預算(毫秒)。此值也是每個未自行設定 `timeout` 之 hook 的逾時時間。適用於工作階段結束、`/clear`,以及透過互動式 `/resume` 切換工作階段。預設預算為 1.5 秒,會自動提高至設定檔中所設定的最高個別 hook `timeout`,最多 60 秒。外掛提供之 hook 的逾時不會提高預算 |

375| `CLAUDE_CODE_SESSION_ID` | 在 Bash 與 PowerShell 工具子程序、[hook 命令](/docs/zh-TW/hooks)子程序以及 stdio [MCP 伺服器](/docs/zh-TW/mcp)子程序中,自動設定為目前的工作階段 ID。對於 Bash、PowerShell 與 hook,此值與 hook JSON 輸入中的 `session_id` 欄位相符,並會在 `/clear` 時更新。MCP 伺服器子程序會保留其產生時的 ID。在使用 `--resume <session-id>` 時,它會收到繼續的 ID,與 hook 和 Bash 一致。在使用 `--continue` 或未提供明確 ID 的 `--resume` 時,它可能會改為收到初始啟動時的 ID。可用於將指令碼與外部工具關聯至啟動它們的 Claude Code 工作階段 |377| `CLAUDE_CODE_SESSION_ID` | 在 Bash 與 PowerShell 工具子程序、[hook 命令](/docs/zh-TW/hooks)子程序及 stdio [MCP 伺服器](/docs/zh-TW/mcp)子程序中,會自動設為目前的工作階段 ID。對於 Bash、PowerShell 與 hook,此值與 hook JSON 輸入中的 `session_id` 欄位相符,並會在 `/clear` 時更新。MCP 伺服器子程序會保留其產生時的 ID。使用 `--resume <session-id>` 時,它會收到繼續的 ID,與 hook 和 Bash 相符。使用 `--continue` 或未指定明確 ID 的 `--resume` 時,它可能會改為收到初始啟動的 ID。用於將腳本與外部工具關聯至啟動它們的 Claude Code 工作階段 |

376| `CLAUDE_CODE_SHELL` | 設定 Claude Code 用來執行 Bash 工具命令的 shell。接受 `bash` 或 `zsh` 二進位檔的路徑,例如 `/opt/homebrew/bin/bash`。不支援 `fish` 等其他 shell。如果該值不是可運作的 `bash` 或 `zsh` 路徑,Claude Code 會忽略它並改用自動偵測。自動偵測會在您的 `$SHELL` 指向 `bash` 或 `zsh` 時使用它,否則會從您的 `PATH` 與標準安裝位置中,先選擇第一個可運作的 `zsh`,其次是 `bash` |378| `CLAUDE_CODE_SHELL` | 設定 Claude Code 用來執行 Bash 工具命令的 shell。接受 `bash` 或 `zsh` 二進位檔的路徑,例如 `/opt/homebrew/bin/bash`。不支援 `fish` 等其他 shell。若此值不是可運作的 `bash` 或 `zsh` 路徑,Claude Code 會忽略它並改用自動偵測。自動偵測會在 `$SHELL` 指向 `bash` 或 `zsh` 時使用它,否則會從您的 `PATH` 與標準安裝位置中挑選第一個可運作的 `zsh`,其次是 `bash` |

377| `CLAUDE_CODE_SHELL_PREFIX` | 包裝 Claude Code 所產生之 shell 命令的命令前綴:Bash 工具呼叫、[hook](/docs/zh-TW/hooks) 命令、[狀態列](/docs/zh-TW/statusline)命令以及 stdio [MCP 伺服器](/docs/zh-TW/mcp)啟動命令。PowerShell hook 與 exec 形式的 hook 會在不加前綴的情況下執行。適用於日誌記錄或稽核。設定像 `/path/to/logger.sh` 這樣的單純執行檔路徑時,每個命令都會以 `/path/to/logger.sh '<command>'` 的形式執行。包裝器會在 `$1` 中以單一 shell 引號包覆的引數接收命令列,因此包裝器必須使用 shell 重新評估 `$1`,例如 `exec bash -c "$1"`。將 `$1` 視為單純的執行檔路徑,會導致傳遞 `npx -y <package>` 等引數的 stdio MCP 伺服器無法運作。對於 Bash 工具呼叫,`$1` 包含 Claude Code 組合出的完整 shell 叫用,包括環境設定,而不只是 Claude 執行的命令 |379| `CLAUDE_CODE_SHELL_PREFIX` | 包裝 Claude Code 所產生之 shell 命令的命令前綴:Bash 工具呼叫、[hook](/docs/zh-TW/hooks) 命令、[狀態列](/docs/zh-TW/statusline)命令,以及 stdio [MCP 伺服器](/docs/zh-TW/mcp)啟動命令。PowerShell hook 與 exec 形式的 hook 執行時不會套用前綴。適用於記錄或稽核。設定裸執行檔路徑(例如 `/path/to/logger.sh`)時,每個命令會以 `/path/to/logger.sh '<command>'` 形式執行。包裝程式會在 `$1` 中以單一經 shell 引號處理的引數接收命令列,因此包裝程式必須以 shell 重新評估 `$1`,例如 `exec bash -c "$1"`。將 `$1` 視為裸執行檔路徑,會導致傳遞 `npx -y <package>` 等引數的 stdio MCP 伺服器失效。對於 Bash 工具呼叫,`$1` 包含 Claude Code 組裝的完整 shell 呼叫,包括環境設定,而不僅是 Claude 執行的命令 |

378| `CLAUDE_CODE_SIMPLE` | 設定為 `1`,以最精簡的系統提示詞執行,且僅提供 Bash、檔案讀取與檔案編輯工具。來自 `--mcp-config` 的 MCP 工具仍然可用。停用 hook、skill、自訂命令、subagent、已安裝外掛、MCP 伺服器、自動記憶與 CLAUDE.md 的自動探索。您透過 `--add-dir` 傳遞之目錄中的 skill 仍會載入。不會讀取 OAuth token 與鑰匙圈憑證,因此 Anthropic 身分驗證必須來自 `ANTHROPIC_API_KEY` 或 `--settings` 中的 `apiKeyHelper`。相當於傳遞 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) |380| `CLAUDE_CODE_SIMPLE` | 設為 `1` 可使用精簡的系統提示詞執行,且僅提供 Bash、檔案讀取與檔案編輯工具。來自 `--mcp-config` 的 MCP 工具仍可使用。停用 hook、skill、自訂命令、subagent、已安裝外掛、MCP 伺服器、自動記憶與 CLAUDE.md 的自動探索。您以 `--add-dir` 傳遞之目錄中的 skill 仍會載入。不會讀取 OAuth token 與鑰匙圈憑證,因此 Anthropic 身分驗證必須來自 `ANTHROPIC_API_KEY` 或 `--settings` 中的 `apiKeyHelper`。相當於傳遞 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) |

379| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 設定為 `1`,可在任何模型上使用較短的系統提示詞與精簡的工具描述。設定為 `0`、`false`、`no` 或 `off` 可選擇退出,即使在實驗或伺服器設定原本會啟用它的模型上也是如此。完整的工具集、hook、MCP 伺服器與 CLAUDE.md 探索仍保持啟用 |381| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 設為 `1` 可在任何模型上使用較短的系統提示詞與簡化的工具描述。設為 `0`、`false`、`no` 或 `off` 可選擇退出,即使在實驗或伺服器設定原本會啟用它的模型上也一樣。完整的工具集、hook、MCP 伺服器與 CLAUDE.md 探索仍保持啟用 |

380| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 略過 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 的用戶端身分驗證,適用於自行簽署請求的閘道 |382| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 略過 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 的用戶端身分驗證,適用於自行簽署請求的閘道 |

381| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | 設定為 `1` 以關閉從 AWS 預設憑證提供者鏈解析之憑證的程序內快取,讓 Claude Code 在每次 API 請求時都解析該鏈。關閉快取時,以 SSO 為基礎的設定檔會在每次請求時向 IAM Identity Center 請求憑證。請參閱[憑證快取與解析逾時](/docs/zh-TW/amazon-bedrock#credential-caching-and-resolution-timeout)。需要 Claude Code v2.1.207 或更新版本 |383| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | 設為 `1` 可關閉從 AWS 預設憑證提供者鏈解析之憑證的程序內快取,讓 Claude Code 在每個 API 請求時都解析該鏈。關閉快取時,以 SSO 為基礎的設定檔會在每個請求時向 IAM Identity Center 請求憑證。請參閱[憑證快取與解析逾時](/docs/zh-TW/amazon-bedrock#credential-caching-and-resolution-timeout)。需要 Claude Code v2.1.207 或更新版本 |

382| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 略過 Amazon Bedrock 的 AWS 身分驗證(例如使用 LLM 閘道時) |384| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 略過 Amazon Bedrock 的 AWS 身分驗證(例如使用 LLM 閘道時) |

383| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | 設定為 `1`,將失敗的[快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)可用性檢查視為可用,適用於會封鎖該檢查直接傳送至 `api.anthropic.com` 之請求的網路。Claude Code 仍會遵循「disabled by your organization」回應 |385| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | 設為 `1` 可將失敗的[快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)可用性檢查視為可用,適用於封鎖該檢查直接傳送至 `api.anthropic.com` 之請求的網路。Claude Code 仍會遵循「disabled by your organization」回應 |

384| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 設定為 `1` 以略過用戶端的[快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)可用性檢查,適用於會攔截而非拒絕該檢查請求的代理伺服器。當您的組織已停用快速模式時,API 仍會拒絕快速模式請求 |386| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 設為 `1` 可略過用戶端的[快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)可用性檢查,適用於攔截而非拒絕該檢查請求的代理伺服器。當您的組織停用快速模式時,API 仍會拒絕快速模式請求 |

385| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 略過 Microsoft Foundry 的 Azure 身分驗證,適用於會注入自己 `Authorization` 標頭的代理伺服器或閘道。Claude Code 會在不附帶 Azure 憑證的情況下傳送請求,並保留您提供的 `Authorization` 標頭,例如透過 `ANTHROPIC_CUSTOM_HEADERS` 提供。設定 `ANTHROPIC_FOUNDRY_API_KEY` 或 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 時會被忽略。在 v2.1.203 之前,除非同時設定了 API 金鑰,否則此變數會導致 Microsoft Foundry 用戶端無法傳送請求 |387| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 略過 Microsoft Foundry 的 Azure 身分驗證,適用於注入自己 `Authorization` 標頭的代理伺服器或閘道。Claude Code 會在不附帶 Azure 憑證的情況下傳送請求,並保留您提供的 `Authorization` 標頭,例如透過 `ANTHROPIC_CUSTOM_HEADERS` 提供。設定 `ANTHROPIC_FOUNDRY_API_KEY` 或 `ANTHROPIC_FOUNDRY_AUTH_TOKEN` 時會被忽略。在 v2.1.203 之前,除非同時設定 API 金鑰,否則此變數會導致 Microsoft Foundry 用戶端無法傳送請求 |

386| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 略過 Amazon Bedrock Mantle 的 AWS 身分驗證(例如使用 LLM 閘道時) |388| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 略過 Amazon Bedrock Mantle 的 AWS 身分驗證(例如使用 LLM 閘道時) |

387| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 與 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai) 上的[啟動模型檢查](/docs/zh-TW/amazon-bedrock#startup-model-checks)會在此機器上記住它們發現您的帳戶無法叫用哪些模型,最長保留一天。設定為 `1` 以關閉此記憶。需要 Claude Code v2.1.285 或更新版本 |389| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | 在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 與 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai) 上,[啟動模型檢查](/docs/zh-TW/amazon-bedrock#startup-model-checks)會在此機器上記住它們發現您的帳戶無法呼叫哪些模型,最長一天。設為 `1` 可關閉此記憶。需要 Claude Code v2.1.285 或更新版本 |

388| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 設定為 `1` 以略過將提示詞歷史記錄與工作階段逐字稿寫入磁碟。在設定此變數的情況下啟動的工作階段,不會出現在 `--resume`、`--continue` 或向上鍵歷史記錄中。適用於臨時的指令碼工作階段 |390| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 設為 `1` 可略過將提示詞歷史記錄與工作階段逐字稿寫入磁碟。設定此變數後啟動的工作階段不會出現在 `--resume`、`--continue` 或向上鍵歷史記錄中。適用於臨時的腳本化工作階段 |

389| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 略過 Google Cloud's Agent Platform 的 Google 身分驗證(例如使用 LLM 閘道時) |391| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 略過 Google Cloud's Agent Platform 的 Google 身分驗證(例如使用 LLM 閘道時) |

390| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | 設定為 `1`,讓以 `--output-format stream-json` 啟動的工作階段,對於原本僅以 stderr 輸出結束的啟動失敗,寫入一則[說明 Claude Code 拒絕啟動原因的結果訊息](/docs/zh-TW/agent-sdk/typescript#startup_failure_reason)。需要 Claude Code v2.1.274 或更新版本 |392| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | 設為 `1` 可讓以 `--output-format stream-json` 啟動的工作階段,針對原本僅以 stderr 結束的啟動失敗,寫入一則[說明 Claude Code 拒絕啟動原因的結果訊息](/docs/zh-TW/agent-sdk/typescript#startup_failure_reason)。需要 Claude Code v2.1.274 或更新版本 |

391| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/zh-TW/hooks#stop) 或 [SubagentStop](/docs/zh-TW/hooks#subagentstop) hook 可連續阻止回合結束的最大次數,超過後 Claude Code 會覆寫它並仍然結束回合(預設:8)。設定為 `0` 以停用此上限。如果您的 hook 確實需要更多次迭代才能解決,請調高此值 |393| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/zh-TW/hooks#stop) 或 [SubagentStop](/docs/zh-TW/hooks#subagentstop) hook 可連續阻止回合結束的最大次數,超過後 Claude Code 會覆寫它並仍結束回合(預設:8)。設為 `0` 可停用此上限。若您的 hook 確實需要更多次迭代才能解決,請提高此值 |

392| `CLAUDE_CODE_SUBAGENT_MODEL` | 未以其他方式指派模型的 [subagent](/docs/zh-TW/sub-agents#choose-a-model)、[agent team](/docs/zh-TW/agent-teams#specify-teammates-and-models) 隊員以及[工作流程](/docs/zh-TW/workflows) agent 的預設模型。接受 `haiku` 等別名或完整模型名稱。有兩個來源優先於此變數:Claude 產生 agent 時傳遞的模型,以及 agent 定義中的 `model` 欄位,包括 `inherit`。若要改變此行為,請設定 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/zh-TW/sub-agents#run-every-subagent-on-one-model)。完整順序請參閱[選擇模型](/docs/zh-TW/sub-agents#choose-a-model)。將其設定為 `inherit` 與不設定相同。在 v2.1.251 之前,此變數會同時覆寫每次叫用的模型與定義中的 `model` 欄位 |394| `CLAUDE_CODE_SUBAGENT_MODEL` | 未以其他方式指派模型的 [subagent](/docs/zh-TW/sub-agents#choose-a-model)、[agent team](/docs/zh-TW/agent-teams#specify-teammates-and-models) 隊員與[工作流程](/docs/zh-TW/workflows) agent 的預設模型。接受 `haiku` 等別名或完整模型名稱。有兩個來源優先於它:Claude 產生 agent 時傳遞的模型,以及 agent 定義中的 `model` 欄位(包括 `inherit`)。若要變更此行為,請設定 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/zh-TW/sub-agents#run-every-subagent-on-one-model)。完整順序請參閱[選擇模型](/docs/zh-TW/sub-agents#choose-a-model)。將其設為 `inherit` 與不設定相同。在 v2.1.251 之前,此變數會覆寫每次呼叫的模型與定義的 `model` 欄位 |

393| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 設定為 `1` 以將單一模型強制套用至 subagent、隊員與工作流程 agent。[在單一模型上執行所有 subagent](/docs/zh-TW/sub-agents#run-every-subagent-on-one-model) 說明是哪一個模型。需要 Claude Code v2.1.257 或更新版本 |395| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 設為 `1` 可強制 subagent、隊員與工作流程 agent 使用同一個模型。[在同一個模型上執行所有 subagent](/docs/zh-TW/sub-agents#run-every-subagent-on-one-model) 說明該模型為何。需要 Claude Code v2.1.257 或更新版本 |

394| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | 設定 `5m` 或 `1h`(Claude Code 僅接受這兩個值),為主對話以外的請求(例如 [subagent](/docs/zh-TW/sub-agents)、工作流程與背景工作)選擇[提示快取 TTL](/docs/zh-TW/prompt-caching#cache-lifetime)。優先於 `subagentPromptCacheTtl` 設定與 `ENABLE_PROMPT_CACHING_1H`,而 `FORCE_PROMPT_CACHING_5M` 會覆寫此變數。API 會以較高費率計費 1 小時的快取寫入。需要 Claude Code v2.1.242 或更新版本 |396| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | 設為 `5m` 或 `1h`(Claude Code 僅接受這兩個值),以選擇主對話以外之請求的[提示快取 TTL](/docs/zh-TW/prompt-caching#cache-lifetime),例如 [subagent](/docs/zh-TW/sub-agents)、工作流程與背景工作。優先於 `subagentPromptCacheTtl` 設定與 `ENABLE_PROMPT_CACHING_1H`,而 `FORCE_PROMPT_CACHING_5M` 會覆寫它。API 會以較高的費率計費 1 小時快取寫入。需要 Claude Code v2.1.242 或更新版本 |

395| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | 設定為 `1` 以從子程序環境(Bash 工具、hook、MCP stdio 伺服器)中移除憑證:Anthropic 與雲端供應商憑證、Claude Code 識別為憑證的任何其他變數,以及內嵌於套件登錄 URL 中的憑證。父 Claude 程序會保留這些憑證以進行 API 呼叫,但子程序無法讀取它們,從而降低遭受試圖透過 shell 展開竊取機密之提示詞注入攻擊的風險。在 v2.1.251 或更新版本中,清除作業也會移除 Claude Code 自身的設定儲存區指標變數(例如 `CLAUDE_CONFIG_DIR`),讓子程序無法找到已重新定位的設定目錄。如果子程序需要這些變數,請勿設定此清除作業。在 Linux 上,這也會在隔離的 PID 命名空間中執行 Bash 子程序,使其無法透過 `/proc` 讀取主機程序環境;副作用是 `ps`、`pgrep` 與 `kill` 無法看見主機程序或向其傳送訊號。設定 `allowed_non_write_users` 時,`claude-code-action` 會自動設定此變數 |397| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | 設為 `1` 可從子程序環境(Bash 工具、hook、MCP stdio 伺服器)中移除憑證:Anthropic 與雲端供應商憑證、Claude Code 識別為憑證的任何其他變數,以及內嵌在套件登錄 URL 中的憑證。父 Claude 程序會保留這些憑證以進行 API 呼叫,但子程序無法讀取它們,從而降低透過 shell 展開竊取機密的提示詞注入攻擊風險。在 v2.1.251 或更新版本中,清除作業也會移除 Claude Code 自己的設定儲存區指標變數(例如 `CLAUDE_CONFIG_DIR`),讓子程序無法找到已重新定位的設定目錄。若子程序需要這些變數,請勿設定此清除。在 Linux 上,這也會在隔離的 PID 命名空間中執行 Bash 子程序,使其無法透過 `/proc` 讀取主機程序環境;副作用是 `ps`、`pgrep` 與 `kill` 無法看到主機程序或向其傳送訊號。設定 `allowed_non_write_users` 時,`claude-code-action` 會自動設定此變數 |

396| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 在非互動模式(`-p` 旗標)中設定為 `1`,以在第一次查詢前等待外掛安裝完成。若未設定,外掛會在背景安裝,可能無法在第一個回合中使用。搭配 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` 以限制等待時間 |398| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 在非互動模式(`-p` 旗標)中設為 `1`,可在第一個查詢之前等待外掛安裝完成。若未設定,外掛會在背景安裝,第一個回合時可能無法使用。搭配 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` 以限制等待時間 |

397| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同步外掛安裝的逾時時間(毫秒)。超過時,Claude Code 會在不載入外掛的情況下繼續,並記錄錯誤。沒有預設值:若未設定此變數,同步安裝會一直等到完成為止 |399| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同步外掛安裝的逾時時間(毫秒)。超過時,Claude Code 會在沒有外掛的情況下繼續並記錄錯誤。沒有預設值:若未設定此變數,同步安裝會等待至完成為止 |

398| `CLAUDE_CODE_SYNC_SKILLS` | 在使用 `-p` 旗標的非互動模式中設定為 `1`,讓 Claude Code 在該次執行中下載您 claude.ai 帳戶已啟用的 skill,並在執行第一次查詢前等待這些 skill 的清單,最長等待 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`。下載本身會在背景完成,而 Claude 在叫用某個 skill 時會等待該 skill 下載完成。需要 claude.ai 身分驗證。使用 claude.ai 帳戶登入的終端機工作階段,即使未設定此變數,也會將這些 skill [下載](/docs/zh-TW/skills#where-synced-skills-load)至 `~/.claude/skills/synced/`,並大約每 10 分鐘重新同步一次,因此僅在 `-p` 執行需要在第一次查詢時取得您目前的 skill 時才設定此變數。在 v2.1.273 之前,終端機工作階段只會在設定了此變數的 `-p` 執行中下載它們。`synced` 資料夾名稱[保留給此下載使用](/docs/zh-TW/skills#where-skills-live)。在 v2.1.227 之前,skill 會直接下載至 `~/.claude/skills/`。Claude Code 會對[下載的 skill 套用額外規則](/docs/zh-TW/skills#how-synced-skills-behave),例如不在您的機器上執行其 `!` 命令 |400| `CLAUDE_CODE_SYNC_SKILLS` | 在使用 `-p` 旗標的非互動模式中設為 `1`,可讓 Claude Code 在該次執行中下載為您 claude.ai 帳戶啟用的 skill,並在執行第一個查詢之前等待其清單,最長 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`。下載本身會在背景完成,Claude 在呼叫某個 skill 時會等待該 skill 下載完成。需要 claude.ai 身分驗證。您以 claude.ai 帳戶登入的終端機工作階段,即使未設定此變數,也會將這些 skill [下載](/docs/zh-TW/skills#where-synced-skills-load)至 `~/.claude/skills/synced/`,並大約每 10 分鐘重新同步一次,因此僅在 `-p` 執行需要在第一個查詢就使用您目前的 skill 時才設定此變數。在 v2.1.273 之前,終端機工作階段只會在設定此變數的 `-p` 執行中下載它們。`synced` 資料夾名稱[保留給此下載使用](/docs/zh-TW/skills#where-skills-live)。在 v2.1.227 之前,skill 會直接下載至 `~/.claude/skills/`。Claude Code 會對[下載的 skill 套用額外規則](/docs/zh-TW/skills#how-synced-skills-behave),例如不在您的機器上執行其 `!` 命令 |

399| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 當以 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 建置的應用程式重新載入 skill 時,於工作階段中途執行之 skill 重新同步的逾時時間(毫秒)(預設:30000)。超過時,重新載入會以已送達的 skill 繼續,剩餘的下載會在背景完成 |401| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 當建構於 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 的應用程式重新載入 skill 時,在工作階段中途執行之 skill 重新同步的逾時時間(毫秒)(預設:30000)。超過時,重新載入會以已抵達的 skill 繼續,剩餘的下載會在背景完成 |

400| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 設定 `CLAUDE_CODE_SYNC_SKILLS` 時,第一次查詢等待初始 skill 清單的逾時時間(毫秒)(預設:5000)。超過時,第一次查詢會以已送達的 skill 執行。無論哪種情況,下載都會在背景完成,而 Claude 在叫用某個 skill 時會等待該 skill 下載完成 |402| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 設定 `CLAUDE_CODE_SYNC_SKILLS` 時,第一個查詢等待初始 skill 清單的逾時時間(毫秒)(預設:5000)。超過時,第一個查詢會以已抵達的 skill 執行。無論如何,下載都會在背景完成,Claude 在呼叫某個 skill 時會等待該 skill 下載完成 |

401| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 設定為 `false` 以停用差異輸出中的語法醒目提示。適用於色彩干擾您的終端機設定時。若也要在程式碼區塊與檔案預覽中停用醒目提示,請使用 [`syntaxHighlightingDisabled`](/docs/zh-TW/settings-reference#syntaxhighlightingdisabled) 設定 |403| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 設為 `false` 可停用差異輸出中的語法醒目提示。適用於色彩干擾終端機設定的情況。若要同時停用程式碼區塊與檔案預覽中的醒目提示,請使用 [`syntaxHighlightingDisabled`](/docs/zh-TW/settings-reference#syntaxhighlightingdisabled) 設定 |

402| `CLAUDE_CODE_TASK_LIST_ID` | 跨工作階段共用任務清單。在多個 Claude Code 執行個體中設定相同的 ID,即可在[具備 Task 工具的工作階段](/docs/zh-TW/tools-reference#task-tool-availability)中協調共用的任務清單。請參閱[任務清單](/docs/zh-TW/interactive-mode#task-list) |404| `CLAUDE_CODE_TASK_LIST_ID` | 在工作階段之間共用任務清單。在[具備 Task 工具的工作階段](/docs/zh-TW/tools-reference#task-tool-availability)中,於多個 Claude Code 執行個體中設定相同的 ID,即可在共用任務清單上協調。請參閱[任務清單](/docs/zh-TW/interactive-mode#task-list) |

403| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 以毫秒為單位,覆寫非互動工作階段在結束時等待其 [agent team](/docs/zh-TW/agent-teams) 完成拆除的時間長度。接受 1000 至 60000;超出範圍的值會被忽略,並套用預設值 10000。需要 Claude Code v2.1.206 或更新版本 |405| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 以毫秒為單位,覆寫非互動式工作階段在結束時等待其 [agent team](/docs/zh-TW/agent-teams) 完成拆除的時間。接受 1000 至 60000;超出範圍的值會被忽略並套用預設值 10000。需要 Claude Code v2.1.206 或更新版本 |

404| `CLAUDE_CODE_TMPDIR` | 覆寫用於內部暫存檔案的暫存目錄。Claude Code 在 Unix 上會將 `/claude-{uid}/` 附加至此路徑,在 Windows 上則附加 `/claude/`。預設:macOS 上為 `/tmp`,Linux 與 Windows 上為 `os.tmpdir()`。在 macOS 與 Linux 上,當您的覆寫值是很長的路徑時,[沙箱化](/docs/zh-TW/sandboxing)的 Bash 子程序會收到位於系統預設位置下的簡短備援 `$TMPDIR`,因為某些工具在暫存路徑過長時會失敗。未沙箱化的 Bash 命令會在您的 shell 設定了 `$TMPDIR` 時繼承該值。在原生 Windows 上,當您的 shell 未設定 `$TMPDIR` 時,參照 `$TMPDIR` 的 Bash 命令會收到您的覆寫值,若您未設定覆寫值則會收到 `%TEMP%`。Claude Code 自身的暫存檔案一律使用您的覆寫值。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略 |406| `CLAUDE_CODE_TMPDIR` | 覆寫用於內部暫存檔案的暫存目錄。Claude Code 會在 Unix 上將 `/claude-{uid}/` 附加至此路徑,在 Windows 上則附加 `/claude/`。預設:macOS 上為 `/tmp`,Linux 與 Windows 上為 `os.tmpdir()`。在 macOS 與 Linux 上,當您的覆寫值為長路徑時,[沙箱化](/docs/zh-TW/sandboxing)的 Bash 子程序會在系統預設位置下收到一個較短的備援 `$TMPDIR`,因為某些工具在暫存路徑過長時會失敗。未沙箱化的 Bash 命令在您的 shell 設定了 `$TMPDIR` 時會繼承它。在原生 Windows 上,當您的 shell 未設定 `$TMPDIR` 時,參照 `$TMPDIR` 的 Bash 命令會收到您的覆寫值,若您未設定覆寫值則收到 `%TEMP%`。Claude Code 自己的暫存檔案一律使用您的覆寫值。請在您的 shell、使用者設定或受管設定中設定。在[專案與本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略 |

405| `CLAUDE_CODE_TMUX_TRUECOLOR` | 設定為任何非空值(例如 `1`),以允許在 tmux 內輸出 24 位元 truecolor。**將其設定為 `0` 或 `false` 仍會允許 truecolor**,這與大多數開關變數不同;請取消設定此變數以恢復 256 色限制。預設情況下,當設定了 `$TMUX` 時,Claude Code 會限制為 256 色,因為除非經過設定,否則 tmux 不會傳遞 truecolor 跳脫序列。請在將 `set -ga terminal-overrides ',*:Tc'` 加入您的 `~/.tmux.conf` 後設定此變數。其他 tmux 設定請參閱[終端機設定](/docs/zh-TW/terminal-config) |407| `CLAUDE_CODE_TMUX_TRUECOLOR` | 設為任何非空值(例如 `1`)可在 tmux 中允許 24 位元 truecolor 輸出。**設為 `0` 或 `false` 仍會允許 truecolor**,這與大多數開關變數不同;請取消設定此變數以恢復 256 色限制。預設情況下,當設定了 `$TMUX` 時,Claude Code 會限制為 256 色,因為除非經過設定,否則 tmux 不會傳遞 truecolor 跳脫序列。請在將 `set -ga terminal-overrides ',*:Tc'` 加入 `~/.tmux.conf` 後設定此變數。其他 tmux 設定請參閱[終端機設定](/docs/zh-TW/terminal-config) |

406| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | 在 Linux 與 WSL 上,設定為以逗號分隔的程序類型清單,Claude Code 會將這些程序[排除於工具記憶體上限之外](/docs/zh-TW/tools-reference#memory-limit-on-linux-and-wsl),例如 `mcp` 或 `lsp`。設定 `none` 以限制所有類型,或設定 `all-new` 以僅限制 Bash、PowerShell 與 Monitor 工具命令。無論您列出什麼,Claude Code 都會讓 Bash、PowerShell 與 Monitor 工具命令受上限約束。需要 Claude Code v2.1.246 或更新版本 |408| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | 在 Linux 與 WSL 上,設為以逗號分隔的清單,列出 Claude Code [從工具記憶體上限中排除](/docs/zh-TW/tools-reference#memory-limit-on-linux-and-wsl)的程序種類,例如 `mcp` 或 `lsp`。設為 `none` 可限制所有種類,或設為 `all-new` 僅限制 Bash、PowerShell 與 Monitor 工具命令。無論您列出什麼,Claude Code 都會讓 Bash、PowerShell 與 Monitor 工具命令受到上限約束。需要 Claude Code v2.1.246 或更新版本 |

407| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | 在 Linux 與 WSL 上,設定為 `4G` 等大小,以[限制 Bash 與 PowerShell 工具命令可使用的記憶體](/docs/zh-TW/tools-reference#memory-limit-on-linux-and-wsl),在 v2.1.246 或更新版本中也包括 Monitor 工具命令。請以純數字撰寫大小,單獨使用時表示位元組數,或加上 `K`、`M`、`G` 或 `T` 後綴。設定 `0` 或 `off` 以關閉上限。一旦 Claude Code 啟動的第一個程序已開啟或關閉上限,變更後的值會在您下次啟動 `claude` 時生效。需要 Claude Code v2.1.233 或更新版本 |409| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | 在 Linux 與 WSL 上,設為 `4G` 等大小以[限制 Bash 與 PowerShell 工具命令可使用的記憶體](/docs/zh-TW/tools-reference#memory-limit-on-linux-and-wsl),在 v2.1.246 或更新版本中也包括 Monitor 工具命令。請以純數字寫出大小,單獨表示位元組數,或加上 `K`、`M`、`G` 或 `T` 後綴。設為 `0` 或 `off` 可關閉上限。一旦 Claude Code 啟動的第一個程序已開啟或關閉上限,變更後的值會在您下次啟動 `claude` 時生效。需要 Claude Code v2.1.233 或更新版本 |

408| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code 取消其轉送至遠端用戶端(例如 [Remote Control](/docs/zh-TW/remote-control) 或 SDK 主機)的對話框,或[保留中的跨工作階段訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)之核准對話框前的期限(毫秒);權限提示與 `AskUserQuestion` 問題使用各自的流程,不受此變數控制。在 Claude Code v2.1.236 或更新版本中,它也會限制在可能無人值守執行的工作階段中,於工作階段中途出現的 [Fable 用量點數同意提示](/docs/zh-TW/model-config#fable-and-usage-credits)。[控制傳入訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)與[非互動工作階段](/docs/zh-TW/cross-session-messaging#non-interactive-sessions)涵蓋完整的保留訊息到期規則,包括期限不適用的情況。覆寫 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 設定。`0` 或負值會停用期限 |410| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Claude Code 取消轉送至遠端用戶端(例如 [Remote Control](/docs/zh-TW/remote-control) 或 SDK 主機)之對話框,或[保留的跨工作階段訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)之核准對話框前的期限(毫秒);權限提示與 `AskUserQuestion` 問題使用各自的流程,不受此變數控制。在 Claude Code v2.1.236 或更新版本中,它也會限制可能在無人值守情況下執行之工作階段中,於工作階段中途出現的 [Fable 用量點數同意提示](/docs/zh-TW/model-config#fable-and-usage-credits)。[控制傳入訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)與[非互動式工作階段](/docs/zh-TW/cross-session-messaging#non-interactive-sessions)涵蓋完整的保留訊息到期規則,包括期限不適用的情況。覆寫 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 設定。`0` 或負值會停用期限 |

409| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) |411| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) |

410| `CLAUDE_CODE_USE_BEDROCK` | 使用 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) |412| `CLAUDE_CODE_USE_BEDROCK` | 使用 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) |

411| `CLAUDE_CODE_USE_FOUNDRY` | 使用 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) |413| `CLAUDE_CODE_USE_FOUNDRY` | 使用 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) |

412| `CLAUDE_CODE_USE_MANTLE` | 使用 Amazon Bedrock [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint) |414| `CLAUDE_CODE_USE_MANTLE` | 使用 Amazon Bedrock [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint) |

413| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | 設定為 `1`,使用 Node.js 檔案 API 而非 ripgrep 來探索自訂命令、subagent 與輸出風格。如果內建的 ripgrep 二進位檔在您的環境中無法使用或遭到封鎖,請設定此變數。不影響 Grep 或檔案搜尋工具 |415| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | 設為 `1` 可使用 Node.js 檔案 API 而非 ripgrep 來探索自訂命令、subagent 與輸出風格。若內建的 ripgrep 二進位檔在您的環境中無法使用或遭封鎖,請設定此變數。不影響 Grep 或檔案搜尋工具 |

414| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | 控制 PowerShell 工具。在未安裝 Git Bash 的 Windows 上,此工具會自動啟用;設定為 `0` 以停用。在已安裝 Git Bash 的 Windows 上,此工具對 claude.ai 與 Console 帳戶預設為開啟;設定為 `1` 可在 Amazon Bedrock、Google Cloud's Agent Platform 與 Microsoft Foundry 工作階段中啟用,或設定為 `0` 以關閉。在 Linux、macOS 與 WSL 上,設定為 `1` 以啟用,這需要您的 `PATH` 中有 `pwsh`。在 Windows 上啟用時,Claude 可以原生執行 PowerShell 命令,而不必透過 Git Bash 路由。請參閱 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool) |416| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | 控制 PowerShell 工具。在未安裝 Git Bash 的 Windows 上,此工具會自動啟用;設為 `0` 可停用。在已安裝 Git Bash 的 Windows 上,此工具對 claude.ai 與 Console 帳戶預設為開啟;設為 `1` 可在 Amazon Bedrock、Google Cloud's Agent Platform 與 Microsoft Foundry 工作階段中啟用,或設為 `0` 關閉。在 Linux、macOS 與 WSL 上,設為 `1` 可啟用,這需要 `pwsh` 位於您的 `PATH` 中。在 Windows 上啟用時,Claude 可以原生執行 PowerShell 命令,而不需透過 Git Bash 路由。請參閱 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool) |

415| `CLAUDE_CODE_USE_VERTEX` | 使用 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai) |417| `CLAUDE_CODE_USE_VERTEX` | 使用 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai) |

416| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | 設定為 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 將每個擷取之 URL 的回應保留在快取中的毫秒數。預設為 `900000`,即 15 分鐘。僅接受純數字;`0`、小數或其他任何寫法都會保留預設值。Claude Code 每次啟動時只讀取一次此值,因此設定 `env` 區塊中的變更會在您下次啟動 `claude` 時套用。需要 Claude Code v2.1.233 或更新版本 |418| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | 設為 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 快取每個擷取 URL 回應的毫秒數。預設為 `900000`,即 15 分鐘。僅接受純數字;`0`、小數或任何其他寫法會維持預設值。Claude Code 每次啟動時只讀取一次此值,因此設定 `env` 區塊中的變更會在您下次啟動 `claude` 時套用。需要 Claude Code v2.1.233 或更新版本 |

417| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 等待頁面下載的時間上限(毫秒),包括其遵循的任何重新導向。在此時間前未完成的下載會以期限錯誤失敗。預設為 `300000`,即五分鐘。設定為 `0` 以移除限制。僅接受純數字;小數或其他任何寫法都會保留預設值。需要 Claude Code v2.1.268 或更新版本 |419| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 等待頁面下載完成的時間上限(毫秒),包括其所追蹤的任何重新導向。屆時仍未完成的下載會以期限錯誤失敗。預設為 `300000`,即五分鐘。設為 `0` 可移除限制。僅接受純數字;小數或任何其他寫法會維持預設值。需要 Claude Code v2.1.268 或更新版本 |

418| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 單一[工作流程](/docs/zh-TW/workflows)執行同時執行的 agent 數量,範圍從 `1` 到 `256`。預設情況下,一次執行最多同時執行 16 個 agent,當 Claude Code 可用的 CPU 較少時則會更少;排入佇列的 `agent()` 呼叫會等待空閒的位置。每個執行中 agent 的逐字稿會保留在 Claude Code 的記憶體中,因此較高的值會增加記憶體用量。僅接受純數字;超出範圍的值與其他寫法都會保留預設值。需要 Claude Code v2.1.269 或更新版本 |420| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 單一[工作流程](/docs/zh-TW/workflows)執行同時執行的 agent 數量,範圍為 `1` 至 `256`。預設情況下,一次執行最多同時執行 16 個 agent;當 Claude Code 可用的 CPU 較少時則更少。排入佇列的 `agent()` 呼叫會等待空閒的槽位。每個執行中 agent 的逐字稿都會保留在 Claude Code 的記憶體中,因此較高的值會增加記憶體使用量。僅接受純數字;超出範圍的值和其他寫法會保持預設值。需要 Claude Code v2.1.269 或更新版本 |

419| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [工作流程](/docs/zh-TW/workflows) agent 在送出自己的第一個請求之前,等待具有相同前綴的同層 agent 開始第一個回應的時間上限,以毫秒為單位。當扇出啟動多個共用[提示快取前綴](/docs/zh-TW/workflows#prompt-caching-in-a-fan-out)的 agent 時,Claude Code 會讓第一個以外的所有 agent 最多等待這段時間,使其餘 agent 讀取已快取的前綴,而非各自在未快取的情況下處理該前綴。預設為 `5000`。設定為 `0` 可停用等待。設定 `DISABLE_PROMPT_CACHING` 時,agent 永遠不會等待。需要 Claude Code v2.1.229 或更新版本 |421| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [工作流程](/docs/zh-TW/workflows) agent 在傳送自己的第一個請求之前,等待具有相同前綴的同層級 agent 開始第一個回應的時間上限(以毫秒為單位)。當 fan-out 啟動多個共用[提示快取前綴](/docs/zh-TW/workflows#prompt-caching-in-a-fan-out)的 agent 時,Claude Code 會讓第一個 agent 以外的所有 agent 最多等待這麼長的時間,讓其餘 agent 讀取已快取的前綴,而不是各自在未快取的情況下處理它。預設值為 `5000`。設定為 `0` 可停用等待。設定 `DISABLE_PROMPT_CACHING` 時,agent 永遠不會等待。需要 Claude Code v2.1.229 或更新版本 |

420| `CLAUDE_CONFIG_DIR` | 覆寫設定目錄(預設:`~/.claude`)。所有設定、工作階段歷史記錄和外掛都儲存在此路徑下。關於憑證,請參閱 [Claude Code 儲存憑證的位置](/docs/zh-TW/authentication#credential-management)。適用於同時執行多個帳戶:例如 `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`。請在 shell、使用者設定或受管設定中設定。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略 |422| `CLAUDE_CONFIG_DIR` | 覆寫設定目錄(預設:`~/.claude`)。所有設定、工作階段歷史記錄和外掛都儲存在此路徑下。關於憑證,請參閱 [Claude Code 儲存憑證的位置](/docs/zh-TW/authentication#credential-management)。適用於並行執行多個帳戶:例如 `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`。請在您的 shell、使用者設定或受管設定中設定它。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略 |

421| `CLAUDE_DISABLE_ADOPT` | 設定為 `1` 時,當您按下 `←` 或使用 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,會停止進行中的背景工作,而非將其延續。Claude Code 會在移至背景前請您確認,然後停止原本會延續的任務。需要 Claude Code v2.1.195 或更新版本 |423| `CLAUDE_DISABLE_ADOPT` | 設定為 `1` 可在您按下 `←` 或使用 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,停止進行中的背景工作,而非將其延續。Claude Code 會在移至背景前要求您確認,然後停止原本會延續的任務。需要 Claude Code v2.1.195 或更新版本 |

422| `CLAUDE_EFFORT` | 在 Bash 工具子程序和 hook 命令中自動設定為子程序啟動時生效的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。與傳遞給 [hook](/docs/zh-TW/hooks) 的 `effort.level` 欄位相符。僅在目前模型支援 effort 參數時設定 |424| `CLAUDE_EFFORT` | 在 Bash 工具子程序和 hook 命令中自動設定為子程序啟動時生效的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。與傳遞給 [hook](/docs/zh-TW/hooks) 的 `effort.level` 欄位相符。僅在目前模型支援 effort 參數時設定 |

423| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 設定為 `1` 可強制啟用位元組層級的串流閒置監視器,設定為 `0` 可強制停用。`0` 也會在執行[首位元組期限](/docs/zh-TW/network-config#streaming-idle-watchdogs)的連線上關閉該期限。未設定時,此監視器預設會在直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 連線上啟用,也會在透過 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 連線的[閘道](/docs/zh-TW/gateways)連線上,針對串流回應啟用;在 v2.1.222 之前,此監視器不會在這些閘道連線上執行,因此即使 keep-alive ping 持續抵達,事件層級的監視器仍可能在那裡回報停滯。關於逾時以及計時器之間的互動方式,請參閱[串流閒置監視器](/docs/zh-TW/network-config#streaming-idle-watchdogs) |425| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 設定為 `1` 可強制啟用位元組層級的串流閒置監視程式,或設定為 `0` 可強制停用。`0` 也會在執行[首位元組期限](/docs/zh-TW/network-config#streaming-idle-watchdogs)的連線上關閉該期限。未設定時,監視程式預設會在直接 Anthropic API 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 連線上啟用,也會在透過 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 連接的[閘道](/docs/zh-TW/gateways)連線上的串流回應啟用;在 v2.1.222 之前,它不會在這些閘道連線上執行,因此即使 keep-alive ping 持續抵達,事件層級監視程式仍可能在那裡回報停滯。關於逾時以及計時器之間的交互作用,請參閱[串流閒置監視程式](/docs/zh-TW/network-config#streaming-idle-watchdogs) |

424| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | 設定為 `1` 可在 Amazon Bedrock `vnd.amazon.eventstream` 回應上啟用位元組層級的串流閒置監視器,這也會在 Bedrock 串流請求上啟用[首位元組期限](/docs/zh-TW/network-config#streaming-idle-watchdogs)。預設為關閉。請使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 設定逾時 |426| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | 設定為 `1` 可在 Amazon Bedrock `vnd.amazon.eventstream` 回應上啟用位元組層級串流閒置監視程式,這也會在 Bedrock 串流請求上啟用[首位元組期限](/docs/zh-TW/network-config#streaming-idle-watchdogs)。預設關閉。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 設定逾時 |

425| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 設定為 `0` 可強制停用事件層級的串流閒置監視器,設定為 `1` 可強制啟用。未設定時,此監視器預設會對所有提供者啟用。在 v2.1.196 之前,未設定時的預設值在直接 Anthropic API 上由伺服器控制,在其他提供者上則為關閉。請使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 設定逾時;關於與此監視器一同執行的其他停滯計時器,請參閱[串流閒置監視器](/docs/zh-TW/network-config#streaming-idle-watchdogs) |427| `CLAUDE_ENABLE_STREAM_WATCHDOG` | 設定為 `0` 可強制停用事件層級串流閒置監視程式,或設定為 `1` 可強制啟用。未設定時,監視程式預設對所有提供者開啟。在 v2.1.196 之前,未設定時的預設值在直接 Anthropic API 上由伺服器控制,在其他提供者上則為關閉。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 設定逾時;關於與此監視程式一同執行的其他停滯計時器,請參閱[串流閒置監視程式](/docs/zh-TW/network-config#streaming-idle-watchdogs) |

426| `CLAUDE_ENV_FILE` | shell 指令碼的路徑,Claude Code 會在每個 Bash 命令之前,於同一個 shell 程序中執行該指令碼的內容,因此檔案中的 export 對命令可見。用於在命令之間保留 virtualenv 或 conda 的啟用狀態。也會由 [SessionStart](/docs/zh-TW/hooks#persist-environment-variables)、[Setup](/docs/zh-TW/hooks#setup)、[CwdChanged](/docs/zh-TW/hooks#cwdchanged) 和 [FileChanged](/docs/zh-TW/hooks#filechanged) hook 動態填入 |428| `CLAUDE_ENV_FILE` | shell 指令碼的路徑,Claude Code 會在同一個 shell 程序中、每個 Bash 命令之前執行其內容,因此檔案中的 export 對該命令可見。用於在命令之間保留 virtualenv 或 conda 的啟用狀態。也會由 [SessionStart](/docs/zh-TW/hooks#persist-environment-variables)、[Setup](/docs/zh-TW/hooks#setup)、[CwdChanged](/docs/zh-TW/hooks#cwdchanged) 和 [FileChanged](/docs/zh-TW/hooks#filechanged) hook 動態填入 |

427| `CLAUDE_JOB_DIR` | 由 Claude Code 在每個[背景工作階段](/docs/zh-TW/agent-view)中設定為該工作階段的 `~/.claude/jobs/<id>` 目錄。工作階段執行的 shell 命令會繼承此變數。請將暫存檔案寫入 [`$CLAUDE_JOB_DIR/tmp`](/docs/zh-TW/agent-view#where-state-is-stored)。Claude 在該處的 `Write` 和 `Edit` 呼叫不會提示權限,且該目錄會在工作階段刪除時一併移除 |429| `CLAUDE_JOB_DIR` | 由 Claude Code 在每個[背景工作階段](/docs/zh-TW/agent-view)中設定為該工作階段的 `~/.claude/jobs/<id>` 目錄。工作階段執行的 shell 命令會繼承它。請將暫存檔案寫入 [`$CLAUDE_JOB_DIR/tmp`](/docs/zh-TW/agent-view#where-state-is-stored)。Claude 在該處的 `Write` 和 `Edit` 呼叫不會要求權限,且該目錄會在工作階段刪除時一併移除 |

428| `CLAUDE_PID` | Claude Code 會在其產生的子程序中將此變數設定為自身的程序 ID:包括 Bash 和 PowerShell 工具命令以及 hook 命令。在 Linux 上,Bash 工具的 shell 整合會使用此變數來拒絕會比對到 Claude Code 程序本身的 `pkill` 模式;請參閱[錯誤參考](/docs/zh-TW/errors#pkill-pattern-matches-the-claude-code-process)。您可以在自己的指令碼中讀取此變數,以刻意識別父 Claude Code 程序或向其傳送訊號。需要 Claude Code v2.1.214 或更新版本 |430| `CLAUDE_PID` | Claude Code 會在其產生的子程序中將此變數設定為自己的程序 ID:包括 Bash 和 PowerShell 工具命令以及 hook 命令。在 Linux 上,Bash 工具的 shell 整合會使用它來拒絕會匹配到 Claude Code 程序本身的 `pkill` 模式;請參閱[錯誤參考](/docs/zh-TW/errors#pkill-pattern-matches-the-claude-code-process)。您可以從自己的指令碼中讀取它,以刻意識別父 Claude Code 程序或向其傳送訊號。需要 Claude Code v2.1.214 或更新版本 |

429| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 未提供明確名稱時,自動產生的 [Remote Control](/docs/zh-TW/remote-control) 工作階段名稱的前綴。預設為您機器的主機名稱,產生如 `myhost-graceful-unicorn` 的名稱。`--remote-control-session-name-prefix` CLI 旗標會為單次呼叫設定相同的值 |431| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | 未提供明確名稱時,自動產生的 [Remote Control](/docs/zh-TW/remote-control) 工作階段名稱的前綴。預設為您機器的主機名稱,產生類似 `myhost-graceful-unicorn` 的名稱。`--remote-control-session-name-prefix` CLI 旗標會為單次呼叫設定相同的值 |

430| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | 在執行[首位元組期限](/docs/zh-TW/network-config#streaming-idle-watchdogs)的連線上,串流請求第一個回應位元組的期限,以毫秒為單位。關於 Claude Code 如何限制此值、為大型請求本文增加的額外時間,以及未設定此變數時如何選擇期限,請參閱[API 沒有回應](/docs/zh-TW/errors#no-response-from-api)。需要 Claude Code v2.1.242 或更新版本 |432| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | 在執行[首位元組期限](/docs/zh-TW/network-config#streaming-idle-watchdogs)的連線上,串流請求第一個回應位元組的期限(以毫秒為單位)。關於 Claude Code 如何限制此值、它為大型請求本文增加的額外時間,以及未設定此變數時如何選擇期限,請參閱 [No response from API](/docs/zh-TW/errors#no-response-from-api)。需要 Claude Code v2.1.242 或更新版本 |

431| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 事件層級和位元組層級的串流閒置監視器關閉停滯連線前的逾時時間,以毫秒為單位。明確設定此變數時,最小值為 `300000`(5 分鐘);較低的值會被靜默調整至最小值,以吸收延伸思考的暫停和代理伺服器緩衝,且位元組層級的監視器會將此值上限設為 30 分鐘。對於位元組層級的監視器,`CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 優先於此變數。關於各監視器未設定時的預設值,請參閱[串流閒置監視器](/docs/zh-TW/network-config#streaming-idle-watchdogs) |433| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | 事件層級和位元組層級串流閒置監視程式關閉停滯連線前的逾時(以毫秒為單位)。當您明確設定此變數時,最小值為 `300000`(5 分鐘);較低的值會被靜默提高,以吸收延伸思考的暫停和代理伺服器緩衝,且位元組層級監視程式會將值上限設為 30 分鐘。對於位元組層級監視程式,`CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` 優先於此變數。關於各監視程式未設定時的預設值,請參閱[串流閒置監視程式](/docs/zh-TW/network-config#streaming-idle-watchdogs) |

432| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | 已於 v2.1.260 移除,現在不會產生任何作用。先前用於限制 [subagent](/docs/zh-TW/sub-agents) 啟動的[背景 shell 命令](/docs/zh-TW/interactive-mode#background-bash-commands)可執行的時間,以毫秒為單位,預設為 60 分鐘。請參閱[背景命令生命週期規則](/docs/zh-TW/tools-reference#background-commands) |434| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | 已在 v2.1.260 中移除,現在不起作用。先前用於限制 [subagent](/docs/zh-TW/sub-agents) 啟動的[背景 shell 命令](/docs/zh-TW/interactive-mode#background-bash-commands)可執行的時間(以毫秒為單位),預設為 60 分鐘。請參閱[背景命令存留期規則](/docs/zh-TW/tools-reference#background-commands) |

433| `DEBUG` | 設定為 `1` 可啟用偵錯模式,相當於使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 啟動。偵錯日誌會寫入 `~/.claude/debug/<session-id>.txt`,或寫入 `CLAUDE_CODE_DEBUG_LOGS_DIR` 設定的路徑。只有真值 `1`、`true`、`yes` 和 `on` 會啟用偵錯模式,因此為其他工具設定的命名空間模式(如 `DEBUG=express:*`)不會觸發偵錯模式 |435| `DEBUG` | 設定為 `1` 可啟用偵錯模式,等同於使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 啟動。偵錯日誌會寫入 `~/.claude/debug/<session-id>.txt`,或寫入 `CLAUDE_CODE_DEBUG_LOGS_DIR` 設定的路徑。只有真值 `1`、`true`、`yes` 和 `on` 會啟用偵錯模式,因此為其他工具設定的命名空間模式(例如 `DEBUG=express:*`)不會觸發它 |

434| `DISABLE_AUTOUPDATER` | 設定為 `1` 可停用自動背景更新。手動執行 `claude update` 仍然有效。使用 `DISABLE_UPDATES` 可同時封鎖兩者 |436| `DISABLE_AUTOUPDATER` | 設定為 `1` 可停用自動背景更新。手動執行 `claude update` 仍可運作。使用 `DISABLE_UPDATES` 可同時封鎖兩者 |

435| `DISABLE_AUTO_COMPACT` | 設定為 `1` 可停用接近上下文限制時的自動壓縮。手動 `/compact` 命令仍可使用。適用於您希望明確控制壓縮發生時機的情況。會覆寫 [`autoCompactEnabled`](/docs/zh-TW/settings-reference#autocompactenabled) 設定 |437| `DISABLE_AUTO_COMPACT` | 設定為 `1` 可停用接近上下文限制時的自動壓縮。手動 `/compact` 命令仍可使用。適用於您想明確控制壓縮發生時機的情況。覆寫 [`autoCompactEnabled`](/docs/zh-TW/settings-reference#autocompactenabled) 設定 |

436| `DISABLE_COMPACT` | 設定為 `1` 可停用所有壓縮:包括自動壓縮和手動 `/compact` 命令 |438| `DISABLE_COMPACT` | 設定為 `1` 可停用所有壓縮:包括自動壓縮和手動 `/compact` 命令 |

437| `DISABLE_COST_WARNINGS` | 設定為 `1` 可停用費用警告訊息 |439| `DISABLE_COST_WARNINGS` | 設定為 `1` 可停用成本警告訊息 |

438| `DISABLE_DOCTOR_COMMAND` | 設定為 `1` 可隱藏 [`/doctor`](/docs/zh-TW/commands#all-commands) 設定檢查 skill 及其 `/checkup` 別名。適用於使用者不應從工作階段執行設定診斷的受管部署。不影響 `claude doctor` 終端機命令。在 v2.1.205 之前,此變數會隱藏 `/doctor` 診斷畫面命令 |440| `DISABLE_DOCTOR_COMMAND` | 設定為 `1` 可隱藏 [`/doctor`](/docs/zh-TW/commands#all-commands) 設定檢查 skill 及其 `/checkup` 別名。適用於使用者不應從工作階段執行設定診斷的受管部署。不影響 `claude doctor` 終端機命令。在 v2.1.205 之前,此變數會隱藏 `/doctor` 診斷畫面命令 |

439| `DISABLE_ERROR_REPORTING` | 設定為任何非空值(例如 `1`)可選擇退出錯誤回報。**設定為 `0` 或 `false` 仍會選擇退出**,這與大多數開/關變數不同;取消設定此變數即可重新開啟錯誤回報 |441| `DISABLE_ERROR_REPORTING` | 設定為任何非空值(例如 `1`)可選擇退出錯誤回報。**設定為 `0` 或 `false` 仍會選擇退出**,這與大多數開關變數不同;取消設定此變數即可重新開啟錯誤回報 |

440| `DISABLE_EXTRA_USAGE_COMMAND` | 設定為 `1` 可隱藏 `/usage-credits` 命令,該命令可讓使用者購買超出速率限制的額外用量 |442| `DISABLE_EXTRA_USAGE_COMMAND` | 設定為 `1` 可隱藏 `/usage-credits` 命令,該命令可讓使用者購買超出速率限制的額外用量 |

441| `DISABLE_FEEDBACK_COMMAND` | 設定為 `1` 可停用 `/feedback` 命令和 [Claude 草擬的意見回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)。也會停用透過相同路徑回報的 `/bug` 和 `/share`;在 v2.1.212 之前,它們是 `/feedback` 的別名,因此該命令會在所有名稱下被停用。也接受舊名稱 `DISABLE_BUG_COMMAND` |443| `DISABLE_FEEDBACK_COMMAND` | 設定為 `1` 可停用 `/feedback` 命令和 [Claude 草擬的意見回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)。也會停用透過相同路徑回報的 `/bug` 和 `/share`;在 v2.1.212 之前,它們是 `/feedback` 的別名,因此該命令在所有名稱下都會被停用。也接受較舊的名稱 `DISABLE_BUG_COMMAND` |

442| `DISABLE_GROWTHBOOK` | 設定為 `1` 或 `true` 可停用 GrowthBook 功能旗標擷取,並對每個旗標使用程式碼預設值。這會使 [Remote Control](/docs/zh-TW/remote-control#requirements) 和其他[需要擷取功能旗標的功能](#features-that-need-feature-flag-fetching)無法使用。設定為 `0` 或 `false` 會保持擷取開啟。除非同時設定 `DISABLE_TELEMETRY`,否則遙測事件記錄會保持開啟 |444| `DISABLE_GROWTHBOOK` | 設定為 `1` 或 `true` 可停用 GrowthBook 功能旗標擷取,並對每個旗標使用程式碼中的預設值。這會使 [Remote Control](/docs/zh-TW/remote-control#requirements) 和其他[需要功能旗標擷取的功能](#features-that-need-feature-flag-fetching)無法使用。設定為 `0` 或 `false` 會保持擷取開啟。除非也設定了 `DISABLE_TELEMETRY`,否則遙測事件日誌會保持開啟 |

443| `DISABLE_INSTALLATION_CHECKS` | 設定為 `1` 可停用安裝警告。僅在手動管理安裝位置時使用,因為這可能會掩蓋標準安裝的問題 |445| `DISABLE_INSTALLATION_CHECKS` | 設定為 `1` 可停用安裝警告。僅在手動管理安裝位置時使用,因為這可能會掩蓋標準安裝的問題 |

444| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | 設定為 `1` 可隱藏 `/install-github-app` 命令。使用第三方提供者(Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry)時已隱藏 |446| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | 設定為 `1` 可隱藏 `/install-github-app` 命令。使用第三方提供者(Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry)時已預先隱藏 |

445| `DISABLE_INTERLEAVED_THINKING` | 設定為 `1` 可防止傳送 interleaved-thinking beta 標頭。適用於您的 LLM 閘道或提供者不支援[交錯思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking)的情況 |447| `DISABLE_INTERLEAVED_THINKING` | 設定為 `1` 可避免傳送 interleaved-thinking beta 標頭。適用於您的 LLM 閘道或提供者不支援[交錯思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking)的情況 |

446| `DISABLE_LOGIN_COMMAND` | 設定為 `1` 可隱藏 `/login` 命令。適用於透過 API 金鑰或 `apiKeyHelper` 在外部處理身分驗證的情況 |448| `DISABLE_LOGIN_COMMAND` | 設定為 `1` 可隱藏 `/login` 命令。適用於透過 API 金鑰或 `apiKeyHelper` 在外部處理身分驗證的情況 |

447| `DISABLE_LOGOUT_COMMAND` | 設定為 `1` 可隱藏 `/logout` 命令 |449| `DISABLE_LOGOUT_COMMAND` | 設定為 `1` 可隱藏 `/logout` 命令 |

448| `DISABLE_PROMPT_CACHING` | 設定為 `1` 可為所有模型停用[提示快取](/docs/zh-TW/prompt-caching#disable-prompt-caching)(優先於各模型的設定) |450| `DISABLE_PROMPT_CACHING` | 設定為 `1` 可為所有模型停用[提示快取](/docs/zh-TW/prompt-caching#disable-prompt-caching)(優先於各模型的設定) |


450| `DISABLE_PROMPT_CACHING_HAIKU` | 設定為 `1` 可為[預設 Haiku 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取,無論其在何處執行 |452| `DISABLE_PROMPT_CACHING_HAIKU` | 設定為 `1` 可為[預設 Haiku 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取,無論其在何處執行 |

451| `DISABLE_PROMPT_CACHING_OPUS` | 設定為 `1` 可為[預設 Opus 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取 |453| `DISABLE_PROMPT_CACHING_OPUS` | 設定為 `1` 可為[預設 Opus 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取 |

452| `DISABLE_PROMPT_CACHING_SONNET` | 設定為 `1` 可為[預設 Sonnet 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取 |454| `DISABLE_PROMPT_CACHING_SONNET` | 設定為 `1` 可為[預設 Sonnet 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取 |

453| `DISABLE_TELEMETRY` | 設定為任何非空值(例如 `1`)可選擇退出遙測。**設定為 `0` 或 `false` 仍會選擇退出**,這與大多數開/關變數不同;取消設定此變數即可重新開啟遙測。遙測事件不包含使用者資料,例如程式碼、檔案路徑或 Bash 命令。也會停用[功能旗標擷取](#features-that-need-feature-flag-fetching)。請參閱[為您的組織關閉遙測](/docs/zh-TW/managed-settings#turn-telemetry-off-for-your-organization) |455| `DISABLE_TELEMETRY` | 設定為任何非空值(例如 `1`)可選擇退出遙測。**設定為 `0` 或 `false` 仍會選擇退出**,這與大多數開關變數不同;取消設定此變數即可重新開啟遙測。遙測事件不包含程式碼、檔案路徑或 Bash 命令等使用者資料。也會停用[功能旗標擷取](#features-that-need-feature-flag-fetching)。請參閱[為您的組織關閉遙測](/docs/zh-TW/managed-settings#turn-telemetry-off-for-your-organization) |

454| `DISABLE_UPDATES` | 設定為 `1` 可封鎖所有更新,包括手動執行 `claude update` 和 `claude install`。比 `DISABLE_AUTOUPDATER` 更嚴格。適用於透過您自己的管道發布 Claude Code 且使用者不應自行更新的情況 |456| `DISABLE_UPDATES` | 設定為 `1` 可封鎖所有更新,包括手動執行的 `claude update` 和 `claude install`。比 `DISABLE_AUTOUPDATER` 更嚴格。適用於透過您自己的通道發布 Claude Code 且使用者不應自行更新的情況 |

455| `DISABLE_UPGRADE_COMMAND` | 設定為 `1` 可隱藏 `/upgrade` 命令 |457| `DISABLE_UPGRADE_COMMAND` | 設定為 `1` 可隱藏 `/upgrade` 命令 |

456| `DO_NOT_TRACK` | 設定為 `1` 可選擇退出遙測,效果與 `DISABLE_TELEMETRY` 相同,包括對[功能旗標擷取](#features-that-need-feature-flag-fetching)的影響。Claude Code 會將此變數讀取為標準布林值,因此 `0` 會保持遙測開啟,並將其視為許多開發者 CLI 認可的跨工具慣例 |458| `DO_NOT_TRACK` | 設定為 `1` 可選擇退出遙測,效果與 `DISABLE_TELEMETRY` 相同,包括對[功能旗標擷取](#features-that-need-feature-flag-fetching)的影響。Claude Code 會將此變數讀取為標準布林值,因此 `0` 會保持遙測開啟,並將其視為許多開發者 CLI 所認可的跨工具慣例來遵循 |

457| `ENABLE_BETA_TRACING_DETAILED` | 設定為 `1` 並搭配 `BETA_TRACING_ENDPOINT`,可開啟[詳細 beta 追蹤](/docs/zh-TW/monitoring-usage#traces-beta),這會新增承載內容的 span 屬性和 `claude_code.hook` span。互動式 CLI 工作階段還需要您的組織被列入該 beta 的允許清單。這兩個變數在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中都會被忽略 |459| `ENABLE_BETA_TRACING_DETAILED` | 設定為 `1` 並搭配 `BETA_TRACING_ENDPOINT`,可開啟[詳細 beta 追蹤](/docs/zh-TW/monitoring-usage#traces-beta),這會新增帶有內容的 span 屬性和 `claude_code.hook` span。互動式 CLI 工作階段還需要您的組織已列入該 beta 的允許清單。這兩個變數在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中都會被忽略 |

458| `ENABLE_CLAUDEAI_MCP_SERVERS` | 設定為 `false` 可阻止 Claude Code 擷取 [claude.ai MCP 伺服器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)。對已登入的使用者預設為啟用。若要依專案或依組織停用,請改為在設定中設定 [`disableClaudeAiConnectors`](/docs/zh-TW/settings-reference#disableclaudeaiconnectors) |460| `ENABLE_CLAUDEAI_MCP_SERVERS` | 設定為 `false` 可阻止 Claude Code 擷取 [claude.ai MCP 伺服器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)。已登入的使用者預設為啟用。若要依專案或依組織停用,請改為在設定中設定 [`disableClaudeAiConnectors`](/docs/zh-TW/settings-reference#disableclaudeaiconnectors) |

459| `ENABLE_PROMPT_CACHING_1H` | 設定為 `1` 可請求 1 小時的[提示快取 TTL](/docs/zh-TW/prompt-caching#cache-lifetime),而非預設的 5 分鐘。適用於 API 金鑰、[Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai)、[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 使用者。在包含用量範圍內的訂閱使用者會在[主要對話](/docs/zh-TW/prompt-caching#which-ttl-each-request-gets)上自動獲得 1 小時 TTL。使用[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)的訂閱使用者可以設定此變數以保留 1 小時 TTL。1 小時快取寫入會以較高的費率計費。若要改為依請求類別選擇 TTL,請使用 `CLAUDE_CODE_PROMPT_CACHE_TTL` 和 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`,它們優先於此變數 |461| `ENABLE_PROMPT_CACHING_1H` | 設定為 `1` 可請求 1 小時的[提示快取 TTL](/docs/zh-TW/prompt-caching#cache-lifetime),而非預設的 5 分鐘。適用於 API 金鑰、[Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai)、[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 的使用者。在內含用量範圍內的訂閱使用者會在[主要對話](/docs/zh-TW/prompt-caching#which-ttl-each-request-gets)上自動獲得 1 小時 TTL。正在使用[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)的訂閱使用者可以設定此變數以保留 1 小時 TTL。1 小時快取寫入以較高的費率計費。若要改為依請求類別選擇 TTL,請使用 `CLAUDE_CODE_PROMPT_CACHE_TTL` 和 `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`,它們優先於此變數 |

460| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 已棄用。請改用 `ENABLE_PROMPT_CACHING_1H` |462| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | 已棄用。請改用 `ENABLE_PROMPT_CACHING_1H` |

461| `ENABLE_TOOL_SEARCH` | 控制 [MCP Tool Search](/docs/zh-TW/mcp#scale-with-mcp-tool-search)。未設定時,Claude Code 預設會延遲載入所有 MCP 工具。但在早於 Claude 4.5 世代的 Google Cloud's Agent Platform 模型、託管於 Azure 的 Microsoft Foundry 部署,以及 `ANTHROPIC_BASE_URL` 指向非第一方主機時,仍會預先載入這些工具。`true` 一律延遲載入並傳送 beta 標頭,但上述相同的 Agent Platform 模型和 Microsoft Foundry 部署除外;在不支援 `tool_reference` 的代理伺服器上,請求會失敗。`auto` 會在工具定義符合上下文的 10% 以內時預先載入。`auto:N` 可設定自訂閾值,例如 `auto:5` 表示 5%。`false` 會預先載入所有工具。設定 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 時,您自行設定的值會被忽略。在 v2.1.221 之前,除非您將此變數設定為 `true`,否則 Claude Code 會在 Google Cloud's Agent Platform 上為所有模型停用工具搜尋 |463| `ENABLE_TOOL_SEARCH` | 控制 [MCP Tool Search](/docs/zh-TW/mcp#scale-with-mcp-tool-search)。未設定時,Claude Code 預設會延遲載入所有 MCP 工具。但在早於 Claude 4.5 世代的 Google Cloud's Agent Platform 模型上、在託管於 Azure 的 Microsoft Foundry 部署上,以及 `ANTHROPIC_BASE_URL` 指向非第一方主機時,它仍會預先載入這些工具。`true` 一律延遲載入並傳送 beta 標頭,但在上述相同的 Agent Platform 模型和 Microsoft Foundry 部署上除外;在不支援 `tool_reference` 的代理伺服器上,請求會失敗。`auto` 會在工具定義可容納於上下文的 10% 以內時預先載入。`auto:N` 可設定自訂閾值,例如 `auto:5` 代表 5%。`false` 會預先載入所有工具。設定 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 時,您自行設定的值會被忽略。在 v2.1.221 之前,除非您將此變數設定為 `true`,否則 Claude Code 會在 Google Cloud's Agent Platform 上為所有模型停用工具搜尋 |

462| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 設定為任何非空值(例如 `1`),可讓 Claude Code 在未設定備援模型時,對每個模型在重複發生過載錯誤時停止重試。**設定為 `0` 或 `false` 仍會啟用此功能**,這與大多數開/關變數不同;取消設定此變數即可恢復預設的重試行為。若未設定此變數,當您使用 API 金鑰或[第三方提供者](/docs/zh-TW/third-party-integrations)而非 Claude 訂閱進行身分驗證時,Claude Code 會在其識別為 Opus、Fable 或 Mythos 的模型上以此方式停止重試。在 Claude Code v2.1.160 或更新版本中,Claude Code 會在任何主要模型重複發生過載錯誤時切換到您設定的[備援模型鏈](/docs/zh-TW/model-config#fallback-model-chains),因此此變數不會影響切換到備援模型 |464| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 設定為任何非空值(例如 `1`),可讓 Claude Code 在未設定備援模型時,對每個模型在重複發生過載錯誤時停止重試。**設定為 `0` 或 `false` 仍會啟用此行為**,這與大多數開關變數不同;取消設定此變數即可恢復預設的重試行為。若未設定此變數,當您使用 API 金鑰或[第三方提供者](/docs/zh-TW/third-party-integrations)而非 Claude 訂閱進行身分驗證時,Claude Code 只會在它識別為 Opus、Fable 或 Mythos 模型的模型上以這種方式停止重試。在 Claude Code v2.1.160 或更新版本上,Claude Code 會在任何主要模型重複發生過載錯誤時切換至您設定的[備援模型鏈](/docs/zh-TW/model-config#fallback-model-chains),因此此變數不影響切換至備援模型的行為 |

463| `FORCE_AUTOUPDATE_PLUGINS` | 設定為 `1` 可在主要自動更新程式透過 `DISABLE_AUTOUPDATER` 停用時,仍強制外掛自動更新 |465| `FORCE_AUTOUPDATE_PLUGINS` | 設定為 `1` 可強制外掛自動更新,即使主要自動更新程式已透過 `DISABLE_AUTOUPDATER` 停用 |

464| `FORCE_HYPERLINK` | 設定為 `1` 可在您的終端機支援但未被自動偵測到時,啟用可點擊的 OSC 8 超連結,設定為 `0` 則停用超連結。未設定時,Claude Code 僅在偵測到終端機支援時啟用超連結。Claude Code 會將此值解析為數字而非布林值,因此 `false`、`no` 或 `off` 等值會啟用超連結,而非停用。頁尾的 [PR 或合併請求徽章](/docs/zh-TW/interactive-mode#pr-review-status)即使在 Claude Code 無法偵測終端機支援時(例如透過 SSH)也會呈現為超連結。設定 `0` 可將徽章呈現為純文字 |466| `FORCE_HYPERLINK` | 設定為 `1` 可在您的終端機支援但未被自動偵測到時啟用可點擊的 OSC 8 超連結,或設定為 `0` 以停用超連結。未設定時,Claude Code 只會在偵測到終端機支援時啟用超連結。Claude Code 會將此值解析為數字而非布林值,因此 `false`、`no` 或 `off` 等值會啟用超連結而非停用。頁尾的 [PR 或合併請求徽章](/docs/zh-TW/interactive-mode#pr-review-status)即使在 Claude Code 無法偵測終端機支援時(例如透過 SSH)也會呈現為超連結。設定為 `0` 可將徽章呈現為純文字 |

465| `FORCE_PROMPT_CACHING_5M` | 設定為 `1` 可強制使用 5 分鐘的提示快取 TTL,即使原本會套用 1 小時 TTL 也一樣。會覆寫 `CLAUDE_CODE_PROMPT_CACHE_TTL`、`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`、`ENABLE_PROMPT_CACHING_1H`,以及 `promptCacheTtl` 和 `subagentPromptCacheTtl` 設定 |467| `FORCE_PROMPT_CACHING_5M` | 設定為 `1` 可強制使用 5 分鐘提示快取 TTL,即使原本會套用 1 小時 TTL。覆寫 `CLAUDE_CODE_PROMPT_CACHE_TTL`、`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`、`ENABLE_PROMPT_CACHING_1H`,以及 `promptCacheTtl` 和 `subagentPromptCacheTtl` 設定 |

466| `HTTP_PROXY` | 為網路連線指定 HTTP 代理伺服器 |468| `HTTP_PROXY` | 指定網路連線使用的 HTTP 代理伺服器 |

467| `HTTPS_PROXY` | 為網路連線指定 HTTPS 代理伺服器 |469| `HTTPS_PROXY` | 指定網路連線使用的 HTTPS 代理伺服器 |

468| `IS_DEMO` | 設定為任何非空值(例如 `1`)可啟用示範模式:從標頭和 `/status` 輸出中隱藏您的電子郵件和組織名稱,並略過新手導覽。**設定為 `0` 或 `false` 仍會啟用示範模式**,這與大多數開/關變數不同;取消設定此變數即可關閉。適用於直播或錄製工作階段時 |470| `IS_DEMO` | 設定為任何非空值(例如 `1`)可啟用示範模式:從標頭和 `/status` 輸出中隱藏您的電子郵件和組織名稱,並略過初始設定流程。**設定為 `0` 或 `false` 仍會啟用示範模式**,這與大多數開關變數不同;取消設定此變數即可關閉。適用於直播或錄製工作階段時 |

469| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具回應中允許的最大 token 數。當輸出超過 10,000 個 token 時,Claude Code 會顯示警告。宣告 [`anthropic/maxResultSizeChars`](/docs/zh-TW/mcp#raise-the-limit-for-a-specific-tool) 的工具會改為對文字內容使用該字元限制,但這些工具的圖片內容仍受此變數限制(預設:25000) |471| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具回應中允許的最大 token 數。當輸出超過 10,000 個 token 時,Claude Code 會顯示警告。宣告了 [`anthropic/maxResultSizeChars`](/docs/zh-TW/mcp#raise-the-limit-for-a-specific-tool) 的工具會改為對文字內容使用該字元限制,但這些工具的圖片內容仍受此變數限制(預設:25000) |

470| `MAX_STRUCTURED_OUTPUT_RETRIES` | 在使用 `-p` 旗標的非互動模式中,當模型的回應未通過 [`--json-schema`](/docs/zh-TW/cli-reference#cli-flags) 驗證時,Claude Code 允許的嘗試次數;在達到該次數的失敗嘗試且沒有有效輸出後,執行即失敗。當[工作流程](/docs/zh-TW/workflows) subagent 的結構化輸出未通過驗證時,也適用相同的上限。預設為 5,即第一次嘗試加上四次重試 |472| `MAX_STRUCTURED_OUTPUT_RETRIES` | 在使用 `-p` 旗標的非互動模式中,當模型的回應未通過 [`--json-schema`](/docs/zh-TW/cli-reference#cli-flags) 驗證時,Claude Code 允許的嘗試次數;達到該次數的失敗嘗試且沒有任何有效輸出後,執行即會失敗。當[工作流程](/docs/zh-TW/workflows) subagent 的結構化輸出未通過驗證時,也適用相同的上限。預設為 5,即一次初始嘗試加上四次重試 |

471| `MAX_THINKING_TOKENS` | [延伸思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)的固定 token 預算。Claude Code 會將其上限設為比請求的最大輸出 token 少一個 token,且永遠不低於 1,024。關於該限制的設定方式,請參閱 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`。未設定且已啟用思考時,具有[自適應推理](/docs/zh-TW/model-config#adjust-effort-level)的模型會自行選擇思考深度,其他模型則使用上限。設定為 `0` 可在 Anthropic API 上停用思考,但 Opus 5.5、Sonnet 5.5 和 Fable 模型除外,這些模型無法關閉思考。在[第三方提供者](/docs/zh-TW/third-party-integrations)上,`0` 會改為省略 `thinking` 參數。在 Anthropic API 上關閉思考時,對於 Claude Code 已知[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型(例如 Opus 5),Claude Code 會傳送 effort `high` 而非更高的等級。Claude Code 會在自適應推理模型上忽略非零值,但 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 會關閉自適應推理的模型除外 |473| `MAX_THINKING_TOKENS` | [延伸思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)的固定 token 預算。Claude Code 會將其上限設為比請求的最大輸出 token 少一個 token,且永遠不低於 1,024。關於該限制的設定方式,請參閱 `CLAUDE_CODE_MAX_OUTPUT_TOKENS`。未設定且已啟用思考時,具有[自適應推理](/docs/zh-TW/model-config#adjust-effort-level)的模型會自行選擇思考深度,其他模型則使用上限值。設定為 `0` 可在 Anthropic API 上停用思考,但 Opus 5.5、Sonnet 5.5 和 Fable 模型除外,這些模型無法關閉思考。在[第三方提供者](/docs/zh-TW/third-party-integrations)上,`0` 則會改為省略 `thinking` 參數。在 Anthropic API 上關閉思考時,對於 Claude Code 已知[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型(例如 Opus 5),Claude Code 會傳送 effort `high` 而非更高的等級。Claude Code 會忽略自適應推理模型上的非零值,但 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 可關閉自適應推理的那些模型除外 |

472| `MCP_CLIENT_SECRET` | 需要[預先設定憑證](/docs/zh-TW/mcp#use-pre-configured-oauth-credentials)的 MCP 伺服器所使用的 OAuth 用戶端密碼。使用 `--client-secret` 新增伺服器時可避免互動式提示 |474| `MCP_CLIENT_SECRET` | 需要[預先設定憑證](/docs/zh-TW/mcp#use-pre-configured-oauth-credentials)的 MCP 伺服器所使用的 OAuth 用戶端密鑰。使用 `--client-secret` 新增伺服器時可避免互動式提示 |

473| `MCP_CONNECTION_NONBLOCKING` | 控制啟動時是否在第一個查詢之前等待 MCP 伺服器連線。MCP 啟動預設為非阻塞:伺服器會在背景連線,其工具會在完成時變為可用。設定為 `0` 可讓 Claude Code 在第一個查詢之前等待伺服器連線。設定了 [`alwaysLoad: true`](/docs/zh-TW/mcp#exempt-a-server-from-deferral) 的伺服器無論如何仍會讓啟動等待,除非是從[探索快取](/docs/zh-TW/mcp#server-status-detail)提供,因為建立第一個提示詞時其工具必須存在。在未使用 `--input-format stream-json` 的非互動模式(`-p`)中,無論此變數為何,Claude Code 也會在第一個回合之前等待仍在擱置中的伺服器。當您明確傳遞 [`--mcp-config`](/docs/zh-TW/cli-reference#cli-flags) 時,等待會有較長的期限;關於已快取伺服器的例外情況,請參閱該旗標的項目 |475| `MCP_CONNECTION_NONBLOCKING` | 控制啟動時是否在第一次查詢前等待 MCP 伺服器連線。MCP 啟動預設為非阻塞:伺服器會在背景連線,其工具會在連線完成時變為可用。設定為 `0` 可讓 Claude Code 在第一次查詢前等待伺服器連線。使用 [`alwaysLoad: true`](/docs/zh-TW/mcp#exempt-a-server-from-deferral) 設定的伺服器無論如何仍會使啟動等待,除非是從[探索快取](/docs/zh-TW/mcp#server-status-detail)提供,因為建構第一個提示詞時其工具必須存在。在未使用 `--input-format stream-json` 的非互動模式(`-p`)中,無論此變數為何,Claude Code 也會在第一個回合前等待仍在擱置中的伺服器。當您明確傳遞 [`--mcp-config`](/docs/zh-TW/cli-reference#cli-flags) 時,等待的期限會較長;關於已快取伺服器的例外情況,請參閱該旗標的條目 |

474| `MCP_CONNECT_TIMEOUT_MS` | 阻塞式 MCP 啟動在擷取工具清單快照之前,等待連線批次的時間,以毫秒為單位(預設:5000)。適用於 `MCP_CONNECTION_NONBLOCKING=0` 時,或標記為 [`alwaysLoad: true`](/docs/zh-TW/mcp#exempt-a-server-from-deferral) 的伺服器。在期限時仍在擱置中的伺服器會繼續在背景連線。與 `MCP_TIMEOUT` 不同,後者限制的是個別伺服器的連線嘗試 |476| `MCP_CONNECT_TIMEOUT_MS` | 阻塞式 MCP 啟動在擷取工具清單快照前,等待連線批次的時間(以毫秒為單位)(預設:5000)。適用於 `MCP_CONNECTION_NONBLOCKING=0` 時,或標記為 [`alwaysLoad: true`](/docs/zh-TW/mcp#exempt-a-server-from-deferral) 的伺服器。到期限時仍在擱置中的伺服器會在背景繼續連線。與 `MCP_TIMEOUT` 不同,後者限制的是個別伺服器的連線嘗試 |

475| `MCP_DISCOVERY_CACHE` | 開啟或關閉 [MCP 探索快取](/docs/zh-TW/mcp#server-status-detail)。快取開啟時,您先前使用過的遠端 HTTP 或 SSE 伺服器可以顯示 [`cached` 狀態](/docs/zh-TW/mcp#server-status-detail),且 Claude Code 會在其第一次工具呼叫時才連線,而非在啟動時連線。除非逐步推出已為您的帳戶啟用,否則快取預設為關閉。設定為 `1` 可開啟,設定為 `0` 則即使推出已啟用也保持關閉。在 v2.1.238 之前,快取預設為開啟。`cached` 狀態需要 Claude Code v2.1.221 或更新版本 |477| `MCP_DISCOVERY_CACHE` | 開啟或關閉 [MCP 探索快取](/docs/zh-TW/mcp#server-status-detail)。快取開啟時,您先前使用過的遠端 HTTP 或 SSE 伺服器可以顯示 [`cached` 狀態](/docs/zh-TW/mcp#server-status-detail),且 Claude Code 會在其第一次工具呼叫時才連線,而非在啟動時連線。除非漸進式推出已為您的帳戶啟用,否則快取預設為關閉。設定為 `1` 可開啟,或設定為 `0` 可在推出已啟用時仍保持關閉。在 v2.1.238 之前,快取預設為開啟。`cached` 狀態需要 Claude Code v2.1.221 或更新版本 |

476| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [探索快取](/docs/zh-TW/mcp#server-status-detail)項目的最長存留時間,以秒為單位(預設:14400,即 4 小時)。在項目超過此時間的啟動中,Claude Code 會捨棄該項目並在啟動時連線伺服器,如同快取關閉時的做法。Claude Code 會將此值上限設為 7 天。在 v2.1.238 之前,預設值為 86400,即 24 小時,且 Claude Code 不會限制此值 |478| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | [探索快取](/docs/zh-TW/mcp#server-status-detail)條目的最大存留時間(以秒為單位)(預設:14400,即 4 小時)。在條目早於該時間的啟動時,Claude Code 會捨棄它並在啟動時連線伺服器,就像快取關閉時一樣。Claude Code 會將此值上限設為 7 天。在 v2.1.238 之前,預設值為 86400,即 24 小時,且 Claude Code 不會限制此值 |

477| `MCP_DISCOVERY_CACHE_STRIKES` | 在[探索快取](/docs/zh-TW/mcp#server-status-detail)項目超過 `MCP_DISCOVERY_CACHE_TTL_S` 的啟動中,Claude Code 會在背景重新整理該項目。此變數設定在 Claude Code 捨棄該項目並改為在下次啟動時連線伺服器之前,可以連續失敗多少次重新整理(預設:1)。如果您的網路連線偶爾中斷,請提高此值,以免一次重新整理失敗就捨棄該項目。需要 Claude Code v2.1.238 或更新版本 |479| `MCP_DISCOVERY_CACHE_STRIKES` | 在[探索快取](/docs/zh-TW/mcp#server-status-detail)條目早於 `MCP_DISCOVERY_CACHE_TTL_S` 的啟動時,Claude Code 會在背景重新整理它。此變數設定在 Claude Code 捨棄條目並改為在下次啟動時連線伺服器之前,可以連續失敗多少次重新整理(預設:1)。如果您的網路連線偶爾會中斷,請提高此值,這樣一次失敗的重新整理就不會捨棄條目。需要 Claude Code v2.1.238 或更新版本 |

478| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code 在不重新整理的情況下使用[探索快取](/docs/zh-TW/mcp#server-status-detail)項目的秒數(預設:900)。在項目超過此時間的啟動中,Claude Code 仍會使用該項目,但會在背景重新整理。一旦項目超過 `MCP_DISCOVERY_CACHE_MAX_STALE_S`,Claude Code 會改為捨棄該項目。Claude Code 會將此值上限設為 `MCP_DISCOVERY_CACHE_MAX_STALE_S`,預設為 4 小時。在 v2.1.238 之前,Claude Code 不會限制此值 |480| `MCP_DISCOVERY_CACHE_TTL_S` | Claude Code 使用[探索快取](/docs/zh-TW/mcp#server-status-detail)條目而不重新整理的秒數(預設:900)。在條目早於該時間的啟動時,Claude Code 仍會使用它,但會在背景重新整理。一旦條目早於 `MCP_DISCOVERY_CACHE_MAX_STALE_S`,Claude Code 則會改為捨棄它。Claude Code 會將此值上限設為 `MCP_DISCOVERY_CACHE_MAX_STALE_S`,預設為 4 小時。在 v2.1.238 之前,Claude Code 不會限制此值 |

479| `MCP_OAUTH_CALLBACK_PORT` | OAuth 重新導向回呼的固定連接埠,可在新增具有[預先設定憑證](/docs/zh-TW/mcp#use-pre-configured-oauth-credentials)的 MCP 伺服器時,作為 `--callback-port` 的替代方案 |481| `MCP_OAUTH_CALLBACK_PORT` | OAuth 重新導向回呼的固定連接埠,可在使用[預先設定憑證](/docs/zh-TW/mcp#use-pre-configured-oauth-credentials)新增 MCP 伺服器時,作為 `--callback-port` 的替代方案 |

480| `MCP_PROTOCOL_NEGOTIATION` | 僅在 [v2 MCP 用戶端執行環境](/docs/zh-TW/mcp#mcp-client-runtimes)上,決定 Claude Code 是否探測伺服器是否支援 MCP 協定修訂版 2026-07-28。設定 `auto` 可探測 HTTP、claude.ai 連接器和 stdio 伺服器;未回應探測的伺服器會改用較早的協定連線,如同 SSE 和 WebSocket 伺服器一向的做法。設定 `legacy` 可對所有伺服器略過探測。未設定此變數時,Claude Code 會探測 HTTP 伺服器,並在其[擷取功能旗標](#features-that-need-feature-flag-fetching)的工作階段中也探測 claude.ai 連接器伺服器。任何其他值都會被忽略,並在偵錯日誌中記錄警告。需要 Claude Code v2.1.221 或更新版本 |482| `MCP_PROTOCOL_NEGOTIATION` | 僅適用於 [v2 MCP 用戶端執行環境](/docs/zh-TW/mcp#mcp-client-runtimes),決定 Claude Code 是否探測伺服器是否支援 MCP 協定修訂版 2026-07-28。設定 `auto` 可探測 HTTP、claude.ai 連接器和 stdio 伺服器,設定 `legacy` 則不探測任何伺服器。未設定此變數時,Claude Code 會探測 [MCP 用戶端執行環境](/docs/zh-TW/mcp#mcp-client-runtimes)中所述的伺服器。其他任何值都會被忽略,並在偵錯日誌中記錄警告。需要 Claude Code v2.1.221 或更新版本 |

481| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 啟動期間並行連線的遠端 MCP 伺服器(HTTP/SSE)最大數量(預設:20) |483| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | 啟動期間平行連線的遠端 MCP 伺服器(HTTP/SSE)最大數量(預設:20) |

482| `MCP_SDK_GENERATION` | 固定此程序用於連線 MCP 伺服器的 [MCP 用戶端執行環境](/docs/zh-TW/mcp#mcp-client-runtimes):`v1`,建構於 MCP TypeScript SDK 1.x 之上,或 `v2`,建構於 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 之上。未設定此變數時,Claude Code 會從該章節所列的版本開始使用 v2。在 Claude Code v2.1.221 或更新版本中,v2 執行環境會檢查 MCP OAuth 伺服器在其授權回應中傳回的簽發者,若不相符,登入會失敗並顯示以 `Issuer mismatch in authorization response` 開頭的錯誤。v1 執行環境不會執行此檢查。如果您設定了無法識別的值,Claude Code 會忽略該值並將警告寫入偵錯日誌。Claude Code 每個程序只讀取此值一次。需要 Claude Code v2.1.218 或更新版本 |484| `MCP_SDK_GENERATION` | 固定此程序用來連線 MCP 伺服器的 [MCP 用戶端執行階段](/docs/zh-TW/mcp#mcp-client-runtimes):`v1`(建構於 MCP TypeScript SDK 1.x)或 `v2`(建構於 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/))。未設定此變數時,從該章節列出的版本開始,Claude Code 會使用 v2。在 Claude Code v2.1.221 或更新版本上,v2 執行階段會檢查 MCP OAuth 伺服器在其授權回應中傳回的簽發者,若不相符,登入會失敗並顯示以 `Issuer mismatch in authorization response` 開頭的錯誤。v1 執行階段不會執行此檢查。如果您設定了無法識別的值,Claude Code 會忽略它並將警告寫入偵錯日誌。Claude Code 每個程序只會讀取一次此值。需要 Claude Code v2.1.218 或更新版本 |

483| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 啟動期間並行連線的本機 MCP 伺服器(stdio)最大數量(預設:3) |485| `MCP_SERVER_CONNECTION_BATCH_SIZE` | 啟動期間平行連線的本機 MCP 伺服器(stdio)最大數量(預設:3) |

484| `MCP_TIMEOUT` | MCP 伺服器啟動的逾時時間,以毫秒為單位(預設:30000,即 30 秒) |486| `MCP_TIMEOUT` | MCP 伺服器啟動的逾時(以毫秒為單位)(預設:30000,即 30 秒) |

485| `MCP_TOOL_TIMEOUT` | MCP 工具執行的逾時時間,以毫秒為單位(預設:100000000,約 28 小時)。對於 HTTP、SSE 或 claude.ai 連接器伺服器,每個請求預設也會在 60 秒後逾時;將此變數或各伺服器的 `timeout` 設定為高於 60000 可提高該每請求限制。較低的值仍會縮短整體工具執行逾時,但每請求限制會維持在 60 秒。Stdio 和 WebSocket 伺服器沒有每請求計時器。`.mcp.json` 中各伺服器的 `timeout` 欄位會針對該伺服器覆寫此設定。至少為 1000 的各伺服器 `timeout` 也會設定該伺服器工具呼叫的最短閒置時間窗,因此 `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` 絕不會更早中止它們;此下限需要 Claude Code v2.1.203 或更新版本。對於環境變數,低於 1000 的值會被提高至一秒;對於各伺服器欄位,低於 1000 的值會被忽略 |487| `MCP_TOOL_TIMEOUT` | MCP 工具執行的逾時(以毫秒為單位)(預設:100000000,約 28 小時)。對於 HTTP、SSE 或 claude.ai 連接器伺服器,每個請求預設也會在 60 秒後逾時;將此變數或各伺服器的 `timeout` 設定為高於 60000,即可提高該每請求限制。較低的值仍會縮短整體工具執行逾時,但每請求限制會維持在 60 秒。Stdio 和 WebSocket 伺服器沒有每請求計時器。`.mcp.json` 中各伺服器的 `timeout` 欄位會為該伺服器覆寫此值。至少為 1000 的各伺服器 `timeout` 也會設定該伺服器工具呼叫的最小閒置時間窗,因此 `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` 絕不會更早中止它們;此下限需要 Claude Code v2.1.203 或更新版本。對於環境變數,低於 1000 的值會被提高至一秒;對於各伺服器欄位,低於 1000 的值會被忽略 |

486| `NO_PROXY` | 請求將直接發送而略過代理伺服器的網域和 IP 清單 |488| `NO_PROXY` | 直接發出請求、略過代理伺服器的網域和 IP 清單 |

487| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 標準 OpenTelemetry SDK 的屬性值長度限制。Claude Code 會將承載內容的遙測屬性上限設為此值與 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 中較小者,使截斷標記保持在 SDK 限制之內。Claude Code 會以相同方式讀取 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 和 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 變體,且設定值中最小者會套用至所有訊號。需要 Claude Code v2.1.214 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage#common-configuration-variables) |489| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | 標準 OpenTelemetry SDK 的屬性值長度限制。Claude Code 會將帶有內容的遙測屬性上限設為此值與 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 中較小者,讓截斷標記保持在 SDK 限制內。Claude Code 會以相同方式讀取 `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` 和 `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` 變體,且所設定的最小值會套用至所有訊號。需要 Claude Code v2.1.214 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage#common-configuration-variables) |

488| `OTEL_LOG_ASSISTANT_RESPONSES` | 設定為 `1` 可在 `assistant_response` OpenTelemetry 日誌事件中包含模型的回應文字。未設定時,Claude Code 會改用 `OTEL_LOG_USER_PROMPTS` 的值。設定為 `0` 可在設定了 `OTEL_LOG_USER_PROMPTS` 時仍保持回應遮蔽。請在 shell、使用者設定或受管設定中設定。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略。需要 Claude Code v2.1.193 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage#assistant-response-event) |490| `OTEL_LOG_ASSISTANT_RESPONSES` | 設定為 `1` 可在 `assistant_response` OpenTelemetry 日誌事件中包含模型的回應文字。未設定時,Claude Code 會改用 `OTEL_LOG_USER_PROMPTS` 的值。設定為 `0` 可在設定了 `OTEL_LOG_USER_PROMPTS` 時仍保持回應遮蔽。請在您的 shell、使用者設定或受管設定中設定它。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略。需要 Claude Code v2.1.193 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage#assistant-response-event) |

489| `OTEL_LOG_MANAGED_SETTINGS` | 設定為 `1` 可將遮蔽後的受管設定,以及遮蔽前設定的 SHA-256 摘要,新增至 `managed_settings_resolved` OpenTelemetry 日誌事件。預設為停用。請在 shell、使用者設定或受管設定中設定;專案或本機設定中的值不會將其開啟。需要 Claude Code v2.1.274 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage#managed-settings-resolved-event) |491| `OTEL_LOG_MANAGED_SETTINGS` | 設定為 `1` 可將遮蔽後的受管設定,以及遮蔽前設定的 SHA-256 摘要,新增至 `managed_settings_resolved` OpenTelemetry 日誌事件。預設停用。請在您的 shell、使用者設定或受管設定中設定它;專案或本機設定中的值不會將其開啟。需要 Claude Code v2.1.274 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage#managed-settings-resolved-event) |

490| `OTEL_LOG_RAW_API_BODIES` | 將 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件發出。設定為 `1` 可發出在內容限制處截斷的內嵌本文,或設定為 `file:<dir>` 將未截斷的本文寫入磁碟並改為發出 `body_ref` 路徑。`CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 可設定內容限制,預設為 60 KB。預設為停用;本文包含完整的對話歷史記錄。請在 shell、使用者設定或受管設定中設定。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略。請參閱[監控](/docs/zh-TW/monitoring-usage#api-request-body-event) |492| `OTEL_LOG_RAW_API_BODIES` | 將 Anthropic Messages API 請求和回應 JSON 以 `api_request_body` / `api_response_body` 日誌事件發出。設定為 `1` 可內嵌在內容限制處截斷的本文,或設定為 `file:<dir>` 可將未截斷的本文寫入磁碟,並改為發出 `body_ref` 路徑。`CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 用於設定內容限制,預設為 60 KB。預設停用;本文包含完整的對話記錄。請在您的 shell、使用者設定或受管設定中設定它。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略。請參閱[監控](/docs/zh-TW/monitoring-usage#api-request-body-event) |

491| `OTEL_LOG_TOOL_CONTENT` | 設定為 `1` 可在 `tool.output` OpenTelemetry span 事件中包含工具內容。span 屬性會在[其各自的閘門](/docs/zh-TW/monitoring-usage#new-context-gates)下承載工具內容。需要[追蹤](/docs/zh-TW/monitoring-usage#traces-beta)。預設為停用以保護敏感資料。請在 shell、使用者設定或受管設定中設定。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略,但該章節所述的關閉值除外。請參閱[監控](/docs/zh-TW/monitoring-usage#tool-output-span-event) |493| `OTEL_LOG_TOOL_CONTENT` | 設定為 `1` 可在 `tool.output` OpenTelemetry span 事件中包含工具內容。Span 屬性會依[其各自的開關](/docs/zh-TW/monitoring-usage#new-context-gates)攜帶工具內容。需要[追蹤](/docs/zh-TW/monitoring-usage#traces-beta)。預設停用以保護敏感資料。請在您的 shell、使用者設定或受管設定中設定它。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略,但該章節所述的關閉值除外。請參閱[監控](/docs/zh-TW/monitoring-usage#tool-output-span-event) |

492| `OTEL_LOG_TOOL_DETAILS` | 設定為 `1` 可在 OpenTelemetry 指標、追蹤和日誌中包含工具輸入引數;MCP 伺服器名稱;使用者撰寫的工作流程名稱;工具失敗時的原始錯誤字串;`api_refusal` 事件上的拒絕 `category`;[費用和 token 指標](/docs/zh-TW/monitoring-usage#cost-counter)上的真實 agent、skill、外掛和 MCP 伺服器名稱;以及其他工具詳細資訊。預設為停用以保護 PII。請在 shell、使用者設定或受管設定中設定。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略,但該章節所述的關閉值除外。請參閱[監控](/docs/zh-TW/monitoring-usage) |494| `OTEL_LOG_TOOL_DETAILS` | 設定為 `1` 可在 OpenTelemetry 指標、追蹤和日誌中包含工具輸入引數;MCP 伺服器名稱;使用者撰寫的工作流程名稱;工具失敗時的原始錯誤字串;`api_refusal` 事件上的拒絕 `category`;[成本和 token 指標](/docs/zh-TW/monitoring-usage#cost-counter)上真實的 agent、skill、外掛和 MCP 伺服器名稱;以及其他工具詳細資訊。預設停用以保護 PII。請在您的 shell、使用者設定或受管設定中設定它。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略,但該章節所述的關閉值除外。請參閱[監控](/docs/zh-TW/monitoring-usage) |

493| `OTEL_LOG_USER_PROMPTS` | 設定為 `1` 可在 OpenTelemetry 追蹤和日誌中包含使用者提示詞文字。預設為停用(提示詞會被遮蔽)。請在 shell、使用者設定或受管設定中設定。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略,但該章節所述的關閉值除外。請參閱[監控](/docs/zh-TW/monitoring-usage) |495| `OTEL_LOG_USER_PROMPTS` | 設定為 `1` 可在 OpenTelemetry 追蹤和日誌中包含使用者提示詞文字。預設停用(提示詞會被遮蔽)。請在您的 shell、使用者設定或受管設定中設定它。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略,但該章節所述的關閉值除外。請參閱[監控](/docs/zh-TW/monitoring-usage) |

494| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 設定為 `false` 可從指標屬性中排除帳戶 UUID(預設:包含)。請參閱[監控](/docs/zh-TW/monitoring-usage) |496| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | 設定為 `false` 可從指標屬性中排除帳戶 UUID(預設:包含)。請參閱[監控](/docs/zh-TW/monitoring-usage) |

495| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 設定為 `true` 可在指標屬性中包含工作階段進入點(預設:排除)。已於 v2.1.152 新增。請參閱[監控](/docs/zh-TW/monitoring-usage) |497| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | 設定為 `true` 可在指標屬性中包含工作階段進入點(預設:排除)。於 v2.1.152 新增。請參閱[監控](/docs/zh-TW/monitoring-usage) |

496| `OTEL_METRICS_INCLUDE_REPOSITORY` | 設定為 `true` 可為 OpenTelemetry 指標和事件加上識別工作階段儲存庫的 `vcs.*` 屬性(預設:排除)。需要 Claude Code v2.1.269 或更新版本。請參閱[儲存庫屬性](/docs/zh-TW/monitoring-usage#repository-attributes) |498| `OTEL_METRICS_INCLUDE_REPOSITORY` | 設定為 `true` 可使用識別工作階段儲存庫的 `vcs.*` 屬性標記 OpenTelemetry 指標和事件(預設:排除)。需要 Claude Code v2.1.269 或更新版本。請參閱[儲存庫屬性](/docs/zh-TW/monitoring-usage#repository-attributes) |

497| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 自 v2.1.161 起,Claude Code 會將 `OTEL_RESOURCE_ATTRIBUTES` 鍵附加至指標資料點標籤。設定為 `false` 可排除它們(預設:包含)。請參閱[監控](/docs/zh-TW/monitoring-usage#multi-team-organization-support) |499| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | 自 v2.1.161 起,Claude Code 會將 `OTEL_RESOURCE_ATTRIBUTES` 的鍵附加至指標資料點標籤。設定為 `false` 可排除它們(預設:包含)。請參閱[監控](/docs/zh-TW/monitoring-usage#multi-team-organization-support) |

498| `OTEL_METRICS_INCLUDE_SESSION_ID` | 設定為 `false` 可從指標屬性中排除工作階段 ID(預設:包含)。請參閱[監控](/docs/zh-TW/monitoring-usage) |500| `OTEL_METRICS_INCLUDE_SESSION_ID` | 設定為 `false` 可從指標屬性中排除工作階段 ID(預設:包含)。請參閱[監控](/docs/zh-TW/monitoring-usage) |

499| `OTEL_METRICS_INCLUDE_VERSION` | 設定為 `true` 可在指標屬性中包含 Claude Code 版本(預設:排除)。請參閱[監控](/docs/zh-TW/monitoring-usage) |501| `OTEL_METRICS_INCLUDE_VERSION` | 設定為 `true` 可在指標屬性中包含 Claude Code 版本(預設:排除)。請參閱[監控](/docs/zh-TW/monitoring-usage) |

500| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆寫顯示給 [Skill 工具](/docs/zh-TW/skills#control-who-invokes-a-skill)的 skill 中繼資料字元預算。預算會以上下文視窗的 1% 動態調整,備援值為 8,000 個字元。為了向後相容而保留舊名稱 |502| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | 覆寫顯示給 [Skill 工具](/docs/zh-TW/skills#control-who-invokes-a-skill)的 skill 中繼資料字元預算。預算會動態調整為上下文視窗的 1%,備援值為 8,000 個字元。為了向後相容而保留此舊名稱 |

501| `TASK_MAX_OUTPUT_LENGTH` | 已於 v2.1.277 移除,現在不會產生任何作用,其所調整大小的 `TaskOutput` 工具也一併移除。先前用於設定 `TaskOutput` 工具保留的[背景任務](/docs/zh-TW/tools-reference#background-commands)輸出最大字元數。Claude 現在改用 `Read` 讀取背景任務的輸出檔案 |503| `TASK_MAX_OUTPUT_LENGTH` | 已在 v2.1.277 中移除,現在不起作用,其所控制大小的 `TaskOutput` 工具也一併移除。先前用於設定 `TaskOutput` 工具保留的[背景任務](/docs/zh-TW/tools-reference#background-commands)輸出的最大字元數。Claude 現在改用 `Read` 讀取背景任務的輸出檔案 |

502| `USE_BUILTIN_RIPGREP` | 設定為 `0` 可使用系統安裝的 `rg`,而非 Claude Code 隨附的 `rg` |504| `USE_BUILTIN_RIPGREP` | 設定為 `0` 可使用系統安裝的 `rg`,而非 Claude Code 內含的 `rg` |

503| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 3.5 Haiku 的區域 |505| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 3.5 Haiku 的區域 |

504| `VERTEX_REGION_CLAUDE_3_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 3.5 Sonnet 的區域 |506| `VERTEX_REGION_CLAUDE_3_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 3.5 Sonnet 的區域 |

505| `VERTEX_REGION_CLAUDE_3_7_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 3.7 Sonnet 的區域 |507| `VERTEX_REGION_CLAUDE_3_7_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 3.7 Sonnet 的區域 |


512| `VERTEX_REGION_CLAUDE_4_6_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Sonnet 4.6 的區域 |514| `VERTEX_REGION_CLAUDE_4_6_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Sonnet 4.6 的區域 |

513| `VERTEX_REGION_CLAUDE_4_7_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 4.7 的區域 |515| `VERTEX_REGION_CLAUDE_4_7_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 4.7 的區域 |

514| `VERTEX_REGION_CLAUDE_4_8_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 4.8 的區域 |516| `VERTEX_REGION_CLAUDE_4_8_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 4.8 的區域 |

515| `VERTEX_REGION_CLAUDE_5_5_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 5.5 的區域。已於 v2.1.280 新增 |517| `VERTEX_REGION_CLAUDE_5_5_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 5.5 的區域。於 v2.1.280 新增 |

516| `VERTEX_REGION_CLAUDE_5_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Sonnet 5.5 的區域。已於 v2.1.284 新增 |518| `VERTEX_REGION_CLAUDE_5_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Sonnet 5.5 的區域。於 v2.1.284 新增 |

517| `VERTEX_REGION_CLAUDE_5_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 5 的區域。已於 v2.1.219 新增 |519| `VERTEX_REGION_CLAUDE_5_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 5 的區域。於 v2.1.219 新增 |

518| `VERTEX_REGION_CLAUDE_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Sonnet 5 的區域。已於 v2.1.197 新增 |520| `VERTEX_REGION_CLAUDE_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Sonnet 5 的區域。於 v2.1.197 新增 |

519| `VERTEX_REGION_CLAUDE_FABLE_5` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Fable 5 的區域。已於 v2.1.170 新增 |521| `VERTEX_REGION_CLAUDE_FABLE_5` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Fable 5 的區域。於 v2.1.170 新增 |

520| `VERTEX_REGION_CLAUDE_FABLE_5_1` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Fable 5.1 的區域。已於 v2.1.257 新增 |522| `VERTEX_REGION_CLAUDE_FABLE_5_1` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Fable 5.1 的區域。於 v2.1.257 新增 |

521| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Haiku 4.5 的區域 |523| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Haiku 4.5 的區域 |

522 524 

523也支援標準 OpenTelemetry 匯出器變數(`OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_EXPORTER_OTLP_ENDPOINT`、`OTEL_EXPORTER_OTLP_PROTOCOL`、`OTEL_EXPORTER_OTLP_HEADERS`、`OTEL_METRIC_EXPORT_INTERVAL`、`OTEL_RESOURCE_ATTRIBUTES` 以及特定訊號的變體)。關於設定詳細資訊,請參閱[監控](/docs/zh-TW/monitoring-usage)。525也支援標準 OpenTelemetry 匯出器變數(`OTEL_METRICS_EXPORTER`、`OTEL_LOGS_EXPORTER`、`OTEL_EXPORTER_OTLP_ENDPOINT`、`OTEL_EXPORTER_OTLP_PROTOCOL`、`OTEL_EXPORTER_OTLP_HEADERS`、`OTEL_METRIC_EXPORT_INTERVAL`、`OTEL_RESOURCE_ATTRIBUTES`,以及特定訊號的變體)。關於設定詳細資訊,請參閱[監控](/docs/zh-TW/monitoring-usage)。

524 526 

525請在 shell、使用者設定或受管設定中設定 `CLAUDE_CODE_ENABLE_TELEMETRY`,以及用於開啟匯出、選擇匯出目的地或擷取內容的 OpenTelemetry 變數。Claude Code [會在專案和本機設定中忽略這些變數](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env),但該章節所述的關閉值除外。`OTEL_RESOURCE_ATTRIBUTES` 以及匯出間隔、逾時和壓縮變數(例如 `OTEL_METRIC_EXPORT_INTERVAL`)在專案和本機設定中仍然適用。527請在您的 shell、使用者設定或受管設定中設定 `CLAUDE_CODE_ENABLE_TELEMETRY`,以及用於開啟匯出、選擇匯出目的地或擷取內容的 OpenTelemetry 變數。Claude Code [會在專案和本機設定中忽略它們](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env),但該章節所述的關閉值除外。`OTEL_RESOURCE_ATTRIBUTES` 以及匯出間隔、逾時和壓縮相關變數(例如 `OTEL_METRIC_EXPORT_INTERVAL`)在專案和本機設定中仍會套用。

526 528 

527<h2 id="features-that-need-feature-flag-fetching">529<h2 id="features-that-need-feature-flag-fetching">

528 需要功能旗標擷取的功能530 需要功能旗標擷取的功能


545* 使用[顧問工具](/docs/zh-TW/advisor#requirements)547* 使用[顧問工具](/docs/zh-TW/advisor#requirements)

546* 讀取或回覆[成品上的評論](/docs/zh-TW/artifacts#collect-comments-on-an-artifact)548* 讀取或回覆[成品上的評論](/docs/zh-TW/artifacts#collect-comments-on-an-artifact)

547* 讓 Claude 讀取[其他組織的公開 artifact](/docs/zh-TW/artifacts#read-an-artifact-shared-with-you)549* 讓 Claude 讀取[其他組織的公開 artifact](/docs/zh-TW/artifacts#read-an-artifact-shared-with-you)

548* 讓 Claude Code 探測 claude.ai 連接器伺服器以取得 [MCP 協定修訂版本 2026-07-28](/docs/zh-TW/mcp#mcp-client-runtimes),除非您設定 `MCP_PROTOCOL_NEGOTIATION=auto`550* 讓 Claude Code 探測 claude.ai 連接器伺服器或 stdio 伺服器是否支援 [MCP 協定修訂版本 2026-07-28](/docs/zh-TW/mcp#mcp-client-runtimes),除非您設定 `MCP_PROTOCOL_NEGOTIATION=auto`

549* 在安裝 Git Bash 的 Windows 上預設為 claude.ai 和 Console 帳戶取得 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool);Claude Code 透過 Git Bash 路由 Shell 命令,除非您設定 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。在沒有 Git Bash 的 Windows 上,工具保持開啟551* 在安裝 Git Bash 的 Windows 上預設為 claude.ai 和 Console 帳戶取得 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool);Claude Code 透過 Git Bash 路由 Shell 命令,除非您設定 `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`。在沒有 Git Bash 的 Windows 上,工具保持開啟

550* 取得 [Claude 草擬的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior),Claude Code 透過擷取的旗標來啟用此功能552* 取得 [Claude 草擬的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior),Claude Code 透過擷取的旗標來啟用此功能

551* 讓 Claude [將大型貼上視為貼上而非輸入的文字](/docs/zh-TW/terminal-config#how-claude-treats-pasted-text);`[Pasted text #N]` 預留位置後面的內容會以未標記的方式到達 Claude553* 讓 Claude [將大型貼上視為貼上而非輸入的文字](/docs/zh-TW/terminal-config#how-claude-treats-pasted-text);`[Pasted text #N]` 預留位置後面的內容會以未標記的方式到達 Claude

errors.md +106 −86

Details

187| `<model>'s safeguards flagged this message` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |187| `<model>'s safeguards flagged this message` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |

188| `<model>'s safeguards flagged this session` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |188| `<model>'s safeguards flagged this session` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |

189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [請求錯誤](#safety-measures-flagged-a-cybersecurity-topic) |

190| `API Error: Output blocked by content filtering policy` | [請求錯誤](#output-blocked-by-content-filtering-policy) |

190| `Installation was killed before it could finish (exit code 137)` | [安裝錯誤](#installation-was-killed-before-it-could-finish) |191| `Installation was killed before it could finish (exit code 137)` | [安裝錯誤](#installation-was-killed-before-it-could-finish) |

191| `The connection dropped while downloading the update` | [安裝錯誤](#the-connection-dropped-while-downloading-the-update) |192| `The connection dropped while downloading the update` | [安裝錯誤](#the-connection-dropped-while-downloading-the-update) |

192| `Download timed out: exceeded the total deadline` | [安裝錯誤](#the-connection-dropped-while-downloading-the-update) |193| `Download timed out: exceeded the total deadline` | [安裝錯誤](#the-connection-dropped-while-downloading-the-update) |


402* [Amazon Bedrock 串流回應具有意外的 content-type](#bedrock-streaming-response-has-an-unexpected-content-type),因為重寫回應的閘道或代理伺服器會以相同方式重寫重試。需要 Claude Code v2.1.208 或更新版本。403* [Amazon Bedrock 串流回應具有意外的 content-type](#bedrock-streaming-response-has-an-unexpected-content-type),因為重寫回應的閘道或代理伺服器會以相同方式重寫重試。需要 Claude Code v2.1.208 或更新版本。

403* 失敗的串流請求的非串流重試獲得成功狀態但 [body 中沒有 Claude API 訊息](#api-returned-an-empty-or-malformed-response)。Claude Code 以該錯誤結束回合。404* 失敗的串流請求的非串流重試獲得成功狀態但 [body 中沒有 Claude API 訊息](#api-returned-an-empty-or-malformed-response)。Claude Code 以該錯誤結束回合。

404* 您的組織的原則檢查拒絕的請求,其表現為帶有拒絕訊息的 `API Error:` 行。您的組織管理員使用 [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks)(Claude Enterprise 功能)設定檢查,訊息以他們設定的指示結尾,或預設告訴您聯絡他們。Claude Code 不會將被拒絕的請求重新發送到相同的模型或 [備援模型](/docs/zh-TW/model-config#fallback-model-chains),因為拒絕是關於請求的內容而不是模型。在 v2.1.239 之前,Claude Code 可能會在向您顯示拒絕之前,以非串流方式或在設定的備援模型上重新發送被拒絕的請求。405* 您的組織的原則檢查拒絕的請求,其表現為帶有拒絕訊息的 `API Error:` 行。您的組織管理員使用 [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks)(Claude Enterprise 功能)設定檢查,訊息以他們設定的指示結尾,或預設告訴您聯絡他們。Claude Code 不會將被拒絕的請求重新發送到相同的模型或 [備援模型](/docs/zh-TW/model-config#fallback-model-chains),因為拒絕是關於請求的內容而不是模型。在 v2.1.239 之前,Claude Code 可能會在向您顯示拒絕之前,以非串流方式或在設定的備援模型上重新發送被拒絕的請求。

406* 被 API 輸出內容過濾器封鎖的回應。Claude Code 會立即顯示 [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy),且不會重試或重新發送該請求。

405 407 

406<h3 id="what-you-see-while-claude-code-retries-or-waits">408<h3 id="what-you-see-while-claude-code-retries-or-waits">

407 當 Claude Code 重試或等待時您看到的內容409 當 Claude Code 重試或等待時您看到的內容


432| [`CLAUDE_CODE_MAX_RETRIES`](/docs/zh-TW/env-vars) | 10 | 重試嘗試次數。從 v2.1.186 開始上限為 15;從 v2.1.199 開始 `CLAUDE_CODE_RETRY_WATCHDOG` 會提高預設值並移除上限。降低它以在指令碼中更快地顯示故障。 |434| [`CLAUDE_CODE_MAX_RETRIES`](/docs/zh-TW/env-vars) | 10 | 重試嘗試次數。從 v2.1.186 開始上限為 15;從 v2.1.199 開始 `CLAUDE_CODE_RETRY_WATCHDOG` 會提高預設值並移除上限。降低它以在指令碼中更快地顯示故障。 |

433| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-TW/env-vars) | 未設定 | 在無人值守的工作階段(例如 CI 工作)中設定為 `1`,以無限期重試 `429` 和 `529` 容量錯誤,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次嘗試後失敗。當標準速度的請求收到報告支出限制或用量點數耗盡的 `429` 時,Claude Code 會立即失敗,即使該 `429` 來自按排程重設的 [gateway spend cap](#spend-limit-reached)。在 v2.1.239 之前,看門狗會無限期重試這些錯誤。如需快速模式請求,請參閱 [Handle rate limits](/docs/zh-TW/fast-mode#handle-rate-limits)。在 v2.1.199 或更新版本上,它也會將其他暫時性錯誤(例如伺服器錯誤、逾時和連線中斷)的預設重試次數提高至 300,大約三小時的退避,並在您明確設定 `CLAUDE_CODE_MAX_RETRIES` 時移除其上限 15。 |435| [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-TW/env-vars) | 未設定 | 在無人值守的工作階段(例如 CI 工作)中設定為 `1`,以無限期重試 `429` 和 `529` 容量錯誤,而不是在 `CLAUDE_CODE_MAX_RETRIES` 次嘗試後失敗。當標準速度的請求收到報告支出限制或用量點數耗盡的 `429` 時,Claude Code 會立即失敗,即使該 `429` 來自按排程重設的 [gateway spend cap](#spend-limit-reached)。在 v2.1.239 之前,看門狗會無限期重試這些錯誤。如需快速模式請求,請參閱 [Handle rate limits](/docs/zh-TW/fast-mode#handle-rate-limits)。在 v2.1.199 或更新版本上,它也會將其他暫時性錯誤(例如伺服器錯誤、逾時和連線中斷)的預設重試次數提高至 300,大約三小時的退避,並在您明確設定 `CLAUDE_CODE_MAX_RETRIES` 時移除其上限 15。 |

434| [`API_TIMEOUT_MS`](/docs/zh-TW/env-vars) | 600000 | 每個請求的逾時(毫秒)。在慢速網路或代理伺服器上請提高此值。它也會限制 Claude Code 等待回應標頭的時間上限,如 [No response from API](#no-response-from-api) 中所述。 |436| [`API_TIMEOUT_MS`](/docs/zh-TW/env-vars) | 600000 | 每個請求的逾時(毫秒)。在慢速網路或代理伺服器上請提高此值。它也會限制 Claude Code 等待回應標頭的時間上限,如 [No response from API](#no-response-from-api) 中所述。 |

437| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/zh-TW/env-vars) | 未設定 | 逾時的[非串流請求](#streaming-response-ended-before-any-complete-data-was-received)重新發送次數上限。達到上限時,請求會失敗。Claude 產生時間超過逾時的回應在每次重新發送時都會再次逾時,因此請設定較低的數字(例如 `0`)以便更快失敗。在本機工作階段中,每次非串流嘗試會在 300 秒後逾時,或當您設定正值時在 `API_TIMEOUT_MS` 後逾時。需要 Claude Code v2.1.285 或更新版本。 |

435| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/zh-TW/env-vars) | 未設定 | 串流請求的第一個回應位元組的截止時間(毫秒)。需要 Claude Code v2.1.242 或更新版本。關於當此未設定時 Claude Code 如何選擇截止時間,請參閱 [No response from API](#no-response-from-api)。 |438| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/zh-TW/env-vars) | 未設定 | 串流請求的第一個回應位元組的截止時間(毫秒)。需要 Claude Code v2.1.242 或更新版本。關於當此未設定時 Claude Code 如何選擇截止時間,請參閱 [No response from API](#no-response-from-api)。 |

436 439 

437<h2 id="server-errors">440<h2 id="server-errors">


1836 網路和連線錯誤1839 網路和連線錯誤

1837</h2>1840</h2>

1838 1841 

1839大多數這些錯誤表示來自 Claude Code 的網路請求無法到達其目的地,或 Claude Code 和 API 之間的某些東西在回程中改變了回應;如果條目也有本機原因(例如失敗的封存寫入),其內容會說明。它們通常源自您的本機網路、代理或防火牆,或雲端環境的網路原則。1842大多數這些錯誤表示來自 Claude Code 的網路請求無法到達其目的地,或 Claude Code 和 API 之間的某些東西在回程中改變了回應;如果條目也有本機原因(例如失敗的封存寫入),其內容會說明。它們通常源自您的本機網路、代理伺服器或防火牆,或雲端環境的網路原則。

1840 1843 

1841<h3 id="unable-to-connect-to-api">1844<h3 id="unable-to-connect-to-api">

1842 無法連線到 API1845 Unable to connect to API

1843</h3>1846</h3>

1844 1847 

1845到 API 的 TCP 連線失敗或從未完成。對於常見的連線錯誤代碼,訊息會命名失敗的類型並在括號中保留代碼:1848到 API 的 TCP 連線失敗或從未完成。對於常見的連線錯誤代碼,訊息會命名失敗的類型並在括號中保留代碼:


1858 1861 

1859在 v2.1.227 之前,這些編碼訊息中的每一個都讀作 `Unable to connect to API` 後跟代碼,例如 `Unable to connect to API (ECONNREFUSED)`。1862在 v2.1.227 之前,這些編碼訊息中的每一個都讀作 `Unable to connect to API` 後跟代碼,例如 `Unable to connect to API (ECONNREFUSED)`。

1860 1863 

1861常見原因包括沒有網際網路存取、阻止 `api.anthropic.com` 的 VPN,或未設定的必需公司代理。1864常見原因包括沒有網際網路存取、阻止 `api.anthropic.com` 的 VPN,或未設定的必需公司代理伺服器。

1862 1865 

1863**該怎麼做:**1866**該怎麼做:**

1864 1867 

1865* 通過從同一個 shell 執行 `curl -I https://api.anthropic.com` 來確認您可以到達 API 主機。在 Windows PowerShell 上使用 `curl.exe -I https://api.anthropic.com`,以便不使用內建的 `Invoke-WebRequest` 別名。1868* 透過從同一個 shell 執行 `curl -I https://api.anthropic.com` 來確認您可以到達 API 主機。在 Windows PowerShell 上使用 `curl.exe -I https://api.anthropic.com`,以便不使用內建的 `Invoke-WebRequest` 別名。

1866* 如果您在公司代理後面,在啟動 Claude Code 之前設定 `HTTPS_PROXY` 並查看[網路設定](/docs/zh-TW/network-config)1869* 如果您在公司代理伺服器後面,在啟動 Claude Code 之前設定 `HTTPS_PROXY` 並查看[網路設定](/docs/zh-TW/network-config)

1867* 如果您通過 LLM 閘道或中繼路由,將 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 設定為其位址。請參閱[將 Claude Code 連線到 LLM 閘道](/docs/zh-TW/llm-gateway-connect)以進行設定。1870* 如果您透過 LLM 閘道或中繼路由,將 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 設定為其位址。請參閱[將 Claude Code 連線到 LLM 閘道](/docs/zh-TW/llm-gateway-connect)以進行設定。

1868* 確保您的防火牆允許[網路存取要求](/docs/zh-TW/network-config#network-access-requirements)中列出的主機1871* 確保您的防火牆允許[網路存取要求](/docs/zh-TW/network-config#network-access-requirements)中列出的主機

1869* 間歇性故障會[自動重試](#automatic-retries);持續故障指向本機網路問題1872* 間歇性故障會[自動重試](#automatic-retries);持續故障指向本機網路問題

1870 1873 

1871如果 `curl` 成功但 Claude Code 仍然失敗,原因通常是執行時和網路之間的某些東西,而不是網路本身:1874如果 `curl` 成功但 Claude Code 仍然失敗,原因通常是執行時和網路之間的某些東西,而不是網路本身:

1872 1875 

1873* 通過執行 `echo $ANTHROPIC_BASE_URL` 檢查 `ANTHROPIC_BASE_URL` 是否已設定,或在 PowerShell 中執行 `echo $env:ANTHROPIC_BASE_URL`,並在您的[設定檔](/docs/zh-TW/settings)的 `env` 區塊中查找它。當它被設定時,Claude Code 會將模型請求傳送到該位址而不是 `api.anthropic.com`,因此指向不再執行的本機代理或閘道的過時值會產生 `Connection refused`,即使 `curl` 到達 API。從您的 shell 設定檔或設定中移除它,並從新終端啟動 Claude Code。1876* 透過執行 `echo $ANTHROPIC_BASE_URL` 檢查 `ANTHROPIC_BASE_URL` 是否已設定,或在 PowerShell 中執行 `echo $env:ANTHROPIC_BASE_URL`,並在您的[設定檔](/docs/zh-TW/settings)的 `env` 區塊中查找它。當它被設定時,Claude Code 會將模型請求傳送到該位址而不是 `api.anthropic.com`,因此指向不再執行的本機代理伺服器或閘道的過時值會產生 `Connection refused`,即使 `curl` 到達 API。從您的 shell 設定檔或設定中移除它,並從新終端機啟動 Claude Code。

1874* 在 Linux 和 WSL 上,檢查 `/etc/resolv.conf` 是否有無法到達的名稱伺服器。特別是 WSL 可以從主機繼承損壞的解析器。1877* 在 Linux 和 WSL 上,檢查 `/etc/resolv.conf` 是否有無法到達的名稱伺服器。特別是 WSL 可以從主機繼承損壞的解析器。

1875* 在 macOS 上,已斷開連線或卸載的 VPN 用戶端可能會留下隧道介面或路由規則。檢查 `ifconfig` 是否有過時的 `utun` 介面,並在系統設定中移除 VPN 的網路擴充功能。1878* 在 macOS 上,已斷開連線或卸載的 VPN 用戶端可能會留下隧道介面或路由規則。檢查 `ifconfig` 是否有過時的 `utun` 介面,並在系統設定中移除 VPN 的網路擴充功能。

1876* Docker Desktop 和類似的容器執行時可以攔截出站流量。退出它們並重試以排除這種可能性。1879* Docker Desktop 和類似的容器執行時可以攔截出站流量。退出它們並重試以排除這種可能性。

1877 1880 

1878<h3 id="unable-to-connect-to-anthropic-services">1881<h3 id="unable-to-connect-to-anthropic-services">

1879 無法連線到 Anthropic 服務1882 Unable to connect to Anthropic services

1880</h3>1883</h3>

1881 1884 

1882在首次執行設定期間,Claude Code 會檢查它是否可以到達 `api.anthropic.com` 和 `platform.claude.com`,然後才顯示登入步驟。當任一檢查失敗時,Claude Code 會列印原因並退出。1885在首次執行設定期間,Claude Code 會檢查它是否可以到達 `api.anthropic.com` 和 `platform.claude.com`,然後才顯示登入步驟。當任一檢查失敗時,Claude Code 會列印原因並退出。


1888A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.1891A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.

1889```1892```

1890 1893 

1891Claude Code 通過與 API 請求相同的[代理設定](/docs/zh-TW/network-config)發送檢查,並給每個探測 10 秒。當失敗的探測通過代理時,訊息會命名設定它的環境變數,例如 `HTTPS_PROXY`。在 v2.1.222 之前,檢查使用不同的代理傳輸,沒有逾時:在具有 `https://` 方案的代理 URL 後面,它可能會在 `Checking connectivity...` 上無限期停滯,然後即使通過同一代理的 API 請求成功也會失敗。1894Claude Code 透過與 API 請求相同的[代理伺服器設定](/docs/zh-TW/network-config)發送檢查,並給每個探測 10 秒。當失敗的探測通過代理伺服器時,訊息會命名設定它的環境變數,例如 `HTTPS_PROXY`。在 v2.1.222 之前,檢查使用不同的代理伺服器傳輸,沒有逾時:在具有 `https://` 方案的代理伺服器 URL 後面,它可能會在 `Checking connectivity...` 上無限期停滯,然後即使透過同一代理伺服器的 API 請求成功也會失敗。

1892 1895 

1893當[受管設定檔案、MDM 原則或原則協助程式](/docs/zh-TW/managed-settings)將 [`forceLoginMethod`](/docs/zh-TW/settings-reference#forceloginmethod) 設定為 `"gateway"`,或設定 [`forceLoginGatewayUrl`](/docs/zh-TW/settings-reference#forcelogingatewayurl) 而不設定 `forceLoginMethod` 時,Claude Code 會跳過此檢查。使用任一設定,Claude Code 會在**雲端閘道**畫面上開啟登入步驟,而不是 Anthropic 登入方法。當機器上存在受管設定來源但無法讀取時,Claude Code 也會跳過檢查,因為該來源可能保有閘道設定。在 v2.1.247 之前,Claude Code 在此設定下也執行檢查,當 Anthropic 的端點無法到達時以此錯誤退出。1896當[受管設定檔、MDM 原則或原則協助程式](/docs/zh-TW/managed-settings)將 [`forceLoginMethod`](/docs/zh-TW/settings-reference#forceloginmethod) 設定為 `"gateway"`,或設定 [`forceLoginGatewayUrl`](/docs/zh-TW/settings-reference#forcelogingatewayurl) 而不設定 `forceLoginMethod` 時,Claude Code 會跳過此檢查。使用任一設定,Claude Code 會在 **Cloud gateway** 畫面上開啟登入步驟,而不是 Anthropic 登入方法。當機器上存在受管設定來源但無法讀取時,Claude Code 也會跳過檢查,因為該來源可能保有閘道設定。在 v2.1.247 之前,Claude Code 在此設定下也執行檢查,當 Anthropic 的端點無法到達時以此錯誤退出。

1894 1897 

1895**該怎麼做:**1898**該怎麼做:**

1896 1899 

1897* 如果訊息命名代理變數,檢查其值是否指向正確的代理,並要求您的網路團隊允許通過它到訊息中主機的 HTTPS 連線。請參閱[網路設定](/docs/zh-TW/network-config)。1900* 如果訊息命名代理伺服器變數,檢查其值是否指向正確的代理伺服器,並要求您的網路團隊允許透過它到訊息中主機的 HTTPS 連線。請參閱[網路設定](/docs/zh-TW/network-config)。

1898* 完成[無法連線到 API](#unable-to-connect-to-api) 中的檢查。那裡的 `curl` 測試和防火牆指導也適用於此檢查。1901* 完成 [Unable to connect to API](#unable-to-connect-to-api) 中的檢查。那裡的 `curl` 測試和防火牆指導也適用於此檢查。

1899* 如果您的網路是開放的,故障仍然存在,Claude Code 可能在您的國家[無法使用](https://www.anthropic.com/supported-countries)1902* 如果您的網路是開放的,故障仍然存在,Claude Code 可能在您的國家[無法使用](https://www.anthropic.com/supported-countries)

1900 1903 

1901<h3 id="socket-is-closed">1904<h3 id="socket-is-closed">

1902 Socket 已關閉1905 Socket is closed

1903</h3>1906</h3>

1904 1907 

1905`Socket is closed` 表示承載串流回應的連線在回應仍在到達時被關閉。最常見的原因是 Windows 上的公司代理在回應中途丟棄已建立的隧道。1908`Socket is closed` 表示承載串流回應的連線在回應仍在到達時被關閉。最常見的原因是 Windows 上的公司代理伺服器在回應中途丟棄已建立的隧道。

1906 1909 

1907根據回應進行的距離,Claude Code 會重試請求、保留 Claude 產生的內容,或結束回合。請參閱[自動重試](#automatic-retries)。1910根據回應進行的距離,Claude Code 會重試請求、保留 Claude 產生的內容,或結束回合。請參閱[自動重試](#automatic-retries)。

1908 1911 


1911**該怎麼做:**1914**該怎麼做:**

1912 1915 

1913* 如果您看到此錯誤,請使用 `claude update` 更新到 v2.1.214 或更新版本,然後再次傳送您的訊息1916* 如果您看到此錯誤,請使用 `claude update` 更新到 v2.1.214 或更新版本,然後再次傳送您的訊息

1914* 如果在更新後回合在同一代理後面持續失敗,請完成[無法連線到 API](#unable-to-connect-to-api) 並檢查[網路設定](/docs/zh-TW/network-config)中的代理設定1917* 如果在更新後回合在同一代理伺服器後面持續失敗,請完成 [Unable to connect to API](#unable-to-connect-to-api) 並檢查[網路設定](/docs/zh-TW/network-config)中的代理伺服器設定

1915 1918 

1916<h3 id="api-returned-an-empty-or-malformed-response">1919<h3 id="api-returned-an-empty-or-malformed-response">

1917 API 傳回空的或格式不正確的回應1920 API returned an empty or malformed response

1918</h3>1921</h3>

1919 1922 

1920當 Claude Code 對失敗的串流請求進行非串流重試時,如果獲得 HTTP 成功狀態但主體不是 Claude API 訊息,Claude Code 會顯示此錯誤:通常是 HTML 錯誤或登入頁面、空主體或其他格式的 JSON。代理、閘道或網路登入頁面代替 API 回答是常見來源。Claude Code 不會重試請求,回合以此錯誤結束。1923當 Claude Code 對失敗的串流請求進行非串流重試時,如果獲得 HTTP 成功狀態但主體不是 Claude API 訊息,Claude Code 會顯示此錯誤:通常是 HTML 錯誤或登入頁面、空主體或其他格式的 JSON。代理伺服器、閘道或網路登入頁面代替 API 回答是常見來源。Claude Code 不會重試請求,回合以此錯誤結束。

1921 1924 

1922```text theme={null}1925```text theme={null}

1923API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.1926API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.


1935**該怎麼做:**1938**該怎麼做:**

1936 1939 

1937* 閱讀 `Response:` 子句以查看哪個系統回答。HTML 主體、沒有 Anthropic 請求 id 或命名的伺服器(例如 `nginx` 或 `cloudflare`)表示 Claude Code 和 API 之間的某些東西代替它回答1940* 閱讀 `Response:` 子句以查看哪個系統回答。HTML 主體、沒有 Anthropic 請求 id 或命名的伺服器(例如 `nginx` 或 `cloudflare`)表示 Claude Code 和 API 之間的某些東西代替它回答

1938* 如果您通過[LLM 閘道](/docs/zh-TW/llm-gateway-connect#troubleshoot-gateway-errors)路由,使用直接請求測試路由,並修復返回非 API 回應的跳躍1941* 如果您透過 [LLM 閘道](/docs/zh-TW/llm-gateway-connect#troubleshoot-gateway-errors)路由,使用直接請求測試路由,並修復返回非 API 回應的跳躍

1939* 在具有登入頁面的網路上(例如訪客 Wi-Fi),在瀏覽器中完成登入,然後重試1942* 在具有登入頁面的網路上(例如訪客 Wi-Fi),在瀏覽器中完成登入,然後重試

1940* 如果只有通過您的閘道的非串流路由損壞,設定 [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/zh-TW/env-vars#variables) 以關閉此回退,除非串流端點本身傳回 `404`,Claude Code 仍然會回退1943* 如果只有透過您的閘道的非串流路由損壞,設定 [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/zh-TW/env-vars#variables) 以關閉此備援,除非串流端點本身傳回 `404`,此時 Claude Code 仍然會改用非串流

1941 1944 

1942<h3 id="streaming-response-ended-before-any-complete-data-was-received">1945<h3 id="streaming-response-ended-before-any-complete-data-was-received">

1943 串流回應在收到任何完整資料之前結束1946 Streaming response ended before any complete data was received

1944</h3>1947</h3>

1945 1948 

1946來自您的模型提供者的串流回應完成,但未傳遞任何可用資料,因此 Claude Code 重新傳送請求而不進行串流以完成回合。Claude Code 每個工作階段顯示一次警告,僅在互動式工作階段中。在 v2.1.239 之前,Claude Code 無聲地重試而不進行串流。1949來自您的模型提供者的串流回應完成,但未傳遞任何可用資料,因此 Claude Code 重新傳送請求而不進行串流以完成回合。Claude Code 每個工作階段顯示一次警告,僅在互動式工作階段中。在 v2.1.239 之前,Claude Code 無聲地重試而不進行串流。


1949Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.1952Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.

1950```1953```

1951 1954 

1952Claude Code 傳送每個受影響的請求兩次:空串流嘗試和重試。常見原因是在回程中消耗或轉換串流回應主體的代理或閘道。1955Claude Code 傳送每個受影響的請求兩次:空串流嘗試和重試。常見原因是在回程中消耗或轉換串流回應主體的代理伺服器或閘道。

1953 1956 

1954**該怎麼做:**1957**該怎麼做:**

1955 1958 

1956* 設定 Claude Code 和您的模型提供者之間的任何代理或閘道,以未修改的方式傳遞串流回應主體及其標頭1959* 設定 Claude Code 和您的模型提供者之間的任何代理伺服器或閘道,以未修改的方式傳遞串流回應主體及其標頭

1957* 在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 上,請參閱[閘道或代理後面的串流錯誤](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)以了解標頭和主體要求1960* 在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 上,請參閱[閘道或代理伺服器後面的串流錯誤](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)以了解標頭和主體要求

1958 1961 

1959<h3 id="bedrock-streaming-response-has-an-unexpected-content-type">1962<h3 id="bedrock-streaming-response-has-an-unexpected-content-type">

1960 Bedrock 串流回應具有意外的 content-type1963 Bedrock 串流回應具有意外的 content-type

1961</h3>1964</h3>

1962 1965 

1963Claude Code 和 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 之間的閘道或代理正在轉換串流回應主體或其 `Content-Type` 標頭。Amazon Bedrock 將回應串流為 `application/vnd.amazon.eventstream`。Claude Code 不會解碼無法讀取的主體,而是拒絕報告不同 content-type 的成功串流回應。Claude Code 不會重試請求。1966Claude Code 和 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 之間的閘道或代理伺服器正在轉換串流回應主體或其 `Content-Type` 標頭。Amazon Bedrock 將回應串流為 `application/vnd.amazon.eventstream`。Claude Code 不會解碼無法讀取的主體,而是拒絕報告不同 content-type 的成功串流回應。Claude Code 不會重試請求。

1964 1967 

1965```text theme={null}1968```text theme={null}

1966Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.1969Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.


1971**該怎麼做:**1974**該怎麼做:**

1972 1975 

1973* 設定閘道以未修改的方式傳遞 `InvokeModelWithResponseStream` 回應主體及其 `Content-Type` 標頭。重新發出串流為伺服器傳送事件的中介是常見原因。1976* 設定閘道以未修改的方式傳遞 `InvokeModelWithResponseStream` 回應主體及其 `Content-Type` 標頭。重新發出串流為伺服器傳送事件的中介是常見原因。

1974* 設定 [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/zh-TW/env-vars) 會隱藏此錯誤,但 Claude Code 不會在重寫的標頭下解碼二進位主體,因此這些請求會回退到較慢的非串流路徑。請參閱[閘道或代理後面的串流錯誤](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。1977* 設定 [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/zh-TW/env-vars) 會隱藏此錯誤,但 Claude Code 不會在重寫的標頭下解碼二進位主體,因此這些請求會改用較慢的非串流路徑。請參閱[閘道或代理伺服器後面的串流錯誤](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。

1975 1978 

1976<h3 id="ssl-certificate-errors">1979<h3 id="ssl-certificate-errors">

1977 SSL 憑證錯誤1980 SSL 憑證錯誤

1978</h3>1981</h3>

1979 1982 

1980您網路上的代理或安全應用程式正在使用自己的憑證攔截 TLS 流量,Claude Code 不信任它。1983您網路上的代理伺服器或安全設備正在使用自己的憑證攔截 TLS 流量,Claude Code 不信任它。

1981 1984 

1982```text theme={null}1985```text theme={null}

1983Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config1986Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config


1994SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.1997SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.

1995```1998```

1996 1999 

1997在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 上,Claude Code 本身發送給 AWS 的請求(例如 STS 和 SSO 角色認證呼叫、模型發現和設定精靈的檢查)取決於相同的憑證設定。請參閱[TLS 檢查代理後面的憑證錯誤](/docs/zh-TW/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy)。2000在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 上,Claude Code 本身發送給 AWS 的請求(例如 STS 和 SSO 角色憑證呼叫、模型發現和設定精靈的檢查)取決於相同的憑證設定。請參閱[TLS 檢查代理伺服器後面的憑證錯誤](/docs/zh-TW/amazon-bedrock#certificate-errors-behind-a-tls-inspecting-proxy)。

1998 2001 

1999**該怎麼做:**2002**該怎麼做:**

2000 2003 


2006 雲端工作階段中不允許主機2009 雲端工作階段中不允許主機

2007</h3>2010</h3>

2008 2011 

2009來自雲端工作階段或例行程式的出站 HTTP 請求被環境的網路原則阻止。2012來自雲端工作階段或 routine 的出站 HTTP 請求被環境的網路原則阻止。

2010 2013 

2011```text theme={null}2014```text theme={null}

2012HTTP 4032015HTTP 403

2013x-deny-reason: host_not_allowed2016x-deny-reason: host_not_allowed

2014```2017```

2015 2018 

2016您也可能看到與目的地的真實憑證不符的 TLS 憑證。雲端工作階段通過代理路由出站流量,該代理強制執行網路原則,因此不符的憑證表示代理終止了連線,而不是目的地。2019您也可能看到與目的地的真實憑證不符的 TLS 憑證。雲端工作階段透過代理伺服器路由出站流量,該代理伺服器強制執行網路原則,因此不符的憑證表示代理伺服器終止了連線,而不是目的地。

2017 2020 

2018這不是用戶端網路問題。雲端工作階段和[例行程式](/docs/zh-TW/routines)在沙箱 VM 內執行,其通過工作階段網路的出站流量被過濾到[雲端環境的](/docs/zh-TW/cloud-environments)允許清單;[GitHub 操作](/docs/zh-TW/cloud-environments#github-proxy)和 MCP 連接器流量使用單獨的通道,這就是為什麼它們可以在其他主機被阻止時繼續工作。**預設**環境使用**信任**存取,允許[預設允許清單](/docs/zh-TW/cloud-environments#default-allowed-domains)的套件登錄、雲端提供者 API、容器登錄和常見開發網域,並阻止該路徑上的其他網域。2021這不是用戶端網路問題。雲端工作階段和 [routine](/docs/zh-TW/routines) 在沙箱 VM 內執行,其透過工作階段網路的出站流量被過濾到[雲端環境的](/docs/zh-TW/cloud-environments)允許清單;[GitHub 操作](/docs/zh-TW/cloud-environments#github-proxy)和 MCP 連接器流量使用單獨的通道,這就是為什麼它們可以在其他主機被阻止時繼續工作。**預設**環境使用**信任**存取,允許[預設允許清單](/docs/zh-TW/cloud-environments#default-allowed-domains)的套件登錄、雲端提供者 API、容器登錄和常見開發網域,並阻止該路徑上的其他網域。

2019 2022 

2020**該怎麼做:**2023**該怎麼做:**

2021 2024 

2022這些步驟會變更您自己的環境之一。[組織共享環境](/docs/zh-TW/cloud-environments#organization-shared-environments)在選擇器中以唯讀方式開啟,因此請要求擁有者從[管理設定](https://claude.ai/admin-settings)中的**雲端環境**頁面變更其網路存取。2025這些步驟會變更您自己的環境之一。[組織共享環境](/docs/zh-TW/cloud-environments#organization-shared-environments)在選擇器中以唯讀方式開啟,因此請要求擁有者從[管理設定](https://claude.ai/admin-settings)中的**雲端環境**頁面變更其網路存取。

2023 2026 

2024* 開啟您的環境進行編輯,可從 [routine 的表單](/docs/zh-TW/routines#environments-and-network-access),或從您啟動雲端工作階段的[環境選擇器](/docs/zh-TW/cloud-environments#configure-your-environment)開啟。2027* 開啟您的環境進行編輯,可從 [routine 的表單](/docs/zh-TW/routines#environments-and-network-access),或從您啟動雲端工作階段的[環境選擇器](/docs/zh-TW/cloud-environments#configure-your-environment)開啟。

2025* 在**編輯雲端環境**對話方塊中,將**網路存取**從**信任**變更為**自訂**,然後將被阻止的網域新增到**允許的網域**。每行輸入一個網域。勾選**也包括常見套件管理員的預設清單**以在您的自訂網域旁邊保留[預設允許清單](/docs/zh-TW/cloud-environments#default-allowed-domains)。如果您想要不受限制的存取,請改為選擇**完整**。2028* 在**編輯環境**對話方塊中,將**網路存取**從**信任**變更為**自訂**,然後將被阻止的網域新增到**允許的網域**。每行輸入一個網域。勾選**也包括常見套件管理員的預設清單**以在您的自訂網域旁邊保留[預設允許清單](/docs/zh-TW/cloud-environments#default-allowed-domains)。如果您想要不受限制的存取,請改為選擇**完整**。

2026* 按一下**儲存變更**。下一次執行使用更新的允許清單。對於已開啟的雲端工作階段,請參閱[網路存取變更何時到達現有工作階段](/docs/zh-TW/cloud-environments#network-access)。2029* 按一下**儲存變更**。下一次執行使用更新的允許清單。對於已開啟的雲端工作階段,請參閱[網路存取變更何時到達現有工作階段](/docs/zh-TW/cloud-environments#network-access)。

2027 2030 

2028請參閱[網路存取](/docs/zh-TW/cloud-environments#network-access)以了解存取層級和預設允許清單。本機 CLI 工作階段不受此原則影響。2031請參閱[網路存取](/docs/zh-TW/cloud-environments#network-access)以了解存取層級和預設允許清單。本機 CLI 工作階段不受此原則影響。

2029 2032 

2030<h3 id="the-proxy-refused-the-connection">2033<h3 id="the-proxy-refused-the-connection">

2031 代理拒絕了連線2034 The proxy refused the connection

2032</h3>2035</h3>

2033 2036 

2034當 Claude 通過您在 `HTTPS_PROXY` 中設定的代理或相關[代理變數](/docs/zh-TW/network-config#environment-variables)讀取[成品](/docs/zh-TW/artifacts)時,您會看到此訊息。成品內容來自 `*.frame.claudeusercontent.com`,因此 Claude Code 首先向代理傳送 `CONNECT` 請求,要求它開啟到該主機的隧道。當代理拒絕時,沒有任何東西到達主機,訊息攜帶代理的 HTTP 狀態:2037當 Claude 透過您在 `HTTPS_PROXY` 或相關[代理伺服器變數](/docs/zh-TW/network-config#environment-variables)中設定的代理伺服器讀取 [artifact](/docs/zh-TW/artifacts) 時,您會看到此訊息。Artifact 內容來自 `*.frame.claudeusercontent.com`,因此 Claude Code 首先向代理伺服器傳送 `CONNECT` 請求,要求它開啟到該主機的隧道。當代理伺服器拒絕時,沒有任何東西到達主機,訊息攜帶代理伺服器的 HTTP 狀態:

2035 2038 

2036```text theme={null}2039```text theme={null}

2037artifact content fetch failed (proxy refused the connection: HTTP 407)2040artifact content fetch failed (proxy refused the connection: HTTP 407)


2039the proxy refused the connection to the artifact's content host (HTTP 502)2042the proxy refused the connection to the artifact's content host (HTTP 502)

2040```2043```

2041 2044 

2042狀態是代理對 `CONNECT` 的回答。主機從未回答,因此每個狀態指向不同的修復:2045狀態是代理伺服器對 `CONNECT` 的回答。主機從未回答,因此每個狀態指向不同的修復:

2043 2046 

2044* `HTTP 407`:代理需要它沒有獲得的認證。將它們放在代理 URL 中,如[基本驗證](/docs/zh-TW/network-config#basic-authentication)所示。2047* `HTTP 407`:代理伺服器需要它沒有獲得的憑證。將它們放在代理伺服器 URL 中,如[基本身分驗證](/docs/zh-TW/network-config#basic-authentication)所示。

2045* `HTTP 403`:代理拒絕隧道到 `*.frame.claudeusercontent.com`。要求運行代理的人允許該主機,[網路存取要求](/docs/zh-TW/network-config#network-access-requirements)會列出該主機。2048* `HTTP 403`:代理伺服器拒絕建立到 `*.frame.claudeusercontent.com` 的隧道。要求管理代理伺服器的人允許該主機,[網路存取要求](/docs/zh-TW/network-config#network-access-requirements)會列出該主機。

2046* 任何其他狀態,例如 `HTTP 502`:代理因其自身原因未開啟隧道,例如無法到達主機。在代理的日誌中查詢狀態。2049* 任何其他狀態,例如 `HTTP 502`:代理伺服器因其自身原因未開啟隧道,例如無法到達主機。在代理伺服器的日誌中查詢狀態。

2047* `unreadable reply` 代替狀態:代理位址上的任何東西都沒有用 HTTP 狀態行回答。檢查位址是否為 HTTP 代理。2050* `unreadable reply` 代替狀態:代理伺服器位址上的任何東西都沒有用 HTTP 狀態列回答。檢查位址是否為 HTTP 代理伺服器。

2048 2051 

2049**該怎麼做:**2052**該怎麼做:**

2050 2053 

2051* 檢查代理變數中的位址和認證,如[代理設定](/docs/zh-TW/network-config#proxy-configuration)所述,然後從啟動 Claude Code 的 shell 執行 `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com`,使用您自己的代理 URL。在 Windows PowerShell 上,執行 `curl.exe`。如果此探測以相同方式失敗,請先修復代理設定。如果成功,拒絕特定於成品主機。2054* 檢查代理伺服器變數中的位址和憑證,如[代理伺服器設定](/docs/zh-TW/network-config#proxy-configuration)所述,然後從啟動 Claude Code 的 shell 執行 `curl -x http://proxy.example.com:8080 -I https://api.anthropic.com`,使用您自己的代理伺服器 URL。在 Windows PowerShell 上,執行 `curl.exe`。如果此探測以相同方式失敗,請先修復代理伺服器設定。如果成功,拒絕特定於 artifact 主機。

2052* 如果您的網路讓 Claude Code 直接到達成品主機,將 `.frame.claudeusercontent.com` 新增到 [`NO_PROXY`](/docs/zh-TW/network-config#environment-variables)。保持條目狹窄:更廣泛的 `.claudeusercontent.com` 條目也會繞過 `bridge.claudeusercontent.com` 的代理,具有 [IP 允許清單](/docs/zh-TW/network-config#organization-ip-allowlists-and-proxy-egress)的組織需要將其保留在代理上。2055* 如果您的網路讓 Claude Code 直接到達 artifact 主機,將 `.frame.claudeusercontent.com` 新增到 [`NO_PROXY`](/docs/zh-TW/network-config#environment-variables)。保持條目狹窄:更廣泛的 `.claudeusercontent.com` 條目也會讓 `bridge.claudeusercontent.com` 繞過代理伺服器,而具有 [IP 允許清單](/docs/zh-TW/network-config#organization-ip-allowlists-and-proxy-egress)的組織需要將其保留在代理伺服器上。

2053 2056 

2054在 v2.1.238 之前,Claude Code 將拒絕的隧道報告為通用網路錯誤。2057在 v2.1.238 之前,Claude Code 將拒絕的隧道報告為通用網路錯誤。

2055 2058 


2065The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.2068The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.

2066```2069```

2067 2070 

2068伺服器接受了請求,但用不是環境清單的主體回答:空、不是 JSON 或沒有清單的 JSON。這通常伴隨服務端中斷,並自行清除。根據請求清單的表面,Claude Code 可能會新增前綴,例如 `/remote-env` 對話方塊中的 `couldn't list environments:`。2071伺服器接受了請求,但用不是環境清單的主體回答:空、不是 JSON 或沒有清單的 JSON。這通常伴隨服務端中斷,並自行清除。根據請求清單的使用介面,Claude Code 可能會新增前綴,例如 `/remote-env` 對話方塊中的 `couldn't list environments:`。

2069 2072 

2070**該怎麼做:**2073**該怎麼做:**

2071 2074 


2075在 v2.1.236 之前,Claude Code 顯示原始 JavaScript TypeError 而不是這些訊息。2078在 v2.1.236 之前,Claude Code 顯示原始 JavaScript TypeError 而不是這些訊息。

2076 2079 

2077<h3 id="couldnt-reconnect-to-your-remote-control-session">2080<h3 id="couldnt-reconnect-to-your-remote-control-session">

2078 無法重新連線到您的 Remote Control 工作階段2081 Couldn't reconnect to your Remote Control session

2079</h3>2082</h3>

2080 2083 

2081```text theme={null}2084```text theme={null}

2082Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.2085Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.

2083```2086```

2084 2087 

2085使用 `claude --resume` 或 `claude --continue` 重新開始會重新連線到該對話中記錄的 [Remote Control](/docs/zh-TW/remote-control) 工作階段。此訊息表示重新連線因可能是暫時的原因(例如網路中斷或伺服器錯誤)而失敗,因此 Claude Code 無法確認遠端工作階段是否仍然存在。您的本機工作階段在沒有 Remote Control 的情況下繼續執行。2088使用 `claude --resume` 或 `claude --continue` 恢復會重新連線到該對話中記錄的 [Remote Control](/docs/zh-TW/remote-control) 工作階段。此訊息表示重新連線因可能是暫時的原因(例如網路中斷或伺服器錯誤)而失敗,因此 Claude Code 無法確認遠端工作階段是否仍然存在。您的本機工作階段在沒有 Remote Control 的情況下繼續執行。

2086 2089 

2087**該怎麼做:**2090**該怎麼做:**

2088 2091 


2093如果伺服器改為報告前一個工作階段已消失,您不會看到此訊息。Claude Code 會在其位置啟動新工作階段或顯示 [`Previous session is unavailable — run /remote-control to start a new one`](/docs/zh-TW/remote-control#previous-session-is-unavailable)。2096如果伺服器改為報告前一個工作階段已消失,您不會看到此訊息。Claude Code 會在其位置啟動新工作階段或顯示 [`Previous session is unavailable — run /remote-control to start a new one`](/docs/zh-TW/remote-control#previous-session-is-unavailable)。

2094 2097 

2095<h3 id="sessions-ended-while-this-machine-was-offline">2098<h3 id="sessions-ended-while-this-machine-was-offline">

2096 此機器離線時工作階段已結束2099 Sessions ended while this machine was offline

2097</h3>2100</h3>

2098 2101 

2099Claude Code 在執行 [`claude remote-control`](/docs/zh-TW/remote-control#start-a-remote-control-session) 的終端中顯示此訊息,在您的機器離線足夠長的時間後,伺服器清理了您的機器正在提供的 Remote Control 環境。該環境中的工作階段已結束,您無法恢復它們。計數是已結束的工作階段數。2102Claude Code 在執行 [`claude remote-control`](/docs/zh-TW/remote-control#start-a-remote-control-session) 的終端機中顯示此訊息,在您的機器離線足夠長的時間後,伺服器清理了您的機器正在提供的 Remote Control 環境。該環境中的工作階段已結束,您無法恢復它們。計數是已結束的工作階段數。

2100 2103 

2101```text theme={null}2104```text theme={null}

21022 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.21052 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.


2104 2107 

2105**該怎麼做:**2108**該怎麼做:**

2106 2109 

2107* 當 Claude Code 在此訊息下列出保留的 worktrees 時,從它們中拿起任何未提交的工作2110* 當 Claude Code 在此訊息下列出保留的 worktree 時,從它們中取回任何未提交的工作

2108* 執行 `claude remote-control` 以啟動新環境2111* 執行 `claude remote-control` 以啟動新環境

2109 2112 

2110<h3 id="couldnt-share-the-transcript">2113<h3 id="couldnt-share-the-transcript">

2111 無法共享文字記錄2114 Couldn't share the transcript

2112</h3>2115</h3>

2113 2116 

2114在您同意從調查提示(例如[工作階段品質調查](/docs/zh-TW/data-usage#session-quality-surveys))共享您的工作階段文字記錄後,Claude Code 將其上傳到 Anthropic,或在第三方提供者上、[Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)工作階段上以及當沒有 Anthropic 認證可用時改為儲存本機封存。此訊息表示共享未完成。2117在您同意從調查提示(例如[工作階段品質調查](/docs/zh-TW/data-usage#session-quality-surveys))共享您的工作階段逐字稿後,Claude Code 將其上傳到 Anthropic,或在第三方提供者上、[Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)工作階段上以及當沒有 Anthropic 憑證可用時改為儲存本機封存。此訊息表示共享未完成。

2115 2118 

2116```text theme={null}2119```text theme={null}

2117Couldn't share the transcript.2120Couldn't share the transcript.

2118```2121```

2119 2122 

2120上傳必須符合 8 MiB 限制。在長工作階段上,Claude Code 逐步丟棄共享的部分,最後一個請求的模型設定優先,然後是結構化對話和子代理文字記錄,並且只在無法傳送任何縮減版本或網路或伺服器錯誤停止上傳時顯示此訊息。當 Claude Code 改為儲存本機封存時,訊息表示它無法寫入封存。2123上傳必須符合 8 MiB 限制。在長工作階段上,Claude Code 逐步丟棄共享的部分,最後一個請求的模型設定優先,然後是結構化對話和 subagent 逐字稿,並在無法傳送任何縮減版本或網路或伺服器錯誤停止上傳時顯示此訊息。當 Claude Code 改為儲存本機封存時,訊息表示它無法寫入封存。

2121 2124 

2122**該怎麼做:**2125**該怎麼做:**

2123 2126 

2124* 執行 `/feedback` 以傳送文字記錄並描述發生了什麼。如果您的環境中無法使用 `/feedback`,請參閱[報告錯誤](#report-an-error)2127* 執行 `/feedback` 以傳送逐字稿並描述發生了什麼。如果您的環境中無法使用 `/feedback`,請參閱[報告錯誤](#report-an-error)

2125* 如果其他請求也失敗,請檢查您的網路連線並查看[無法連線到 API](#unable-to-connect-to-api)2128* 如果其他請求也失敗,請檢查您的網路連線並查看 [Unable to connect to API](#unable-to-connect-to-api)

2126 2129 

2127<h3 id="couldnt-send-feedback">2130<h3 id="couldnt-send-feedback">

2128 無法傳送意見反應2131 Couldn't send feedback

2129</h3>2132</h3>

2130 2133 

2131您從 [`/feedback`、`/bug` 或 `/share` 對話方塊](/docs/zh-TW/commands#all-commands)傳送了報告,上傳到 Anthropic 失敗。對話方塊會保留您的文字,以便您可以重試。2134您從 [`/feedback`、`/bug` 或 `/share` 對話方塊](/docs/zh-TW/commands#all-commands)傳送了報告,上傳到 Anthropic 失敗。對話方塊會保留您的文字,以便您可以重試。


2136 2139 

2137前綴後的文字會命名失敗的內容:2140前綴後的文字會命名失敗的內容:

2138 2141 

2139* **`:not signed in. Run /login, then retry.`**:對話方塊僅在 Claude Code 在開啟時找到 Anthropic 認證且到您傳送時沒有可用的認證時上傳。例如,您在此期間在此機器上登出,或您的登入無法再刷新。2142* **`: not signed in. Run /login, then retry.`**:對話方塊僅在 Claude Code 開啟時找到 Anthropic 憑證的情況下上傳,而到您傳送時已沒有可用的憑證。例如,您在此期間在此機器上登出,或您的登入無法再刷新。

2140* **括號內容**:`(server returned <status>)` 是服務的回應代碼;`(request timed out)` 和 `(couldn't reach the service)` 是網路故障。當 Claude Code 無法命名原因時,括號內容不存在。2143* **括號內容**:`(server returned <status>)` 是服務的回應代碼;`(request timed out)` 和 `(couldn't reach the service)` 是網路故障。當 Claude Code 無法命名原因時,括號內容不存在。

2141 2144 

2142在[意見反應草稿佇列](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)中,相同的故障以 `The draft is still queued. Try again later.` 結束,草稿保留在佇列中以供另一次嘗試。2145在[意見反應草稿佇列](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)中,相同的故障改以 `The draft is still queued. Try again later.` 結束,草稿保留在佇列中以供另一次嘗試。

2143 2146 

2144**該怎麼做:**2147**該怎麼做:**

2145 2148 

2146* 對於未登入的措辭,執行 `/login` 並再次傳送2149* 對於未登入的措辭,執行 `/login` 並再次傳送

2147* 否則,再次傳送;如果其他請求也失敗,請檢查您的網路連線並查看[無法連線到 API](#unable-to-connect-to-api)2150* 否則,再次傳送;如果其他請求也失敗,請檢查您的網路連線並查看 [Unable to connect to API](#unable-to-connect-to-api)

2148* 如果它持續失敗,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交報告,如訊息所說2151* 如果它持續失敗,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交報告,如訊息所說

2149 2152 

2150在 v2.1.281 之前,每次傳送在 Remote Control **Stop** 或緊急跨工作階段訊息在對話方塊開啟時到達後都失敗並出現此訊息。在這些版本上,關閉對話方塊,重新開啟它,然後再次傳送。2153在 v2.1.281 之前,一旦在對話方塊開啟期間收到 Remote Control **Stop** 或緊急跨工作階段訊息,之後每次傳送都會失敗並出現此訊息。在這些版本上,關閉對話方塊,重新開啟它,然後再次傳送。

2151 2154 

2152<h2 id="request-errors">2155<h2 id="request-errors">

2153 請求錯誤2156 請求錯誤


2156這些錯誤與您的請求內容有關。大多數來自 API 在拒絕請求後的回應;少數是由 Claude Code 在發送任何請求之前在本地產生的。2159這些錯誤與您的請求內容有關。大多數來自 API 在拒絕請求後的回應;少數是由 Claude Code 在發送任何請求之前在本地產生的。

2157 2160 

2158<h3 id="prompt-is-too-long">2161<h3 id="prompt-is-too-long">

2159 提示詞過長2162 Prompt is too long

2160</h3>2163</h3>

2161 2164 

2162對話加上附加檔案超過了模型的上下文視窗。2165對話加上附加檔案超過了模型的上下文視窗。


2234 上下文超過 token 限制2237 上下文超過 token 限制

2235</h3>2238</h3>

2236 2239 

2237`/context` 顯示此警告在其輸出頂部,當對話超過模型的上下文視窗時。在您釋放空間之前,請求會因[`提示詞過長`](#prompt-is-too-long)而失敗。互動式工作階段將該錯誤顯示為 `Context limit reached` 行。2240`/context` 顯示此警告在其輸出頂部,當對話超過模型的上下文視窗時。在您釋放空間之前,請求會因 [`Prompt is too long`](#prompt-is-too-long) 而失敗。互動式工作階段將該錯誤顯示為 `Context limit reached` 行。

2238 2241 

2239```text theme={null}2242```text theme={null}

2240Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2243Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.


2251**該怎麼辦:**2254**該怎麼辦:**

2252 2255 

2253* 在多回合對話中,執行 `/compact` 以總結較早的回合並釋放空間。若要改為重新開始,請執行 `/clear`2256* 在多回合對話中,執行 `/compact` 以總結較早的回合並釋放空間。若要改為重新開始,請執行 `/clear`

2254* 有關減少使用的更多方式,請參閱[提示詞過長](#prompt-is-too-long)2257* 有關減少使用的更多方式,請參閱 [Prompt is too long](#prompt-is-too-long)

2255 2258 

2256在 v2.1.216 之前,`/context` 顯示超過 100% 的使用情況,沒有警告行解釋這意味著什麼或如何恢復。2259在 v2.1.216 之前,`/context` 顯示超過 100% 的使用情況,沒有警告行解釋這意味著什麼或如何恢復。

2257 2260 

2258<h3 id="request-too-large">2261<h3 id="request-too-large">

2259 請求過大2262 Request too large

2260</h3>2263</h3>

2261 2264 

2262原始請求正文在 token 化之前超過了 API 的 32MB 限制,通常是因為大型貼上內容、工具結果或附加檔案。此限制與[上下文視窗](#prompt-is-too-long)分開。2265原始請求正文在 token 化之前超過了 API 的 32MB 限制,通常是因為大型貼上內容、工具結果或附加檔案。此限制與[上下文視窗](#prompt-is-too-long)分開。


2277* 如果訊息說 `compacting cannot make it fit`,按 Esc 兩次以回到添加大型內容的回合之前,或執行 `/clear` 以重新開始2280* 如果訊息說 `compacting cannot make it fit`,按 Esc 兩次以回到添加大型內容的回合之前,或執行 `/clear` 以重新開始

2278* 否則,執行 `/compact`,它會刪除累積的影像和附加檔案2281* 否則,執行 `/compact`,它會刪除累積的影像和附加檔案

2279* 按路徑參考大型檔案而不是貼上其內容,以便 Claude 可以分塊讀取它們2282* 按路徑參考大型檔案而不是貼上其內容,以便 Claude 可以分塊讀取它們

2280* 對於影像,請參閱下面的[影像過大](#image-was-too-large)2283* 對於影像,請參閱下面的 [Image was too large](#image-was-too-large)

2281 2284 

2282<h3 id="image-was-too-large">2285<h3 id="image-was-too-large">

2283 影像過大2286 Image was too large

2284</h3>2287</h3>

2285 2288 

2286貼上或附加的影像超過了 API 的大小或尺寸限制。2289貼上或附加的影像超過了 API 的大小或尺寸限制。


2298* 拍攝相關區域的更緊密螢幕截圖,而不是整個螢幕2301* 拍攝相關區域的更緊密螢幕截圖,而不是整個螢幕

2299 2302 

2300<h3 id="unable-to-resize-image">2303<h3 id="unable-to-resize-image">

2301 無法調整影像大小2304 Unable to resize image

2302</h3>2305</h3>

2303 2306 

2304Claude Code 無法在將附加影像發送到 API 之前將其縮小。2307Claude Code 無法在將附加影像發送到 API 之前將其縮小。


2347頁面範圍讀取使用 `pdftoppm` 呈現頁面。使用訊息提供的命令安裝 poppler-utils,或在其他平台上安裝將 `pdftoppm` 放在您的 `PATH` 上的 poppler 建置。請參閱[Read 工具行為](/docs/zh-TW/tools-reference#read-tool-behavior)以了解哪些 PDF 按頁面範圍讀取。2350頁面範圍讀取使用 `pdftoppm` 呈現頁面。使用訊息提供的命令安裝 poppler-utils,或在其他平台上安裝將 `pdftoppm` 放在您的 `PATH` 上的 poppler 建置。請參閱[Read 工具行為](/docs/zh-TW/tools-reference#read-tool-behavior)以了解哪些 PDF 按頁面範圍讀取。

2348 2351 

2349<h3 id="extra-inputs-are-not-permitted">2352<h3 id="extra-inputs-are-not-permitted">

2350 不允許額外輸入2353 Extra inputs are not permitted

2351</h3>2354</h3>

2352 2355 

2353Claude Code 和 API 之間的代理伺服器或 LLM 閘道去除了 `anthropic-beta` 請求標頭,因此 API 拒絕了依賴它的欄位。2356Claude Code 和 API 之間的代理伺服器或 LLM 閘道去除了 `anthropic-beta` 請求標頭,因此 API 拒絕了依賴它的欄位。


2409在 v2.1.281 之前,超長名稱保留在對話記錄中,API 拒絕了重新發送對話的每個請求,包括 `/compact` 和 `--resume`,因此此錯誤重複出現,對話被卡住。2412在 v2.1.281 之前,超長名稱保留在對話記錄中,API 拒絕了重新發送對話的每個請求,包括 `/compact` 和 `--resume`,因此此錯誤重複出現,對話被卡住。

2410 2413 

2411<h3 id="theres-an-issue-with-the-selected-model">2414<h3 id="theres-an-issue-with-the-selected-model">

2412 選定的模型有問題2415 There's an issue with the selected model

2413</h3>2416</h3>

2414 2417 

2415設定的模型名稱未被識別,或您的帳戶缺少對其的存取權限。從 v2.1.160 開始,尾部提示(此處以其互動形式顯示)因使用介面而異。2418設定的模型名稱未被識別,或您的帳戶缺少對其的存取權限。從 v2.1.160 開始,尾部提示(此處以其互動形式顯示)因使用介面而異。


2425* **Agent SDK**:錯誤文字省略提示,因為模型是以程式設計方式設定的。在 TypeScript 中的 [`Options` 上設定 `model`](/docs/zh-TW/agent-sdk/typescript#options),或在 Python 中設定 [`ClaudeAgentOptions(model=...)`](/docs/zh-TW/agent-sdk/python#claudeagentoptions),並處理結構化的 `model_not_found` 錯誤以顯示您自己的重試或模型選擇器。2428* **Agent SDK**:錯誤文字省略提示,因為模型是以程式設計方式設定的。在 TypeScript 中的 [`Options` 上設定 `model`](/docs/zh-TW/agent-sdk/typescript#options),或在 Python 中設定 [`ClaudeAgentOptions(model=...)`](/docs/zh-TW/agent-sdk/python#claudeagentoptions),並處理結構化的 `model_not_found` 錯誤以顯示您自己的重試或模型選擇器。

2426* 使用別名(例如 `sonnet` 或 `opus`)而不是完整的版本化 ID。別名解析為維護的預設值,因此它們不會過時。請參閱[模型設定](/docs/zh-TW/model-config)。2429* 使用別名(例如 `sonnet` 或 `opus`)而不是完整的版本化 ID。別名解析為維護的預設值,因此它們不會過時。請參閱[模型設定](/docs/zh-TW/model-config)。

2427* 如果錯誤的模型在 CLI 中不斷出現,則某處設定了過時的 ID。按[優先順序](/docs/zh-TW/model-config#setting-your-model)檢查您可以設定模型的位置,並移除過時的值。2430* 如果錯誤的模型在 CLI 中不斷出現,則某處設定了過時的 ID。按[優先順序](/docs/zh-TW/model-config#setting-your-model)檢查您可以設定模型的位置,並移除過時的值。

2428* Claude Code 將過期的 claude.ai 登入報告為[登入已過期](#login-expired),而不是此錯誤。在 v2.1.206 之前,無法再刷新的過期登入對每個模型都失敗,並出現此錯誤;如果您在較舊版本上看到此錯誤,請執行 `/login`。2431* Claude Code 將過期的 claude.ai 登入報告為 [Login expired](#login-expired),而不是此錯誤。在 v2.1.206 之前,無法再刷新的過期登入對每個模型都失敗,並出現此錯誤;如果您在較舊版本上看到此錯誤,請執行 `/login`。

2429* 對於 Google Cloud 的 Agent Platform 部署,請參閱 [Google Cloud 的 Agent Platform 疑難排解](/docs/zh-TW/google-vertex-ai#troubleshooting)。2432* 對於 Google Cloud 的 Agent Platform 部署,請參閱 [Google Cloud 的 Agent Platform 疑難排解](/docs/zh-TW/google-vertex-ai#troubleshooting)。

2430 2433 

2431<h3 id="model-is-not-a-recognized-model-id">2434<h3 id="model-is-not-a-recognized-model-id">

2432 模型不是公認的模型 ID2435 Model is not a recognized model id

2433</h3>2436</h3>

2434 2437 

2435您傳遞給模型切換的字串不是 Claude Code 可以用作模型的字串,因此它拒絕了切換而不發送請求,工作階段保留其目前模型。當模型通過 [Agent SDK](/docs/zh-TW/agent-sdk/typescript) `setModel()` 方法設定時,您可能會收到此錯誤,由為您執行 Claude Code CLI 的應用程式(例如[桌面應用程式](/docs/zh-TW/desktop)),或當您從通過 [Remote Control](/docs/zh-TW/remote-control) 連接的裝置選擇模型時。在 v2.1.200 之前,Claude Code 保存了字串並在下一個請求時因[選定的模型有問題](#theres-an-issue-with-the-selected-model)而失敗。2438您傳遞給模型切換的字串不是 Claude Code 可以用作模型的字串,因此它拒絕了切換而不發送請求,工作階段保留其目前模型。當模型通過 [Agent SDK](/docs/zh-TW/agent-sdk/typescript) `setModel()` 方法設定時,您可能會收到此錯誤,由為您執行 Claude Code CLI 的應用程式(例如[桌面應用程式](/docs/zh-TW/desktop)),或當您從通過 [Remote Control](/docs/zh-TW/remote-control) 連接的裝置選擇模型時。在 v2.1.200 之前,Claude Code 保存了字串並在下一個請求時因 [There's an issue with the selected model](#theres-an-issue-with-the-selected-model) 而失敗。

2436 2439 

2437```text theme={null}2440```text theme={null}

2438Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2441Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?


2447**該怎麼辦:**2450**該怎麼辦:**

2448 2451 

2449* 執行 `/model` 而不帶引數以開啟選擇器並從您帳戶可用的模型中選擇,然後傳遞那裡顯示的別名或 ID2452* 執行 `/model` 而不帶引數以開啟選擇器並從您帳戶可用的模型中選擇,然後傳遞那裡顯示的別名或 ID

2450* 如果您使用了較新 Claude Code 版本支援的別名,請執行 `claude update`,或傳遞模型的完整 ID 代替。伺服器仍然可以要求該模型的最低 Claude Code 版本;請參閱 [Claude Code 不支援此模型](#claude-code-does-not-support-this-model)。2453* 如果您使用了較新 Claude Code 版本支援的別名,請執行 `claude update`,或傳遞模型的完整 ID 代替。伺服器仍然可以要求該模型的最低 Claude Code 版本;請參閱 [Claude Code does not support this model](#claude-code-does-not-support-this-model)。

2451* v2.1.200 之前保存的模型不會被此檢查修復。如果過時的值不斷出現,請從[設定您的模型](/docs/zh-TW/model-config#setting-your-model)下列出的位置移除它。2454* v2.1.200 之前保存的模型不會被此檢查修復。如果過時的值不斷出現,請從[設定您的模型](/docs/zh-TW/model-config#setting-your-model)下列出的位置移除它。

2452* 在 Anthropic API 以外的任何提供者上,或在閘道或自訂 `ANTHROPIC_BASE_URL` 後面,只有空字串會收到此錯誤。Claude Code 仍然可以在請求時寫入[無法識別的模型診斷行](#unrecognized-model-id-on-a-request),在每個提供者上。2455* 在 Anthropic API 以外的任何提供者上,或在閘道或自訂 `ANTHROPIC_BASE_URL` 後面,只有空字串會收到此錯誤。Claude Code 仍然可以在請求時寫入[無法識別的模型診斷行](#unrecognized-model-id-on-a-request),在每個提供者上。

2453 2456 

2454<h3 id="model-not-found">2457<h3 id="model-not-found">

2455 找不到模型2458 Model not found

2456</h3>2459</h3>

2457 2460 

2458您使用名稱切換到模型,Claude Code 無法確認存在具有該名稱的模型。當名稱不是[模型別名](/docs/zh-TW/model-config#model-aliases)或 Claude Code 在本地接受的其他拼寫時,Claude Code 使用最小 API 請求驗證它,此錯誤通常是您的 API 端點的答案。使用 `/model <name>` 時,無法成為模型 ID 的名稱(例如包含空格的名稱)會收到相同訊息。2461您使用名稱切換到模型,Claude Code 無法確認存在具有該名稱的模型。當名稱不是[模型別名](/docs/zh-TW/model-config#model-aliases)或 Claude Code 在本地接受的其他拼寫時,Claude Code 使用最小 API 請求驗證它,此錯誤通常是您的 API 端點的答案。使用 `/model <name>` 時,無法成為模型 ID 的名稱(例如包含空格的名稱)會收到相同訊息。


2471* 在 v2.1.265 之前,`/model` 也以此錯誤拒絕了 `opusplan[1m]` 別名拼寫。在這些版本上,更新 Claude Code,或在[設定](/docs/zh-TW/model-config#setting-your-model)中或使用 `--model` 代替設定模型。2474* 在 v2.1.265 之前,`/model` 也以此錯誤拒絕了 `opusplan[1m]` 別名拼寫。在這些版本上,更新 Claude Code,或在[設定](/docs/zh-TW/model-config#setting-your-model)中或使用 `--model` 代替設定模型。

2472 2475 

2473<h3 id="couldnt-confirm-model-with-the-api">2476<h3 id="couldnt-confirm-model-with-the-api">

2474 無法使用 API 確認模型2477 Couldn't confirm model with the API

2475</h3>2478</h3>

2476 2479 

2477您通過 [Agent SDK](/docs/zh-TW/agent-sdk/typescript) `setModel()` 方法或為您執行 Claude Code CLI 的應用程式(例如[桌面應用程式](/docs/zh-TW/desktop))切換了模型,確認模型 ID 與您的 API 端點的請求在五秒內沒有得到答案。工作階段保留其目前模型。2480您通過 [Agent SDK](/docs/zh-TW/agent-sdk/typescript) `setModel()` 方法或為您執行 Claude Code CLI 的應用程式(例如[桌面應用程式](/docs/zh-TW/desktop))切換了模型,確認模型 ID 與您的 API 端點的請求在五秒內沒有得到答案。工作階段保留其目前模型。


2502**該怎麼辦:**2505**該怎麼辦:**

2503 2506 

2504* 根據伺服器的解釋採取行動;對於速率限制或 5xx 狀態,等待並再次選擇模型2507* 根據伺服器的解釋採取行動;對於速率限制或 5xx 狀態,等待並再次選擇模型

2505* 具有自己措辭的拒絕由周圍條目涵蓋,例如[找不到模型](#model-not-found)和[模型受您組織的設定限制](#model-is-restricted-by-your-organizations-settings)2508* 具有自己措辭的拒絕由周圍條目涵蓋,例如 [Model not found](#model-not-found) 和 [Model is restricted by your organization's settings](#model-is-restricted-by-your-organizations-settings)

2506 2509 

2507<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">2510<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

2508 Claude Opus 不適用於 Claude Pro 計畫2511 Claude Opus is not available with the Claude Pro plan

2509</h3>2512</h3>

2510 2513 

2511您的有效訂閱計畫不包括您選擇的模型。2514您的有效訂閱計畫不包括您選擇的模型。


2523* 請參閱 [claude.com/pricing](https://claude.com/pricing) 以了解每個計畫包括哪些模型2526* 請參閱 [claude.com/pricing](https://claude.com/pricing) 以了解每個計畫包括哪些模型

2524 2527 

2525<h3 id="claude-code-does-not-support-this-model">2528<h3 id="claude-code-does-not-support-this-model">

2526 Claude Code 不支援此模型2529 Claude Code does not support this model

2527</h3>2530</h3>

2528 2531 

2529API 因為您的 Claude Code 版本低於所需的最低版本而拒絕了請求,並返回 400。您選擇的模型需要較新版本(伺服器按模型檢查),或您組織的政策需要一個。400 攜帶錯誤代碼 `claude_code_version_too_old`,訊息說明適用的最低版本。2532API 因為您的 Claude Code 版本低於所需的最低版本而拒絕了請求,並返回 400。您選擇的模型需要較新版本(伺服器按模型檢查),或您組織的政策需要一個。400 攜帶錯誤代碼 `claude_code_version_too_old`,訊息說明適用的最低版本。


2556* 對於組織政策措辭,在繼續之前更新2559* 對於組織政策措辭,在繼續之前更新

2557 2560 

2558<h3 id="model-is-restricted-by-your-organizations-settings">2561<h3 id="model-is-restricted-by-your-organizations-settings">

2559 模型受您組織的設定限制2562 Model is restricted by your organization's settings

2560</h3>2563</h3>

2561 2564 

2562您的組織管理員在 claude.ai 管理控制台中禁用了此模型,或受管設定通過 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單或 [`deniedModels`](/docs/zh-TW/model-config#block-specific-models-or-versions) 清單排除了它。當 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定命名受限制的模型時,通知在啟動時出現,並命名工作階段改為使用的模型。如果受管設定沒有為工作階段留下允許的模型,請參閱[受管設定阻止預設模型](#managed-settings-block-the-default-model)。替換通知也可能在工作階段中期出現,在管理員在 claude.ai 管理控制台中禁用工作階段執行的模型之後。2565您的組織管理員在 claude.ai 管理控制台中禁用了此模型,或受管設定通過 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單或 [`deniedModels`](/docs/zh-TW/model-config#block-specific-models-or-versions) 清單排除了它。當 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定命名受限制的模型時,通知在啟動時出現,並命名工作階段改為使用的模型。如果受管設定沒有為工作階段留下允許的模型,請參閱[受管設定阻止預設模型](#managed-settings-block-the-default-model)。替換通知也可能在工作階段中期出現,在管理員在 claude.ai 管理控制台中禁用工作階段執行的模型之後。


2578* 如果您需要存取受限制的模型,請要求您的組織管理員啟用它。請參閱[組織模型限制](/docs/zh-TW/model-config#organization-model-restrictions)。2581* 如果您需要存取受限制的模型,請要求您的組織管理員啟用它。請參閱[組織模型限制](/docs/zh-TW/model-config#organization-model-restrictions)。

2579 2582 

2580<h3 id="cant-switch-to-the-default-model">2583<h3 id="cant-switch-to-the-default-model">

2581 無法切換到預設模型2584 Can't switch to the default model

2582</h3>2585</h3>

2583 2586 

2584您選擇了預設模型,例如通過在 `/model` 選擇器中選擇預設行或輸入 `/model default`。Claude Code 拒絕了切換,因此工作階段保留其目前模型。2587您選擇了預設模型,例如通過在 `/model` 選擇器中選擇預設行或輸入 `/model default`。Claude Code 拒絕了切換,因此工作階段保留其目前模型。


2602如果工作階段改為因這些受管設定而無法啟動,並出現 `Claude Code can't start` 訊息,請參閱[受管設定阻止預設模型](#managed-settings-block-the-default-model)。2605如果工作階段改為因這些受管設定而無法啟動,並出現 `Claude Code can't start` 訊息,請參閱[受管設定阻止預設模型](#managed-settings-block-the-default-model)。

2603 2606 

2604<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">2607<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">

2605 模型切換被 PreModelSwitch hook 阻止2608 Model switch was blocked by a PreModelSwitch hook

2606</h3>2609</h3>

2607 2610 

2608[PreModelSwitch hook](/docs/zh-TW/hooks#premodelswitch) 沒有核准您或用戶端請求的模型切換,因此工作階段保留其目前模型。當切換來自 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 主機或 [Remote Control](/docs/zh-TW/remote-control) 而不是您輸入的命令時,訊息讀取 `Model switch blocked by a PreModelSwitch hook` 而不命名目標模型。2611[PreModelSwitch hook](/docs/zh-TW/hooks#premodelswitch) 沒有核准您或用戶端請求的模型切換,因此工作階段保留其目前模型。當切換來自 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 主機或 [Remote Control](/docs/zh-TW/remote-control) 而不是您輸入的命令時,訊息讀取 `Model switch blocked by a PreModelSwitch hook` 而不命名目標模型。


2622在 v2.1.260 之前,受管外掛拒絕讀取 `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`。Claude Code 重試外掛載入一次,然後在工作階段中拒絕後續切換,即使您的組織沒有受管外掛。在這些版本上重新啟動工作階段以再次執行外掛載入。2625在 v2.1.260 之前,受管外掛拒絕讀取 `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`。Claude Code 重試外掛載入一次,然後在工作階段中拒絕後續切換,即使您的組織沒有受管外掛。在這些版本上重新啟動工作階段以再次執行外掛載入。

2623 2626 

2624<h3 id="couldnt-save-it-as-your-default">2627<h3 id="couldnt-save-it-as-your-default">

2625 無法將其保存為您的預設值2628 Couldn't save it as your default

2626</h3>2629</h3>

2627 2630 

2628您選擇了模型以保存為預設值,例如使用 `/model <name>` 或 `/model` 選擇器中的 `Enter`,Claude Code 無法將選擇寫入您的使用者設定檔 `~/.claude/settings.json`。切換本身已應用,因此目前工作階段在您選擇的模型上執行,但您的預設值保持不變,下一個工作階段在舊值上啟動。2631您選擇了模型以保存為預設值,例如使用 `/model <name>` 或 `/model` 選擇器中的 `Enter`,Claude Code 無法將選擇寫入您的使用者設定檔 `~/.claude/settings.json`。切換本身已應用,因此目前工作階段在您選擇的模型上執行,但您的預設值保持不變,下一個工作階段在舊值上啟動。


2641在 v2.1.265 之前,通知說模型是 `saved as your default for new sessions` 即使寫入失敗。2644在 v2.1.265 之前,通知說模型是 `saved as your default for new sessions` 即使寫入失敗。

2642 2645 

2643<h3 id="advisor-is-less-capable-than-the-current-main-model">2646<h3 id="advisor-is-less-capable-than-the-current-main-model">

2644 Advisor 的能力低於目前的主要模型2647 Advisor is less capable than the current main model

2645</h3>2648</h3>

2646 2649 

2647您的 [advisor 模型](/docs/zh-TW/advisor)排名低於工作階段的主要模型,因此 Claude Code 會保留該選擇,但不會將 advisor 附加到主要模型的請求。2650您的 [advisor 模型](/docs/zh-TW/advisor)排名低於工作階段的主要模型,因此 Claude Code 會保留該選擇,但不會將 advisor 附加到主要模型的請求。


2664在 v2.1.287 之前,Claude Code 對數種配對的排名不同。它會對搭配 Opus 4.7 或 Opus 4.8 主要模型的 Sonnet 5.5 advisor 顯示此提示,而它現在接受這種配對。它也會附加某些現在會產生此提示的 advisor,例如搭配 Sonnet 5.5 主要模型的 Opus 4.8 advisor。2667在 v2.1.287 之前,Claude Code 對數種配對的排名不同。它會對搭配 Opus 4.7 或 Opus 4.8 主要模型的 Sonnet 5.5 advisor 顯示此提示,而它現在接受這種配對。它也會附加某些現在會產生此提示的 advisor,例如搭配 Sonnet 5.5 主要模型的 Opus 4.8 advisor。

2665 2668 

2666<h3 id="thinking-type-enabled-is-not-supported-for-this-model">2669<h3 id="thinking-type-enabled-is-not-supported-for-this-model">

2667 此模型不支援 thinking.type.enabled2670 thinking.type.enabled is not supported for this model

2668</h3>2671</h3>

2669 2672 

2670您的 Claude Code 版本早於所選模型的最低版本。CLI 發送了模型不再接受的思考設定。2673您的 Claude Code 版本早於所選模型的最低版本。CLI 發送了模型不再接受的思考設定。


2681* 如果您在 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中遇到此問題,請改為升級 SDK 套件。Opus 4.8 需要 TypeScript SDK v0.3.154 或更高版本和 Python SDK v0.2.88 或更高版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更高版本。Opus 5 需要 TypeScript SDK v0.3.219 或更高版本。Opus 5.5 需要 TypeScript SDK v0.3.280 或更高版本。Sonnet 5.5 需要 TypeScript SDK v0.3.284 或更高版本2684* 如果您在 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中遇到此問題,請改為升級 SDK 套件。Opus 4.8 需要 TypeScript SDK v0.3.154 或更高版本和 Python SDK v0.2.88 或更高版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更高版本。Opus 5 需要 TypeScript SDK v0.3.219 或更高版本。Opus 5.5 需要 TypeScript SDK v0.3.280 或更高版本。Sonnet 5.5 需要 TypeScript SDK v0.3.284 或更高版本

2682 2685 

2683<h3 id="effort-isnt-available-with-thinking-turned-off">2686<h3 id="effort-isnt-available-with-thinking-turned-off">

2684 關閉思考時無法使用 Effort2687 Effort isn't available with thinking turned off

2685</h3>2688</h3>

2686 2689 

2687您關閉了[延伸思考](/docs/zh-TW/model-config#extended-thinking)並以 `high` 以上的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level)執行。模型不接受該組合,因此 API 拒絕了請求。2690您關閉了[延伸思考](/docs/zh-TW/model-config#extended-thinking)並以 `high` 以上的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level)執行。模型不接受該組合,因此 API 拒絕了請求。


2736* 執行 `/rewind` 或按 Esc 兩次,以回到損壞回合之前的檢查點並從那裡繼續。請參閱[檢查點功能](/docs/zh-TW/checkpointing)以了解檢查點如何建立和恢復。2739* 執行 `/rewind` 或按 Esc 兩次,以回到損壞回合之前的檢查點並從那裡繼續。請參閱[檢查點功能](/docs/zh-TW/checkpointing)以了解檢查點如何建立和恢復。

2737 2740 

2738<h3 id="invalid-data-in-redacted-thinking-block">2741<h3 id="invalid-data-in-redacted-thinking-block">

2739 redacted\_thinking 區塊中的資料無效2742 Invalid data in redacted\_thinking block

2740</h3>2743</h3>

2741 2744 

2742API 因為它無法接受對話記錄中較早回合攜帶的 `redacted_thinking` 區塊而拒絕了請求,並返回 400。2745API 因為它無法接受對話記錄中較早回合攜帶的 `redacted_thinking` 區塊而拒絕了請求,並返回 400。


2753* 如果錯誤持續,請執行 `/clear` 以啟動不攜帶該區塊的對話2756* 如果錯誤持續,請執行 `/clear` 以啟動不攜帶該區塊的對話

2754 2757 

2755<h3 id="unsupported-tool-content-removed">2758<h3 id="unsupported-tool-content-removed">

2756 移除了不支援的工具內容2759 Unsupported tool content removed

2757</h3>2760</h3>

2758 2761 

2759當 Claude Code 直接連接到 Anthropic API 並載入或預覽已保存的工作階段時,它會移除 Anthropic API 不接受的工具內容,並在移除的內容位於兩個思考區塊之間的位置留下此行:2762當 Claude Code 直接連接到 Anthropic API 並載入或預覽已保存的工作階段時,它會移除 Anthropic API 不接受的工具內容,並在移除的內容位於兩個思考區塊之間的位置留下此行:


2770* 如果已繼續工作階段的每個回合都因 400 錯誤而失敗,請執行 `claude update` 並再次繼續工作階段。v2.1.246 之前的版本不會移除內容。2773* 如果已繼續工作階段的每個回合都因 400 錯誤而失敗,請執行 `claude update` 並再次繼續工作階段。v2.1.246 之前的版本不會移除內容。

2771 2774 

2772<h3 id="role-system-must-precede-an-assistant-message">2775<h3 id="role-system-must-precede-an-assistant-message">

2773 角色 'system' 必須在 'assistant' 訊息之前2776 role 'system' must precede an 'assistant' message

2774</h3>2777</h3>

2775 2778 

2776API 因為系統訊息位於它不接受的對話位置而拒絕了請求,並返回 400:2779API 因為系統訊息位於它不接受的對話位置而拒絕了請求,並返回 400:


2791在 v2.1.280 之前,Claude Code 沒有識別此措辭,因此當被拒絕的系統訊息是 Claude Code 本身發送的時,錯誤也出現,對話的每個後續回合都以相同方式失敗。2794在 v2.1.280 之前,Claude Code 沒有識別此措辭,因此當被拒絕的系統訊息是 Claude Code 本身發送的時,錯誤也出現,對話的每個後續回合都以相同方式失敗。

2792 2795 

2793<h3 id="invalid-encrypted-content-in-search-result-block">2796<h3 id="invalid-encrypted-content-in-search-result-block">

2794 搜尋結果區塊中的加密內容無效2797 Invalid encrypted\_content in search\_result block

2795</h3>2798</h3>

2796 2799 

2797API 因為對話記錄包含它無法解密的託管網路搜尋內容而拒絕了請求,並返回 400。措辭命名它無法讀取的欄位:2800API 因為對話記錄包含它無法解密的託管網路搜尋內容而拒絕了請求,並返回 400。措辭命名它無法讀取的欄位:


2865* 如果您的請求不是關於網路安全主題,請執行 `/feedback` 以報告誤報2868* 如果您的請求不是關於網路安全主題,請執行 `/feedback` 以報告誤報

2866* 若要在同一工作階段中繼續工作,請按 Esc 兩次或執行 `/rewind` 以回到觸發標記的回合之前的檢查點,然後採取不同的方法。請參閱[檢查點功能](/docs/zh-TW/checkpointing)。2869* 若要在同一工作階段中繼續工作,請按 Esc 兩次或執行 `/rewind` 以回到觸發標記的回合之前的檢查點,然後採取不同的方法。請參閱[檢查點功能](/docs/zh-TW/checkpointing)。

2867 2870 

2871<h3 id="output-blocked-by-content-filtering-policy">

2872 Output blocked by content filtering policy

2873</h3>

2874 

2875API 的輸出內容篩選器停止了 Claude 正在產生的回應。訊息文字來自 API:

2876 

2877```text theme={null}

2878API Error: Output blocked by content filtering policy

2879```

2880 

2881Claude Code 會在封鎖抵達時立即顯示錯誤,並在此結束請求。它不會重試請求、以非串流方式重新發送,或切換到[備援模型](/docs/zh-TW/model-config#fallback-model-chains)。在 v2.1.285 之前,Claude Code 可能會重新發送並重試被封鎖的請求,有時長達數分鐘,才向您顯示錯誤。

2882 

2883**該怎麼辦:**

2884 

2885* 重新措辭您的最後一則訊息,或採取不同的方法

2886* 若要回到觸發封鎖的回合之前的檢查點,請按 Esc 兩次或執行 `/rewind`。請參閱[檢查點功能](/docs/zh-TW/checkpointing)

2887 

2868<h2 id="installation-errors">2888<h2 id="installation-errors">

2869 安裝錯誤2889 安裝錯誤

2870</h2>2890</h2>


4416 Teammate's agent definition was not restored4436 Teammate's agent definition was not restored

4417</h3>4437</h3>

4418 4438 

4419Claude 傳訊息給一位已停止的 [agent team](/docs/zh-TW/agent-teams) 隊員,Claude Code 將其恢復,但沒有重新套用它最初據以產生的 [subagent 定義](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates),因為其定義檔案來自沒有已儲存信任的資料夾。此通知會接在傳送端 agent 工具結果中的恢復報告之後:4439Claude 傳訊息給一位已停止的 [agent team](/docs/zh-TW/agent-teams) 隊員,Claude Code 將其恢復,但沒有重新套用它最初據以產生的 [subagent 定義](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates)。此通知會接在傳送端 agent 工具結果中的恢復報告之後,並指出原因。當定義檔案來自沒有已儲存信任的資料夾時,內容如下:

4420 4440 

4421```text wrap theme={null}4441```text wrap theme={null}

4422Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.4442Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.

hooks.md +631 −621

Details

40| :- | :- |40| :- | :- |

41| `SessionStart` | 當工作階段開始或繼續時 |41| `SessionStart` | 當工作階段開始或繼續時 |

42| `Setup` | 當您使用 `--init-only` 啟動 Claude Code,或在 `-p` 模式中使用 `--init` 或 `--maintenance` 時。用於 CI 或指令碼中的一次性準備 |42| `Setup` | 當您使用 `--init-only` 啟動 Claude Code,或在 `-p` 模式中使用 `--init` 或 `--maintenance` 時。用於 CI 或指令碼中的一次性準備 |

43| `UserPromptSubmit` | 當您提交提示詞時,在 Claude 處理之前 |43| `UserPromptSubmit` | 當提示詞被提交時,在 Claude 處理之前。也會在 [Claude Code 自行開始的回合](/docs/zh-TW/hooks#userpromptsubmit)上觸發 |

44| `UserPromptExpansion` | 當使用者輸入的命令擴展為提示詞時,在到達 Claude 之前。可以阻止擴展 |44| `UserPromptExpansion` | 當使用者輸入的命令擴展為提示詞時,在到達 Claude 之前。可以阻止擴展 |

45| `PreToolUse` | 在工具呼叫執行之前。可以阻止它 |45| `PreToolUse` | 在工具呼叫執行之前。可以阻止它 |

46| `PermissionRequest` | 當工具呼叫需要權限決定時 |46| `PermissionRequest` | 當工具呼叫需要權限決定時 |


1159 Hook 事件1159 Hook 事件

1160</h2>1160</h2>

1161 1161 

1162每個事件對應於 Claude Code 生命週期中的一個點,hooks 可以在該點執行。下面的章節按照生命週期順序排列:從工作階段設定到代理迴圈再到工作階段結束。每個章節描述事件何時觸發、它支援的匹配器、它接收的 JSON 輸入,以及如何透過輸出控制行為。1162每個事件對應 Claude Code 生命週期中可執行 hook 的一個時間點。以下各節依生命週期排序:從工作階段設定,經過代理式迴圈,直到工作階段結束。每一節說明事件何時觸發、支援哪些 matcher、接收的 JSON 輸入,以及如何透過輸出控制行為。

1163 1163 

1164<h3 id="sessionstart">1164<h3 id="sessionstart">

1165 SessionStart1165 SessionStart

1166</h3>1166</h3>

1167 1167 

1168在 Claude Code 啟動新工作階段或恢復現有工作階段時執行。適用於載入開發環境背景資訊,例如現有問題或程式碼庫的最近變更,或設定環境變數。對於不需要指令碼的靜態背景資訊,請改用 [CLAUDE.md](/docs/zh-TW/memory)。1168在 Claude Code 啟動新工作階段或繼續現有工作階段時執行。適合用來載入開發上下文,例如現有的 issue 或程式碼庫的近期變更,或設定環境變數。若是不需要指令碼的靜態上下文,請改用 [CLAUDE.md](/docs/zh-TW/memory)。

1169 1169 

1170SessionStart 在每個工作階段執行,因此請保持這些 hooks 快速。僅支援 `type: "command"` 和 `type: "mcp_tool"` hooks。有關 `mcp_tool` hooks 何時執行,請參閱 [MCP tool hook 欄位](#mcp-tool-hook-fields)。1170SessionStart 會在每個工作階段執行,因此請讓這些 hook 保持快速。僅支援 `type: "command"` 與 `type: "mcp_tool"` hook。關於 `mcp_tool` hook 何時執行,請參閱 [MCP tool hook 欄位](#mcp-tool-hook-fields)。

1171 1171 

1172匹配器值對應於工作階段的啟動方式:1172matcher 值對應工作階段的啟動方式:

1173 1173 

1174| 匹配器 | 何時觸發 |1174| Matcher | 觸發時機 |

1175| :- | :- |1175| :- | :- |

1176| `startup` | 新工作階段 |1176| `startup` | 新工作階段 |

1177| `resume` | `--resume`、`--continue` 或 `/resume` |1177| `resume` | `--resume`、`--continue` 或 `/resume` |

1178| `clear` | `/clear` |1178| `clear` | `/clear` |

1179| `compact` | 自動或手動壓縮 |1179| `compact` | 自動或手動壓縮 |

1180| `fork` | 從現有工作階段分支的新工作階段:`--fork-session` 搭配 `--resume` 或 `--continue`、`/fork` 背景複本、`/branch`,或您 [移到背景](/docs/zh-TW/agent-view#from-inside-a-session) 的對話 |1180| `fork` | 從現有工作階段分叉出的新工作階段:搭配 `--resume` 或 `--continue` 使用的 `--fork-session`、`/fork` 背景副本、`/branch`,或您[移至背景](/docs/zh-TW/agent-view#from-inside-a-session)的對話 |

1181 1181 

1182在 v2.1.214 之前,分支工作階段報告來源為 `"resume"`。1182在 v2.1.214 之前,分叉的工作階段回報的 source 為 `"resume"`。

1183 1183 

1184當您啟動互動式工作階段、在啟動時使用 `--continue` 或 `--resume` 恢復對話,或執行 `/clear` 時,SessionStart hooks 在背景執行。您可以立即輸入,恢復的對話會立即出現,無需等待 hooks。Claude 的第一個回應仍會等待 hooks 完成,因此它們的背景資訊會到達 Claude。1184當您啟動互動式工作階段、在啟動時以 `--continue` 或 `--resume` 繼續對話,或執行 `/clear` 時,SessionStart hook 會在背景執行。您可以立即開始輸入,而您繼續的對話也會直接顯示,不必等待 hook。Claude 的第一個回應仍會等待 hook 完成,讓其上下文能傳達給 Claude。

1185 1185 

1186當您在工作階段內使用 `/resume` 切換對話時,切換會等待 hooks 完成。如果您在背景 hooks 仍在執行時執行 `/clear` 或切換到另一個對話,它們返回的任何內容都不會套用到工作階段。1186若您在工作階段內以 `/resume` 切換對話,切換動作則會等待 hook 完成。如果您在背景 hook 仍在執行時執行 `/clear` 或切換到另一個對話,它們回傳的任何內容都不會套用到該工作階段。

1187 1187 

1188相同的等待也適用於啟動,包括恢復的工作階段:您在 SessionStart hooks 仍在執行時傳送的提示不會到達 Claude,直到它們完成。1188啟動時也適用相同的等待,包括繼續的工作階段:在 SessionStart hook 仍在執行時送出的提示詞,要等到 hook 完成後才會傳達給 Claude。

1189 1189 

1190在任一等待期間,按 `Esc` 將提示取回輸入而不傳送。hooks 會繼續執行。1190在上述任一種等待期間,按下 `Esc` 可將提示詞收回輸入框而不送出。hook 會繼續執行。

1191 1191 

1192<h4 id="sessionstart-input">1192<h4 id="sessionstart-input">

1193 SessionStart 輸入1193 SessionStart 輸入

1194</h4>1194</h4>

1195 1195 

1196除了 [常見輸入欄位](#common-input-fields) 外,SessionStart hooks 還會接收 `source` 和可選的 `model`、`agent_type` 和 `session_title`:1196除了[通用輸入欄位](#common-input-fields)之外,SessionStart hook 還會接收 `source`,以及選擇性的 `model`、`agent_type` 與 `session_title`:

1197 1197 

1198| 欄位 | 描述 |1198| 欄位 | 說明 |

1199| :- | :- |1199| :- | :- |

1200| `source` | 工作階段如何啟動:新工作階段為 `"startup"`、恢復的工作階段為 `"resume"`、`/clear` 後為 `"clear"`、壓縮後為 `"compact"`,或從現有工作階段分支的新工作階段為 `"fork"` |1200| `source` | 工作階段的啟動方式:新工作階段為 `"startup"`,繼續的工作階段為 `"resume"`,`/clear` 之後為 `"clear"`,壓縮之後為 `"compact"`,從現有工作階段分叉出的新工作階段則為 `"fork"` |

1201| `model` | 作用中的模型識別碼。例如在 `/clear` 後或透過對話恢復還原工作階段時,可能會省略,因此請在讀取前檢查欄位 |1201| `model` | 目前使用中的模型識別碼。此欄位可能被省略,例如在 `/clear` 之後,或工作階段透過對話復原而還原時,因此讀取前請先檢查該欄位是否存在 |

1202| `agent_type` | 代理名稱,當您使用 `claude --agent <name>` 啟動 Claude Code 時出現 |1202| `agent_type` | agent 名稱,當您以 `claude --agent <name>` 啟動 Claude Code 時才會出現 |

1203| `session_title` | 工作階段的自訂標題,當已設定時出現,例如使用 `--name`、`/rename`、hook 的 `sessionTitle` 輸出或 Agent SDK 的 `renameSession()`。發出 `sessionTitle` 的 hook 可以先檢查此欄位以避免覆寫現有的自訂標題 |1203| `session_title` | 工作階段的自訂標題,僅在已設定時出現,例如透過 `--name`、`/rename`、hook 的 `sessionTitle` 輸出,或 Agent SDK 的 `renameSession()` 設定。輸出 `sessionTitle` 的 hook 可以先檢查此欄位,以避免覆寫既有的自訂標題 |

1204 1204 

1205未命名的工作階段仍可能有 [產生的標題](/docs/zh-TW/sessions#name-your-sessions)。該標題不是自訂標題,不會出現在 `session_title` 中。1205您尚未命名的工作階段仍可能有[自動產生的標題](/docs/zh-TW/sessions#name-your-sessions)。該標題並非自訂標題,不會出現在 `session_title` 中。

1206 1206 

1207當 `source` 為 `"resume"` 或 `"fork"` 且文字記錄包含至少一個來自 Claude 的回應時,SessionStart hooks 也會接收下面的四個欄位。您的 hook 可以使用它們在第一個請求之前報告恢復陳舊對話的成本,例如在 [`systemMessage`](#json-output) 中。這些欄位需要 Claude Code v2.1.251 或更新版本。1207當 `source` 為 `"resume"` 或 `"fork"`,且逐字稿中至少包含一則 Claude 的回應時,SessionStart hook 也會接收以下四個欄位。您的 hook 可以用它們在第一個請求之前回報繼續一個陳舊對話的成本,例如透過 [`systemMessage`](#json-output)。這些欄位需要 Claude Code v2.1.251 或更新版本。

1208 1208 

1209| 欄位 | 描述 |1209| 欄位 | 說明 |

1210| :- | :- |1210| :- | :- |

1211| `seconds_since_last_response` | 自恢復文字記錄中最後一個回應以來的牆上時間秒數 |1211| `seconds_since_last_response` | 自繼續的逐字稿中最後一則回應以來經過的實際秒數 |

1212| `context_tokens` | 恢復工作階段的第一個請求作為其提示重新傳送的權杖 |1212| `context_tokens` | 繼續的工作階段的第一個請求作為提示詞重新傳送的 token 數 |

1213| `prompt_cache_likely_expired` | 當最後一個回應早於工作階段的 [prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) 或更新的壓縮替換了快取的對話時為 `true` |1213| `prompt_cache_likely_expired` | 當最後一則回應早於工作階段的[提示快取存留期](/docs/zh-TW/prompt-caching#cache-lifetime),或後續的壓縮取代了已快取的對話時,為 `true` |

1214| `estimated_cache_write_usd` | 將 `context_tokens` 寫入工作階段模型的 prompt cache 的估計成本(美元),不包括回應 |1214| `estimated_cache_write_usd` | 在工作階段的模型上將 `context_tokens` 寫入提示快取的預估成本(美元),不含回應 |

1215 1215 

1216此範例顯示在最後一個回應後 90 分鐘恢復的工作階段的輸入:1216此範例顯示在最後一則回應 90 分鐘後繼續的工作階段的輸入:

1217 1217 

1218```json theme={null}1218```json theme={null}

1219{1219{


1234 SessionStart 決策控制1234 SessionStart 決策控制

1235</h4>1235</h4>

1236 1236 

1237Claude Code 將它 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您還可以返回這些事件特定的欄位:1237Claude Code 會將其[視為純文字](#exit-code-0)的 stdout 加入 Claude 的上下文。除了所有 hook 都可使用的 [JSON 輸出欄位](#json-output)之外,您還可以回傳下列事件專屬欄位:

1238 1238 

1239| 欄位 | 描述 |1239| 欄位 | 說明 |

1240| :- | :- |1240| :- | :- |

1241| `additionalContext` | 在對話開始時、第一個提示之前新增到 Claude 背景資訊的字串。有關文字如何傳遞以及要放入其中的內容,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1241| `additionalContext` | 在對話開始時、第一個提示詞之前加入 Claude 上下文的字串。關於文字的傳遞方式以及應放入的內容,請參閱[為 Claude 加入上下文](#add-context-for-claude) |

1242| `initialUserMessage` | 用作工作階段第一個使用者訊息的字串。適用於 [非互動模式](/docs/zh-TW/headless),搭配 `-p` 旗標,即使未提供提示,它也會成為第一個回合。如果提供了提示,它會作為下一個回合跟隨。與 `additionalContext` 不同,後者附加到現有回合,這會建立回合 |1242| `initialUserMessage` | 作為工作階段第一則使用者訊息的字串。適用於使用 `-p` 旗標的[非互動模式](/docs/zh-TW/headless),即使未提供提示詞,它也會成為第一個回合。若有提供提示詞,該提示詞會作為下一個回合接續。與附加到既有回合的 `additionalContext` 不同,此欄位會建立回合 |

1243| `sessionTitle` | 設定工作階段標題,效果與 `/rename` 相同。用於根據啟動資料夾、git 分支或 worktree 名稱自動命名工作階段。當 `source` 為 `"startup"`、`"resume"` 或 `"fork"` 時適用;在 `"clear"` 和 `"compact"` 上忽略 |1243| `sessionTitle` | 設定工作階段標題,效果與 `/rename` 相同。可用來依據啟動資料夾、git 分支或 worktree 名稱自動為工作階段命名。在 `source` 為 `"startup"`、`"resume"` 或 `"fork"` 時套用;在 `"clear"` 與 `"compact"` 時忽略 |

1244| `watchPaths` | 要在此工作階段期間監視 [FileChanged](#filechanged) 事件的絕對路徑陣列 |1244| `watchPaths` | 在此工作階段中要監看 [FileChanged](#filechanged) 事件的絕對路徑陣列 |

1245| `reloadSkills` | 布林值。當為 `true` 時,Claude Code 在 SessionStart hooks 完成後重新掃描 [skill](/docs/zh-TW/skills) 和命令目錄,因此 hook 安裝的 skills 在同一工作階段中可用,從第一個提示開始 |1245| `reloadSkills` | 布林值。為 `true` 時,Claude Code 會在 SessionStart hook 完成後重新掃描 [skill](/docs/zh-TW/skills) 與命令目錄,讓 hook 安裝的 skill 能在同一個工作階段中使用,從第一個提示詞開始即可使用 |

1246 1246 

1247```json theme={null}1247```json theme={null}

1248{1248{


1254}1254}

1255```1255```

1256 1256 

1257由於此事件的純文字 stdout 已到達 Claude,只載入背景資訊的 hook 可以直接列印到 stdout,而無需建立 JSON。當您需要將背景資訊與其他欄位(例如 `sessionTitle`)結合時,請使用 JSON 形式。1257由於此事件的純 stdout 已會傳達給 Claude,只載入上下文的 hook 可以直接輸出到 stdout,不必建構 JSON。當您需要將上下文與其他欄位(例如 `sessionTitle`)結合時,請使用 JSON 形式。

1258 1258 

1259當 SessionStart hook 安裝或更新 skills 時,使用 `reloadSkills`。Skill 探索通常在 SessionStart hooks 完成之前執行,因此 hook 寫入 `~/.claude/skills/` 或 `.claude/skills/` 的檔案否則只會在下一個工作階段中出現。此範例同步共享 skills 儲存庫並請求重新掃描:1259當 SessionStart hook 安裝或更新 skill 時,請使用 `reloadSkills`。skill 探索通常在 SessionStart hook 完成之前就已執行,因此 hook 寫入 `~/.claude/skills/` 或 `.claude/skills/` 的檔案,否則要到下一個工作階段才會出現。此範例會同步一個共用的 skill 儲存庫並要求重新掃描:

1260 1260 

1261```bash theme={null}1261```bash theme={null}

1262#!/bin/bash1262#!/bin/bash


1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1267echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1268```1268```

1269 1269 

1270儲存庫 URL 是佔位符;請將其替換為您自己的 skills 儲存庫。使用佔位符時,複製失敗並列印 `fatal:` 訊息到 stderr。來自退出 0 的 SessionStart hook 的 stderr 僅供參考,因此 `reloadSkills` 請求仍然適用。1270儲存庫 URL 只是預留位置;請將它替換為您自己的 skill 儲存庫。使用預留位置時,clone 會失敗並將 `fatal:` 訊息輸出到 stderr。以退出碼 0 結束的 SessionStart hook 的 stderr 僅供參考,因此 `reloadSkills` 請求仍會套用。

1271 1271 

1272<h4 id="persist-environment-variables">1272<h4 id="persist-environment-variables">

1273 保留環境變數1273 保存環境變數

1274</h4>1274</h4>

1275 1275 

1276SessionStart hooks 可以存取 `CLAUDE_ENV_FILE` 環境變數,它提供一個檔案路徑,您可以在其中保留後續 Bash 命令的環境變數。1276SessionStart hook 可以存取 `CLAUDE_ENV_FILE` 環境變數,它提供一個檔案路徑,讓您可以為後續的 Bash 命令保存環境變數。

1277 1277 

1278要設定個別環境變數,請將 `export` 陳述式寫入 `CLAUDE_ENV_FILE`。使用附加 (`>>`) 來保留由其他 hooks 設定的變數:1278若要設定個別環境變數,請將 `export` 陳述式寫入 `CLAUDE_ENV_FILE`。請使用附加(`>>`)以保留其他 hook 設定的變數:

1279 1279 

1280```bash theme={null}1280```bash theme={null}

1281#!/bin/bash1281#!/bin/bash


1289exit 01289exit 0

1290```1290```

1291 1291 

1292要捕獲設定命令的所有環境變更,請比較之前和之後的匯出變數:1292若要擷取設定命令造成的所有環境變更,請比較執行前後匯出的變數:

1293 1293 

1294```bash theme={null}1294```bash theme={null}

1295#!/bin/bash1295#!/bin/bash


1309```1309```

1310 1310 

1311<Note>1311<Note>

1312 `CLAUDE_ENV_FILE` 適用於 SessionStart、[Setup](#setup)、[CwdChanged](#cwdchanged) 和 [FileChanged](#filechanged) hooks。其他 hook 類型無法存取此變數。1312 `CLAUDE_ENV_FILE` 可供 SessionStart、[Setup](#setup)、[CwdChanged](#cwdchanged) 與 [FileChanged](#filechanged) hook 使用。其他 hook 類型無法存取此變數。

1313</Note>1313</Note>

1314 1314 

1315<h3 id="setup">1315<h3 id="setup">

1316 Setup1316 Setup

1317</h3>1317</h3>

1318 1318 

1319僅當您使用 `--init-only` 啟動 Claude Code,或在 [非互動模式](/docs/zh-TW/headless) 中使用 `--init` 或 `--maintenance` 搭配 `-p` 旗標時執行。它不會在正常啟動時執行。用於一次性相依性安裝或您從 CI 或指令碼明確觸發的排程清理,與正常工作階段啟動分開。對於每個工作階段的初始化,請改用 [SessionStart](#sessionstart)。1319僅在您以 `--init-only` 啟動 Claude Code,或在使用 `-p` 旗標的[非互動模式](/docs/zh-TW/headless)中搭配 `--init` 或 `--maintenance` 啟動時觸發。一般啟動時不會觸發。可用於一次性的相依套件安裝,或您從 CI 或指令碼明確觸發的排程清理,與一般工作階段啟動分開。若是每個工作階段的初始化,請改用 [SessionStart](#sessionstart)。

1320 1320 

1321匹配器值對應於觸發 hook 的 CLI 旗標:1321matcher 值對應觸發該 hook 的 CLI 旗標:

1322 1322 

1323| 匹配器 | 何時觸發 |1323| Matcher | 觸發時機 |

1324| :- | :- |1324| :- | :- |

1325| `init` | `claude --init-only` 或 `claude -p --init` |1325| `init` | `claude --init-only` 或 `claude -p --init` |

1326| `maintenance` | `claude -p --maintenance` |1326| `maintenance` | `claude -p --maintenance` |

1327 1327 

1328當您執行 `claude --init-only` 時,Claude Code 執行 Setup hooks 和 `SessionStart` hooks(使用 `startup` 匹配器),然後退出而不啟動對話。1328當您執行 `claude --init-only` 時,Claude Code 會執行 Setup hook 以及 matcher 為 `startup` 的 `SessionStart` hook,然後在不啟動對話的情況下結束。

1329 1329 

1330當您使用 `-p` 啟動或繼續對話時,您還需要提供提示,作為引數或透過 stdin 管道傳輸。當 `SessionStart` hook 提供 [`initialUserMessage`](#sessionstart-decision-control) 或當您使用 [延遲工具呼叫](#defer-a-tool-call-for-later) 恢復工作階段時,您可以跳過提示。1330當您以 `-p` 開始或繼續對話時,還需要提供提示詞,作為引數或透過 stdin 傳入。當 `SessionStart` hook 提供 [`initialUserMessage`](#sessionstart-decision-control),或您繼續一個帶有[延後工具呼叫](#defer-a-tool-call-for-later)的工作階段時,可以省略提示詞。

1331 1331 

1332成功時,`--init-only` 不會列印任何內容到終端。要確認 hooks 已執行,請使用 `claude --debug-file <path> --init-only` 啟動,將 `<path>` 替換為日誌檔案位置,並檢查日誌中的 Setup 和 SessionStart hook 項目。1332成功時,`--init-only` 不會在終端機輸出任何內容。若要確認 hook 已執行,請以 `claude --debug-file <path> --init-only` 啟動,將 `<path>` 替換為日誌檔案位置,並在日誌中檢查 Setup 與 SessionStart hook 的項目。

1333 1333 

1334由於 Setup 不會在每次啟動時執行,需要安裝相依性的外掛無法僅依賴 Setup。實用的模式是在首次使用時檢查相依性,如果缺少則安裝,例如測試 `${CLAUDE_PLUGIN_DATA}/node_modules` 的 hook 或 skill,如果不存在則執行 `npm install`。有關在何處儲存已安裝的相依性,請參閱 [持久資料目錄](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)。如果您透過市場發佈外掛,您可能不需要此模式:Claude Code [在快取外掛時自動安裝符合條件的 Node.js 套件相依性](/docs/zh-TW/plugins/loading#node-js-package-dependencies)。1334由於 Setup 不會在每次啟動時觸發,需要安裝相依套件的外掛無法僅依賴 Setup。實務上的做法是在首次使用時檢查相依套件,缺少時再安裝,例如由 hook 或 skill 檢查 `${CLAUDE_PLUGIN_DATA}/node_modules`,若不存在則執行 `npm install`。關於已安裝相依套件的存放位置,請參閱[持久性資料目錄](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)。如果您透過市集發布外掛,可能不需要此做法:Claude Code 在快取外掛時會[自動安裝符合條件的 Node.js 套件相依性](/docs/zh-TW/plugins/loading#node-js-package-dependencies)。

1335 1335 

1336<h4 id="setup-input">1336<h4 id="setup-input">

1337 Setup 輸入1337 Setup 輸入

1338</h4>1338</h4>

1339 1339 

1340除了 [常見輸入欄位](#common-input-fields) 外,Setup hooks 還會接收設定為 `"init"` 或 `"maintenance"` 的 `trigger` 欄位:1340除了[通用輸入欄位](#common-input-fields)之外,Setup hook 還會接收 `trigger` 欄位,其值為 `"init"` 或 `"maintenance"`:

1341 1341 

1342```json theme={null}1342```json theme={null}

1343{1343{


1353 Setup 決策控制1353 Setup 決策控制

1354</h4>1354</h4>

1355 1355 

1356Setup hooks 無法阻止;執行在任何退出代碼上繼續。在每個退出代碼上,Claude Code 捨棄 Setup hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage`、`continue` 和 `hookSpecificOutput.additionalContext`。使用 `-p` 時,Setup hook 的 stdout、stderr 和退出代碼僅在您使用 `--output-format stream-json --verbose` 啟動時作為 [`hook_response` 事件](/docs/zh-TW/headless#read-session-metadata) 出現在執行的輸出中。1356Setup hook 無法阻擋;無論退出碼為何,執行都會繼續。無論退出碼為何,Claude Code 都會捨棄 Setup hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage`、`continue` 與 `hookSpecificOutput.additionalContext`。使用 `-p` 時,Setup hook 的 stdout、stderr 與退出碼只有在您以 `--output-format stream-json --verbose` 啟動時,才會以 [`hook_response` 事件](/docs/zh-TW/headless#read-session-metadata)的形式出現在執行輸出中。

1357 1357 

1358Setup hooks 可以存取 `CLAUDE_ENV_FILE`。寫入該檔案的變數會保留到工作階段的後續 Bash 命令中,就像在 [SessionStart hooks](#persist-environment-variables) 中一樣。只有 `type: "command"` hooks 在 `Setup` 上執行。`type: "mcp_tool"` hook 在 `Setup` 上始終被跳過,如 [MCP tool hook 欄位](#mcp-tool-hook-fields) 下所述。1358Setup hook 可以存取 `CLAUDE_ENV_FILE`。寫入該檔案的變數會保存到該工作階段的後續 Bash 命令中,與 [SessionStart hook](#persist-environment-variables) 相同。只有 `type: "command"` hook 會在 `Setup` 上執行。`Setup` 上的 `type: "mcp_tool"` hook 一律會被略過,如 [MCP tool hook 欄位](#mcp-tool-hook-fields)中所述。

1359 1359 

1360<h3 id="instructionsloaded">1360<h3 id="instructionsloaded">

1361 InstructionsLoaded1361 InstructionsLoaded

1362</h3>1362</h3>

1363 1363 

1364在載入 `CLAUDE.md` 或 `.claude/rules/*.md` 檔案到背景資訊時執行。此事件在工作階段啟動時對於急切載入的檔案執行,稍後在檔案被延遲載入時再次執行,例如當 Claude 存取包含巢狀 `CLAUDE.md` 的子目錄或當具有 `paths:` frontmatter 的條件規則匹配時。該 hook 不支援阻止或決策控制。它以非同步方式執行以用於可觀測性目的。1364在 `CLAUDE.md` 或 `.claude/rules/*.md` 檔案載入上下文時觸發。此事件會在工作階段開始時針對預先載入的檔案觸發,之後在延遲載入檔案時再次觸發,例如當 Claude 存取包含巢狀 `CLAUDE.md` 的子目錄,或帶有 `paths:` frontmatter 的條件式規則相符時。此 hook 不支援阻擋或決策控制。它會為了可觀察性而以非同步方式執行。

1365 1365 

1366當 Claude [直接透過 **Project instructions** 設定讀取 `AGENTS.md`](/docs/zh-TW/memory#agents-md) 時,此事件不會執行。當 `CLAUDE.md` 匯入您的 `AGENTS.md` 時,它會執行,`load_reason` 設定為 `include`(與任何其他匯入檔案相同),以及當 `CLAUDE.md` 是它的符號連結時,作為正常的 `CLAUDE.md` 載入。1366當 Claude 透過 **Project instructions** 設定[直接讀取 `AGENTS.md`](/docs/zh-TW/memory#agents-md) 時,此事件不會觸發。當 `CLAUDE.md` 匯入您的 `AGENTS.md` 時,此事件會觸發,且 `load_reason` 與其他任何匯入的檔案一樣設為 `include`;當 `CLAUDE.md` 是指向它的符號連結時,也會以一般的 `CLAUDE.md` 載入觸發。

1367 1367 

1368匹配器針對 `load_reason` 執行。例如,使用 `"matcher": "session_start"` 僅對在工作階段啟動時載入的檔案執行,或 `"matcher": "path_glob_match|nested_traversal"` 僅對延遲載入執行。1368matcher 會比對 `load_reason`。例如,使用 `"matcher": "session_start"` 只針對工作階段開始時載入的檔案觸發,或使用 `"matcher": "path_glob_match|nested_traversal"` 只針對延遲載入觸發。

1369 1369 

1370<h4 id="instructionsloaded-input">1370<h4 id="instructionsloaded-input">

1371 InstructionsLoaded 輸入1371 InstructionsLoaded 輸入

1372</h4>1372</h4>

1373 1373 

1374除了 [常見輸入欄位](#common-input-fields) 外,InstructionsLoaded hooks 還會接收這些欄位:1374除了[通用輸入欄位](#common-input-fields)之外,InstructionsLoaded hook 還會接收以下欄位:

1375 1375 

1376| 欄位 | 描述 |1376| 欄位 | 說明 |

1377| :- | :- |1377| :- | :- |

1378| `file_path` | 已載入的指令檔案的絕對路徑 |1378| `file_path` | 已載入的指令檔案的絕對路徑 |

1379| `memory_type` | 檔案的範圍:`"User"`、`"Project"`、`"Local"` 或 `"Managed"` |1379| `memory_type` | 檔案的範圍:`"User"`、`"Project"`、`"Local"` 或 `"Managed"` |

1380| `load_reason` | 檔案被載入的原因:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"` 或 `"compact"`。`"compact"` 值在壓縮事件後重新載入指令檔案時執行 |1380| `load_reason` | 檔案載入的原因:`"session_start"`、`"nested_traversal"`、`"path_glob_match"`、`"include"` 或 `"compact"`。`"compact"` 值會在壓縮事件後重新載入指令檔案時觸發 |

1381| `globs` | 檔案的 `paths:` frontmatter 中的路徑 glob 模式(如果有)。僅對 `path_glob_match` 載入出現 |1381| `globs` | 檔案 `paths:` frontmatter 中的路徑 glob 模式(若有)。僅在 `path_glob_match` 載入時出現 |

1382| `trigger_file_path` | 觸發此載入的檔案的路徑,用於延遲載入 |1382| `trigger_file_path` | 對於延遲載入,其存取觸發此次載入的檔案路徑 |

1383| `parent_file_path` | 包含此檔案的父指令檔案的路徑,用於 `include` 載入 |1383| `parent_file_path` | 對於 `include` 載入,包含此檔案的上層指令檔案路徑 |

1384 1384 

1385```json theme={null}1385```json theme={null}

1386{1386{


1398 InstructionsLoaded 決策控制1398 InstructionsLoaded 決策控制

1399</h4>1399</h4>

1400 1400 

1401InstructionsLoaded hooks 沒有決策控制。它們無法阻止或修改指令載入。Claude Code 捨棄它們的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。使用此事件進行稽核日誌、合規性追蹤或可觀測性。1401InstructionsLoaded hook 沒有決策控制。它們無法阻擋或修改指令載入。Claude Code 會捨棄它們的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 與 `continue`。請將此事件用於稽核日誌、合規追蹤或可觀察性。

1402 1402 

1403<h3 id="userpromptsubmit">1403<h3 id="userpromptsubmit">

1404 UserPromptSubmit1404 UserPromptSubmit

1405</h3>1405</h3>

1406 1406 

1407在使用者提交提示時執行,在 Claude 處理它之前。這允許您根據提示/對話新增額外背景資訊、驗證提示或阻止某些類型的提示。1407在提示詞送出後、Claude 處理之前執行。這可讓您

1408根據提示詞或對話加入額外情境、驗證提示詞,或

1409封鎖特定類型的提示詞。

1410 

1411`UserPromptSubmit` hook 不只會在您輸入的提示詞上觸發。Claude Code 也會在下列情況執行它們:

1408 1412 

1409`UserPromptSubmit` hooks 對 `command`、`http` 和 `mcp_tool` 類型的預設逾時為 30 秒,比大多數其他事件的 600 秒預設值更短。因為此 hook 在每個提示之前執行並阻止模型處理直到完成,卡住的 hook 會停滯工作階段。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。1413* [排程任務](/docs/zh-TW/scheduled-tasks)觸發時,包括 `/loop` 的每次迭代

1414* [背景 subagent](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background) 向啟動它的工作階段回報時

1415* [另一個工作階段傳送訊息](/docs/zh-TW/cross-session-messaging)到您的主要對話時

1410 1416 

1411除了您使用 [`async: true`](#run-hooks-in-the-background) 執行的命令 hook 外,達到逾時的 `UserPromptSubmit` 命令、HTTP 或 MCP tool hook 會被取消,其輸出(包括任何 `additionalContext`)會被捨棄。提示仍會到達 Claude,不含該背景資訊。文字記錄顯示一個通知,命名 hook、觸發的逾時以及輸出被捨棄。1417`UserPromptSubmit` hook 對於 `command`、`http` 與 `mcp_tool` 類型的預設逾時為 30 秒,比這些類型在其他大多數事件上的 600 秒預設值更短。由於此 hook 會在每個提示詞之前執行,並在完成前阻擋模型處理,卡住的 hook 會讓工作階段停滯。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。

1412 1418 

1413在 `UserPromptSubmit` 上達到逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會用命名 hook 和逾時的訊息阻止提示,因為該處的回呼可能充當必須不失敗開放的原則閘道。工作階段繼續。在 v2.1.208 之前,該事件上的回呼逾時以執行錯誤結束回合。1419除了您以 [`async: true`](#run-hooks-in-the-background) 執行的 command hook 之外,達到逾時的 `UserPromptSubmit` command、HTTP 或 MCP tool hook 會被取消,其輸出(包括任何 `additionalContext`)都會被捨棄。提示詞仍會傳達給 Claude,只是不含該上下文。逐字稿會顯示一則通知,指出該 hook 名稱、觸發的逾時,以及輸出已被捨棄。

1420 

1421`UserPromptSubmit` 上達到逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會以指出 hook 名稱與逾時的訊息阻擋提示詞,因為該處的回呼可能充當不得在失敗時放行的政策關卡。工作階段會繼續。在 v2.1.208 之前,該事件上的回呼逾時會以執行錯誤結束該回合。

1414 1422 

1415<h4 id="userpromptsubmit-input">1423<h4 id="userpromptsubmit-input">

1416 UserPromptSubmit 輸入1424 UserPromptSubmit 輸入

1417</h4>1425</h4>

1418 1426 

1419除了 [常見輸入欄位](#common-input-fields) 外,UserPromptSubmit hooks 還會接收包含使用者提交的文字的 `prompt` 欄位。折疊為 `[Pasted text #N]` 佔位符的貼上內容會在原位展開。在 Claude Code [為 Claude 標記貼上文字](/docs/zh-TW/terminal-config#how-claude-treats-pasted-text) 的工作階段中,該展開內容位於 `<pasted_content id="…">` 行和 `</pasted_content id="…">` 行之間,因此如果您的 hook 解析提示,請考慮這些行。1427除了[通用輸入欄位](#common-input-fields)之外,UserPromptSubmit hook 還會接收包含所送出文字的 `prompt` 欄位。摺疊為 `[Pasted text #N]` 預留位置的貼上內容,會在原位置展開後送達。在 Claude Code [為 Claude 標記貼上文字](/docs/zh-TW/terminal-config#how-claude-treats-pasted-text)的工作階段中,展開的內容位於 `<pasted_content id="…">` 行與 `</pasted_content id="…">` 行之間,因此如果您的 hook 會剖析提示詞,請將這些行納入考量。

1420 1428 

1421UserPromptSubmit hooks 也會在工作階段有自訂標題時接收 `session_title`,與 [SessionStart `session_title` 欄位](#sessionstart-input) 的含義相同。1429當工作階段具有自訂標題時,UserPromptSubmit hook 也會接收 `session_title`,其意義與 [SessionStart 的 `session_title` 欄位](#sessionstart-input)相同。

1422 1430 

1423```json theme={null}1431```json theme={null}

1424{1432{


1435 UserPromptSubmit 決策控制1443 UserPromptSubmit 決策控制

1436</h4>1444</h4>

1437 1445 

1438`UserPromptSubmit` hooks 可以控制是否處理使用者提示並新增背景資訊。所有 [JSON 輸出欄位](#json-output) 都可用。1446`UserPromptSubmit` hook 可以控制是否處理已送出的提示詞,並可加入情境。所有 [JSON 輸出欄位](#json-output)皆可使用。

1439 1447 

1440有兩種方式在退出代碼 0 時將背景資訊新增到對話:1448在退出碼 0 時,有兩種方式可以將上下文加入對話:

1441 1449 

1442* **純文字 stdout**:Claude Code 將它 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊1450* **純文字 stdout**:Claude Code 會將其[視為純文字](#exit-code-0)的 stdout 加入 Claude 的上下文

1443* **JSON 搭配 `additionalContext`**:使用下面的 JSON 格式以獲得更多控制。`additionalContext` 欄位作為背景資訊新增1451* **帶有 `additionalContext` 的 JSON**:使用下方的 JSON 格式以獲得更多控制。`additionalContext` 欄位會作為上下文加入

1444 1452 

1445兩個通道都不會產生可見的文字記錄項目。純文字和 `additionalContext` 值各自作為以 hook 名稱開頭的系統提醒注入;Claude 讀取兩者。要確認傳遞,請檢查 [debug log](#debug-hooks)。1453兩種管道都不會產生可見的逐字稿項目。純 stdout 與 `additionalContext` 值會各自以開頭為 hook 名稱的系統提醒注入;Claude 兩者都會讀取。若要確認已傳遞,請檢查[偵錯日誌](#debug-hooks)。

1446 1454 

1447要阻止提示,請返回一個 JSON 物件,其中 `decision` 設定為 `"block"`:1455若要阻擋提示詞,請回傳 `decision` 設為 `"block"` 的 JSON 物件:

1448 1456 

1449| 欄位 | 描述 |1457| 欄位 | 說明 |

1450| :- | :- |1458| :- | :- |

1451| `decision` | `"block"` 防止提示被處理並將其從背景資訊中刪除。省略以允許提示繼續 |1459| `decision` | `"block"` 會在提示詞傳達給 Claude 之前將其停止。省略則允許提示詞繼續 |

1452| `reason` | 當 `decision` 為 `"block"` 時顯示給使用者。不新增到背景資訊 |1460| `reason` | 當 `decision` 為 `"block"` 時向使用者顯示。不會加入上下文 |

1453| `additionalContext` | 與提交的提示一起新增到 Claude 背景資訊的字串。有關詳細資訊,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1461| `additionalContext` | 與送出的提示詞一同加入 Claude 上下文的字串。請參閱[為 Claude 加入上下文](#add-context-for-claude) |

1454| `sessionTitle` | 設定工作階段標題。用於根據提示內容自動命名工作階段 |1462| `sessionTitle` | 設定工作階段標題。可用來依據提示詞內容自動為工作階段命名 |

1455| `suppressOriginalPrompt` | 如果在 `decision` 為 `"block"` 時為 `true`,則從顯示給使用者的阻止訊息中省略原始提示文字 |1463| `suppressOriginalPrompt` | 若在 hook 阻擋提示詞時為 `true`,則會從阻擋訊息中省略提示詞文字。請參閱[被阻擋的提示詞會留下什麼](#what-a-blocked-prompt-leaves-behind) |

1456 1464 

1457透過退出 2 阻止的 hook 路由方式與 `reason` 相同:阻止訊息向使用者顯示 stderr 文字,它不會新增到背景資訊。1465以退出碼 2 阻擋的 hook 與 `reason` 的處理方式相同:阻擋訊息會向使用者顯示 stderr 文字,且不會加入上下文。

1458 1466 

1459```json theme={null}1467```json theme={null}

1460{1468{


1470```1478```

1471 1479 

1472<h4 id="what-a-blocked-prompt-leaves-behind">1480<h4 id="what-a-blocked-prompt-leaves-behind">

1473 被阻止的提示留下什麼1481 被阻擋的提示詞會留下什麼

1474</h4>1482</h4>

1475 1483 

1476被阻止的提示永遠不會到達 Claude,但其文字不會從任何地方移除。預設情況下,顯示給使用者的阻止訊息以 `Original prompt:` 結尾,後跟提交的文字,Claude Code 將該訊息寫入工作階段的文字記錄檔案。要從訊息中省略文字,請列印 JSON,其中 `hookSpecificOutput` 內有 `"suppressOriginalPrompt": true`。無論 hook 是否使用 `decision: "block"` 或退出 2 阻止,這都有效。退出 2 的 hook 如果不列印 JSON,總是在其阻止訊息中獲得提示文字。1484被阻擋的提示詞永遠不會傳達給 Claude,但其文字並不會在所有地方被移除。根據預設,向使用者顯示的阻擋訊息結尾會是 `Original prompt:` 加上送出的文字,而 Claude Code 會將該訊息寫入磁碟上工作階段的逐字稿檔案。若要從訊息中省略文字,請在 `hookSpecificOutput` 內輸出帶有 `"suppressOriginalPrompt": true` 的 JSON。無論 hook 是以 `decision: "block"` 還是以退出碼 2 阻擋,此做法都有效。未輸出 JSON 的退出碼 2 hook,其阻擋訊息一律會包含提示詞文字。

1477 1485 

1478`suppressOriginalPrompt` 僅更改阻止訊息。提交的文字仍可能出現在本機檔案中,例如工作階段文字記錄和您的提示歷史記錄,因此阻止 hook 不是將秘密保留在磁碟外的方式。要限制或移除這些檔案,請參閱 [純文字儲存](/docs/zh-TW/claude-directory#plaintext-storage) 和 [清除本機資料](/docs/zh-TW/claude-directory#clear-local-data)。1486`suppressOriginalPrompt` 只會變更阻擋訊息。送出的文字仍可能出現在本機檔案中,例如工作階段逐字稿與您的提示詞歷史記錄,因此阻擋 hook 並不是讓機密不落入磁碟的方法。若要限制或移除這些檔案,請參閱[純文字儲存](/docs/zh-TW/claude-directory#plaintext-storage)與[清除本機資料](/docs/zh-TW/claude-directory#clear-local-data)。

1479 1487 

1480<h3 id="userpromptexpansion">1488<h3 id="userpromptexpansion">

1481 UserPromptExpansion1489 UserPromptExpansion

1482</h3>1490</h3>

1483 1491 

1484在使用者輸入的命令擴展為提示之前執行,然後到達 Claude。使用此來阻止特定命令的直接呼叫、為特定 skill 注入背景資訊,或記錄使用者呼叫的命令。例如,匹配 `deploy` 的 hook 可以阻止 `/deploy`,除非存在核准檔案,或匹配審查 skill 的 hook 可以將團隊的審查檢查清單附加為 `additionalContext`。1492在使用者輸入的命令展開為提示詞、傳達給 Claude 之前執行。可用來阻擋特定命令被直接呼叫、為特定 skill 注入上下文,或記錄使用者呼叫了哪些命令。例如,比對 `deploy` 的 hook 可以在核准檔案不存在時阻擋 `/deploy`,或比對審查 skill 的 hook 可以將團隊的審查檢查清單作為 `additionalContext` 附加。

1485 1493 

1486此事件涵蓋 `PreToolUse` 不涵蓋的路徑:匹配 `Skill` 工具的 `PreToolUse` hook 僅在 Claude 呼叫工具時執行,但直接輸入 `/skillname` 會繞過 `PreToolUse`。`UserPromptExpansion` 在該直接路徑上執行。1494此事件涵蓋 `PreToolUse` 未涵蓋的路徑:比對 `Skill` 工具的 `PreToolUse` hook 只會在 Claude 呼叫該工具時觸發,但直接輸入 `/skillname` 會繞過 `PreToolUse`。`UserPromptExpansion` 會在該直接路徑上觸發。

1487 1495 

1488在 `command_name` 上匹配。將匹配器留空以對每個提示類型命令執行。1496比對 `command_name`。將 matcher 留空即可在每個提示詞類型的命令上觸發。

1489 1497 

1490<h4 id="userpromptexpansion-input">1498<h4 id="userpromptexpansion-input">

1491 UserPromptExpansion 輸入1499 UserPromptExpansion 輸入

1492</h4>1500</h4>

1493 1501 

1494除了 [常見輸入欄位](#common-input-fields) 外,UserPromptExpansion hooks 還會接收 `expansion_type`、`command_name`、`command_args`、`command_source` 和原始 `prompt` 字串。`expansion_type` 欄位對於 skill 和自訂命令為 `slash_command`,或對於 MCP 伺服器提示為 `mcp_prompt`。1502除了[通用輸入欄位](#common-input-fields)之外,UserPromptExpansion hook 還會接收 `expansion_type`、`command_name`、`command_args`、`command_source`,以及原始的 `prompt` 字串。`expansion_type` 欄位對於 skill 與自訂命令為 `slash_command`,對於 MCP 伺服器提示詞則為 `mcp_prompt`。

1495 1503 

1496```json theme={null}1504```json theme={null}

1497{1505{


1512 UserPromptExpansion 決策控制1520 UserPromptExpansion 決策控制

1513</h4>1521</h4>

1514 1522 

1515`UserPromptExpansion` hooks 可以阻止擴展或新增背景資訊。所有 [JSON 輸出欄位](#json-output) 都可用。1523`UserPromptExpansion` hook 可以阻擋展開或加入上下文。所有 [JSON 輸出欄位](#json-output)都可使用。

1516 1524 

1517| 欄位 | 描述 |1525| 欄位 | 說明 |

1518| :- | :- |1526| :- | :- |

1519| `decision` | `"block"` 防止命令擴展。省略以允許它繼續 |1527| `decision` | `"block"` 會阻止命令展開。省略則允許其繼續 |

1520| `reason` | 當 `decision` 為 `"block"` 時顯示給使用者 |1528| `reason` | 當 `decision` 為 `"block"` 時向使用者顯示 |

1521| `additionalContext` | 與展開的提示一起新增到 Claude 背景資訊的字串。有關詳細資訊,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1529| `additionalContext` | 與展開後的提示詞一同加入 Claude 上下文的字串。請參閱[為 Claude 加入上下文](#add-context-for-claude) |

1522 1530 

1523透過退出 2 阻止的 hook 路由方式與 `reason` 相同:阻止訊息向使用者顯示 stderr 文字。1531以退出碼 2 阻擋的 hook 與 `reason` 的處理方式相同:阻擋訊息會向使用者顯示 stderr 文字。

1524 1532 

1525```json theme={null}1533```json theme={null}

1526{1534{


1537 MessageDisplay1545 MessageDisplay

1538</h3>1546</h3>

1539 1547 

1540在助手訊息流向螢幕時執行。Claude Code 分批顯示訊息:每次一批新完成的行準備好呈現時,hook 執行一次,該批行,Claude Code 在其位置呈現 hook 的替換文字。長訊息會產生多個呼叫;短訊息可能只產生一個。1548在助理訊息串流到螢幕上時執行。Claude Code 會分段顯示訊息:每當一批新完成的行準備好呈現時,hook 就會以這些行執行一次,而 Claude Code 會在其位置呈現 hook 的替換文字。長訊息會產生多次呼叫;短訊息可能只產生一次。

1541 1549 

1542使用 MessageDisplay 來:1550使用 MessageDisplay 來:

1543 1551 

1544* 為最小顯示去除 markdown1552* 移除 markdown 以精簡顯示

1545* 轉換 Agent SDK 應用程式向其使用者顯示的文字1553* 轉換 Agent SDK 應用程式向其使用者顯示的文字

1546* 從 Claude 的回應中編輯 API 金鑰或內部主機名稱1554* 從 Claude 的回應中遮蔽 API 金鑰或內部主機名稱

1547 1555 

1548Claude Code 保持每個批次,直到您的 hook 返回,因此請保持 hook 快速。如果 hook 失敗或逾時,Claude Code 顯示原始文字。此事件的預設逾時為 10 秒;如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。1556Claude Code 會保留每一批內容直到您的 hook 回傳,因此請讓 hook 保持快速。如果 hook 失敗或逾時,Claude Code 會顯示原始文字。此事件的預設逾時為 10 秒;如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。

1549 1557 

1550MessageDisplay 僅用於顯示:替換文字僅更改螢幕上呈現的內容。文字記錄和 Claude 看到的內容保持原始文字,因此 Claude 永遠看不到替換,詳細模式顯示原始文字。hook 僅接收助手訊息文字,因此工具結果和您輸入的文字呈現不變。1558MessageDisplay 僅影響顯示:替換文字只會改變螢幕上呈現的內容。逐字稿與 Claude 看到的內容會保留原始文字,因此 Claude 永遠不會看到替換內容,而詳細模式會顯示原始內容。hook 只接收助理訊息文字,因此工具結果與您輸入的文字會原樣呈現。

1551 1559 

1552MessageDisplay 不支援匹配器,對每個流向文字的助手訊息執行;沒有文字的訊息(例如僅工具呼叫回應)不會觸發它。1560MessageDisplay 不支援 matcher,會對每一則串流文字的助理訊息觸發;沒有文字的訊息,例如只有工具呼叫的回應,不會觸發它。

1553 1561 

1554在非互動執行中,包括 Agent SDK 查詢和 `claude -p`,MessageDisplay 每個助手訊息執行一次,而不是每批行執行一次。單個呼叫在訊息完成後到達,並攜帶完整訊息文字:`index` 為 `0`、`final` 為 `true`,`delta` 保持整個訊息。為每個訊息收集 `delta` 文字的 hook 在兩種模式中接收相同的總文字。1562在非互動式執行中,包括 Agent SDK 查詢與 `claude -p`,MessageDisplay 會針對每則助理訊息執行一次,而非每批行執行一次。這次單一呼叫會在訊息完成後送達,並攜帶完整的訊息文字:`index` 為 `0`、`final` 為 `true`,而 `delta` 包含整則訊息。為每則訊息收集 `delta` 文字的 hook,在兩種模式下都會接收到相同的完整文字。

1555 1563 

1556<h4 id="messagedisplay-input">1564<h4 id="messagedisplay-input">

1557 MessageDisplay 輸入1565 MessageDisplay 輸入

1558</h4>1566</h4>

1559 1567 

1560除了 [常見輸入欄位](#common-input-fields) 外,MessageDisplay hooks 還會接收回合和訊息的識別碼、此呼叫在訊息內的位置,以及 `delta` 中的新文字。批次邊界取決於文字流的方式,因此使用 `index` 和 `final` 追蹤訊息的進度,而不是期望行以特定方式分組。1568除了[通用輸入欄位](#common-input-fields)之外,MessageDisplay hook 還會接收回合與訊息的識別碼、此次呼叫在訊息中的位置,以及 `delta` 中的新文字。批次邊界取決於文字的串流方式,因此請使用 `index` 與 `final` 追蹤訊息的進度,而不要預期行會以特定方式分組。

1561 1569 

1562| 欄位 | 描述 |1570| 欄位 | 說明 |

1563| :- | :- |1571| :- | :- |

1564| `turn_id` | 目前回合的 UUID |1572| `turn_id` | 目前回合的 UUID |

1565| `message_id` | 正在顯示的助手訊息的 UUID。在同一訊息的每個批次中穩定。這不是 API `msg_…` id,因此無法與文字記錄訊息 ids 相關聯 |1573| `message_id` | 正在顯示的助理訊息的 UUID。在同一則訊息的每一批中保持不變。這不是 API 的 `msg_…` id,因此無法與逐字稿的訊息 id 對應 |

1566| `index` | 此批次在訊息內的零基索引 |1574| `index` | 此批次在訊息中從零起算的索引 |

1567| `final` | 在訊息的最後一個批次上為 `true`。每個訊息恰好有一個最終批次 |1575| `final` | 在訊息的最後一批時為 `true`。每則訊息恰好有一個最後批次 |

1568| `delta` | 自上一個批次以來新完成的行,包括終止換行符。始終是完整行,除了最終批次可能在行中結束。在互動執行中,當訊息以換行符結束時,最終批次的 delta 為空,因此將 `final` 而不是非空 delta 視為訊息結束信號。在 Agent SDK 和 `claude -p` 執行中,單個呼叫攜帶整個訊息 |1576| `delta` | 自前一批以來新完成的行,包含結尾的換行字元。一律為完整的行,但最後一批可能在行中間結束。在互動式執行中,當訊息以換行字元結束時,最後一批的 delta 為空,因此請將 `final`(而非非空的 delta)視為訊息結束的訊號。在 Agent SDK 與 `claude -p` 執行中,單一呼叫會攜帶整則訊息 |

1569 1577 

1570```json theme={null}1578```json theme={null}

1571{1579{


1585 MessageDisplay 輸出1593 MessageDisplay 輸出

1586</h4>1594</h4>

1587 1595 

1588除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,MessageDisplay hooks 可以返回 `displayContent` 以替換螢幕上的 delta:1596除了所有 hook 都可使用的 [JSON 輸出欄位](#json-output)之外,MessageDisplay hook 還可以回傳 `displayContent`,以在螢幕上替換 delta:

1589 1597 

1590| 欄位 | 描述 |1598| 欄位 | 說明 |

1591| :- | :- |1599| :- | :- |

1592| `displayContent` | 顯示以代替 delta 的文字。省略以顯示原始文字 |1600| `displayContent` | 取代 delta 顯示的文字。省略則顯示原始內容 |

1593 1601 

1594MessageDisplay hooks 沒有決策控制。它們無法阻止訊息或更改文字記錄中儲存或傳送給 Claude 的內容。Claude Code 作用於它們的 JSON 輸出中的 `displayContent` 並捨棄 `systemMessage` 和 `continue`。1602MessageDisplay hook 沒有決策控制。它們無法阻擋訊息,也無法變更儲存在逐字稿中或傳送給 Claude 的內容。Claude Code 會依據其 JSON 輸出中的 `displayContent` 採取動作,並捨棄 `systemMessage` 與 `continue`。

1595 1603 

1596此範例從 Claude 的回應中去除 markdown 格式以進行純文字顯示。指令碼從 stdin 讀取每個批次,從 `delta` 中移除粗體標記和內聯代碼反引號,並將結果作為 `displayContent` 返回。1604此範例會從 Claude 的回應中移除 markdown 格式,以純文字顯示。指令碼從 stdin 讀取每一批內容,從 `delta` 中移除粗體標記與行內程式碼反引號,並將結果以 `displayContent` 回傳。

1597 1605 

1598<Tabs>1606<Tabs>

1599 <Tab title="macOS/Linux">1607 <Tab title="macOS/Linux">

1600 在您的設定檔中為事件註冊命令 hook:1608 在您的設定檔中為此事件註冊 command hook:

1601 1609 

1602 ```json theme={null}1610 ```json theme={null}

1603 {1611 {


1617 }1625 }

1618 ```1626 ```

1619 1627 

1620 將此指令碼儲存到您的專案中的 `.claude/hooks/plain-display.sh` 並使用 `chmod +x` 使其可執行:1628 將此指令碼儲存至專案中的 `.claude/hooks/plain-display.sh`,並以 `chmod +x` 使其可執行:

1621 1629 

1622 ```bash theme={null}1630 ```bash theme={null}

1623 #!/bin/bash1631 #!/bin/bash


1626 </Tab>1634 </Tab>

1627 1635 

1628 <Tab title="Windows (PowerShell)">1636 <Tab title="Windows (PowerShell)">

1629 註冊一個命令 hook,透過 PowerShell 執行指令碼:1637 註冊透過 PowerShell 執行指令碼的 command hook:

1630 1638 

1631 ```json theme={null}1639 ```json theme={null}

1632 {1640 {


1652 }1660 }

1653 ```1661 ```

1654 1662 

1655 `-NoProfile` 旗標跳過載入您的 PowerShell 設定檔,以便 hook 快速啟動,`-ExecutionPolicy Bypass` 讓 PowerShell 執行本機指令碼檔案。1663 `-NoProfile` 旗標會略過載入您的 PowerShell 設定檔,讓 hook 快速啟動,而 `-ExecutionPolicy Bypass` 讓 PowerShell 能執行本機指令碼檔案。

1656 1664 

1657 將此指令碼儲存到您的專案中的 `.claude/hooks/plain-display.ps1`:1665 將此指令碼儲存至專案中的 `.claude/hooks/plain-display.ps1`:

1658 1666 

1659 ```powershell theme={null}1667 ```powershell theme={null}

1660 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json1668 $batch = [Console]::In.ReadToEnd() | ConvertFrom-Json


1669 </Tab>1677 </Tab>

1670</Tabs>1678</Tabs>

1671 1679 

1672沒有 markdown 的批次會原封不動地通過。如果指令碼失敗,例如因為 `jq` 遺失,Claude Code 顯示原始文字,並僅在 [debug output](#debug-hooks) 中記錄失敗,而不是在工作階段中。1680不含 markdown 的批次會原樣通過。如果指令碼失敗,例如因為缺少 `jq`,Claude Code 會顯示原始文字,且只在[偵錯輸出](#debug-hooks)中記錄失敗,而不會在工作階段中顯示。

1673 1681 

1674<h3 id="pretooluse">1682<h3 id="pretooluse">

1675 PreToolUse1683 PreToolUse

1676</h3>1684</h3>

1677 1685 

1678在 Claude 建立工具參數之後、處理工具呼叫之前執行。在除 `EndConversation` 外的任何工具名稱上匹配:內建工具,例如 `Bash`、`PowerShell`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`Workflow`、`WebFetch`、`WebSearch`、`AskUserQuestion` 和 `ExitPlanMode`,以及任何 [MCP 工具名稱](#match-mcp-tools)。1686在 Claude 建立工具參數之後、處理工具呼叫之前執行。比對 `EndConversation` 以外的任何工具名稱:內建工具,例如 `Bash`、`PowerShell`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`Workflow`、`WebFetch`、`WebSearch`、`AskUserQuestion` 與 `ExitPlanMode`,以及任何 [MCP 工具名稱](#match-mcp-tools)。

1679 1687 

1680要在特定檔案在磁碟上變更時執行 hook,無論什麼寫入它,請改用 [FileChanged](#filechanged) 而不是按名稱匹配檔案編輯工具。與 PreToolUse 不同,Claude Code 在變更後執行 FileChanged hooks,它們沒有決策控制,因此無法阻止寫入。1688若要在特定檔案於磁碟上變更時執行 hook(無論由誰寫入),請使用 [FileChanged](#filechanged),而不要依名稱比對編輯檔案的工具。與 PreToolUse 不同,Claude Code 會在變更之後執行 FileChanged hook,且它們沒有決策控制,因此無法阻擋寫入。

1681 1689 

1682<Warning>1690<Warning>

1683 PreToolUse 僅在 Claude 呼叫工具時執行。您在提示中 [使用 `@` 參考的檔案](/docs/zh-TW/common-workflows#reference-files-and-directories) 會被新增而不進行任何工具呼叫:Claude Code 在建立提示時插入其內容,因此沒有 PreToolUse hook 對它們執行,包括匹配 `Read` 的 hooks。要阻止特定路徑的 `@` 參考,請改用 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。1691 PreToolUse 只會在 Claude 呼叫工具時執行。您[在提示詞中以 `@` 參照](/docs/zh-TW/common-workflows#reference-files-and-directories)的檔案會在沒有任何工具呼叫的情況下加入:Claude Code 在建構提示詞時插入其內容,因此不會為它們觸發任何 PreToolUse hook,包括比對 `Read` 的 hook。若要阻擋特定路徑被 `@` 參照,請改用 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。

1684 1692 

1685 PreToolUse 也不會對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 執行。1693 PreToolUse 也不會為 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。

1686</Warning>1694</Warning>

1687 1695 

1688使用 [PreToolUse 決策控制](#pretooluse-decision-control) 來允許、拒絕、詢問或延遲工具呼叫。1696使用 [PreToolUse 決策控制](#pretooluse-decision-control)來允許、拒絕、詢問或延後工具呼叫。

1689 1697 

1690在 `PreToolUse` 上超過逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會阻止工具呼叫,Claude 會收到命名逾時的錯誤結果。另一個 hook 返回的明確拒絕仍然優先。1698`PreToolUse` 上超過逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會阻擋工具呼叫,而 Claude 會收到指出該逾時的錯誤結果。其他 hook 回傳的明確拒絕仍優先於此。

1691 1699 

1692<h4 id="pretooluse-input">1700<h4 id="pretooluse-input">

1693 PreToolUse 輸入1701 PreToolUse 輸入

1694</h4>1702</h4>

1695 1703 

1696除了 [常見輸入欄位](#common-input-fields) 外,PreToolUse hooks 還會接收 `tool_name`、`tool_input` 和 `tool_use_id`。1704除了[通用輸入欄位](#common-input-fields)之外,PreToolUse hook 還會接收 `tool_name`、`tool_input` 與 `tool_use_id`。

1697 1705 

1698對於 [MCP 工具](#match-mcp-tools),輸入還攜帶 `mcp_server`,一個具有伺服器 `name` 和 `source` 的物件,說明伺服器定義的來源。`source` 值包括 `plugin`、`sdk` 和配置範圍,例如 `user` 和 `project`。[Agent SDK 參考中的 `McpServerProvenance`](/docs/zh-TW/agent-sdk/typescript#mcpserverprovenance) 列出它們全部並說明如何處理您不認識的。基於 `source` 而不是 `name` 或 `mcp__<server>__` 工具名稱前綴做出信任決定。`mcp_server` 欄位需要 Claude Code v2.1.274 或更新版本。1706對於 [MCP 工具](#match-mcp-tools),輸入還會攜帶 `mcp_server`,這是一個包含伺服器 `name` 以及 `source` 的物件,`source` 說明伺服器的定義來自何處。`source` 值包括 `plugin`、`sdk`,以及 `user` 與 `project` 等設定範圍。Agent SDK 參考文件中的 [`McpServerProvenance`](/docs/zh-TW/agent-sdk/typescript#mcpserverprovenance) 列出了所有值,並說明如何處理無法辨識的值。請依據 `source` 而非 `name` 或 `mcp__<server>__` 工具名稱前綴做出信任決策。`mcp_server` 欄位需要 Claude Code v2.1.274 或更新版本。

1699 1707 

1700對於檔案工具 `Write`、`Edit` 和 `Read`,`tool_input.file_path` 始終是絕對的:1708對於檔案工具 `Write`、`Edit` 與 `Read`,`tool_input.file_path` 一律為絕對路徑:

1701 1709 

1702* Claude Code 在 hooks 執行之前展開 `~` 和相對路徑,因此匹配路徑的 hook 無法透過 `~` 或相同路徑的相對拼寫繞過1710* Claude Code 會在 hook 執行之前展開 `~` 與相對路徑,因此比對路徑的 hook 無法透過 `~` 或同一路徑的相對寫法被繞過

1703* 在 Windows 上,路徑到達時帶有反斜線分隔符,即使您的 hook 在 Git Bash 下執行,其中 `$PWD` 看起來像 `/c/project`1711* 在 Windows 上,路徑會以反斜線分隔符號傳入,即使您的 hook 在 Git Bash 下執行、其中 `$PWD` 看起來像 `/c/project` 也是如此

1704* 使用正斜線編寫的比較,例如 `/src/` 檢查,永遠不會匹配反斜線路徑,工具呼叫會如同 hook 沒有要阻止的內容一樣進行1712* 以正斜線撰寫的比較,例如 `/src/` 檢查,永遠不會與反斜線路徑相符,工具呼叫會如同 hook 沒有可阻擋的內容般繼續

1705* 在比較之前規範化分隔符:Bash 中的 `FILE_PATH="${FILE_PATH//\\//}"` 或 Python 中的 `file_path.replace("\\", "/")`,然後匹配路徑段,例如 `/src/`,而不是使用 `^` 錨定,因為路徑是絕對的1713* 請在比較前將分隔符號正規化:在 Bash 中使用 `FILE_PATH="${FILE_PATH//\\//}"`,在 Python 中使用 `file_path.replace("\\", "/")`,然後比對路徑片段,例如 `/src/`,而不要以 `^` 錨定,因為路徑是絕對路徑

1706 1714 

1707Windows 上的 `Write` 呼叫傳遞:1715Windows 上的 `Write` 呼叫會傳遞:

1708 1716 

1709```json theme={null}1717```json theme={null}

1710{1718{


1728 1736 

1729執行 shell 命令。1737執行 shell 命令。

1730 1738 

1731| 欄位 | 類型 | 範例 | 描述 |1739| 欄位 | 類型 | 範例 | 說明 |

1732| :- | :- | :- | :- |1740| :- | :- | :- | :- |

1733| `command` | string | `"npm test"` | 要執行的 shell 命令 |1741| `command` | string | `"npm test"` | 要執行的 shell 命令 |

1734| `description` | string | `"Run test suite"` | 命令執行內容的可選描述 |1742| `description` | string | `"Run test suite"` | 選擇性的命令用途說明 |

1735| `timeout` | number | `120000` | 可選逾時(毫秒)。高於 [最大值](/docs/zh-TW/tools-reference#bash-tool-behavior) 的值會減少到最大值,而不是被拒絕 |1743| `timeout` | number | `120000` | 選擇性的逾時(毫秒)。超過[上限](/docs/zh-TW/tools-reference#bash-tool-behavior)的值會被降為上限,而不會被拒絕 |

1736| `run_in_background` | boolean | `false` | 是否在背景執行命令 |1744| `run_in_background` | boolean | `false` | 是否在背景執行命令 |

1737 1745 

1738當 Bash 命令更改 Git 儲存庫中的檔案時,Claude Code 可以記錄變更的內容。當 [`bashEditDiffEnabled`](/docs/zh-TW/settings-reference#basheditdiffenabled) 設定打開記錄時,它在每個權限模式中記錄它們;該設定的項目說明哪些檔案可以設定它。否則,它僅在自動模式和 `bypassPermissions` 模式中記錄它們,並且僅當 Claude Code 指導 Claude 透過 Bash 編輯檔案時。設定 `bashEditDiffEnabled` 為 `false` 以關閉記錄。背景命令和唯讀命令不攜帶 diff。1746當 Bash 命令變更 Git 儲存庫中的檔案時,Claude Code 可以記錄變更內容。當 [`bashEditDiffEnabled`](/docs/zh-TW/settings-reference#basheditdiffenabled) 設定開啟記錄時,它會在每種權限模式下記錄變更;該設定的項目說明了哪些檔案可以設定它。否則,它只會在自動模式與 `bypassPermissions` 模式下記錄,且僅在 Claude Code 指示 Claude 透過 Bash 編輯檔案時記錄。將 `bashEditDiffEnabled` 設為 `false` 即可關閉記錄。背景命令與唯讀命令不會攜帶差異。

1739 1747 

1740您的 [PostToolUse hook](#posttooluse) 然後在 `tool_response.bashEditDiff` 中接收變更的檔案。該清單涵蓋命令執行時在儲存庫下變更的內容。Git 忽略的檔案和子模組中的檔案不會列出。需要 Claude Code v2.1.269 或更新版本。1748接著,您的 [PostToolUse hook](#posttooluse) 會在 `tool_response.bashEditDiff` 中接收已變更的檔案。清單涵蓋命令執行期間儲存庫下的變更。Git 忽略的檔案與子模組中的檔案不會列出。需要 Claude Code v2.1.269 或更新版本。

1741 1749 

1742<Note>1750<Note>

1743 該清單是盡力而為的,處於公開測試版。Claude Code 可能會遺漏變更、包含另一個程序同時變更的檔案,或在其大小限制處停止。欄位形狀可能會變更。使用該清單找到要審查的內容,而不是強制執行原則。1751 此清單為盡力而為,且處於公開測試版。Claude Code 可能遺漏變更、包含同時被其他程序變更的檔案,或在達到大小限制時停止。欄位結構可能會變更。請使用此清單找出需要審查的內容,而不要用來強制執行政策。

1744</Note>1752</Note>

1745 1753 

1746`changedFiles` 和 `files` 列出命令變更的內容;其餘欄位說明該清單的完整性和可靠性。1754`changedFiles` 與 `files` 列出命令變更的內容;其餘欄位說明該清單的完整程度與可靠程度。

1747 1755 

1748| 欄位 | 類型 | 範例 | 描述 |1756| 欄位 | 類型 | 範例 | 說明 |

1749| :- | :- | :- | :- |1757| :- | :- | :- | :- |

1750| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令變更的檔案的絕對路徑,最多 200 個。每當 `files` 保持 diff 或 `moreFiles` 高於零時出現 |1758| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令變更的檔案絕對路徑,最多 200 個。只要 `files` 包含差異或 `moreFiles` 大於零就會出現 |

1751| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 個變更檔案的 diffs,用於顯示。對於命令新增或移除的檔案,`created` 或 `deleted` 為 `true` |1759| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 個已變更檔案的差異,供顯示用。對於命令新增或移除的檔案,`created` 或 `deleted` 為 `true` |

1752| `moreFiles` | number | `2` | 在 `files` 中沒有 diff 的變更檔案計數 |1760| `moreFiles` | number | `2` | 在 `files` 中沒有差異的已變更檔案數 |

1753| `unavailable` | boolean | `true` | 當 diff 不完整或無法取得時設定 |1761| `unavailable` | boolean | `true` | 當差異不完整或無法取得時設定 |

1754| `skipped` | boolean | `true` | 對於移動工作樹的 Git 命令設定,例如 `git checkout` 或 `git stash`,因此 Claude Code 不取 diff |1762| `skipped` | boolean | `true` | 針對會移動工作樹的 Git 命令設定,例如 `git checkout` 或 `git stash`,因此 Claude Code 不會取得差異 |

1755| `shared` | boolean | `true` | 當另一個 Bash 工具呼叫(例如子代理的)同時在同一儲存庫中執行時設定,因此某些列出的變更可能是該命令的 |1763| `shared` | boolean | `true` | 當另一個 Bash 工具呼叫(例如 subagent 的呼叫)同時在同一個儲存庫中執行時設定,因此部分列出的變更可能來自該命令 |

1756 1764 

1757<a id="powershell" />1765<a id="powershell" />

1758 1766 


1760 PowerShell1768 PowerShell

1761</h5>1769</h5>

1762 1770 

1763執行 PowerShell 命令。有關按平台的可用性,請參閱 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)。1771執行 PowerShell 命令。關於各平台的可用性,請參閱 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)。

1764 1772 

1765欄位與 Bash 工具匹配,命令字串在 `command` 中:1773欄位與 Bash 工具相同,命令字串位於 `command`:

1766 1774 

1767| 欄位 | 類型 | 範例 | 描述 |1775| 欄位 | 類型 | 範例 | 說明 |

1768| :- | :- | :- | :- |1776| :- | :- | :- | :- |

1769| `command` | string | `"Get-ChildItem -Recurse"` | 要執行的 PowerShell 命令 |1777| `command` | string | `"Get-ChildItem -Recurse"` | 要執行的 PowerShell 命令 |

1770| `description` | string | `"List files recursively"` | 命令執行內容的可選描述 |1778| `description` | string | `"List files recursively"` | 選擇性的命令用途說明 |

1771| `timeout` | number | `120000` | 可選逾時(毫秒) |1779| `timeout` | number | `120000` | 選擇性的逾時(毫秒) |

1772| `run_in_background` | boolean | `false` | 是否在背景執行命令 |1780| `run_in_background` | boolean | `false` | 是否在背景執行命令 |

1773 1781 

1774在檢查 shell 命令的 hooks 中匹配 `Bash|PowerShell`,以便它們涵蓋兩個工具:1782在檢查 shell 命令的 hook 中請比對 `Bash|PowerShell`,以涵蓋兩種工具:

1775 1783 

1776* 在 Windows 上,無論 PowerShell 工具是否啟用,Claude 將 PowerShell 視為主要 shell 並透過它路由 shell 命令。1784* 在 Windows 上,只要啟用了 PowerShell 工具,Claude 就會將 PowerShell 視為主要 shell,並透過它執行 shell 命令。

1777* 在沒有 Git Bash 的 Windows 上,工具會自動啟用,Claude Code 根本不註冊 Bash 工具。1785* 在沒有 Git Bash 的 Windows 上,該工具會自動啟用,而 Claude Code 完全不會註冊 Bash 工具。

1778* 僅匹配 `Bash` 的 hook 永遠不會在那裡執行。1786* 只比對 `Bash` 的 hook 在那裡永遠不會觸發。

1779 1787 

1780<h5 id="write">1788<h5 id="write">

1781 Write1789 Write


1783 1791 

1784建立或覆寫檔案。1792建立或覆寫檔案。

1785 1793 

1786| 欄位 | 類型 | 範例 | 描述 |1794| 欄位 | 類型 | 範例 | 說明 |

1787| :- | :- | :- | :- |1795| :- | :- | :- | :- |

1788| `file_path` | string | `"/path/to/file.txt"` | 要寫入的檔案的絕對路徑 |1796| `file_path` | string | `"/path/to/file.txt"` | 要寫入的檔案絕對路徑 |

1789| `content` | string | `"file content"` | 要寫入檔案的內容 |1797| `content` | string | `"file content"` | 要寫入檔案的內容 |

1790 1798 

1791<h5 id="edit">1799<h5 id="edit">

1792 Edit1800 Edit

1793</h5>1801</h5>

1794 1802 

1795替換現有檔案中的字串。1803取代現有檔案中的字串。

1796 1804 

1797| 欄位 | 類型 | 範例 | 描述 |1805| 欄位 | 類型 | 範例 | 說明 |

1798| :- | :- | :- | :- |1806| :- | :- | :- | :- |

1799| `file_path` | string | `"/path/to/file.txt"` | 要編輯的檔案的絕對路徑 |1807| `file_path` | string | `"/path/to/file.txt"` | 要編輯的檔案絕對路徑 |

1800| `old_string` | string | `"original text"` | 要尋找和替換的文字 |1808| `old_string` | string | `"original text"` | 要尋找並取代的文字 |

1801| `new_string` | string | `"replacement text"` | 替換文字 |1809| `new_string` | string | `"replacement text"` | 取代文字 |

1802| `replace_all` | boolean | `false` | 是否替換所有出現次數 |1810| `replace_all` | boolean | `false` | 是否取代所有出現處 |

1803 1811 

1804<h5 id="read">1812<h5 id="read">

1805 Read1813 Read


1807 1815 

1808讀取檔案內容。1816讀取檔案內容。

1809 1817 

1810| 欄位 | 類型 | 範例 | 描述 |1818| 欄位 | 類型 | 範例 | 說明 |

1811| :- | :- | :- | :- |1819| :- | :- | :- | :- |

1812| `file_path` | string | `"/path/to/file.txt"` | 要讀取的檔案的絕對路徑 |1820| `file_path` | string | `"/path/to/file.txt"` | 要讀取的檔案絕對路徑 |

1813| `offset` | number | `10` | 可選的開始讀取的行號 |1821| `offset` | number | `10` | 選擇性的起始讀取行號 |

1814| `limit` | number | `50` | 可選的要讀取的行數 |1822| `limit` | number | `50` | 選擇性的讀取行數 |

1815 1823 

1816<h5 id="glob">1824<h5 id="glob">

1817 Glob1825 Glob

1818</h5>1826</h5>

1819 1827 

1820尋找與 glob 模式匹配的檔案。1828尋找符合 glob 模式的檔案。

1821 1829 

1822| 欄位 | 類型 | 範例 | 描述 |1830| 欄位 | 類型 | 範例 | 說明 |

1823| :- | :- | :- | :- |1831| :- | :- | :- | :- |

1824| `pattern` | string | `"**/*.ts"` | 要匹配檔案的 Glob 模式 |1832| `pattern` | string | `"**/*.ts"` | 用來比對檔案的 glob 模式 |

1825| `path` | string | `"/path/to/dir"` | 可選的要搜尋的目錄。預設為目前工作目錄 |1833| `path` | string | `"/path/to/dir"` | 選擇性的搜尋目錄。預設為目前工作目錄 |

1826 1834 

1827<h5 id="grep">1835<h5 id="grep">

1828 Grep1836 Grep

1829</h5>1837</h5>

1830 1838 

1831使用正規表達式搜尋檔案內容。1839以規則運算式搜尋檔案內容。

1832 1840 

1833| 欄位 | 類型 | 範例 | 描述 |1841| 欄位 | 類型 | 範例 | 說明 |

1834| :- | :- | :- | :- |1842| :- | :- | :- | :- |

1835| `pattern` | string | `"TODO.*fix"` | 要搜尋的正規表達式模式 |1843| `pattern` | string | `"TODO.*fix"` | 要搜尋的規則運算式模式 |

1836| `path` | string | `"/path/to/dir"` | 可選的要搜尋的檔案或目錄 |1844| `path` | string | `"/path/to/dir"` | 選擇性的搜尋檔案或目錄 |

1837| `glob` | string | `"*.ts"` | 可選的 glob 模式以篩選檔案 |1845| `glob` | string | `"*.ts"` | 選擇性的檔案篩選 glob 模式 |

1838| `output_mode` | string | `"content"` | `"content"`、`"files_with_matches"` 或 `"count"`。預設為 `"files_with_matches"` |1846| `output_mode` | string | `"content"` | `"content"`、`"files_with_matches"` 或 `"count"`。預設為 `"files_with_matches"` |

1839| `-i` | boolean | `true` | 不區分大小寫的搜尋 |1847| `-i` | boolean | `true` | 不區分大小寫搜尋 |

1840| `multiline` | boolean | `false` | 啟用多行匹配 |1848| `multiline` | boolean | `false` | 啟用多行比對 |

1841 1849 

1842<h5 id="webfetch">1850<h5 id="webfetch">

1843 WebFetch1851 WebFetch

1844</h5>1852</h5>

1845 1853 

1846擷取和處理網路內容。1854擷取並處理網頁內容。

1847 1855 

1848| 欄位 | 類型 | 範例 | 描述 |1856| 欄位 | 類型 | 範例 | 說明 |

1849| :- | :- | :- | :- |1857| :- | :- | :- | :- |

1850| `url` | string | `"https://example.com/api"` | 要擷取內容的 URL |1858| `url` | string | `"https://example.com/api"` | 要擷取內容的 URL |

1851| `prompt` | string | `"Extract the API endpoints"` | 在擷取的內容上執行的提示 |1859| `prompt` | string | `"Extract the API endpoints"` | 要對擷取內容執行的提示詞 |

1852 1860 

1853<h5 id="websearch">1861<h5 id="websearch">

1854 WebSearch1862 WebSearch


1856 1864 

1857搜尋網路。1865搜尋網路。

1858 1866 

1859| 欄位 | 類型 | 範例 | 描述 |1867| 欄位 | 類型 | 範例 | 說明 |

1860| :- | :- | :- | :- |1868| :- | :- | :- | :- |

1861| `query` | string | `"react hooks best practices"` | 搜尋查詢 |1869| `query` | string | `"react hooks best practices"` | 搜尋查詢 |

1862| `allowed_domains` | array | `["docs.example.com"]` | 可選:僅包含來自這些網域的結果 |1870| `allowed_domains` | array | `["docs.example.com"]` | 選擇性:只包含來自這些網域的結果 |

1863| `blocked_domains` | array | `["spam.example.com"]` | 可選:排除來自這些網域的結果 |1871| `blocked_domains` | array | `["spam.example.com"]` | 選擇性:排除來自這些網域的結果 |

1864 1872 

1865<h5 id="agent">1873<h5 id="agent">

1866 Agent1874 Agent

1867</h5>1875</h5>

1868 1876 

1869生成 [子代理](/docs/zh-TW/sub-agents)。1877產生一個 [subagent](/docs/zh-TW/sub-agents)。

1870 1878 

1871| 欄位 | 類型 | 範例 | 描述 |1879| 欄位 | 類型 | 範例 | 說明 |

1872| :- | :- | :- | :- |1880| :- | :- | :- | :- |

1873| `prompt` | string | `"Find all API endpoints"` | 代理要執行的任務 |1881| `prompt` | string | `"Find all API endpoints"` | agent 要執行的任務 |

1874| `description` | string | `"Find API endpoints"` | 任務的簡短描述 |1882| `description` | string | `"Find API endpoints"` | 任務的簡短說明 |

1875| `subagent_type` | string | `"Explore"` | 要使用的專門代理類型 |1883| `subagent_type` | string | `"Explore"` | 要使用的專門 agent 類型 |

1876| `model` | string | `"sonnet"` | 可選的模型別名以覆寫預設值 |1884| `model` | string | `"sonnet"` | 選擇性的模型別名,用以覆寫預設值 |

1877 1885 

1878當前景 Agent 呼叫完成時,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子代理的結果和執行遙測。讀取這些欄位以檢查執行;對於跨子代理的權杖和成本匯總,使用 [權杖和成本計數器](/docs/zh-TW/monitoring-usage#token-counter),篩選為 `query_source` `"subagent"`,因為 `totalTokens` 和 `usage` 僅涵蓋最終請求:1886當前景 Agent 呼叫完成時,您的 [PostToolUse hook](#posttooluse) 會在 `tool_response` 中接收 subagent 的結果與執行遙測。請讀取這些欄位來檢視執行情況;若要彙總各 subagent 的 token 與成本,請使用以 `query_source` `"subagent"` 篩選的 [token 與成本計數器](/docs/zh-TW/monitoring-usage#token-counter),因為 `totalTokens` 與 `usage` 只涵蓋最後一個請求:

1879 1887 

1880| 欄位 | 類型 | 範例 | 描述 |1888| 欄位 | 類型 | 範例 | 說明 |

1881| :- | :- | :- | :- |1889| :- | :- | :- | :- |

1882| `status` | string | `"completed"` | 前景 subagent 為 `"completed"`,背景 subagent 為 `"async_launched"`。subagent 預設在背景執行,因此省略 `run_in_background` 的 Agent 呼叫也會產生 `"async_launched"` |1890| `status` | string | `"completed"` | 前景 subagent 為 `"completed"`,背景 subagent 為 `"async_launched"`。subagent 預設在背景執行,因此省略 `run_in_background` 的 Agent 呼叫也會產生 `"async_launched"` |

1883| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子代理執行的識別碼 |1891| `agentId` | string | `"a4d2c8f1e0b3a297"` | subagent 執行的識別碼 |

1884| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子代理的最終文字區塊,或對於其報告透過 `SubagentHandback` 的子代理,關於該交接的簡短說明代替 |1892| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | subagent 最終的文字區塊;若 subagent 的報告是透過 `SubagentHandback` 傳遞,則改為關於該交回的簡短說明 |

1885| `resolvedModel` | string | `"claude-sonnet-4-5"` | 子代理啟動的模型,可能與請求的模型不同 |1893| `resolvedModel` | string | `"claude-sonnet-4-5"` | subagent 開始時使用的模型,可能與所請求的模型不同 |

1886| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 按順序使用的模型,連續重複折疊;僅在模型在執行中交換時設定。需要 Claude Code v2.1.212 或更新版本 |1894| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 依序使用的模型,連續重複的項目會合併;僅在執行途中切換模型時設定。需要 Claude Code v2.1.212 或更新版本 |

1887| `totalTokens` | number | `12450` | 子代理最終 API 請求的權杖計數:輸入、輸出和快取權杖合併。這不是整個執行的總計 |1895| `totalTokens` | number | `12450` | subagent 最後一個 API 請求的 token 數:輸入、輸出與快取 token 的總和。這並非整個執行的總計 |

1888| `totalDurationMs` | number | `48211` | 子代理執行的牆上時間持續時間 |1896| `totalDurationMs` | number | `48211` | subagent 執行的實際時間長度 |

1889| `totalToolUseCount` | number | `7` | 子代理進行的工具呼叫計數 |1897| `totalToolUseCount` | number | `7` | subagent 進行的工具呼叫次數 |

1890| `usage` | object | `{"input_tokens": 8320, ...}` | 最終 API 請求的每類型權杖細目:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |1898| `usage` | object | `{"input_tokens": 8320, ...}` | 最後一個 API 請求依類型的 token 明細:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |

1891 1899 

1892在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理(Claude Code 在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中提供)透過該工具傳遞其報告,而不是將其作為文字返回。其 `completed` 結果的 `content` 欄位然後攜帶關於該交接的簡短說明,而不是報告本身。要讀取報告,匹配 `PreToolUse` 或 `PostToolUse` hook 在 `SubagentHandback` 上並讀取 `tool_input.message`。1900在 Claude Code v2.1.271 或更新版本中,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具(Claude Code 在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中提供)執行的 subagent,會透過該工具傳遞其報告,而非以文字回傳。此時其 `completed` 結果的 `content` 欄位攜帶的是關於該交回的簡短說明,而非報告本身。若要讀取報告,請讓 `PreToolUse` 或 `PostToolUse` hook 比對 `SubagentHandback`,並讀取 `tool_input.message`。

1893 1901 

1894對於背景子代理,工具在任務移到背景時返回,因此 `tool_response` 不攜帶使用欄位:背景啟動立即返回,前景任務在該轉換時由 Claude Code 背景化返回。它有 `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile` 和 `resolvedModel`。1902對於背景 subagent,工具會在任務移至背景時回傳,因此 `tool_response` 不攜帶使用量欄位:背景啟動會立即回傳,而 Claude Code 在執行途中移至背景的前景任務則會在該轉換時回傳。它包含 `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile` 與 `resolvedModel`。

1895 1903 

1896在 `completed` 回應上,`resolvedModel` 命名子代理啟動的模型,可能與 `tool_input` 中的 `model` 值不同,例如當 `availableModels` 或另一個覆寫適用時。在 `async_launched` 回應上,`resolvedModel` 命名代理移到背景時使用的模型,因此在背景化之前發生的交換會反映在那裡。`modelsUsed` 和背景化時間 `resolvedModel` 行為需要 Claude Code v2.1.212 或更新版本。1904在 `completed` 回應中,`resolvedModel` 指出 subagent 開始時使用的模型,可能與 `tool_input` 中的 `model` 值不同,例如套用了 `availableModels` 或其他覆寫時。在 `async_launched` 回應中,`resolvedModel` 指出 agent 移至背景時使用中的模型,因此在移至背景之前發生的切換會反映在此。`modelsUsed` 以及移至背景時的 `resolvedModel` 行為需要 Claude Code v2.1.212 或更新版本。

1897 1905 

1898<a id="askuserquestion" />1906<a id="askuserquestion" />

1899 1907 


1901 AskUserQuestion1909 AskUserQuestion

1902</h5>1910</h5>

1903 1911 

1904詢問使用者一到四個多選題。1912向使用者詢問一到四個選擇題。

1905 1913 

1906| 欄位 | 類型 | 範例 | 描述 |1914| 欄位 | 類型 | 範例 | 說明 |

1907| :- | :- | :- | :- |1915| :- | :- | :- | :- |

1908| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 要呈現的問題,每個都有 `question` 字串、簡短 `header`、`options` 陣列和可選的 `multiSelect` 旗標 |1916| `questions` | array | `[{"question": "Which framework?", "header": "Framework", "options": [{"label": "React"}], "multiSelect": false}]` | 要呈現的問題,每個問題包含 `question` 字串、簡短的 `header`、`options` 陣列,以及選擇性的 `multiSelect` 旗標 |

1909| `answers` | object | `{"Which framework?": "React"}` | 可選。將問題文字對應到選定的選項標籤。多選答案用逗號連接標籤。Claude 不設定此欄位;透過 `updatedInput` 提供它以以程式設計方式回答 |1917| `answers` | object | `{"Which framework?": "React"}` | 選擇性。將問題文字對應到所選選項的標籤。多選答案會以逗號連接標籤。Claude 不會設定此欄位;請透過 `updatedInput` 提供,以程式化方式作答 |

1910 1918 

1911<h5 id="exitplanmode">1919<h5 id="exitplanmode">

1912 ExitPlanMode1920 ExitPlanMode

1913</h5>1921</h5>

1914 1922 

1915呈現計畫並要求使用者在 Claude 離開 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 之前核准它。Claude 在呼叫工具之前將計畫寫入磁碟上的檔案,因此來自模型的字面 `tool_input` 通常是空的。Claude Code 在將輸入傳遞給 hooks 之前注入計畫內容和檔案路徑。1923在 Claude 離開 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 之前呈現計畫並請使用者核准。Claude 在呼叫工具之前會將計畫寫入磁碟上的檔案,因此來自模型的原始 `tool_input` 通常為空。Claude Code 會在將輸入傳遞給 hook 之前注入計畫內容與檔案路徑。

1916 1924 

1917| 欄位 | 類型 | 範例 | 描述 |1925| 欄位 | 類型 | 範例 | 說明 |

1918| :- | :- | :- | :- |1926| :- | :- | :- | :- |

1919| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 中的計畫內容。從磁碟上的計畫檔案注入 |1927| `plan` | string | `"## Refactor auth\n1. Extract..."` | Markdown 格式的計畫內容。從磁碟上的計畫檔案注入 |

1920| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 計畫檔案的路徑。注入 |1928| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 計畫檔案的路徑。為注入值 |

1921| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已棄用。Claude Code 接受欄位但忽略它。在 v2.1.205 之前,它攜帶 Claude 請求實施計畫的基於提示的權限 |1929| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已棄用。Claude Code 接受此欄位但會忽略它。在 v2.1.205 之前,它攜帶 Claude 為實作計畫而請求的提示詞式權限 |

1922 1930 

1923在 `PostToolUse` 中,`tool_response` 是一個物件,具有 `plan` 和 `filePath` 欄位,保持核准的計畫,加上內部狀態旗標。讀取 `tool_response.plan` 以獲取計畫內容,而不是從磁碟重新讀取檔案。1931在 `PostToolUse` 中,`tool_response` 是一個物件,包含存放已核准計畫的 `plan` 與 `filePath` 欄位,以及內部狀態旗標。請讀取 `tool_response.plan` 取得計畫內容,而不要從磁碟重新讀取檔案。

1924 1932 

1925<h4 id="pretooluse-decision-control">1933<h4 id="pretooluse-decision-control">

1926 PreToolUse 決策控制1934 PreToolUse 決策控制

1927</h4>1935</h4>

1928 1936 

1929`PreToolUse` hooks 可以控制工具呼叫是否進行。與使用頂級 `decision` 欄位的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 物件內返回其決定。這給了它更豐富的控制:四個結果(允許、拒絕、詢問或延遲)加上在執行前修改工具輸入的能力。1937`PreToolUse` hook 可以控制工具呼叫是否繼續。與其他使用頂層 `decision` 欄位的 hook 不同,PreToolUse 會在 `hookSpecificOutput` 物件內回傳其決策。這賦予它更豐富的控制:四種結果(允許、拒絕、詢問或延後),以及在執行前修改工具輸入的能力。

1930 1938 

1931| 欄位 | 描述 |1939| 欄位 | 說明 |

1932| :- | :- |1940| :- | :- |

1933| `permissionDecision` | `"allow"` 跳過權限提示,除了 [任何模式自動核准的動作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves) 和 `AskUserQuestion` 和 `ExitPlanMode`,它們需要 [`updatedInput` 與它配對](#allow-with-updatedinput)。`"deny"` 防止工具呼叫。`"ask"` 提示使用者確認。`"defer"` 優雅地退出,以便稍後可以恢復工具。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 無論 hook 返回什麼都會被評估 |1941| `permissionDecision` | `"allow"` 會略過權限提示,但[任何模式都不會自動核准的動作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves),以及需要[搭配 `updatedInput`](#allow-with-updatedinput) 的 `AskUserQuestion` 與 `ExitPlanMode` 除外。`"deny"` 會阻止工具呼叫。`"ask"` 會提示使用者確認。`"defer"` 會正常結束,以便稍後繼續執行該工具。無論 hook 回傳什麼,[拒絕與詢問規則](/docs/zh-TW/permissions#manage-permissions)仍會被評估 |

1934| `permissionDecisionReason` | 對於 `"ask"`,顯示給使用者但不顯示 Claude。對於 `"deny"`,顯示給 Claude。對於 `"allow"` 和 `"defer"`,寫入 [debug log](#debug-hooks) 僅 |1942| `permissionDecisionReason` | 對於 `"ask"`,會在權限提示中向使用者顯示。當 Claude Code 在無人能回應該提示的 `-p` 執行中[拒絕呼叫](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs)時,Claude 會改在工具結果中讀取該原因。對於 `"deny"`,會向 Claude 顯示。對於 `"allow"` 與 `"defer"`,只會寫入[偵錯日誌](#debug-hooks) |

1935| `updatedInput` | 在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的欄位旁邊包含未變更的欄位。Claude Code 根據您的 hook 返回的輸入評估權限規則和 Bash 命令的 [自動背景資格](/docs/zh-TW/tools-reference#foreground-commands-that-move-to-the-background),而不是 Claude 傳送的輸入。與 `"allow"` 結合以自動核准,或與 `"ask"` 結合以向使用者顯示修改的輸入。對於 `"defer"`,忽略 |1943| `updatedInput` | 在執行前修改工具的輸入參數。會取代整個輸入物件,因此請將未變更的欄位與修改後的欄位一併包含。Claude Code 會針對您的 hook 回傳的輸入(而非 Claude 傳送的輸入)評估權限規則以及 Bash 命令的[自動移至背景資格](/docs/zh-TW/tools-reference#foreground-commands-that-move-to-the-background)。與 `"allow"` 搭配可自動核准,或與 `"ask"` 搭配以向使用者顯示修改後的輸入。對於 `"defer"` 則會被忽略 |

1936| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。當 `permissionDecision` 為 `"defer"` 時忽略。有關詳細資訊,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1944| `additionalContext` | 與工具結果一同加入 Claude 上下文的字串。當 `permissionDecision` 為 `"defer"` 時會被忽略。請參閱[為 Claude 加入上下文](#add-context-for-claude) |

1937 1945 

1938當多個 PreToolUse hooks 返回不同的決定時,優先順序為 `deny` > `defer` > `ask` > `allow`。1946當多個 PreToolUse hook 回傳不同決策時,優先順序為 `deny` > `defer` > `ask` > `allow`。

1939 1947 

1940透過退出 2 阻止的 hook 路由方式與 `"deny"` 相同:Claude 看到 stderr 訊息作為拒絕原因。1948以退出碼 2 阻擋的 hook 與 `"deny"` 的處理方式相同:Claude 會將 stderr 訊息視為拒絕原因。

1941 1949 

1942當 hook 返回 `"ask"` 時,顯示給使用者的權限提示包括一個標籤,識別 hook 的來源:`[settings]` 對於來自任何設定檔或代理 frontmatter 的 hook,`[plugin:<name>]` 對於外掛的 hook,或 `[skill]` 對於來自 skill frontmatter 的 hook。這幫助使用者理解哪個配置來源要求確認。1950當 hook 回傳 `"ask"` 時,向使用者顯示的權限提示會包含一個標籤,標示該 hook 的來源:來自任何設定檔或 agent frontmatter 的 hook 為 `[settings]`,外掛的 hook 為 `[plugin:<name>]`,來自 skill frontmatter 的 hook 則為 `[skill]`。這有助於使用者了解是哪個設定來源在請求確認。

1943 1951 

1944hook 的 `"ask"` 也在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中強制權限提示:分類器仍然可以拒絕工具呼叫,但它無法無聲地核准呼叫。在 v2.1.211 之前,分類器可以核准在 [sandbox](/docs/zh-TW/sandboxing) 外執行的 Bash 命令,而不顯示 hook 請求的提示;分類器仍然對該命令應用了自己的安全規則,hook `"deny"` 始終被尊重。1952hook 的 `"ask"` 也會在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中強制顯示權限提示:分類器仍可拒絕工具呼叫,但無法在無提示的情況下核准該呼叫。在 v2.1.211 之前,分類器可以在不顯示 hook 所請求之提示的情況下,核准在[沙箱](/docs/zh-TW/sandboxing)外執行的 Bash 命令;分類器仍會對該命令套用其自身的安全規則,而 hook 的 `"deny"` 一律會被遵守。

1945 1953 

1946```json theme={null}1954```json theme={null}

1947{1955{


1959 1967 

1960<span id="allow-with-updatedinput" />1968<span id="allow-with-updatedinput" />

1961 1969 

1962在 [非互動模式](/docs/zh-TW/headless) 中搭配 `-p` 旗標,Claude Code 僅在執行有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 以接收提示時提供 `AskUserQuestion` 和 `ExitPlanMode`,例如 Agent SDK `canUseTool` 回呼。這些工具需要使用者互動。返回 `permissionDecision: "allow"` 與 `updatedInput` 一起滿足該要求:hook 從 stdin 讀取工具的輸入,透過您自己的 UI 收集答案,並在 `updatedInput` 中返回它,以便工具執行而不提示。單獨返回 `"allow"` 對這些工具不足夠。對於 `AskUserQuestion`,回顯原始 `questions` 陣列並新增一個 [`answers`](#askuserquestion) 物件,將每個問題的文字對應到選定的答案。1970在使用 `-p` 旗標的[非互動模式](/docs/zh-TW/headless)中,只有當執行具有接收提示的[權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs)(例如 Agent SDK 的 `canUseTool` 回呼)時,Claude Code 才會提供 `AskUserQuestion` 與 `ExitPlanMode`。這些工具需要使用者互動。回傳 `permissionDecision: "allow"` 並搭配 `updatedInput` 即可滿足此需求:hook 從 stdin 讀取工具的輸入,透過您自己的 UI 收集答案,並在 `updatedInput` 中回傳,讓工具在不提示的情況下執行。對於這些工具,只回傳 `"allow"` 是不夠的。對於 `AskUserQuestion`,請回傳原始的 `questions` 陣列,並加入一個 [`answers`](#askuserquestion) 物件,將每個問題的文字對應到所選的答案。

1963 1971 

1964自 v2.1.199 起,其伺服器用 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 標記的 MCP 工具更嚴格:hook 無法用 `"allow"` 跳過其核准提示,無論是否有 `updatedInput`,因為 Claude Code 無法確認 hook 收集了工具需要的互動。1972伺服器以 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 標記的 MCP 工具則更為嚴格:hook 無法以 `"allow"` 略過其核准提示,無論是否搭配 `updatedInput`,因為 Claude Code 無法確認 hook 已收集該工具所需的互動。

1965 1973 

1966<Note>1974<Note>

1967 PreToolUse 之前使用頂級 `decision` 和 `reason` 欄位,但這些對此事件已棄用。改用 `hookSpecificOutput.permissionDecision` 和 `hookSpecificOutput.permissionDecisionReason`。已棄用的值 `"approve"` 和 `"block"` 對應到 `"allow"` 和 `"deny"`。PostToolUse 和 Stop 等其他事件繼續使用頂級 `decision` 和 `reason` 作為其目前格式。1975 PreToolUse 先前使用頂層的 `decision` 與 `reason` 欄位,但這些欄位在此事件中已棄用。請改用 `hookSpecificOutput.permissionDecision` 與 `hookSpecificOutput.permissionDecisionReason`。已棄用的值 `"approve"` 與 `"block"` 分別對應到 `"allow"` 與 `"deny"`。PostToolUse 與 Stop 等其他事件則繼續以頂層 `decision` 與 `reason` 作為其目前的格式。

1968</Note>1976</Note>

1969 1977 

1970<h4 id="defer-a-tool-call-for-later">1978<h4 id="defer-a-tool-call-for-later">

1971 延遲工具呼叫以供稍後使用1979 延後工具呼叫

1972</h4>1980</h4>

1973 1981 

1974`"defer"` 適用於執行 `claude -p` 作為子程序並讀取其 JSON 輸出的整合,例如 Agent SDK 應用程式或建立在 Claude Code 之上的自訂 UI。它讓該呼叫程序在工具呼叫處暫停 Claude,透過其自己的介面收集輸入,並在中斷處恢復。Claude Code 僅在 [非互動模式](/docs/zh-TW/headless) 中搭配 `-p` 旗標時尊重此值。在互動式工作階段中,它記錄警告並忽略 hook 結果。1982`"defer"` 適用於以子程序執行 `claude -p` 並讀取其 JSON 輸出的整合,例如 Agent SDK 應用程式或建立在 Claude Code 之上的自訂 UI。它讓呼叫端程序可以在工具呼叫處暫停 Claude、透過自己的介面收集輸入,並從中斷處繼續。Claude Code 只在使用 `-p` 旗標的[非互動模式](/docs/zh-TW/headless)中遵守此值。在互動式工作階段中,它會記錄警告並忽略 hook 結果。

1975 1983 

1976`AskUserQuestion` 工具是典型情況:Claude 想詢問使用者某事,但沒有終端來回答。`-p` 執行僅在有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時提供 `AskUserQuestion`,例如您使用 `--permission-prompt-tool` 傳遞的 MCP 工具,因此使用一個啟動執行。往返工作如下:1984`AskUserQuestion` 工具是典型的情況:Claude 想向使用者詢問某件事,但沒有可供回答的終端機。`-p` 執行只有在具有[權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs)(例如您以 `--permission-prompt-tool` 傳入的 MCP 工具)時才會提供 `AskUserQuestion`,因此請以權限主機啟動執行。往返流程如下:

1977 1985 

19781. Claude 呼叫 `AskUserQuestion`。`PreToolUse` hook 執行。19861. Claude 呼叫 `AskUserQuestion`。`PreToolUse` hook 觸發。

19792. hook 返回 `permissionDecision: "defer"`。工具不執行。程序以 `stop_reason: "tool_deferred"` 退出,待處理工具呼叫保留在文字記錄中。19872. hook 回傳 `permissionDecision: "defer"`。工具不會執行。程序以 `stop_reason: "tool_deferred"` 結束,待處理的工具呼叫會保留在逐字稿中。

19803. 呼叫程序從 SDK 結果讀取 `deferred_tool_use`,在其自己的 UI 中呈現問題,並等待答案。19883. 呼叫端程序從 SDK 結果讀取 `deferred_tool_use`,在自己的 UI 中呈現問題,並等待答案。

19814. 呼叫程序執行 `claude -p --resume <session-id>`,搭配相同的權限主機。相同的工具呼叫再次執行 `PreToolUse`。19894. 呼叫端程序以相同的權限主機執行 `claude -p --resume <session-id>`。同一個工具呼叫會再次觸發 `PreToolUse`。

19825. hook 返回 `permissionDecision: "allow"`,答案在 `updatedInput` 中。工具執行,Claude 繼續。19905. hook 回傳 `permissionDecision: "allow"`,並在 `updatedInput` 中附上答案。工具執行,Claude 繼續。

1983 1991 

1984`deferred_tool_use` 欄位攜帶工具的 `id`、`name` 和 `input`。`input` 是 Claude 為工具呼叫產生的參數,在執行前捕獲:1992`deferred_tool_use` 欄位攜帶工具的 `id`、`name` 與 `input`。`input` 是 Claude 為該工具呼叫產生的參數,在執行前擷取:

1985 1993 

1986```json theme={null}1994```json theme={null}

1987{1995{


1997}2005}

1998```2006```

1999 2007 

2000沒有逾時或重試限制。工作階段保留在磁碟上,直到您恢復它,受 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 保留掃描約束,預設情況下在 30 天後刪除工作階段檔案,遵循 [保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)。如果答案在您恢復時未準備好,hook 可以再次返回 `"defer"`,程序以相同方式退出。呼叫程序控制何時透過最終從 hook 返回 `"allow"` 或 `"deny"` 來打破迴圈。2008沒有逾時或重試次數限制。工作階段會保留在磁碟上直到您繼續它,但受 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 保留清理的限制,該清理預設會在 30 天後刪除工作階段檔案,並遵循[保留清理規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)。如果繼續時答案尚未準備好,hook 可以再次回傳 `"defer"`,程序會以相同方式結束。呼叫端程序藉由最終從 hook 回傳 `"allow"` 或 `"deny"` 來控制何時跳出迴圈。

2001 2009 

2002`"defer"` 僅在 Claude 在回合中進行單個工具呼叫時有效。如果 Claude 同時進行多個工具呼叫,`"defer"` 會被忽略,並帶有警告,工具透過正常權限流程進行。約束存在是因為恢復只能重新執行一個工具:沒有辦法延遲批次中的一個呼叫而不留下其他未解決的。2010`"defer"` 只在 Claude 於該回合中只進行一次工具呼叫時有效。如果 Claude 同時進行多個工具呼叫,`"defer"` 會被忽略並發出警告,工具會透過一般的權限流程繼續。此限制的原因在於繼續時只能重新執行一個工具:無法在不讓其他呼叫懸而未決的情況下,延後批次中的其中一個呼叫。

2003 2011 

2004如果恢復時延遲的工具不再可用,程序以 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true` 退出,在 hook 執行之前。當提供工具的 MCP 伺服器對於恢復的工作階段未連接時會發生這種情況。`deferred_tool_use` 有效負載仍然包含,以便您可以識別哪個工具遺失。2012如果繼續時延後的工具已不可用,程序會在 hook 觸發之前以 `stop_reason: "tool_deferred_unavailable"` 與 `is_error: true` 結束。當提供該工具的 MCP 伺服器在繼續的工作階段中未連線時,就會發生這種情況。`deferred_tool_use` payload 仍會包含在內,讓您能識別遺失的是哪個工具。

2005 2013 

2006<Note>2014<Note>

2007 要在 plan mode 中恢復延遲工作階段,請在 `--resume` 旁邊傳遞 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),以便 Claude Code 可以呈現計畫以供核准。如果您傳遞某些其他啟動旗標,恢復的執行不會返回到 plan mode;請參閱 [使用 `-p` 在 plan mode 中恢復](/docs/zh-TW/sessions#resume-in-plan-mode-with-p)。需要 Claude Code v2.1.246 或更新版本。2015 若要在 plan mode 中繼續已延後的工作階段,請將 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 與 `--resume` 一併傳入,讓 Claude Code 能呈現計畫以供核准。如果您傳入某些其他啟動旗標,繼續的執行不會回到 plan mode;請參閱[使用 `-p` 在 plan mode 中繼續](/docs/zh-TW/sessions#resume-in-plan-mode-with-p)。需要 Claude Code v2.1.246 或更新版本。

2008 2016 

2009 當您使用 `-p` 恢復時,Claude Code 不會還原任何其他儲存的權限模式。它在新 `claude -p` 執行會啟動的權限模式中啟動執行,因此如果延遲工作階段使用了一個,請再次傳遞 `--permission-mode` 或 `--dangerously-skip-permissions`。當您使用 `claude --resume <session-id>` 恢復而不使用 `-p` 時,Claude Code 會還原儲存的權限模式,但 [恢復時的權限模式](/docs/zh-TW/sessions#permission-mode-on-resume) 中列出的例外除外。2017 當您以 `-p` 繼續時,Claude Code 不會還原任何其他已儲存的權限模式。它會以新的 `claude -p` 執行所使用的權限模式啟動執行,因此如果延後的工作階段使用了 `--permission-mode` 或 `--dangerously-skip-permissions`,請再次傳入。當您不使用 `-p` 而以 `claude --resume <session-id>` 繼續時,Claude Code 會還原已儲存的權限模式,例外情況列於[繼續時的權限模式](/docs/zh-TW/sessions#permission-mode-on-resume)。

2010</Note>2018</Note>

2011 2019 

2012<h3 id="permissionrequest">2020<h3 id="permissionrequest">

2013 PermissionRequest2021 PermissionRequest

2014</h3>2022</h3>

2015 2023 

2016在 Claude Code 即將向您請求使用工具的權限時執行。在無法顯示提示的工作階段中,例如[非互動模式](/docs/zh-TW/headless)中的背景 subagent,Claude Code 仍會執行這些 hook,而如果沒有 hook 傳回決策,它會拒絕該工具呼叫。對於送達 `--permission-prompt-tool` 或 Agent SDK [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/permissions)的呼叫,hook 會與您的主機並行執行,以最先做出決策者為準。2024在 Claude Code 即將向您請求使用工具的權限時執行。在無法顯示提示的工作階段中,例如[非互動模式](/docs/zh-TW/headless)中的背景 subagent,Claude Code 仍會執行這些 hook,而如果沒有任何 hook 回傳決策,它就會拒絕該工具呼叫。對於到達 `--permission-prompt-tool` 或 Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/permissions)的呼叫,hook 會與您的主機並行執行,以先做出決定者為準。

2017使用 [PermissionRequest 決策控制](#permissionrequest-decision-control)代替使用者允許或拒絕。2025使用 [PermissionRequest 決策控制](#permissionrequest-decision-control)代表使用者允許或拒絕。

2018 2026 

2019當您需要 Claude 要求許可使用工具時的信號時,使用此事件。Claude Code 僅在提示等待約六秒後執行 [Notification](#notification) hook,其中 `permission_prompt` 類型。2027當您需要在 Claude 請求使用工具權限的當下取得訊號時,請使用此事件。Claude Code 只有在提示已等待約六秒後,才會執行類型為 `permission_prompt` 的 [Notification](#notification) hook。

2020 2028 

2021Claude Code 不為沙箱命令的 [網路請求](/docs/zh-TW/sandboxing#network-isolation) 執行 PermissionRequest hooks。要獲得該提示的信號,請使用 `permission_prompt` 通知類型。2029Claude Code 不會為沙箱化命令的[網路請求](/docs/zh-TW/sandboxing#network-isolation)執行 PermissionRequest hook。若要取得該提示的訊號,請使用 `permission_prompt` 通知類型。

2022 2030 

2023在工具名稱上匹配,與 PreToolUse 相同的值。2031比對工具名稱,值與 PreToolUse 相同。

2024 2032 

2025<h4 id="permissionrequest-input">2033<h4 id="permissionrequest-input">

2026 PermissionRequest 輸入2034 PermissionRequest 輸入

2027</h4>2035</h4>

2028 2036 

2029PermissionRequest hooks 接收 `tool_name` 和 `tool_input` 欄位,如 PreToolUse hooks,但沒有 `tool_use_id`。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。可選的 `permission_suggestions` 陣列包含 Claude Code 為此請求建議的 [權限更新](#permission-update-entries),例如新增允許規則或更改權限模式。2037PermissionRequest hook 會像 PreToolUse hook 一樣接收 `tool_name` 與 `tool_input` 欄位,但不含 `tool_use_id`。對於 MCP 工具,它們也會接收 [`mcp_server`](#pretooluse-input) 物件。選擇性的 `permission_suggestions` 陣列包含 Claude Code 為此請求建議的[權限更新](#permission-update-entries),例如新增允許規則或變更權限模式。

2030 2038 

2031`permission_suggestions` 陣列不是您看到的選項的確切清單,因為每個權限對話都建立自己的選項。某些對話(例如檔案編輯的對話)根本不讀取陣列,並從請求本身衍生其選項。讀取它的對話仍然可以保留其建議留在陣列中的選項,例如當 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 隱藏規則保存選項時。它也可以提供沒有建議項目的選項,例如 [**是的,並切換到自動模式**](/docs/zh-TW/permission-modes#switch-permission-modes),它直接更改權限模式,而不是透過權限更新。2039`permission_suggestions` 陣列並非您所看到選項的精確清單,因為每個權限對話框會建構自己的選項。有些對話框(例如檔案編輯的對話框)完全不讀取此陣列,而是從請求本身衍生選項。會讀取此陣列的對話框,仍可能隱藏其建議保留在陣列中的選項,例如當 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 隱藏儲存規則的選項時。它也可能提供沒有對應建議項目的選項,例如 [**Yes, and switch to auto mode**](/docs/zh-TW/permission-modes#switch-permission-modes),它會直接變更權限模式,而非透過權限更新。

2032 2040 

2033PreToolUse hooks 在每個工具呼叫之前執行,無論它是否需要權限。PermissionRequest hooks 僅在 Claude Code 即將要求您許可時執行,或當它否則會自動拒絕無法提示的呼叫時執行。兩個事件都不會對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 執行。2041PreToolUse hook 會在每次工具呼叫之前執行,無論是否需要權限。PermissionRequest hook 只在 Claude Code 即將向您請求權限時執行,或在它原本會自動拒絕一個無法提示的呼叫時執行。兩個事件都不會為 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。

2034 2042 

2035```json theme={null}2043```json theme={null}

2036{2044{


2059 PermissionRequest 決策控制2067 PermissionRequest 決策控制

2060</h4>2068</h4>

2061 2069 

2062`PermissionRequest` hooks 可以允許或拒絕權限請求。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回具有這些事件特定欄位的 `decision` 物件:2070`PermissionRequest` hook 可以允許或拒絕權限請求。除了所有 hook 都可使用的 [JSON 輸出欄位](#json-output)之外,您的 hook 指令碼還可以回傳包含下列事件專屬欄位的 `decision` 物件:

2063 2071 

2064| 欄位 | 描述 |2072| 欄位 | 說明 |

2065| :- | :- |2073| :- | :- |

2066| `behavior` | `"allow"` 授予權限,`"deny"` 拒絕它。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 仍然被評估,因此返回 `"allow"` 的 hook 不會覆寫匹配的拒絕規則 |2074| `behavior` | `"allow"` 授予權限,`"deny"` 拒絕權限。[拒絕與詢問規則](/docs/zh-TW/permissions#manage-permissions)仍會被評估,因此回傳 `"allow"` 的 hook 不會覆寫相符的拒絕規則 |

2067| `updatedInput` | 僅對 `"allow"`:在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的欄位旁邊包含未變更的欄位。修改的輸入會針對拒絕和詢問規則重新評估 |2075| `updatedInput` | 僅適用於 `"allow"`:在執行前修改工具的輸入參數。會取代整個輸入物件,因此請將未變更的欄位與修改後的欄位一併包含。修改後的輸入會重新針對拒絕與詢問規則評估 |

2068| `updatedPermissions` | 僅對 `"allow"`:[權限更新項目](#permission-update-entries) 陣列以應用,例如新增允許規則或更改工作階段權限模式 |2076| `updatedPermissions` | 僅適用於 `"allow"`:要套用的[權限更新項目](#permission-update-entries)陣列,例如新增允許規則或變更工作階段權限模式 |

2069| `message` | 僅對 `"deny"`:告訴 Claude 為什麼權限被拒絕 |2077| `message` | 僅適用於 `"deny"`:告訴 Claude 權限被拒絕的原因 |

2070| `interrupt` | 僅對 `"deny"`:如果 `true`,停止 Claude |2078| `interrupt` | 僅適用於 `"deny"`:若為 `true`,則停止 Claude |

2071 2079 

2072退出 2 而不帶 `decision` 物件的 hook 保持權限流程不變,其 stderr 被捨棄。只有 `decision` 物件可以授予或拒絕請求。2080以退出碼 2 結束但沒有 `decision` 物件的 hook 不會改變權限流程,其 stderr 會被捨棄。只有 `decision` 物件能授予或拒絕請求。

2073 2081 

2074```json theme={null}2082```json theme={null}

2075{2083{


2089 權限更新項目2097 權限更新項目

2090</h4>2098</h4>

2091 2099 

2092`updatedPermissions` 輸出欄位和 [`permission_suggestions` 輸入欄位](#permissionrequest-input) 都使用相同的項目物件陣列。每個項目都有一個 `type`,決定其他欄位,以及一個 `destination`,控制變更的寫入位置。2100`updatedPermissions` 輸出欄位與 [`permission_suggestions` 輸入欄位](#permissionrequest-input)都使用相同的項目物件陣列。每個項目都有一個決定其他欄位的 `type`,以及一個控制變更寫入位置的 `destination`。

2093 2101 

2094| `type` | 欄位 | 效果 |2102| `type` | 欄位 | 效果 |

2095| :- | :- | :- |2103| :- | :- | :- |

2096| `addRules` | `rules`、`behavior`、`destination` | 新增權限規則。`rules` 是 `{toolName, ruleContent?}` 物件的陣列。省略 `ruleContent` 以匹配整個工具。`behavior` 為 `"allow"`、`"deny"` 或 `"ask"` |2104| `addRules` | `rules`、`behavior`、`destination` | 新增權限規則。`rules` 是 `{toolName, ruleContent?}` 物件的陣列。省略 `ruleContent` 即可比對整個工具。`behavior` 為 `"allow"`、`"deny"` 或 `"ask"` |

2097| `replaceRules` | `rules`、`behavior`、`destination` | 將給定 `behavior` 在 `destination` 的所有規則替換為提供的 `rules` |2105| `replaceRules` | `rules`、`behavior`、`destination` | 以提供的 `rules` 取代 `destination` 中所有指定 `behavior` 的規則 |

2098| `removeRules` | `rules`、`behavior`、`destination` | 移除給定 `behavior` 的匹配規則 |2106| `removeRules` | `rules`、`behavior`、`destination` | 移除指定 `behavior` 的相符規則 |

2099| `setMode` | `mode`、`destination` | 更改權限模式。有效模式為 `default`、`auto`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan` 和 `manual` 作為 `default` 的別名。`manual` 別名需要 Claude Code v2.1.200 或更新版本 |2107| `setMode` | `mode`、`destination` | 變更權限模式。有效的模式為 `default`、`auto`、`acceptEdits`、`dontAsk`、`bypassPermissions`、`plan`,以及作為 `default` 別名的 `manual`。`manual` 別名需要 Claude Code v2.1.200 或更新版本 |

2100| `addDirectories` | `directories`、`destination` | 新增工作目錄。`directories` 是路徑字串的陣列 |2108| `addDirectories` | `directories`、`destination` | 新增工作目錄。`directories` 是路徑字串的陣列 |

2101| `removeDirectories` | `directories`、`destination` | 移除工作目錄 |2109| `removeDirectories` | `directories`、`destination` | 移除工作目錄 |

2102 2110 

2103<Note>2111<Note>

2104 `setMode` 搭配 `bypassPermissions` 僅在您已使用以下方式啟動工作階段時生效:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` 或 [user、`--settings` 或 managed settings](/docs/zh-TW/settings-reference#permissions-defaultmode) 中的 `permissions.defaultMode: "bypassPermissions"`。否則更新是無操作。當 [`permissions.disableBypassPermissionsMode`](/docs/zh-TW/permissions#managed-settings) 禁用模式或工作階段在 [受限模式](/docs/zh-TW/cli-reference#cli-flags) 中啟動時,更新也是無操作。2112 只有在啟動工作階段時已可使用略過模式的情況下,搭配 `bypassPermissions` 的 `setMode` 才會生效:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions`,或在[使用者設定、`--settings` 或受管設定](/docs/zh-TW/settings-reference#permissions-defaultmode)中設定 `permissions.defaultMode: "bypassPermissions"`。否則此更新不會產生任何作用。當 [`permissions.disableBypassPermissionsMode`](/docs/zh-TW/permissions#managed-settings) 停用此模式,或工作階段以[受限模式](/docs/zh-TW/cli-reference#cli-flags)啟動時,此更新同樣不會產生任何作用。

2105 2113 

2106 無論 `destination` 如何,`bypassPermissions` 永遠不會作為 `defaultMode` 保留。2114 無論 `destination` 為何,`bypassPermissions` 都不會被保存為 `defaultMode`。

2107</Note>2115</Note>

2108 2116 

2109每個項目上的 `destination` 欄位決定變更是保留在記憶體中還是保留到設定檔。2117每個項目上的 `destination` 欄位決定變更是保留在記憶體中,還是保存到設定檔。

2110 2118 

2111| `destination` | 寫入 |2119| `destination` | 寫入位置 |

2112| :- | :- |2120| :- | :- |

2113| `session` | 僅在記憶體中,工作階段結束時捨棄 |2121| `session` | 僅存在記憶體中,工作階段結束時捨棄 |

2114| `localSettings` | `.claude/settings.local.json` |2122| `localSettings` | `.claude/settings.local.json` |

2115| `projectSettings` | `.claude/settings.json` |2123| `projectSettings` | `.claude/settings.json` |

2116| `userSettings` | `~/.claude/settings.json` |2124| `userSettings` | `~/.claude/settings.json` |

2117 2125 

2118hook 可以回顯它接收的 `permission_suggestions` 之一作為其自己的 `updatedPermissions` 輸出。2126hook 可以將其收到的某個 `permission_suggestions` 原樣作為自己的 `updatedPermissions` 輸出傳回。

2119 2127 

2120<h3 id="posttooluse">2128<h3 id="posttooluse">

2121 PostToolUse2129 PostToolUse


2123 2131 

2124在工具成功完成後立即執行。2132在工具成功完成後立即執行。

2125 2133 

2126在工具名稱上匹配,與 PreToolUse 相同的值。2134依工具名稱比對,可用值與 PreToolUse 相同。

2127 2135 

2128當工具名稱不是正確的篩選器時,更廣泛地匹配:2136當工具名稱不是合適的篩選條件時,可以更廣泛地比對:

2129 2137 

2130* 要在任何工具成功完成後執行 hook,省略 `matcher` 或將其設定為 `"*"`。您的 hook 然後可以自己發現變更的內容,例如執行 `git status --porcelain`,它也列出 `git diff` 遺漏的未追蹤檔案。對於失敗的工具呼叫,在 [PostToolUseFailure](#posttoolusefailure) 下新增相同的 hook。2138* 若要在任何工具成功完成後執行 hook,請省略 `matcher` 或將其設為 `"*"`。您的 hook 接著可以自行找出變更內容,例如執行 `git status --porcelain`,它也會列出 `git diff` 遺漏的未追蹤檔案。對於失敗的工具呼叫,請在 [PostToolUseFailure](#posttoolusefailure) 下新增相同的 hook。

2131* 要在特定檔案在磁碟上變更時執行 hook,無論什麼寫入它,請使用 [FileChanged](#filechanged)。Claude Code 不執行匹配 `Edit|Write` 的 `PostToolUse` hook,當 `Bash` 命令或 Claude Code 外的程序重寫相同檔案時。2139* 若要在特定檔案於磁碟上變更時執行 hook(無論由誰寫入),請使用 [FileChanged](#filechanged)。當 `Bash` 命令或 Claude Code 以外的程序改寫同一個檔案時,Claude Code 不會執行比對 `Edit|Write` 的 `PostToolUse` hook。

2132 2140 

2133<h4 id="posttooluse-input">2141<h4 id="posttooluse-input">

2134 PostToolUse 輸入2142 PostToolUse 輸入

2135</h4>2143</h4>

2136 2144 

2137`PostToolUse` hooks 在工具已執行成功後執行。輸入包括 `tool_input`(傳送給工具的引數)和 `tool_response`(它返回的結果)。兩者的確切架構取決於工具。檔案工具 `tool_input` 路徑以與 [PreToolUse](#pretooluse-input) 相同的格式到達:始終絕對,具有平台的原生分隔符,因此 Windows 上的反斜線。對於 MCP 工具,輸入也攜帶 [`mcp_server`](#pretooluse-input) 物件。2145`PostToolUse` hook 會在工具已成功執行後觸發。輸入同時包含 `tool_input`(傳送給工具的引數)與 `tool_response`(工具傳回的結果)。兩者的確切 schema 取決於工具。檔案工具的 `tool_input` 路徑格式與 [PreToolUse](#pretooluse-input) 相同:一律為絕對路徑,並使用平台原生的分隔符號,因此在 Windows 上為反斜線。對於 MCP 工具,輸入也會帶有 [`mcp_server`](#pretooluse-input) 物件。

2138 2146 

2139```json theme={null}2147```json theme={null}

2140{2148{


2157}2165}

2158```2166```

2159 2167 

2160| 欄位 | 描述 |2168| 欄位 | 說明 |

2161| :- | :- |2169| :- | :- |

2162| `duration_ms` | 可選。工具執行時間(毫秒)。不包括權限提示和 PreToolUse hooks 中花費的時間 |2170| `duration_ms` | 選用。工具執行時間(毫秒)。不包含花在權限提示與 PreToolUse hook 上的時間 |

2163 2171 

2164<h4 id="posttooluse-decision-control">2172<h4 id="posttooluse-decision-control">

2165 PostToolUse 決策控制2173 PostToolUse 決策控制

2166</h4>2174</h4>

2167 2175 

2168`PostToolUse` hooks 可以在工具執行後提供反饋給 Claude。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定的欄位:2176`PostToolUse` hook 可以在工具執行後向 Claude 提供回饋。除了所有 hook 皆可使用的 [JSON 輸出欄位](#json-output)之外,您的 hook 指令碼還可以傳回以下事件專屬欄位:

2169 2177 

2170| 欄位 | 描述 |2178| 欄位 | 說明 |

2171| :- | :- |2179| :- | :- |

2172| `decision` | `"block"` 在工具結果旁邊新增 `reason`。Claude 仍然看到原始輸出;要替換它,請使用 `updatedToolOutput` |2180| `decision` | `"block"` 會將 `reason` 附加在工具結果旁。Claude 仍會看到原始輸出;若要取代輸出,請使用 `updatedToolOutput` |

2173| `reason` | 當 `decision` 為 `"block"` 時顯示給 Claude 的解釋 |2181| `reason` | 當 `decision` 為 `"block"` 時向 Claude 顯示的說明 |

2174| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。有關詳細資訊,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |2182| `additionalContext` | 與工具結果一併加入 Claude 上下文的字串。請參閱[為 Claude 新增上下文](#add-context-for-claude) |

2175| `classifierContext` | 關於此呼叫結果的簡短說明,用於 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器,而不是 Claude。有關詳細資訊,請參閱 [為自動模式分類器註釋結果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更新版本 |2183| `classifierContext` | 關於此次呼叫結果的簡短註記,提供給[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器而非 Claude。請參閱[為自動模式分類器註記結果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更新版本 |

2176| `updatedToolOutput` | 在將工具的輸出傳送給 Claude 之前,用提供的值替換它。該值必須符合工具的輸出形狀 |2184| `updatedToolOutput` | 在傳送給 Claude 之前,以提供的值取代工具的輸出。該值必須符合工具的輸出結構 |

2177| `updatedMCPToolOutput` | 僅替換 [MCP 工具](#match-mcp-tools) 的輸出。偏好 `updatedToolOutput`,它適用於所有工具 |2185| `updatedMCPToolOutput` | 僅取代 [MCP 工具](#match-mcp-tools)的輸出。建議改用適用於所有工具的 `updatedToolOutput` |

2178 2186 

2179下面的範例替換 `Bash` 呼叫的輸出。替換值符合 `Bash` 工具的輸出形狀:2187以下範例取代 `Bash` 呼叫的輸出。取代值符合 `Bash` 工具的輸出結構:

2180 2188 

2181```json theme={null}2189```json theme={null}

2182{2190{


2194```2202```

2195 2203 

2196<Warning>2204<Warning>

2197 `updatedToolOutput` 僅更改 Claude 看到的內容。工具在 hook 執行時已執行,因此任何寫入的檔案、執行的命令或傳送的網路請求都已生效。遙測(例如 OpenTelemetry 工具跨度和分析事件)也會在 hook 執行之前捕獲原始輸出。要在執行前防止或修改工具呼叫,請改用 [PreToolUse](#pretooluse) hook。2205 `updatedToolOutput` 只會改變 Claude 看到的內容。hook 觸發時工具已經執行完畢,因此任何已寫入的檔案、已執行的命令或已送出的網路請求都已生效。OpenTelemetry 工具 span 與分析事件等遙測資料,也會在 hook 執行前擷取原始輸出。若要在工具呼叫執行前阻止或修改它,請改用 [PreToolUse](#pretooluse) hook。

2198 2206 

2199 替換值必須符合工具的輸出形狀。內建工具返回結構化物件,而不是純字串。例如,`Bash` 返回具有 `stdout`、`stderr`、`interrupted` 和 `isImage` 欄位的物件。對於內建工具,不符合工具輸出架構的值會被忽略,並使用原始輸出。MCP 工具輸出會通過而不進行架構驗證。去除 Claude 需要的錯誤詳細資訊可能導致它在錯誤假設上進行。2207 取代值必須符合工具的輸出結構。內建工具傳回的是結構化物件,而非純字串。例如,`Bash` 會傳回包含 `stdout`、`stderr`、`interrupted` 與 `isImage` 欄位的物件。對於內建工具,不符合工具輸出 schema 的值會被忽略,並改用原始輸出。MCP 工具的輸出則會直接傳遞,不進行 schema 驗證。移除 Claude 所需的錯誤細節,可能導致它依據錯誤的假設繼續進行。

2200</Warning>2208</Warning>

2201 2209 

2202<h4 id="annotate-a-result-for-the-auto-mode-classifier">2210<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2203 為自動模式分類器註釋結果2211 為自動模式分類器註記結果

2204</h4>2212</h4>

2205 2213 

2206返回 `classifierContext` 以向 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器傳送關於工具呼叫結果的簡短說明,而不是向 Claude。分類器 [永遠不會接收工具結果本身](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions),因此此欄位是在它審查稍後的動作之前告訴它工具呼叫返回的內容的支援方式。該欄位需要 Claude Code v2.1.236 或更新版本。2214傳回 `classifierContext`,即可將關於工具呼叫結果的簡短註記傳送給[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器,而非傳送給 Claude。分類器[永遠不會收到工具結果本身](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions),因此在它審查後續動作之前,此欄位是告知它某次呼叫傳回內容的官方支援方式。此欄位需要 Claude Code v2.1.236 或更新版本。

2207 2215 

2208下面的範例告訴分類器查詢的輸出來自何處:2216以下範例告訴分類器某個查詢的輸出來源:

2209 2217 

2210```json theme={null}2218```json theme={null}

2211{2219{


2216}2224}

2217```2225```

2218 2226 

2219分類器給予說明的權重取決於您配置 hook 的位置:2227分類器對註記的重視程度,取決於您在何處設定該 hook:

2220 2228 

2221* **在 Claude Code 中配置的 Hooks**:對於來自設定檔、外掛、skills 和代理 frontmatter 的 hooks,分類器將說明視為未驗證的應用程式提供的背景資訊。說明永遠不會建立使用者意圖,如果它聲稱您核准或請求了某事,分類器會根據您在對話中的自己訊息檢查該聲明2229* **在 Claude Code 中設定的 hook**:對於來自設定檔、外掛、skill 與 agent frontmatter 的 hook,分類器會將註記視為未經驗證、由應用程式提供的上下文。註記永遠無法確立使用者意圖;若註記聲稱您核准或要求了某件事,分類器會以您在對話中的訊息查核該聲明

2222* **進程內 Agent SDK 回呼**:當應用程式嵌入 Claude Code 並將 hook 註冊為 [TypeScript SDK 回呼](/docs/zh-TW/agent-sdk/hooks) 並在即時工作階段期間返回說明時,分類器可能會將說明中轉達的使用者陳述視為使用者意圖。這樣的陳述可以滿足分類器會接受來自您傳送的訊息的同意要求,但它永遠不會解除您自己的訊息也無法解除的阻止。工作階段恢復後,Claude Code 將還原的說明視為未驗證的背景資訊。當來自兩個群組的 hooks 註釋相同的呼叫時,分類器將組合說明視為未驗證2230* **行程內 Agent SDK 回呼**:當嵌入 Claude Code 的應用程式將 hook 註冊為 [TypeScript SDK 回呼](/docs/zh-TW/agent-sdk/hooks),並在即時工作階段中傳回註記時,分類器可能會將註記中轉述的使用者陳述視為使用者意圖。此類陳述可以滿足分類器原本會接受您傳送訊息來滿足的同意要求,但永遠無法解除您自己的訊息也無法解除的封鎖。工作階段恢復後,Claude Code 會將還原的註記視為未經驗證的上下文。當兩組來源的 hook 都為同一次呼叫加上註記時,分類器會將合併後的註記視為未經驗證

2223 2231 

2224Claude Code 在傳遞說明時應用這些限制:2232Claude Code 在傳遞註記時會套用以下限制:

2225 2233 

2226* **長度**:Claude Code 將一個工具呼叫的說明上限為 2,000 個字元,並截斷其餘部分。上限在回應該呼叫的每個 hook 之間共享2234* **長度**:Claude Code 將單次工具呼叫的註記上限設為 2,000 個字元,超出部分會被截斷。此上限由回應該次呼叫的所有 hook 共用

2227* **僅同步回應**:Claude Code 忽略 [在背景執行](#run-hooks-in-the-background) 的 hook 回應中的欄位,因為該回應在 Claude Code 記錄工具結果後到達2235* **僅限同步回應**:對於[在背景執行](#run-hooks-in-the-background)的 hook,Claude Code 會忽略其回應中的此欄位,因為該回應會在 Claude Code 記錄工具結果之後才抵達

2228* **分類器不記錄的呼叫**:分類器的文字記錄省略唯讀查詢,例如檔案讀取和搜尋。Claude Code 捨棄附加到其中一個呼叫的說明2236* **分類器未記錄的呼叫**:分類器的逐字稿會省略唯讀查詢,例如檔案讀取與搜尋。附加在這類呼叫上的註記會被 Claude Code 捨棄

2229* **與重寫的互動**:當說明描述您使用 `updatedToolOutput` 替換的輸出時,在相同的 hook 回應中返回兩個欄位。如果該重寫被拒絕或另一個 hook 的重寫替換它,Claude Code 會捨棄說明。Claude Code 傳遞您返回的說明,而不進行重寫,即使另一個 hook 重寫輸出2237* **與改寫的互動**:當註記描述的是您正以 `updatedToolOutput` 取代的輸出時,請在同一個 hook 回應中同時傳回這兩個欄位。若該改寫遭到拒絕,或被另一個 hook 的改寫取代,Claude Code 會捨棄該註記。若您傳回註記但未改寫,即使另一個 hook 改寫了輸出,Claude Code 仍會傳遞您的註記

2230 2238 

2231<Warning>2239<Warning>

2232 分類器將您放在 `classifierContext` 中的內容讀取為來自應用程式主機工作階段的資訊,因此不要將不受信任的工具輸出或第三方文字複製到其中。將說明保持為關於此一個呼叫的簡短聲明,例如關於其來源的事實或關於它的使用者陳述;不要使用欄位傳遞不相關的訊息或事件流。2240 分類器會將您放入 `classifierContext` 的內容視為來自託管工作階段之應用程式的資訊,因此請勿將不受信任的工具輸出或第三方文字複製到其中。請將註記限制為關於這一次呼叫的簡短陳述,例如其來源的相關事實,或使用者對其的陳述;請勿使用此欄位傳遞無關的訊息或一連串事件。

2233</Warning>2241</Warning>

2234 2242 

2235<h3 id="posttoolusefailure">2243<h3 id="posttoolusefailure">

2236 PostToolUseFailure2244 PostToolUseFailure

2237</h3>2245</h3>

2238 2246 

2239在開始執行的工具失敗時執行:工具拋出錯誤,或 MCP 工具返回錯誤結果。使用此來記錄失敗、傳送警報或向 Claude 提供更正反饋。2247當已開始執行的工具失敗時執行:工具擲出錯誤,或 MCP 工具傳回錯誤結果。可用來記錄失敗、傳送警示,或向 Claude 提供修正回饋。

2240 2248 

2241在工具名稱上匹配,與 PreToolUse 相同的值。2249依工具名稱比對,可用值與 PreToolUse 相同。

2242 2250 

2243<Note>2251<Note>

2244 此事件不會對執行前被拒絕的工具呼叫執行:未知工具名稱、失敗架構或工具特定驗證的輸入,或權限拒絕。驗證拒絕作為 `tool_use_error` 結果返回,並在 hooks 執行之前發生,因此它們既不執行 `PreToolUse` 也不執行此事件。權限拒絕執行 `PreToolUse` 但不執行此事件;請參閱 [PermissionDenied](#permissiondenied)。2252 對於在執行前即遭拒絕的工具呼叫,此事件不會觸發:未知的工具名稱、未通過 schema 或工具專屬驗證的輸入,或權限遭拒。驗證拒絕會以 `tool_use_error` 結果傳回,且發生在 hook 執行之前,因此既不會觸發 `PreToolUse`,也不會觸發 `PostToolUseFailure`。權限遭拒會觸發 `PreToolUse`,但不會觸發此事件;請參閱 [PermissionDenied](#permissiondenied)。

2245</Note>2253</Note>

2246 2254 

2247<h4 id="posttoolusefailure-input">2255<h4 id="posttoolusefailure-input">

2248 PostToolUseFailure 輸入2256 PostToolUseFailure 輸入

2249</h4>2257</h4>

2250 2258 

2251PostToolUseFailure hooks 接收與 PostToolUse 相同的 `tool_name` 和 `tool_input` 欄位,以及錯誤資訊作為頂級欄位。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。例如,失敗的 `npm test` 命令可能傳遞:2259PostToolUseFailure hook 會收到與 PostToolUse 相同的 `tool_name` 與 `tool_input` 欄位,以及作為頂層欄位的錯誤資訊。對於 MCP 工具,它們也會收到 [`mcp_server`](#pretooluse-input) 物件。例如,失敗的 `npm test` 命令可能會傳遞:

2252 2260 

2253```json theme={null}2261```json theme={null}

2254{2262{


2269}2277}

2270```2278```

2271 2279 

2272| 欄位 | 描述 |2280| 欄位 | 說明 |

2273| :- | :- |2281| :- | :- |

2274| `error` | 描述出錯內容的字串。格式取決於失敗的工具 |2282| `error` | 描述錯誤內容的字串。格式取決於失敗的工具 |

2275| `is_interrupt` | 可選布林值。當失敗作為中止而不是工具報告的錯誤到達 Claude Code 時為 true。取消執行中的工具不會執行此 hook;工具結果攜帶中斷訊息 |2283| `is_interrupt` | 選用布林值。當失敗是以中止的形式傳到 Claude Code,而非工具回報的錯誤時為 true。取消正在執行的工具不會觸發此 hook;工具結果會改為帶有中斷訊息 |

2276| `duration_ms` | 可選。工具執行時間(毫秒)。不包括權限提示和 PreToolUse hooks 中花費的時間 |2284| `duration_ms` | 選用。工具執行時間(毫秒)。不包含花在權限提示與 PreToolUse hook 上的時間 |

2277 2285 

2278`error` 字串通常與 Claude 作為失敗工具結果接收的相同文字相同。其格式因工具和失敗而異。在 `tool_name`、`is_interrupt` 和第一行 `Exit code N` 上鍵入您的 hook;將字串的其餘部分視為顯示文字,而不是穩定格式。2286`error` 字串通常與 Claude 收到的失敗工具結果文字相同。其格式因工具與失敗情況而異。請讓您的 hook 依據 `tool_name`、`is_interrupt` 以及第一行的 `Exit code N` 判斷;字串的其餘部分請視為顯示用文字,而非穩定的格式。

2279 2287 

2280* 對於 Bash 和 PowerShell,執行並退出的命令會產生第一行 `Exit code N`,然後是命令產生的任何輸出作為一個區塊,stdout 和 stderr 交錯2288* 對於 Bash 與 PowerShell,已執行並結束的命令會產生第一行 `Exit code N`,接著是命令產生的任何輸出,以 stdout 與 stderr 交錯的單一區塊呈現

2281* 有效負載也可能攜帶裸露的失敗訊息,沒有退出代碼行,當 Claude Code 無法啟動 shell 程序本身時2289* 當 Claude Code 無法啟動 shell 程序本身時,payload 也可能只帶有單純的失敗訊息,沒有退出碼那一行

2282* Claude Code 中間截斷長字串,圍繞 `... [N characters truncated] ...` 標記,並可以插入自己的行,例如 `Command timed out after 2m 0s`2290* Claude Code 會在 `... [N characters truncated] ...` 標記周圍截斷長字串的中間部分,也可能插入自己的文字行,例如 `Command timed out after 2m 0s`

2283 2291 

2284<h4 id="posttoolusefailure-decision-control">2292<h4 id="posttoolusefailure-decision-control">

2285 PostToolUseFailure 決策控制2293 PostToolUseFailure 決策控制

2286</h4>2294</h4>

2287 2295 

2288`PostToolUseFailure` hooks 可以在工具失敗後向 Claude 提供背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定的欄位:2296`PostToolUseFailure` hook 可以在工具失敗後向 Claude 提供上下文。除了所有 hook 皆可使用的 [JSON 輸出欄位](#json-output)之外,您的 hook 指令碼還可以傳回以下事件專屬欄位:

2289 2297 

2290| 欄位 | 描述 |2298| 欄位 | 說明 |

2291| :- | :- |2299| :- | :- |

2292| `additionalContext` | 與錯誤一起新增到 Claude 背景資訊的字串。有關詳細資訊,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |2300| `additionalContext` | 與錯誤一併加入 Claude 上下文的字串。請參閱[為 Claude 新增上下文](#add-context-for-claude) |

2293 2301 

2294```json theme={null}2302```json theme={null}

2295{2303{


2304 PostToolBatch2312 PostToolBatch

2305</h3>2313</h3>

2306 2314 

2307在批次中的每個工具呼叫都已解決後執行一次,在 Claude Code 傳送下一個請求給模型之前。`PostToolUse` 每個工具執行一次,這意味著當 Claude 進行平行工具呼叫時它並發執行。`PostToolBatch` 恰好執行一次,具有完整批次,因此它是注入取決於執行的工具集而不是任何單個工具的背景資訊的正確位置。此事件沒有匹配器。2315在批次中的每個工具呼叫都已解決後執行一次,時間點在 Claude Code 將下一個請求傳送給模型之前。`PostToolUse` 會針對每個工具觸發一次,這表示當 Claude 進行平行工具呼叫時,它會同時觸發。`PostToolBatch` 則會帶著完整批次恰好觸發一次,因此適合用來注入取決於已執行工具集合、而非任何單一工具的上下文。此事件沒有 matcher。

2308 2316 

2309<h4 id="posttoolbatch-input">2317<h4 id="posttoolbatch-input">

2310 PostToolBatch 輸入2318 PostToolBatch 輸入

2311</h4>2319</h4>

2312 2320 

2313除了 [常見輸入欄位](#common-input-fields) 外,PostToolBatch hooks 還會接收 `tool_calls`,一個描述批次中每個工具呼叫的陣列:2321除了[通用輸入欄位](#common-input-fields)之外,PostToolBatch hook 還會收到 `tool_calls`,這是描述批次中每個工具呼叫的陣列:

2314 2322 

2315```json theme={null}2323```json theme={null}

2316{2324{


2336}2344}

2337```2345```

2338 2346 

2339`tool_response` 包含模型在對應 `tool_result` 區塊中接收的相同內容。該值是序列化字串或內容區塊陣列,完全如工具發出的那樣。對於 `Read`,這意味著行號前綴文字,而不是原始檔案內容。回應可能很大,因此僅解析您需要的欄位。2347`tool_response` 包含與模型在對應 `tool_result` 區塊中收到的相同內容。其值為序列化字串或內容區塊陣列,與工具輸出時完全相同。對於 `Read`,這表示是帶有行號前綴的文字,而非原始檔案內容。回應可能很大,因此請只解析您需要的欄位。

2340 2348 

2341<Note>2349<Note>

2342 `tool_response` 形狀與 `PostToolUse` 的不同。`PostToolUse` 傳遞工具的結構化 `Output` 物件,例如 `Write` 的 `{filePath: "...", type: "create"}`;`PostToolBatch` 傳遞序列化 `tool_result` 內容模型看到的。2350 `tool_response` 的結構與 `PostToolUse` 的不同。`PostToolUse` 傳遞的是工具的結構化 `Output` 物件,例如 `Write` 的 `{filePath: "...", type: "create"}`;`PostToolBatch` 傳遞的則是模型看到的序列化 `tool_result` 內容。

2343</Note>2351</Note>

2344 2352 

2345<h4 id="posttoolbatch-decision-control">2353<h4 id="posttoolbatch-decision-control">

2346 PostToolBatch 決策控制2354 PostToolBatch 決策控制

2347</h4>2355</h4>

2348 2356 

2349`PostToolBatch` hooks 可以為 Claude 注入背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定的欄位:2357`PostToolBatch` hook 可以為 Claude 注入上下文。除了所有 hook 皆可使用的 [JSON 輸出欄位](#json-output)之外,您的 hook 指令碼還可以傳回以下事件專屬欄位:

2350 2358 

2351| 欄位 | 描述 |2359| 欄位 | 說明 |

2352| :- | :- |2360| :- | :- |

2353| `additionalContext` | 在下一個模型呼叫之前注入一次的背景資訊字串。有關傳遞詳細資訊、要放入其中的內容以及恢復的工作階段如何處理過去的值,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |2361| `additionalContext` | 在下一次模型呼叫之前注入一次的上下文字串。關於傳遞細節、應放入的內容,以及恢復的工作階段如何處理過去的值,請參閱[為 Claude 新增上下文](#add-context-for-claude) |

2354 2362 

2355```json theme={null}2363```json theme={null}

2356{2364{


2361}2369}

2362```2370```

2363 2371 

2364返回 `decision: "block"` 或 `continue: false` 在下一個模型呼叫之前停止代理迴圈。阻止訊息來自 JSON `reason` 或 `stopReason`,或來自退出 2 的 stderr。您在文字記錄中看到它作為警告,它保留在對話中,因此 Claude 在對話繼續時看到它。2372傳回 `decision: "block"` 或 `continue: false` 會在下一次模型呼叫之前停止代理式迴圈。封鎖訊息來自 JSON 的 `reason` 或 `stopReason`,或在退出碼 2 時來自 stderr。您會在逐字稿中看到它以警告形式呈現,且它會保留在對話中,因此對話繼續時 Claude 會看到它。

2365 2373 

2366<h3 id="permissiondenied">2374<h3 id="permissiondenied">

2367 PermissionDenied2375 PermissionDenied

2368</h3>2376</h3>

2369 2377 

2370在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 拒絕工具呼叫時執行,包括當它拒絕而沒有分類器判決時,因為 [與自動模式分開的安全檢查拒絕了分類器自己的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 或其回應未解析。此 hook 僅在自動模式中執行:當您手動拒絕權限對話、`PreToolUse` hook 阻止呼叫或 `deny` 規則匹配時,它不執行。使用它來記錄拒絕、調整配置或告訴模型它可能重試工具呼叫。2378當[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)拒絕工具呼叫時執行,包括因[與自動模式分開的安全檢查拒絕了分類器本身的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)或其回應無法解析,而在沒有分類器判定的情況下拒絕時。此 hook 只在自動模式下觸發:當您手動拒絕權限對話框、`PreToolUse` hook 封鎖呼叫,或 `deny` 規則相符時,它都不會執行。可用來記錄拒絕情況、調整設定,或告知模型可以重試該工具呼叫。

2371 2379 

2372在工具名稱上匹配,與 PreToolUse 相同的值。2380依工具名稱比對,可用值與 PreToolUse 相同。

2373 2381 

2374<h4 id="permissiondenied-input">2382<h4 id="permissiondenied-input">

2375 PermissionDenied 輸入2383 PermissionDenied 輸入

2376</h4>2384</h4>

2377 2385 

2378除了 [常見輸入欄位](#common-input-fields) 外,PermissionDenied hooks 還會接收 `tool_name`、`tool_input`、`tool_use_id` 和 `reason`。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。2386除了[通用輸入欄位](#common-input-fields)之外,PermissionDenied hook 還會收到 `tool_name`、`tool_input`、`tool_use_id` 與 `reason`。對於 MCP 工具,它們也會收到 [`mcp_server`](#pretooluse-input) 物件。

2379 2387 

2380```json theme={null}2388```json theme={null}

2381{2389{


2394}2402}

2395```2403```

2396 2404 

2397| 欄位 | 描述 |2405| 欄位 | 說明 |

2398| :- | :- |2406| :- | :- |

2399| `reason` | 拒絕原因。對於分類器判決,在大多數工作階段中,它命名方括號中的匹配規則,例如 `[Data Exfiltration]`;有關其他形式,請參閱 [審查拒絕](/docs/zh-TW/auto-mode-config#review-denials)。對於 [無判決拒絕](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 開頭。對於因分類器模型不可用而拒絕,它是固定文字 `Classifier unavailable` |2407| `reason` | 拒絕原因。對於分類器判定,在大多數工作階段中,它會以方括號標示相符的規則,例如 `[Data Exfiltration]`;其他形式請參閱[檢閱拒絕](/docs/zh-TW/auto-mode-config#review-denials)。對於[無判定的拒絕](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 開頭。對於因分類器模型無法使用而造成的拒絕,它是固定文字 `Classifier unavailable` |

2400 2408 

2401<h4 id="permissiondenied-decision-control">2409<h4 id="permissiondenied-decision-control">

2402 PermissionDenied 決策控制2410 PermissionDenied 決策控制

2403</h4>2411</h4>

2404 2412 

2405PermissionDenied hooks 可以告訴模型它可能重試被拒絕的工具呼叫。返回一個 JSON 物件,其中 `hookSpecificOutput.retry` 設定為 `true`:2413PermissionDenied hook 可以告知模型它可以重試遭拒的工具呼叫。傳回將 `hookSpecificOutput.retry` 設為 `true` 的 JSON 物件:

2406 2414 

2407```json theme={null}2415```json theme={null}

2408{2416{


2413}2421}

2414```2422```

2415 2423 

2416當 `retry` 為 `true` 時,Claude Code 向對話新增一條訊息,告訴模型它可能重試工具呼叫。Claude Code 不反轉拒絕本身。如果您的 hook 不返回 JSON,或返回 `retry: false`,拒絕成立,模型接收原始拒絕訊息。2424當 `retry` 為 `true` 時,Claude Code 會在對話中加入一則訊息,告知模型可以重試該工具呼叫。Claude Code 本身不會撤銷拒絕。如果您的 hook 未傳回 JSON,或傳回 `retry: false`,拒絕將維持不變,模型會收到原始的拒絕訊息。

2417 2425 

2418當分類器對動作產生 [無判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 時,Claude Code 忽略 `retry: true`:其回應未解析,或與自動模式分開的安全檢查拒絕了分類器自己的請求。對於這些拒絕,Claude Code 已在拒絕訊息中告訴模型是否稍後重試或繼續。2426當分類器[未對該動作做出判定](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,Claude Code 會忽略 `retry: true`:即其回應無法解析,或與自動模式分開的安全檢查拒絕了分類器本身的請求。對於這些拒絕,Claude Code 已會在拒絕訊息中告知模型應稍後重試或繼續進行其他工作。

2419 2427 

2420<h3 id="notification">2428<h3 id="notification">

2421 Notification2429 Notification

2422</h3>2430</h3>

2423 2431 

2424在 Claude Code 傳送通知時執行。在通知類型上匹配。省略匹配器以對所有通知類型執行 hooks。2432在 Claude Code 傳送通知時執行。依通知類型比對。省略 matcher 即可針對所有通知類型執行 hook。

2425 2433 

2426即使桌面通知關閉,您也會接收這些 hook 事件:`preferredNotifChannel` 設定(包括 `notifications_disabled`)僅更改您如何被警報,而不是您的 hook 是否執行。2434即使關閉桌面通知,您仍會收到這些 hook 事件:`preferredNotifChannel` 設定(包括 `notifications_disabled`)只會改變提醒您的方式,不會影響您的 hook 是否執行。

2427 2435 

2428| 匹配器 | 何時觸發 |2436| Matcher | 觸發時機 |

2429| :- | :- |2437| :- | :- |

2430| `permission_prompt` | Claude 需要您核准工具使用或沙箱命令的 [網路請求](/docs/zh-TW/sandboxing#network-isolation),提示已等待約六秒 |2438| `permission_prompt` | Claude 需要您核准工具使用或沙箱命令的[網路請求](/docs/zh-TW/sandboxing#network-isolation),且提示已等待約六秒 |

2431| `idle_prompt` | Claude 約 60 秒前完成回應,您自那以後未輸入 |2439| `idle_prompt` | Claude 約在 60 秒前完成回應,且您此後未曾輸入 |

2432| `auth_success` | 驗證完成 |2440| `auth_success` | 身分驗證完成 |

2433| `elicitation_dialog` | MCP 伺服器開啟引出表單,您約六秒未輸入 |2441| `elicitation_dialog` | MCP 伺服器開啟 elicitation 表單,且您約六秒未輸入 |

2434| `elicitation_url_dialog` | MCP 伺服器要求您開啟瀏覽器 URL,您約六秒未輸入 |2442| `elicitation_url_dialog` | MCP 伺服器要求您開啟瀏覽器 URL,且您約六秒未輸入 |

2435| `elicitation_complete` | MCP 伺服器報告 [URL 模式引出](#elicitation-input) 完成 |2443| `elicitation_complete` | MCP 伺服器回報 [URL 模式 elicitation](#elicitation-input) 已完成 |

2436| `elicitation_response` | MCP 引出回應傳送回伺服器 |2444| `elicitation_response` | MCP elicitation 回應已傳回伺服器 |

2437| `agent_needs_input` | 背景工作階段在 [agent view](/docs/zh-TW/agent-view) 在終端中開啟時開始等待您的輸入,或目前工作階段詢問您 [agent team 隊友的終端設定問題](/docs/zh-TW/agent-teams#choose-a-display-mode) 或自動模式的 [分類器請求費用通知](/docs/zh-TW/auto-mode-classifier-billing),您約六秒未輸入 |2445| `agent_needs_input` | 當 [agent view](/docs/zh-TW/agent-view) 在終端機中開啟時,背景工作階段開始等待您的輸入。當終端機工作階段向您顯示 [agent team 隊員的終端機設定問題](/docs/zh-TW/agent-teams#choose-a-display-mode)或自動模式關於[分類器請求費用](/docs/zh-TW/auto-mode-classifier-billing)的通知,且您約六秒未輸入時,也會觸發 |

2438| `agent_completed` | 背景工作階段完成或失敗。僅在 [agent view](/docs/zh-TW/agent-view) 在終端中開啟時執行 |2446| `agent_completed` | 背景工作階段完成或失敗。僅在 [agent view](/docs/zh-TW/agent-view) 於終端機中開啟時觸發 |

2439| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暫停您的任務後繼續它:在重設時,或更早當您在 Claude Code 中做某事時,例如新增使用額度、升級您的計畫或切換模型,使使用可用,具有 [模型設定例外](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset) |2447| `quota_auto_resume_fired` | Claude Code 在 claude.ai 用量上限暫停您的任務後繼續執行:於重設時,或當您在等待期間於 Claude Code 中執行的某些操作(例如新增用量點數、升級方案或切換模型)使用量再次可用時提前繼續,但有[模型設定例外](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset) |

2440| `quota_auto_resume_stale` | claude.ai 使用限制在您的電腦睡眠超過約 30 分鐘時重設。Claude Code 等待您按 `Enter` 而不是繼續。在較短的睡眠後,它繼續並改為執行 `quota_auto_resume_fired` |2448| `quota_auto_resume_stale` | claude.ai 用量上限在您的電腦休眠超過約 30 分鐘期間重設。Claude Code 會等待您按下 `Enter`,而不是自動繼續。若休眠時間較短,則會繼續並改為觸發 `quota_auto_resume_fired` |

2441| `quota_auto_resume_disabled` | Claude Code 結束其對 claude.ai 使用限制的等待,而不繼續您的任務:[`autoContinueAtUsageLimit`](/docs/zh-TW/settings-reference#autocontinueatusagelimit) 關閉或重設在 Claude Code 自己啟動的等待期間移動超過 24 小時,繼續的任務持續命中限制,或繼續在到達模型之前被阻止。當您按 `Esc` 或 `Ctrl+C` 或選擇 **不自動繼續** 時不執行 |2449| `quota_auto_resume_disabled` | Claude Code 結束對 claude.ai 用量上限的等待,但未繼續您的任務:[`autoContinueAtUsageLimit`](/docs/zh-TW/settings-reference#autocontinueatusagelimit) 已關閉,或在 Claude Code 自行開始的等待期間重設時間延後超過 24 小時、繼續的任務持續觸及上限,或繼續操作在抵達模型前遭到封鎖。當您按下 `Esc` 或 `Ctrl+C`,或選擇 **Don't continue automatically** 時不會觸發 |

2442 2450 

2443`quota_auto_resume_fired`、`quota_auto_resume_stale` 和 `quota_auto_resume_disabled` 類型需要 Claude Code v2.1.234 或更新版本。2451`quota_auto_resume_fired`、`quota_auto_resume_stale` 與 `quota_auto_resume_disabled` 類型需要 Claude Code v2.1.234 或更新版本。

2444 2452 

2445在終端工作階段中,沙箱命令的網路請求的 `permission_prompt` 需要 Claude Code v2.1.246 或更新版本。2453在終端機工作階段中,針對沙箱命令網路請求的 `permission_prompt` 需要 Claude Code v2.1.246 或更新版本。

2446 2454 

2447隊友終端設定問題的 `agent_needs_input` 需要 Claude Code v2.1.248 或更新版本。2455針對隊員終端機設定問題的 `agent_needs_input` 需要 Claude Code v2.1.248 或更新版本。

2448 2456 

2449<Note>2457<Note>

2450 `permission_prompt`、`idle_prompt`、`elicitation_dialog` 和 `elicitation_url_dialog` 類型與桌面通知共享其計時,因此在終端工作階段中,您僅在您似乎遠離終端時看到它們:2458 `permission_prompt`、`idle_prompt`、`elicitation_dialog` 與 `elicitation_url_dialog` 類型與桌面通知共用相同的計時方式,因此在終端機工作階段中,只有當您看起來已離開終端機時才會看到它們:

2451 2459 

2452 * 預期 `permission_prompt` 一旦您約六秒未輸入。計時器在權限提示出現時啟動,每次按鍵都會延遲它。要在 Claude 要求許可使用工具時立即執行 hook,請改用 [PermissionRequest](#permissionrequest)。2460 * 當您約六秒未輸入時,預期會出現 `permission_prompt`。計時器在權限提示出現時開始,每次按鍵都會使其延後。若要在 Claude 要求使用工具的權限時立即執行 hook,請改用 [PermissionRequest](#permissionrequest)。

2453 * 預期 `idle_prompt` 約 60 秒後 Claude 完成回應,並且僅當您自那以後未輸入時。Claude Code 在等待 claude.ai 使用限制重設時不傳送 `idle_prompt`。當等待自己結束時,其中一個 `quota_auto_resume_*` 類型執行。2461 * 預期 `idle_prompt` 會在 Claude 完成回應約 60 秒後出現,且僅在您此後未曾輸入,並且沒有背景 agent(例如背景 [subagent](/docs/zh-TW/sub-agents))仍在執行時才會出現。Claude Code 在等待 claude.ai 用量上限重設期間不會傳送 `idle_prompt`。當等待自行結束時,會改為觸發其中一種 `quota_auto_resume_*` 類型。

2454 * 預期 `elicitation_dialog` 用於引出表單,或 `elicitation_url_dialog` 用於瀏覽器 URL 請求,一旦您約六秒未輸入。兩者共享與 `permission_prompt` 相同的六秒閘門:計時器在對話出現時啟動,每次按鍵都會延遲它。2462 * 當您約六秒未輸入時,預期會出現 `elicitation_dialog`(針對 elicitation 表單)或 `elicitation_url_dialog`(針對瀏覽器 URL 請求)。兩者與 `permission_prompt` 共用相同的六秒門檻:計時器在對話框出現時開始,每次按鍵都會使其延後。

2455 2463 

2456 在另一個對話在螢幕上時到達的權限請求或引出保持相同的六秒閘門,從請求到達時計時。其通知可以在請求仍在等待時到達您。2464 在另一個對話框顯示於畫面上時抵達的權限請求或 elicitation,會維持相同的六秒門檻,並從請求抵達時開始計時。即使該請求仍在已開啟的對話框後方等待,其通知也可能送達您。

2457</Note>2465</Note>

2458 2466 

2459Claude Code 在將權限請求傳送給 Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/user-input) 的工作階段中以不同方式計時 `permission_prompt`,這是 Claude Desktop 和 VS Code 擴充功能主機 Claude Code 的方式:2467在 Claude Code 將權限請求傳送給 Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/user-input)的工作階段中(Claude Desktop 與 VS Code 擴充功能即以此方式託管 Claude Code),Claude Code 對 `permission_prompt` 的計時方式有所不同:

2460 2468 

2461* 預期 `permission_prompt` 約六秒後 Claude 要求許可。Claude Code 在您輸入時不延遲它。2469* 預期 `permission_prompt` 會在 Claude 要求權限約六秒後出現。Claude Code 不會因您輸入而延後它。

2462* 如果您或 [PermissionRequest](#permissionrequest) hook 更早回答,Claude Code 不執行 `permission_prompt`。2470* 如果您或 [PermissionRequest](#permissionrequest) hook 較早回應,Claude Code 不會執行 `permission_prompt`。

2463* 設定 [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/zh-TW/env-vars) 為 `1` 以在這些工作階段中關閉 `permission_prompt`。2471* 將 [`CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS`](/docs/zh-TW/env-vars) 設為 `1`,即可在這些工作階段中關閉 `permission_prompt`。

2464 2472 

2465在 v2.1.233 之前,`permission_prompt` 在這些工作階段中不執行。2473在 v2.1.233 之前,`permission_prompt` 不會在這些工作階段中觸發。

2466 2474 

2467使用單獨的匹配器根據通知類型執行不同的處理程式。此配置在 Claude 需要權限核准時觸發權限特定的警報指令碼,以及在 Claude 閒置時觸發不同的通知:2475使用不同的 matcher,即可依通知類型執行不同的處理常式。此設定會在 Claude 需要權限核准時觸發權限專用的警示指令碼,並在 Claude 閒置時觸發另一個通知:

2468 2476 

2469```json theme={null}2477```json theme={null}

2470{2478{


2497 Notification 輸入2505 Notification 輸入

2498</h4>2506</h4>

2499 2507 

2500除了 [常見輸入欄位](#common-input-fields) 外,Notification hooks 還會接收 `message` 搭配通知文字、可選的 `title` 和 `notification_type` 指示哪個類型執行。2508除了[通用輸入欄位](#common-input-fields)之外,Notification hook 還會收到含有通知文字的 `message`、選用的 `title`,以及指出觸發類型的 `notification_type`。

2501 2509 

2502```json theme={null}2510```json theme={null}

2503{2511{


2511}2519}

2512```2520```

2513 2521 

2514Notification hooks 無法阻止或修改通知。Claude Code 捨棄它們的 `systemMessage` 和 `continue` 欄位,但仍然發出 [`terminalSequence`](#emit-terminal-notifications),這是桌面通知範例所依賴的。Notification hooks 用於副作用,例如將通知轉發到外部服務。2522Notification hook 無法封鎖或修改通知。Claude Code 會捨棄其 `systemMessage` 與 `continue` 欄位,但仍會輸出 [`terminalSequence`](#emit-terminal-notifications),桌面通知範例即仰賴此欄位。Notification hook 的用途是執行副作用,例如將通知轉送至外部服務。

2515 2523 

2516<h3 id="subagentstart">2524<h3 id="subagentstart">

2517 SubagentStart2525 SubagentStart

2518</h3>2526</h3>

2519 2527 

2520在 Claude 使用 Agent 工具生成子代理時執行,當 Claude [恢復子代理](/docs/zh-TW/sub-agents#resume-subagents) 時,以及每次進程內 [agent team](/docs/zh-TW/agent-teams) 隊友處理新訊息時執行。支援匹配器以按代理類型名稱篩選。對於內建代理,這是代理名稱,例如 `general-purpose`、`Explore` 或 `Plan`。對於 [自訂子代理](/docs/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。2528當 Claude 使用 Agent 工具產生 subagent、當 Claude [恢復 subagent](/docs/zh-TW/sub-agents#resume-subagents),以及每當行程內 [agent team](/docs/zh-TW/agent-teams) 隊員處理新訊息時執行。支援以 matcher 依 agent 類型名稱篩選。對於內建 agent,這是 agent 名稱,例如 `general-purpose`、`Explore` 或 `Plan`。對於[自訂 subagent](/docs/zh-TW/sub-agents),這是 agent frontmatter 中的 `name` 欄位,而非檔案名稱。

2521 2529 

2522對於由 [外掛](/docs/zh-TW/plugins/overview) 提供的子代理,代理類型是外掛範圍的識別碼,例如 `my-plugin:reviewer`,而不是裸露的 frontmatter 名稱。冒號將外掛範圍的名稱放在正規表達式路徑上,因此使用 `^` 和 `$` 錨定匹配器以進行精確匹配:`^my-plugin:reviewer$`。2530對於由[外掛](/docs/zh-TW/plugins/overview)提供的 subagent,agent 類型是外掛範圍的識別碼,例如 `my-plugin:reviewer`,而非單純的 frontmatter 名稱。冒號會使外掛範圍的名稱走正規表示式路徑,因此請以 `^` 與 `$` 錨定 matcher 以進行完全比對:`^my-plugin:reviewer$`。

2523 2531 

2524<h4 id="subagentstart-input">2532<h4 id="subagentstart-input">

2525 SubagentStart 輸入2533 SubagentStart 輸入

2526</h4>2534</h4>

2527 2535 

2528除了 [常見輸入欄位](#common-input-fields) 外,SubagentStart hooks 還會接收 `agent_id` 搭配子代理的唯一識別碼和 `agent_type` 搭配匹配器篩選的代理名稱。2536除了[通用輸入欄位](#common-input-fields)之外,SubagentStart hook 還會收到含有 subagent 唯一識別碼的 `agent_id`,以及含有 matcher 篩選所依據之 agent 名稱的 `agent_type`。

2529 2537 

2530```json theme={null}2538```json theme={null}

2531{2539{


2538}2546}

2539```2547```

2540 2548 

2541SubagentStart hooks 無法阻止子代理建立,但它們可以將背景資訊注入到子代理中。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您可以返回:2549SubagentStart hook 無法封鎖 subagent 的建立,但可以將上下文注入 subagent。除了所有 hook 皆可使用的 [JSON 輸出欄位](#json-output)之外,您還可以傳回:

2542 2550 

2543| 欄位 | 描述 |2551| 欄位 | 說明 |

2544| :- | :- |2552| :- | :- |

2545| `additionalContext` | 在子代理對話開始時、其第一個提示之前新增到子代理背景資訊的字串。有關詳細資訊,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |2553| `additionalContext` | 在 subagent 對話開始時、其第一個提示詞之前加入其上下文的字串。請參閱[為 Claude 新增上下文](#add-context-for-claude) |

2546 2554 

2547```json theme={null}2555```json theme={null}

2548{2556{


2553}2561}

2554```2562```

2555 2563 

2556當 hook 再次對相同的子代理執行時,Claude Code 僅在子代理的背景資訊尚未保持來自較早執行的複本時注入返回的背景資訊。在啟動時注入的複本保留在位置,保持子代理的 [prompt cache](/docs/zh-TW/prompt-caching#subagents-and-the-cache) 完整。在 [自動壓縮](/docs/zh-TW/sub-agents#auto-compaction) 捨棄該複本後,Claude Code 再次注入下一次執行的背景資訊。2564當 hook 針對同一個 subagent 再次執行時,Claude Code 只會在 subagent 的上下文中尚未保有先前執行所注入的副本時,才注入傳回的上下文。啟動時注入的副本會保留在原處,使 subagent 的[提示快取](/docs/zh-TW/prompt-caching#subagents-and-the-cache)維持完整。在[自動壓縮](/docs/zh-TW/sub-agents#auto-compaction)捨棄該副本後,Claude Code 會再次注入下一次執行的上下文。

2557 2565 

2558<h3 id="subagentstop">2566<h3 id="subagentstop">

2559 SubagentStop2567 SubagentStop

2560</h3>2568</h3>

2561 2569 

2562在 Claude Code 子代理完成回應時執行。在代理類型上匹配,與 SubagentStart 相同的值。2570在 Claude Code subagent 完成回應時執行。依 agent 類型比對,可用值與 SubagentStart 相同。

2563 2571 

2564<h4 id="subagentstop-input">2572<h4 id="subagentstop-input">

2565 SubagentStop 輸入2573 SubagentStop 輸入

2566</h4>2574</h4>

2567 2575 

2568除了 [常見輸入欄位](#common-input-fields) 外,SubagentStop hooks 還會接收 `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path` 和 `last_assistant_message`。`agent_type` 欄位是用於匹配器篩選的值。`transcript_path` 是主工作階段的文字記錄,而 `agent_transcript_path` 是子代理自己的文字記錄,儲存在巢狀 `subagents/` 資料夾中。`last_assistant_message` 欄位包含子代理最終回應的文字內容,因此 hooks 可以存取它,而無需解析文字記錄檔案。2576除了[通用輸入欄位](#common-input-fields)之外,SubagentStop hook 還會收到 `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path` 與 `last_assistant_message`。`agent_type` 欄位是用於 matcher 篩選的值。`transcript_path` 是主工作階段的逐字稿,而 `agent_transcript_path` 則是 subagent 自己的逐字稿,儲存在巢狀的 `subagents/` 資料夾中。`last_assistant_message` 欄位包含 subagent 最終回應的文字內容,因此 hook 無需解析逐字稿檔案即可存取它。

2569 2577 

2570並非每個 SubagentStop 事件都來自 Claude 生成的子代理。Claude Code 也為其某些自己的功能執行內部代理,例如 [提示建議](/docs/zh-TW/interactive-mode#prompt-suggestions) 和 [`/btw` 側問題](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw),當其中一個完成時 SubagentStop 執行。對於這些事件,`agent_type` 是工作階段本身執行的代理名稱,例如使用 [`--agent`](/docs/zh-TW/cli-reference#cli-flags) 或 [`agent` 設定](/docs/zh-TW/settings-reference#agent) 設定的,以及當工作階段執行而不執行時的空字串。2578並非每個 SubagentStop 事件都來自 Claude 產生的 subagent。Claude Code 也會為其部分功能執行內部 agent,例如[提示詞建議](/docs/zh-TW/interactive-mode#prompt-suggestions)與 [`/btw` 旁支問題](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw),這些 agent 完成時同樣會觸發 SubagentStop。對於這些事件,`agent_type` 是工作階段本身所執行的 agent 名稱,例如以 [`--agent`](/docs/zh-TW/cli-reference#cli-flags) 或 [`agent` 設定](/docs/zh-TW/settings-reference#agent)指定的名稱;若工作階段未指定任何 agent,則為空字串。

2571 2579 

2572命名代理類型的 `matcher` 不匹配空 `agent_type`。其匹配器為省略、`""`、`"*"` 或是與空字串匹配的正規表達式的 hook 也對具有空 `agent_type` 的事件執行。2580指定 agent 類型的 `matcher` 不會比對到空的 `agent_type`。matcher 省略、為 `""` 或 `"*"`,或為可比對空字串之正規表示式的 hook,也會針對 `agent_type` 為空的事件執行。

2573 2581 

2574在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理(Claude Code 在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中提供)在停止之前透過該工具傳遞其報告。`last_assistant_message` 欄位然後保持子代理的結束文字(如果有),這不是傳遞的報告。報告是該呼叫的 `message` 輸入,`PreToolUse` 或 `PostToolUse` hook 匹配 `SubagentHandback` 接收作為 `tool_input.message`。2582在 Claude Code v2.1.271 或更新版本中,搭配 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的 subagent 會在停止前透過該工具傳遞其報告。此時 `last_assistant_message` 欄位保存的是 subagent 的結尾文字(若有),而非所傳遞的報告。報告是該次呼叫的 `message` 輸入,比對 `SubagentHandback` 的 `PreToolUse` 或 `PostToolUse` hook 會以 `tool_input.message` 收到它。

2575 2583 

2576SubagentStop hooks 也接收 [Stop input](#stop-input) 下描述的 `background_tasks` 和 `session_crons` 陣列。兩個陣列的範圍是父工作階段,而不是子代理。2584SubagentStop hook 也會收到 [Stop 輸入](#stop-input)中所述的 `background_tasks` 與 `session_crons` 陣列。這兩個陣列的範圍都是父工作階段,而非 subagent。

2577 2585 

2578```json theme={null}2586```json theme={null}

2579{2587{


2592}2600}

2593```2601```

2594 2602 

2595SubagentStop hooks 使用與 [Stop hooks](#stop-decision-control) 相同的決策控制格式,包括 `hookSpecificOutput.additionalContext` 搭配 `hookEventName` 設定為 `"SubagentStop"`,用於保持子代理執行的非錯誤反饋。返回 `decision: "block"` 搭配 `reason` 保持子代理執行並將 `reason` 作為其下一個指令傳遞給子代理。透過退出 2 阻止的 hook 以相同方式傳遞其 stderr 訊息。要在子代理返回後將背景資訊注入到父工作階段,請改用 `Agent` 工具上的 [`PostToolUse`](#posttooluse) hook。2603SubagentStop hook 使用與 [Stop hook](#stop-decision-control) 相同的決策控制格式,包括將 `hookEventName` 設為 `"SubagentStop"` 的 `hookSpecificOutput.additionalContext`,用於提供讓 subagent 繼續執行的非錯誤回饋。傳回附有 `reason` 的 `decision: "block"` 會讓 subagent 繼續執行,並將 `reason` 作為其下一個指令傳遞給 subagent。以退出碼 2 封鎖的 hook 也會以相同方式傳遞其 stderr 訊息。若要在 subagent 返回後將上下文注入父工作階段,請改用針對 `Agent` 工具的 [`PostToolUse`](#posttooluse) hook。

2596 2604 

2597<h3 id="taskcreated">2605<h3 id="taskcreated">

2598 TaskCreated2606 TaskCreated

2599</h3>2607</h3>

2600 2608 

2601在透過 `TaskCreate` 工具建立任務時執行。使用此來強制命名慣例、要求任務描述或防止建立某些任務。在 [沒有 Task 工具的工作階段](/docs/zh-TW/tools-reference#task-tool-availability) 中,此事件不執行。2609在透過 `TaskCreate` 工具建立任務時執行。可用來強制執行命名慣例、要求任務描述,或阻止特定任務被建立。在[不含 Task 工具的工作階段](/docs/zh-TW/tools-reference#task-tool-availability)中,此事件不會觸發。

2602 2610 

2603TaskCreated hooks 不支援匹配器,對每個出現執行。2611TaskCreated hook 不支援 matcher,每次發生時都會觸發。

2604 2612 

2605<h4 id="taskcreated-input">2613<h4 id="taskcreated-input">

2606 TaskCreated 輸入2614 TaskCreated 輸入

2607</h4>2615</h4>

2608 2616 

2609除了 [常見輸入欄位](#common-input-fields) 外,TaskCreated hooks 還會接收 `task_id`、`task_subject` 和可選的 `task_description`、`teammate_name` 和 `team_name`。2617除了[通用輸入欄位](#common-input-fields)之外,TaskCreated hook 還會收到 `task_id`、`task_subject`,以及選用的 `task_description`、`teammate_name` 與 `team_name`。

2610 2618 

2611```json theme={null}2619```json theme={null}

2612{2620{


2622}2630}

2623```2631```

2624 2632 

2625| 欄位 | 描述 |2633| 欄位 | 說明 |

2626| :- | :- |2634| :- | :- |

2627| `task_id` | 正在建立的任務的識別碼 |2635| `task_id` | 正在建立之任務的識別碼 |

2628| `task_subject` | 任務的標題 |2636| `task_subject` | 任務標題 |

2629| `task_description` | 任務的詳細描述。可能不存在 |2637| `task_description` | 任務的詳細描述。可能不存在 |

2630| `teammate_name` | 建立任務的隊友的名稱。可能不存在 |2638| `teammate_name` | 建立任務之隊員的名稱。可能不存在 |

2631| `team_name` | 已棄用。工作階段衍生的團隊名稱;將在未來版本中移除 |2639| `team_name` | 已棄用。由工作階段衍生的團隊名稱;將在未來版本中移除 |

2632 2640 

2633<h4 id="taskcreated-decision-control">2641<h4 id="taskcreated-decision-control">

2634 TaskCreated 決策控制2642 TaskCreated 決策控制

2635</h4>2643</h4>

2636 2644 

2637TaskCreated hook 可以透過兩種方式阻止建立。任一方式,Claude Code 刪除任務並將您的訊息作為工具的錯誤返回給 Claude。Claude Code 忽略此事件的 `continue: false`,Claude 繼續工作。2645TaskCreated hook 可以透過兩種方式封鎖建立。無論哪種方式,Claude Code 都會刪除該任務,並將您的訊息作為工具錯誤傳回給 Claude。Claude Code 會忽略此事件的 `continue: false`,Claude 會繼續工作。

2638 2646 

2639* **退出代碼 2**:Claude Code 將 stderr 文字作為訊息返回。2647* **退出碼 2**:Claude Code 將 stderr 文字作為訊息傳回。

2640* **JSON `{"decision": "block", "reason": "..."}`**:Claude Code 將 `reason` 作為訊息返回。2648* **JSON `{"decision": "block", "reason": "..."}`**:Claude Code 將 `reason` 作為訊息傳回。

2641 2649 

2642此範例阻止主題不遵循所需格式的任務:2650此範例會封鎖主旨不符合所需格式的任務:

2643 2651 

2644```bash theme={null}2652```bash theme={null}

2645#!/bin/bash2653#!/bin/bash


2658 TaskCompleted2666 TaskCompleted

2659</h3>2667</h3>

2660 2668 

2661在任務被標記為完成時執行。這在兩種情況下執行:當任何代理透過 TaskUpdate 工具明確標記任務為完成時,或當 [agent team](/docs/zh-TW/agent-teams) 隊友以進行中的任務完成其回合時。使用此來強制完成標準,例如通過測試或 lint 檢查,然後任務才能關閉。2669在任務即將被標記為已完成時執行。這會在兩種情況下觸發:任何 agent 透過 TaskUpdate 工具明確將任務標記為已完成時,或 [agent team](/docs/zh-TW/agent-teams) 隊員在仍有進行中任務的情況下結束其回合時。可用來在任務關閉前強制執行完成條件,例如通過測試或 lint 檢查。

2662 2670 

2663TaskCompleted hooks 不支援匹配器,對每個出現執行。2671TaskCompleted hook 不支援 matcher,每次發生時都會觸發。

2664 2672 

2665<h4 id="taskcompleted-input">2673<h4 id="taskcompleted-input">

2666 TaskCompleted 輸入2674 TaskCompleted 輸入

2667</h4>2675</h4>

2668 2676 

2669除了 [常見輸入欄位](#common-input-fields) 外,TaskCompleted hooks 還會接收 `task_id`、`task_subject` 和可選的 `task_description`、`teammate_name` 和 `team_name`。2677除了[通用輸入欄位](#common-input-fields)之外,TaskCompleted hook 還會收到 `task_id`、`task_subject`,以及選用的 `task_description`、`teammate_name` 與 `team_name`。

2670 2678 

2671```json theme={null}2679```json theme={null}

2672{2680{


2683}2691}

2684```2692```

2685 2693 

2686| 欄位 | 描述 |2694| 欄位 | 說明 |

2687| :- | :- |2695| :- | :- |

2688| `task_id` | 正在完成的任務的識別碼 |2696| `task_id` | 正在完成之任務的識別碼 |

2689| `task_subject` | 任務的標題 |2697| `task_subject` | 任務標題 |

2690| `task_description` | 任務的詳細描述。可能不存在 |2698| `task_description` | 任務的詳細描述。可能不存在 |

2691| `teammate_name` | 完成任務的隊友的名稱。可能不存在 |2699| `teammate_name` | 完成任務之隊員的名稱。可能不存在 |

2692| `team_name` | 已棄用。工作階段衍生的團隊名稱;將在未來版本中移除 |2700| `team_name` | 已棄用。由工作階段衍生的團隊名稱;將在未來版本中移除 |

2693 2701 

2694<h4 id="taskcompleted-decision-control">2702<h4 id="taskcompleted-decision-control">

2695 TaskCompleted 決策控制2703 TaskCompleted 決策控制

2696</h4>2704</h4>

2697 2705 

2698TaskCompleted hooks 支援兩種方式來控制任務完成:2706TaskCompleted hook 支援兩種控制任務完成的方式:

2699 2707 

2700* **退出代碼 2**:任務未被標記為完成,stderr 訊息作為反饋反饋給模型。2708* **退出碼 2**:任務不會被標記為已完成,stderr 訊息會作為回饋傳回給模型。

2701* **JSON `{"continue": false, "stopReason": "..."}`**:當隊友完成其回合觸發事件時,完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。當 `TaskUpdate` 工具觸發事件時,Claude Code 忽略 `continue: false`;退出代碼 2 仍然阻止完成。2709* **JSON `{"continue": false, "stopReason": "..."}`**:當事件是由隊員結束其回合所觸發時,會完全停止該隊員,與 `Stop` hook 的行為一致。`stopReason` 會顯示給使用者。當事件是由 `TaskUpdate` 工具觸發時,Claude Code 會忽略 `continue: false`;退出碼 2 仍會封鎖完成。

2702 2710 

2703此範例執行測試並在它們失敗時阻止任務完成:2711此範例會執行測試,並在測試失敗時封鎖任務完成:

2704 2712 

2705```bash theme={null}2713```bash theme={null}

2706#!/bin/bash2714#!/bin/bash


2720 Stop2728 Stop

2721</h3>2729</h3>

2722 2730 

2723在主 Claude Code 代理完成回應時執行。如果停止是由於使用者中斷而發生,則不執行。API 錯誤改為執行 [StopFailure](#stopfailure)。2731在主要 Claude Code agent 完成回應時執行。若停止是由使用者中斷所造成,則不會執行。API 錯誤會改為觸發

2732[StopFailure](#stopfailure)。

2724 2733 

2725<Tip>2734<Tip>

2726 [`/goal`](/docs/zh-TW/goal) 命令是工作階段範圍提示型 Stop hook 的內建快捷方式。當您想讓 Claude 在不編寫 hook 配置的情況下朝著條件工作時,使用它。2735 [`/goal`](/docs/zh-TW/goal) 命令是工作階段範圍、以提示詞為基礎之 Stop hook 的內建捷徑。當您希望 Claude 持續朝某個條件努力,而不想撰寫 hook 設定時,可以使用它。

2727</Tip>2736</Tip>

2728 2737 

2729<h4 id="stop-input">2738<h4 id="stop-input">

2730 Stop 輸入2739 Stop 輸入

2731</h4>2740</h4>

2732 2741 

2733除了 [常見輸入欄位](#common-input-fields) 外,Stop hooks 還會接收 `stop_hook_active`、`last_assistant_message`、`background_tasks` 和 `session_crons`。`stop_hook_active` 欄位在 Claude Code 已作為 stop hook 的結果繼續時為 `true`。檢查此值或處理文字記錄以避免在永遠不會解決的條件上阻止。Claude Code 應用 8 連續繼續上限:在 stop hooks 連續繼續回合八次後,Claude Code 覆寫下一個阻止並結束回合。要提高上限,設定 [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/zh-TW/env-vars)。2742除了[通用輸入欄位](#common-input-fields)之外,Stop hook 還會收到 `stop_hook_active`、`last_assistant_message`、`background_tasks` 與 `session_crons`。當 Claude Code 已因 stop hook 而繼續執行時,`stop_hook_active` 欄位為 `true`。請檢查此值或處理逐字稿,以避免因永遠無法解決的條件而持續封鎖。Claude Code 套用連續 8 次繼續的上限:在 stop hook 連續讓回合繼續八次後,Claude Code 會覆寫下一次封鎖並結束回合。若要提高上限,請設定 [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/zh-TW/env-vars)。

2734 2743 

2735`last_assistant_message` 欄位包含 Claude 最終回應的文字內容,因此 hooks 可以存取它,而無需解析文字記錄檔案。對於作用於剛完成的回合的 hooks,例如朗讀或通知 hooks,使用此欄位而不是讀取 `transcript_path`:文字記錄檔案不保證在所有版本的 Stop 時間包含最終訊息。2744`last_assistant_message` 欄位包含 Claude 最終回應的文字內容,因此 hook 無需解析逐字稿檔案即可存取它。對於針對剛完成之回合採取動作的 hook(例如朗讀或通知 hook),請使用此欄位,而非讀取 `transcript_path`:並非所有版本都保證逐字稿檔案在 Stop 時已包含最終訊息。

2736 2745 

2737`background_tasks` 和 `session_crons` 陣列讓 hooks 區分「工作階段完成」與「工作階段暫停等待背景工作喚醒它」。當任務登錄可到達時兩個陣列都存在,當沒有任何內容在執行或排程時為空。2746`background_tasks` 與 `session_crons` 陣列讓 hook 能夠區分「工作階段已完成」與「工作階段已暫停,等待背景工作將其喚醒」。當任務登錄可存取時,兩個陣列都會存在;若沒有正在進行或已排程的項目,則為空陣列。

2738 2747 

2739`background_tasks` 中的每個項目描述一個進行中的任務,並使用這些欄位:2748`background_tasks` 中的每個項目描述一個正在進行的任務,並使用以下欄位:

2740 2749 

2741| 欄位 | 描述 |2750| 欄位 | 說明 |

2742| :- | :- |2751| :- | :- |

2743| `id` | 任務識別碼 |2752| `id` | 任務識別碼 |

2744| `type` | 友善的任務類型標籤,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每個標籤識別哪個 Claude Code 功能建立了任務。對於無法識別的類型,回退到原始判別式 |2753| `type` | 易讀的任務類型標籤,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每個標籤識別建立該任務的 Claude Code 功能。對於無法辨識的類型,會退回使用原始判別值 |

2745| `status` | 目前任務狀態 |2754| `status` | 目前的任務狀態 |

2746| `description` | 自由文字描述,上限為 1000 個字元,當剪裁時帶有字串內 `… [+N chars]` 標記 |2755| `description` | 自由文字描述,上限為 1000 個字元,截斷時字串中會帶有 `… [+N chars]` 標記 |

2747| `command` | Shell 命令行,上限為 1000 個字元。僅對 `shell` 任務出現 |2756| `command` | shell 命令列,上限為 1000 個字元。僅存在於 `shell` 任務 |

2748| `agent_type` | 子代理類型名稱。僅對 `subagent` 任務出現 |2757| `agent_type` | subagent 類型名稱。僅存在於 `subagent` 任務 |

2749| `server` | MCP 伺服器名稱。僅對 `monitor` 和 `MCP task` 任務出現 |2758| `server` | MCP 伺服器名稱。僅存在於 `monitor` 與 `MCP task` 任務 |

2750| `tool` | MCP 工具名稱。僅對 `monitor` 和 `MCP task` 任務出現 |2759| `tool` | MCP 工具名稱。僅存在於 `monitor` 與 `MCP task` 任務 |

2751| `name` | 工作流程名稱。僅對 `workflow` 任務出現 |2760| `name` | 工作流程名稱。僅存在於 `workflow` 任務 |

2752 2761 

2753`session_crons` 中的每個項目描述一個工作階段範圍的排程喚醒,來自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:2762`session_crons` 中的每個項目描述一個工作階段範圍的排程喚醒,來源為 `CronCreate`、`ScheduleWakeup` 與 `/loop`:

2754 2763 

2755| 欄位 | 描述 |2764| 欄位 | 說明 |

2756| :- | :- |2765| :- | :- |

2757| `id` | Cron 任務識別碼 |2766| `id` | Cron 任務識別碼 |

2758| `schedule` | Cron 表達式,例如 `0 9 * * 1-5` |2767| `schedule` | Cron 運算式,例如 `0 9 * * 1-5` |

2759| `recurring` | 對於其排程編碼單個執行時間的一次性喚醒為 `false`,對於在每個匹配上重新執行的任務為 `true` |2768| `recurring` | 對於排程只編碼單一觸發時間的一次性喚醒為 `false`,對於每次相符時都會再次觸發的任務為 `true` |

2760| `prompt` | 當 cron 執行時提交的提示,上限為 1000 個字元,具有相同的 `… [+N chars]` 標記 |2769| `prompt` | cron 觸發時送出的提示詞,上限為 1000 個字元,並帶有相同的 `… [+N chars]` 標記 |

2761 2770 

2762此範例顯示具有一個進行中的 shell 任務和一個循環 cron 的 Stop 輸入:2771此範例顯示含有一個正在進行之 shell 任務與一個週期性 cron 的 Stop 輸入:

2763 2772 

2764```json theme={null}2773```json theme={null}

2765{2774{


2794 Stop 決策控制2803 Stop 決策控制

2795</h4>2804</h4>

2796 2805 

2797`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否繼續。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定的欄位:2806`Stop` 與 `SubagentStop` hook 可以控制 Claude 是否繼續。除了所有 hook 皆可使用的 [JSON 輸出欄位](#json-output)之外,您的 hook 指令碼還可以傳回以下事件專屬欄位:

2798 2807 

2799| 欄位 | 描述 |2808| 欄位 | 說明 |

2800| :- | :- |2809| :- | :- |

2801| `decision` | `"block"` 防止 Claude 停止。省略以允許 Claude 停止 |2810| `decision` | `"block"` 會阻止 Claude 停止。省略即允許 Claude 停止 |

2802| `reason` | 當 `decision` 為 `"block"` 時需要。告訴 Claude 為什麼它應該繼續 |2811| `reason` | 當 `decision` 為 `"block"` 時為必填。告訴 Claude 為何應繼續 |

2803| `hookSpecificOutput.additionalContext` | Claude 的非錯誤反饋。對話繼續,以便 Claude 可以作用於它,但與 `decision: "block"` 不同,它在文字記錄中顯示為 hook 反饋,而不是 hook 錯誤 |2812| `hookSpecificOutput.additionalContext` | 提供給 Claude 的非錯誤回饋。對話會繼續,讓 Claude 能據以行動,但與 `decision: "block"` 不同,它在逐字稿中會顯示為 hook 回饋,而非 hook 錯誤 |

2804 2813 

2805透過退出 2 阻止的 hook 路由方式與 `reason` 相同:Claude 接收 stderr 訊息作為為什麼它應該繼續的解釋。2814以退出碼 2 封鎖的 hook,其處理方式與 `reason` 相同:Claude 會收到 stderr 訊息,作為它應繼續的原因說明。

2806 2815 

2807```json theme={null}2816```json theme={null}

2808{2817{


2811}2820}

2812```2821```

2813 2822 

2814當 hook 按設計工作並給予 Claude 指導時,使用 `additionalContext`,例如「在完成前執行測試套件」。它透過與 `decision: "block"` 相同的迴圈保護保持對話進行,即 `stop_hook_active` 輸入和 8 連續繼續上限,但文字記錄將其標籤為 `Stop hook feedback`,不顯示 hook 錯誤通知:2823當 hook 依設計運作並為 Claude 提供指引時(例如「完成前請執行測試套件」),請使用 `additionalContext`。它會透過與 `decision: "block"` 相同的迴圈保護機制讓對話繼續,即 `stop_hook_active` 輸入與連續 8 次繼續的上限,但逐字稿會將其標示為 `Stop hook feedback`,且不會顯示 hook 錯誤通知:

2815 2824 

2816```json theme={null}2825```json theme={null}

2817{2826{


2826 StopFailure2835 StopFailure

2827</h3>2836</h3>

2828 2837 

2829在回合因 API 錯誤而結束時執行,而不是 [Stop](#stop)。Claude Code 忽略 hook 的輸出和退出代碼,除了 [`terminalSequence`](#emit-terminal-notifications)。使用此來記錄失敗、傳送警報或在 Claude 因速率限制、驗證問題或其他 API 錯誤而無法完成回應時採取恢復動作。2838當回合因 API 錯誤而結束時,取代 [Stop](#stop) 執行。除了 [`terminalSequence`](#emit-terminal-notifications) 之外,Claude Code 會忽略此 hook 的輸出與退出碼。當 Claude 因速率限制、身分驗證問題或其他 API 錯誤而無法完成回應時,可用來記錄失敗、傳送警示或採取復原動作。

2830 2839 

2831<h4 id="stopfailure-input">2840<h4 id="stopfailure-input">

2832 StopFailure 輸入2841 StopFailure 輸入

2833</h4>2842</h4>

2834 2843 

2835除了 [常見輸入欄位](#common-input-fields) 外,StopFailure hooks 還會接收 `error`、可選的 `error_details` 和可選的 `last_assistant_message`。`error` 欄位識別錯誤類型,用於匹配器篩選。2844除了[通用輸入欄位](#common-input-fields)之外,StopFailure hook 還會收到 `error`、選用的 `error_details` 與選用的 `last_assistant_message`。`error` 欄位識別錯誤類型,並用於 matcher 篩選。

2836 2845 

2837| 欄位 | 描述 |2846| 欄位 | 說明 |

2838| :- | :- |2847| :- | :- |

2839| `error` | 錯誤類型:`rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error` 或 `unknown` |2848| `error` | 錯誤類型:`rate_limit`、`overloaded`、`authentication_failed`、`oauth_org_not_allowed`、`account_on_hold`、`billing_error`、`invalid_request`、`model_not_found`、`server_error`、`max_output_tokens`、`cloud_credential_error` 或 `unknown` |

2840| `error_details` | 關於錯誤的其他詳細資訊(如果可用) |2849| `error_details` | 關於錯誤的其他細節(若有) |

2841| `last_assistant_message` | 在對話中顯示的呈現錯誤文字。與 `Stop` 和 `SubagentStop` 不同,其中此欄位保持 Claude 的對話輸出,對於 `StopFailure` 它包含 API 錯誤字串本身,例如 `"API Error: Rate limit reached"` |2850| `last_assistant_message` | 對話中顯示的錯誤文字。與 `Stop` 和 `SubagentStop` 中此欄位保存 Claude 對話輸出的情況不同,對於 `StopFailure`,它包含 API 錯誤字串本身,例如 `"API Error: Rate limit reached"` |

2842 2851 

2843```json theme={null}2852```json theme={null}

2844{2853{


2852}2861}

2853```2862```

2854 2863 

2855StopFailure hooks 沒有決策控制。它們僅用於通知和記錄目的執行。2864StopFailure hook 沒有決策控制。它們僅用於通知與記錄日誌。

2856 2865 

2857<h3 id="teammateidle">2866<h3 id="teammateidle">

2858 TeammateIdle2867 TeammateIdle

2859</h3>2868</h3>

2860 2869 

2861在 [agent team](/docs/zh-TW/agent-teams) 隊友在完成其回合後即將閒置時執行。使用此來強制品質閘門,然後隊友停止工作,例如要求通過 lint 檢查或驗證輸出檔案存在。2870當 [agent team](/docs/zh-TW/agent-teams) 隊員在結束其回合後即將進入閒置狀態時執行。可用來在隊員停止工作前強制執行品質關卡,例如要求通過 lint 檢查或確認輸出檔案存在。

2862 2871 

2863TeammateIdle hooks 不支援匹配器,對每個出現執行。2872TeammateIdle hook 不支援 matcher,每次發生時都會觸發。

2864 2873 

2865<h4 id="teammateidle-input">2874<h4 id="teammateidle-input">

2866 TeammateIdle 輸入2875 TeammateIdle 輸入

2867</h4>2876</h4>

2868 2877 

2869除了 [常見輸入欄位](#common-input-fields) 外,TeammateIdle hooks 還會接收 `teammate_name` 和 `team_name`。2878除了[通用輸入欄位](#common-input-fields)之外,TeammateIdle hook 還會收到 `teammate_name` 與 `team_name`。

2870 2879 

2871```json theme={null}2880```json theme={null}

2872{2881{


2880}2889}

2881```2890```

2882 2891 

2883| 欄位 | 描述 |2892| 欄位 | 說明 |

2884| :- | :- |2893| :- | :- |

2885| `teammate_name` | 即將閒置的隊友的名稱 |2894| `teammate_name` | 即將進入閒置狀態之隊員的名稱 |

2886| `team_name` | 已棄用。工作階段衍生的團隊名稱;將在未來版本中移除 |2895| `team_name` | 已棄用。由工作階段衍生的團隊名稱;將在未來版本中移除 |

2887 2896 

2888<h4 id="teammateidle-decision-control">2897<h4 id="teammateidle-decision-control">

2889 TeammateIdle 決策控制2898 TeammateIdle 決策控制

2890</h4>2899</h4>

2891 2900 

2892TeammateIdle hooks 支援兩種方式來控制隊友行為:2901TeammateIdle hook 支援兩種控制隊員行為的方式:

2893 2902 

2894* **退出代碼 2**:隊友接收 stderr 訊息作為反饋並繼續工作,而不是閒置。2903* **退出碼 2**:隊員會收到 stderr 訊息作為回饋,並繼續工作而不進入閒置狀態。

2895* **JSON `{"continue": false, "stopReason": "..."}`**:完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。2904* **JSON `{"continue": false, "stopReason": "..."}`**:完全停止該隊員,與 `Stop` hook 的行為一致。`stopReason` 會顯示給使用者。

2896 2905 

2897此範例檢查建立成品是否存在,然後允許隊友閒置:2906此範例會在允許隊員進入閒置狀態前,檢查建置產物是否存在:

2898 2907 

2899```bash theme={null}2908```bash theme={null}

2900#!/bin/bash2909#!/bin/bash


2911 ConfigChange2920 ConfigChange

2912</h3>2921</h3>

2913 2922 

2914在工作階段期間配置檔案變更時執行。使用此來稽核設定變更、強制安全原則或阻止對配置檔案的未授權修改。2923在工作階段期間設定檔變更時執行。可用來稽核設定變更、強制執行安全政策,或封鎖對設定檔未經授權的修改。

2915 2924 

2916Claude Code 在設定檔、受管原則檔案或 skill 檔案變更時執行 ConfigChange hooks。對於受管原則,它僅在 `managed-settings.json` 或 `managed-settings.d/` 中的檔案變更時執行。它應用 [伺服器受管設定](/docs/zh-TW/server-managed-settings) 和對 macOS 受管偏好設定或 Windows 登錄原則的變更,而不執行它們。在 WSL 上搭配 [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings),它也應用在其原則輪詢上變更的 Windows 端受管設定檔,而不執行它們。2925當設定檔、受管政策檔案或 skill 檔案變更時,Claude Code 會執行 ConfigChange hook。對於受管政策,只有在 `managed-settings.json` 或 `managed-settings.d/` 中的檔案變更時才會執行。套用[伺服器管理設定](/docs/zh-TW/server-managed-settings)以及 macOS 受管偏好設定或 Windows 登錄政策的變更時,不會執行這些 hook。在啟用 [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) 的 WSL 上,它在政策輪詢時套用已變更的 Windows 端受管設定檔,同樣不會執行這些 hook。

2917 2926 

2918匹配器篩選配置來源:2927matcher 依設定來源篩選:

2919 2928 

2920| 匹配器 | 何時觸發 |2929| Matcher | 觸發時機 |

2921| :- | :- |2930| :- | :- |

2922| `user_settings` | `~/.claude/settings.json` 變更 |2931| `user_settings` | `~/.claude/settings.json` 變更 |

2923| `project_settings` | `.claude/settings.json` 變更 |2932| `project_settings` | `.claude/settings.json` 變更 |


2925| `policy_settings` | `managed-settings.json` 或 `managed-settings.d/` 中的檔案變更 |2934| `policy_settings` | `managed-settings.json` 或 `managed-settings.d/` 中的檔案變更 |

2926| `skills` | `.claude/skills/` 中的 skill 檔案變更 |2935| `skills` | `.claude/skills/` 中的 skill 檔案變更 |

2927 2936 

2928此範例記錄所有配置變更以進行安全稽核:2937此範例會記錄所有設定變更以供安全稽核:

2929 2938 

2930```json theme={null}2939```json theme={null}

2931{2940{


2949 ConfigChange 輸入2958 ConfigChange 輸入

2950</h4>2959</h4>

2951 2960 

2952除了 [常見輸入欄位](#common-input-fields) 外,ConfigChange hooks 還會接收 `source` 和可選的 `file_path`。`source` 欄位指示哪個配置類型變更,`file_path` 提供修改的特定檔案的路徑。2961除了[通用輸入欄位](#common-input-fields)之外,ConfigChange hook 還會收到 `source` 與選用的 `file_path`。`source` 欄位指出哪種設定類型發生變更,`file_path` 則提供被修改之特定檔案的路徑。

2953 2962 

2954```json theme={null}2963```json theme={null}

2955{2964{


2966 ConfigChange 決策控制2975 ConfigChange 決策控制

2967</h4>2976</h4>

2968 2977 

2969ConfigChange hooks 可以阻止配置變更生效。使用退出代碼 2 或 JSON `decision` 來防止變更。當被阻止時,新設定不會套用到執行中的工作階段。2978ConfigChange hook 可以封鎖設定變更使其不生效。使用退出碼 2 或 JSON `decision` 即可阻止變更。遭封鎖時,新設定不會套用至正在執行的工作階段。

2970 2979 

2971| 欄位 | 描述 |2980| 欄位 | 說明 |

2972| :- | :- |2981| :- | :- |

2973| `decision` | `"block"` 防止配置變更被套用。省略以允許變更 |2982| `decision` | `"block"` 會阻止套用設定變更。省略即允許變更 |

2974| `reason` | 接受但永遠不顯示 |2983| `reason` | 會被接受,但永遠不會顯示 |

2975 2984 

2976```json theme={null}2985```json theme={null}

2977{2986{


2980}2989}

2981```2990```

2982 2991 

2983`policy_settings` 變更無法被阻止。當受管設定檔在機器上變更時,hooks 仍然對 `policy_settings` 來源執行,因此您可以使用它們來記錄這些編輯,但任何阻止決定都會被忽略。這確保企業受管設定始終生效。當 [伺服器受管設定](/docs/zh-TW/server-managed-settings) 到達或重新整理時,Claude Code 不執行 `ConfigChange` hooks。2992`policy_settings` 變更無法被封鎖。當機器上的受管設定檔變更時,hook 仍會針對 `policy_settings` 來源觸發,因此您可以用它們記錄這些編輯,但任何封鎖決策都會被忽略。這可確保企業受管設定一律生效。當[伺服器管理設定](/docs/zh-TW/server-managed-settings)抵達或重新整理時,Claude Code 不會執行 `ConfigChange` hook。

2984 2993 

2985Claude Code 作用於 ConfigChange hook 的 JSON 輸出中的阻止決定,並捨棄 `systemMessage` 和 `continue`。被阻止的變更不會向您或 Claude 呈現任何訊息,無論您是否使用 `reason` 或 stderr 在退出 2 上阻止。Claude Code 僅將一行寫入 debug log。2994Claude Code 會依據 ConfigChange hook JSON 輸出中的封鎖決策採取行動,並捨棄 `systemMessage` 與 `continue`。無論您是以 `reason` 還是以退出碼 2 的 stderr 封鎖,遭封鎖的變更都不會向您或 Claude 顯示任何訊息。Claude Code 只會在偵錯日誌中寫入一行。

2986 2995 

2987<h3 id="cwdchanged">2996<h3 id="cwdchanged">

2988 CwdChanged2997 CwdChanged

2989</h3>2998</h3>

2990 2999 

2991在主對話中的 shell 命令變更工作目錄時執行,例如當 Claude 執行 `cd` 命令時。使用此來對目錄變更做出反應:重新載入環境變數、啟動專案特定的工具鏈或自動執行設定指令碼。與 [FileChanged](#filechanged) 配對,用於 [direnv](https://direnv.net/) 等管理每個目錄環境的工具。3000當主要對話中的 shell 命令變更工作目錄時執行,例如 Claude 執行 `cd` 命令時。可用來回應目錄變更:重新載入環境變數、啟用專案專屬的工具鏈,或自動執行設定指令碼。可與 [FileChanged](#filechanged) 搭配,用於像 [direnv](https://direnv.net/) 這類管理各目錄環境的工具。

2992 3001 

2993CwdChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續 Bash 命令,直到下一個 CwdChanged 事件,當 Claude Code 清除它們時。3002CwdChanged hook 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續的 Bash 命令中,直到下一個 CwdChanged 事件時由 Claude Code 清除。

2994 3003 

2995CwdChanged 不支援匹配器,對每個出現執行。3004CwdChanged 不支援 matcher,每次發生時都會觸發。

2996 3005 

2997<h4 id="cwdchanged-input">3006<h4 id="cwdchanged-input">

2998 CwdChanged 輸入3007 CwdChanged 輸入

2999</h4>3008</h4>

3000 3009 

3001除了 [常見輸入欄位](#common-input-fields) 外,CwdChanged hooks 還會接收 `old_cwd` 和 `new_cwd`。3010除了[通用輸入欄位](#common-input-fields)之外,CwdChanged hook 還會收到 `old_cwd` 與 `new_cwd`。

3002 3011 

3003```json theme={null}3012```json theme={null}

3004{3013{


3015 CwdChanged 輸出3024 CwdChanged 輸出

3016</h4>3025</h4>

3017 3026 

3018除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,CwdChanged hooks 可以返回 `watchPaths` 以動態設定 [FileChanged](#filechanged) 監視的檔案路徑:3027除了所有 hook 皆可使用的 [JSON 輸出欄位](#json-output)之外,CwdChanged hook 還可以傳回 `watchPaths`,以動態設定 [FileChanged](#filechanged) 監看的檔案路徑:

3019 3028 

3020| 欄位 | 描述 |3029| 欄位 | 說明 |

3021| :- | :- |3030| :- | :- |

3022| `watchPaths` | 絕對路徑的陣列。替換目前的動態監視清單。來自您 `matcher` 配置的路徑始終被監視。進入新目錄時返回空陣列是典型的 |3031| `watchPaths` | 絕對路徑陣列。取代目前的動態監看清單。來自您 `matcher` 設定的路徑一律會被監看。傳回空陣列會清除動態清單,這在進入新目錄時很常見 |

3023 3032 

3024CwdChanged hooks 沒有決策控制。它們無法阻止目錄變更。3033CwdChanged hook 沒有決策控制。它們無法封鎖目錄變更。

3025 3034 

3026Claude Code 從它們的 JSON 輸出讀取 `watchPaths` 和 `systemMessage`,並捨棄 `continue`。在互動式工作階段中,它將 `systemMessage` 顯示為簡短的終端通知。訊息不到達 SDK 訊息流。3035Claude Code 會從其 JSON 輸出讀取 `watchPaths` 與 `systemMessage`,並捨棄 `continue`。在互動式工作階段中,它會將 `systemMessage` 顯示為簡短的終端機通知。該訊息不會傳到 SDK 訊息串流。

3027 3036 

3028<h3 id="directoryadded">3037<h3 id="directoryadded">

3029 DirectoryAdded3038 DirectoryAdded

3030</h3>3039</h3>

3031 3040 

3032在您使用 `/add-dir` 命令中途新增工作目錄後執行,或在 SDK 用戶端使用 `register_repo_root` 控制請求新增一個後執行。使用此來準備新增的儲存庫,例如安裝其相依性。3041在您於工作階段中途使用 `/add-dir` 命令新增工作目錄後,或在 SDK 用戶端以 `register_repo_root` 控制請求新增工作目錄後執行。可用來準備新加入的儲存庫,例如安裝其相依套件。

3033 3042 

3034Claude Code 在以下情況下不執行此事件:3043在下列情況下,Claude Code 不會觸發此事件:

3035 3044 

3036* 您使用 `--add-dir` 啟動旗標傳遞目錄;[SessionStart](#sessionstart) 涵蓋這些目錄3045* 您以 `--add-dir` 啟動旗標傳入目錄;這些目錄由 [SessionStart](#sessionstart) 涵蓋

3037* 您在 `/permissions` Workspace 標籤上新增目錄3046* 您在 `/permissions` 的 Workspace 分頁中新增目錄

3038* 您新增已是工作目錄或在其內的目錄3047* 您新增的目錄已是工作目錄或位於某個工作目錄內

3039 3048 

3040Claude Code 在重新整理沙箱和權限狀態後執行 DirectoryAdded,因此沙箱工具在您的 hook 執行時已看到新目錄。Hook 命令本身執行未沙箱化。3049Claude Code 會在重新整理沙箱與權限狀態後觸發 DirectoryAdded,因此當您的 hook 執行時,沙箱化的工具已能看到新目錄。hook 命令本身則在沙箱外執行。

3041 3050 

3042Claude Code 不等待 hook:新增立即完成,hook 在背景執行,具有 600 秒的預設逾時。3051Claude Code 不會等待 hook:新增會立即完成,hook 則在背景執行,使用 600 秒的預設逾時。

3043 3052 

3044匹配器篩選目錄的新增方式:3053matcher 依目錄的新增方式篩選:

3045 3054 

3046| 匹配器 | 何時觸發 |3055| Matcher | 觸發時機 |

3047| :- | :- |3056| :- | :- |

3048| `slash_command` | 您使用 `/add-dir` 新增目錄 |3057| `slash_command` | 您以 `/add-dir` 新增目錄 |

3049| `register_repo_root` | SDK 用戶端使用 `register_repo_root` 控制請求新增目錄 |3058| `register_repo_root` | SDK 用戶端以 `register_repo_root` 控制請求新增目錄 |

3050 3059 

3051<h4 id="directoryadded-input">3060<h4 id="directoryadded-input">

3052 DirectoryAdded 輸入3061 DirectoryAdded 輸入

3053</h4>3062</h4>

3054 3063 

3055除了 [常見輸入欄位](#common-input-fields) 外,DirectoryAdded hooks 還會接收 `directory` 和 `source`。3064除了[通用輸入欄位](#common-input-fields)之外,DirectoryAdded hook 還會收到 `directory` 與 `source`。

3056 3065 

3057| 欄位 | 描述 |3066| 欄位 | 說明 |

3058| :- | :- |3067| :- | :- |

3059| `directory` | 新增的目錄的絕對路徑 |3068| `directory` | 所新增目錄的絕對路徑 |

3060| `source` | 目錄如何被新增,`/add-dir` 為 `"slash_command"` 或 SDK 控制請求為 `"register_repo_root"` |3069| `source` | 目錄的新增方式,`/add-dir` 為 `"slash_command"`,SDK 控制請求為 `"register_repo_root"` |

3061 3070 

3062```json theme={null}3071```json theme={null}

3063{3072{


3070}3079}

3071```3080```

3072 3081 

3073DirectoryAdded hooks 沒有決策控制。它們無法阻止新增,這在 hook 執行時已完成。Claude Code 從它們的 JSON 輸出捨棄 `continue` 欄位,並根據來源以不同方式呈現其餘部分:3082DirectoryAdded hook 沒有決策控制。它們無法封鎖新增,因為 hook 執行時新增已經完成。Claude Code 會捨棄其 JSON 輸出中的 `continue` 欄位,其餘部分則依來源以不同方式呈現:

3074 3083 

3075* `slash_command`:Claude Code 將 hook 的 `systemMessage` 作為背景資訊傳遞給 Claude,在下一個對話回合上,而不是向您顯示。失敗 hooks 的計數出現在文字記錄中。完整失敗輸出進入 debug log3084* `slash_command`:Claude Code 會在下一個對話回合將 hook 的 `systemMessage` 作為上下文傳遞給 Claude,而不是顯示給您。失敗 hook 的數量會出現在逐字稿中。完整的失敗輸出會寫入偵錯日誌

3076* `register_repo_root`:Claude Code 僅將 `systemMessage` 輸出和失敗輸出寫入 debug log3085* `register_repo_root`:Claude Code 只會將 `systemMessage` 輸出與失敗輸出寫入偵錯日誌

3077 3086 

3078<h3 id="filechanged">3087<h3 id="filechanged">

3079 FileChanged3088 FileChanged

3080</h3>3089</h3>

3081 3090 

3082在監視的檔案在磁碟上變更時執行。Claude Code 使用檔案系統監視器檢測變更,而不是檢查工具呼叫,因此無論什麼變更了檔案,它都執行 hook:`Edit` 或 `Write` 工具呼叫、Claude 使用 `Bash` 執行的指令碼,或 Claude Code 外的程序。常見用途是在專案配置檔案變更時重新載入環境變數。3091當受監看的檔案在磁碟上變更時執行。Claude Code 是以檔案系統監看器偵測變更,而非檢查工具呼叫,因此無論是什麼變更了檔案,它都會執行 hook:`Edit` 或 `Write` 工具呼叫、Claude 以 `Bash` 執行的指令碼,或完全在 Claude Code 之外的程序。常見用途是在專案設定檔變更時重新載入環境變數。

3083 3092 

3084此事件的 `matcher` 有兩個角色:3093此事件的 `matcher` 有兩個作用:

3085 3094 

3086* **建立監視清單**:值在 `|` 上分割,每個段註冊為工作目錄中的字面檔案名稱,因此 `".envrc|.env"` 監視恰好這兩個檔案。正規表達式模式在這裡不有用:`^\.env` 之類的值會監視字面名稱為 `^\.env` 的檔案。3095* **建立監看清單**:其值會以 `|` 分割,每個片段都會被註冊為工作目錄中的字面檔案名稱,因此 `".envrc|.env"` 會精確監看這兩個檔案。正規表示式模式在此沒有用處:像 `^\.env` 這樣的值會監看名稱字面上就是 `^\.env` 的檔案。

3087* **篩選哪些 hooks 執行**:當監視的檔案變更時,相同的值使用標準 [匹配器規則](#matcher-patterns) 針對變更檔案的基名篩選哪些 hook 群組執行。3096* **篩選要執行的 hook**:當受監看的檔案變更時,同一個值會依標準的 [matcher 規則](#matcher-patterns),對變更檔案的基本名稱篩選要執行哪些 hook 群組。

3088 3097 

3089此範例在任何變更後規範化 `data.csv` 中的行結尾,包括 `Bash` 命令或外部指令碼重寫檔案:3098此範例會在任何變更後正規化 `data.csv` 的行尾,包括 `Bash` 命令或外部指令碼改寫該檔案的情況:

3090 3099 

3091```json theme={null}3100```json theme={null}

3092{3101{


3106}3115}

3107```3116```

3108 3117 

3109hook 從 stdin 上的 [JSON 輸入](#filechanged-input) 的 `file_path` 欄位讀取變更檔案的絕對路徑。其 `grep` 守衛測試與 `perl` 移除的相同,行尾的 CR,因此在規範化後執行時退出而不觸及檔案。較鬆散的守衛會無限迴圈,因為 `perl -i` 重寫檔案,即使它不替換任何內容,Claude Code 在每次重寫後執行 hook。將此指令碼儲存在 `/path/to/normalize-line-endings.sh` 並使其可執行:3118hook 會從 stdin 上 [JSON 輸入](#filechanged-input)的 `file_path` 欄位讀取變更檔案的絕對路徑。其 `grep` 防護條件檢查的正是 `perl` 要移除的內容,也就是行尾的 CR,因此正規化之後的那次執行會直接結束而不動到檔案。較寬鬆的防護條件會造成無限迴圈,因為即使沒有替換任何內容,`perl -i` 仍會改寫檔案,而 Claude Code 會在每次改寫後再次執行 hook。請將此指令碼儲存於 `/path/to/normalize-line-endings.sh` 並設為可執行:

3110 3119 

3111```bash theme={null}3120```bash theme={null}

3112#!/bin/bash3121#!/bin/bash


3116fi3125fi

3117```3126```

3118 3127 

3119要確認 hook 有效,要求 Claude 使用 `Bash` 命令將 CRLF 行附加到 `data.csv`。Claude Code 執行 hook,檔案最終具有 LF 結尾。3128若要確認 hook 正常運作,請要求 Claude 以 `Bash` 命令在 `data.csv` 後附加一行 CRLF。Claude Code 會執行 hook,檔案最終會使用 LF 行尾。

3120 3129 

3121要監視您無法提前命名的檔案,請從 hook 返回 [`watchPaths`](#filechanged-output) 以動態更新監視清單。Claude Code 僅在某事命名要監視的檔案時啟動監視器,因此使用命名至少一個檔案的 FileChanged 群組播種清單,或使用 [SessionStart](#sessionstart-decision-control) 或 [CwdChanged](#cwdchanged) hook 返回 `watchPaths`。匹配器仍然篩選當監視的檔案變更時哪些 hook 群組執行,因此給處理動態路徑的群組一個省略的匹配器,它匹配每個監視的檔案,不向監視清單新增任何內容。`"*"` 匹配器也匹配每個檔案,但 Claude Code 將其註冊到監視清單中,如同任何其他值,作為字面名稱為 `*` 的檔案。3130若要監看無法事先命名的檔案,請從 hook 傳回 [`watchPaths`](#filechanged-output) 以動態更新監看清單。Claude Code 只有在某處指定了要監看的檔案時才會啟動監看器,因此請以 matcher 至少指定一個檔案的 FileChanged 群組,或以傳回 `watchPaths` 的 [SessionStart](#sessionstart-decision-control) 或 [CwdChanged](#cwdchanged) hook 來初始化清單。當受監看的檔案變更時,matcher 仍會篩選要執行哪些 hook 群組,因此請讓處理動態路徑的群組省略 matcher,這樣會比對每個受監看的檔案,且不會在監看清單中新增任何項目。`"*"` matcher 也會比對每個檔案,但 Claude Code 會像處理其他值一樣,將其作為名為 `*` 的字面檔案註冊到監看清單中。

3122 3131 

3123FileChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續 Bash 命令,直到下一個 [CwdChanged](#cwdchanged) 事件,當 Claude Code 清除它們時。3132FileChanged hook 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續的 Bash 命令中,直到下一個 [CwdChanged](#cwdchanged) 事件時由 Claude Code 清除。

3124 3133 

3125<h4 id="filechanged-input">3134<h4 id="filechanged-input">

3126 FileChanged 輸入3135 FileChanged 輸入

3127</h4>3136</h4>

3128 3137 

3129除了 [常見輸入欄位](#common-input-fields) 外,FileChanged hooks 還會接收 `file_path` 和 `event`。3138除了[通用輸入欄位](#common-input-fields)之外,FileChanged hook 還會收到 `file_path` 與 `event`。

3130 3139 

3131| 欄位 | 描述 |3140| 欄位 | 說明 |

3132| :- | :- |3141| :- | :- |

3133| `file_path` | 變更的檔案的絕對路徑 |3142| `file_path` | 變更檔案的絕對路徑 |

3134| `event` | 發生的情況:修改的檔案為 `"change"`、建立的檔案為 `"add"` 或刪除的檔案為 `"unlink"` |3143| `event` | 發生的事件:修改檔案為 `"change"`,建立檔案為 `"add"`,刪除檔案為 `"unlink"` |

3135 3144 

3136```json theme={null}3145```json theme={null}

3137{3146{


3148 FileChanged 輸出3157 FileChanged 輸出

3149</h4>3158</h4>

3150 3159 

3151除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,FileChanged hooks 可以返回 `watchPaths` 以動態更新監視的檔案路徑:3160除了所有 hook 皆可使用的 [JSON 輸出欄位](#json-output)之外,FileChanged hook 還可以傳回 `watchPaths`,以動態更新要監看的檔案路徑:

3152 3161 

3153| 欄位 | 描述 |3162| 欄位 | 說明 |

3154| :- | :- |3163| :- | :- |

3155| `watchPaths` | 絕對路徑的陣列。替換目前的動態監視清單。來自您 `matcher` 配置的路徑始終被監視。當您的 hook 指令碼根據變更的檔案發現要監視的其他檔案時,使用此 |3164| `watchPaths` | 絕對路徑陣列。取代目前的動態監看清單。來自您 `matcher` 設定的路徑一律會被監看。當您的 hook 指令碼依據變更的檔案發現其他需要監看的檔案時,請使用此欄位 |

3156 3165 

3157FileChanged hooks 沒有決策控制。它們無法阻止檔案變更發生。3166FileChanged hook 沒有決策控制。它們無法阻止檔案變更發生。

3158 3167 

3159Claude Code 從它們的 JSON 輸出讀取 `watchPaths` 和 `systemMessage`,並捨棄 `continue`。在互動式工作階段中,它將 `systemMessage` 顯示為簡短的終端通知。訊息不到達 SDK 訊息流。3168Claude Code 會從其 JSON 輸出讀取 `watchPaths` 與 `systemMessage`,並捨棄 `continue`。在互動式工作階段中,它會將 `systemMessage` 顯示為簡短的終端機通知。該訊息不會傳到 SDK 訊息串流。

3160 3169 

3161<h3 id="worktreecreate">3170<h3 id="worktreecreate">

3162 WorktreeCreate3171 WorktreeCreate

3163</h3>3172</h3>

3164 3173 

3165在建立 worktree 時執行,無論是從 `claude --worktree`、從 [子代理使用 `isolation: "worktree"`](/docs/zh-TW/sub-agents#choose-the-subagent-scope),還是對於 Claude Code 在其自己的 worktree 中隔離的 [背景工作階段](/docs/zh-TW/agent-view#how-file-edits-are-isolated)。預設情況下,Claude Code 使用 `git worktree` 建立隔離的工作副本。配置 WorktreeCreate hook 替換該預設 git 行為,讓您使用不同的版本控制系統,如 SVN、Perforce 或 Mercurial。3174在建立 worktree 時執行,無論是來自 `claude --worktree`、來自[使用 `isolation: "worktree"` 的 subagent](/docs/zh-TW/sub-agents#choose-the-subagent-scope),或是為 Claude Code 隔離在其自身 worktree 中的[背景工作階段](/docs/zh-TW/agent-view#how-file-edits-are-isolated)。依預設,Claude Code 會以 `git worktree` 建立隔離的工作副本。設定 WorktreeCreate hook 會取代該預設的 git 行為,讓您能使用其他版本控制系統,例如 SVN、Perforce 或 Mercurial。

3166 3175 

3167因為 hook 完全替換預設行為,[`.worktreeinclude`](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees) 不被處理。如果您需要將本機配置檔案(如 `.env`)複製到新 worktree,請在您的 hook 指令碼內執行。3176由於 hook 會完全取代預設行為,因此不會處理 [`.worktreeinclude`](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees)。若您需要將 `.env` 之類的本機設定檔複製到新的 worktree,請在您的 hook 指令碼中進行。

3168 3177 

3169hook 必須返回建立的 worktree 目錄的路徑。Claude Code 使用此路徑作為隔離工作階段的工作目錄。有關每個 hook 類型如何返回路徑,請參閱 [WorktreeCreate output](#worktreecreate-output)。3178hook 必須傳回所建立之 worktree 目錄的路徑。Claude Code 會將此路徑作為隔離工作階段的工作目錄。關於各 hook 類型如何傳回路徑,請參閱 [WorktreeCreate 輸出](#worktreecreate-output)。

3170 3179 

3171Claude Code 作用於 hook 的成功和返回的路徑,並捨棄 `systemMessage` 和 `continue`。3180Claude Code 會依據 hook 是否成功以及傳回的路徑採取行動,並捨棄 `systemMessage` 與 `continue`。

3172 3181 

3173此範例建立 SVN 工作副本並列印路徑供 Claude Code 使用。將儲存庫 URL 替換為您自己的:3182此範例會建立 SVN 工作副本,並印出路徑供 Claude Code 使用。請將儲存庫 URL 替換為您自己的:

3174 3183 

3175```json theme={null}3184```json theme={null}

3176{3185{


3189}3198}

3190```3199```

3191 3200 

3192hook 從 stdin 上的 JSON 輸入讀取 worktree `name`,將新副本簽出到新目錄,並列印目錄路徑。最後一行的 `echo` 是 Claude Code 讀取為 worktree 路徑的內容。將任何其他輸出重定向到 stderr,以便它不會干擾路徑。3201hook 會從 stdin 上的 JSON 輸入讀取 worktree 的 `name`,將全新副本簽出到新目錄,並印出目錄路徑。最後一行的 `echo` 就是 Claude Code 讀取為 worktree 路徑的內容。請將其他任何輸出重新導向至 stderr,以免干擾路徑。

3193 3202 

3194<h4 id="worktreecreate-input">3203<h4 id="worktreecreate-input">

3195 WorktreeCreate 輸入3204 WorktreeCreate 輸入

3196</h4>3205</h4>

3197 3206 

3198除了 [常見輸入欄位](#common-input-fields) 外,WorktreeCreate hooks 還會接收 `name` 欄位。這是新 worktree 的 slug 識別碼,由使用者指定或自動產生,例如 `bold-oak-a3f2`。3207除了[通用輸入欄位](#common-input-fields)之外,WorktreeCreate hook 還會收到 `name` 欄位。這是新 worktree 的 slug 識別碼,由使用者指定或自動產生,例如 `bold-oak-a3f2`。

3199 3208 

3200```json theme={null}3209```json theme={null}

3201{3210{


3211 WorktreeCreate 輸出3220 WorktreeCreate 輸出

3212</h4>3221</h4>

3213 3222 

3214WorktreeCreate hooks 不使用標準允許/阻止決策模型。相反,hook 的成功或失敗決定結果。hook 必須返回建立的 worktree 目錄的路徑:3223WorktreeCreate hook 不使用標準的允許/封鎖決策模型,而是由 hook 的成功或失敗決定結果。hook 必須回傳所建立的 worktree 目錄路徑:

3215 3224 

3216* **命令 hooks** (`type: "command"`):將路徑列印為 stdout 的最後一個非空行。Claude Code 在讀取該行之前去除 ANSI 逃逸代碼,因此在您的 `echo` 之前列印的 shell 啟動橫幅會被忽略。將任何其他 hook 輸出重定向到 stderr。3225* **命令 hook**(`type: "command"`):將路徑印為 stdout 的最後一個非空行。Claude Code 在讀取該行之前會移除 ANSI 跳脫碼,因此在您的 `echo` 之前印出的 shell 啟動橫幅會被忽略。請將任何其他 hook 輸出重新導向至 stderr。

3217* **HTTP hooks** (`type: "http"`):在回應主體中返回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。3226* **HTTP hook**(`type: "http"`):在回應主體中回傳 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。

3218 3227 

3219如果 hook 失敗或不產生路徑,worktree 建立失敗,並出現錯誤。3228如果 hook 失敗或未產生路徑,worktree 建立將失敗並顯示錯誤。

3220 3229 

3221Claude Code 根據 hook 執行的目錄解決相對路徑,折疊其中的任何 `.` 或 `..` 段。如果結果路徑不是 Claude Code 可以進入的目錄,工作階段列印命名路徑的錯誤並以代碼 1 退出。3230Claude Code 會以 hook 執行時所在的目錄解析相對路徑,並摺疊其中的任何 `.` 或 `..` 區段。如果產生的路徑不是 Claude Code 可以進入的目錄,工作階段會印出指明該路徑的錯誤,並以代碼 1 結束。

3222 3231 

3223Claude Code 拒絕包含 `.` 或 `..` 段的絕對路徑,以及通過儲存庫根下的符號連結的任何路徑,因為提交到儲存庫的符號連結可能會將 worktree 重定向到其外。錯誤命名被拒絕的元件。返回不通過儲存庫內符號連結的規範化路徑。在 v2.1.216 之前,worktree 建立遵循 hook 的路徑,而不進行此篩選。3232Claude Code 會拒絕包含 `.` 或 `..` 區段的絕對路徑,以及任何經過儲存庫根目錄下方符號連結的路徑,因為提交至儲存庫的符號連結可能會將 worktree 重新導向至儲存庫之外。錯誤會指明被拒絕的元件。請回傳不經過儲存庫內符號連結的正規化路徑。在 v2.1.216 之前,worktree 建立會直接採用 hook 的路徑,不進行此項檢查。

3224 3233 

3225<h3 id="worktreeremove">3234<h3 id="worktreeremove">

3226 WorktreeRemove3235 WorktreeRemove

3227</h3>3236</h3>

3228 3237 

3229在移除 worktree 時執行。這是 [WorktreeCreate](#worktreecreate) 的清理對應項。事件在以下情況下執行:3238在移除 worktree 時執行。這是 [WorktreeCreate](#worktreecreate) 對應的清理事件。此事件會在以下情況觸發:

3230 3239 

3231* 您退出 `--worktree` 工作階段並選擇移除它3240* 您結束 `--worktree` 工作階段並選擇移除它

3232* 具有 `isolation: "worktree"` 的子代理完成3241* 具有 `isolation: "worktree"` 的 subagent 完成

3233* 您刪除 [背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes),其 worktree hook 建立3242* 您刪除一個其 worktree 由 hook 建立的[背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes)

3234 3243 

3235對於基於 git 的 worktrees,Claude Code 使用 `git worktree remove` 自動處理清理。如果您配置了 WorktreeCreate hook,將其與 WorktreeRemove hook 配對以控制它建立的 worktrees 的清理:3244對於基於 git 的 worktree,Claude Code 會透過 `git worktree remove` 自動處理清理。如果您設定了 WorktreeCreate hook,請搭配 WorktreeRemove hook 來控制其所建立 worktree 的清理:

3236 3245 

3237* **沒有 WorktreeRemove hook**:當您退出 `--worktree` 工作階段並選擇移除時,Claude Code 回退到 `git worktree remove --force` 在您的 WorktreeCreate hook 返回的路徑上,因此 git 識別的 worktree 被移除。git 不識別的 worktree(例如您的 hook 使用非 git 版本控制系統建立的)保留在磁碟上。對於刪除 [背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 對 hook 建立的 worktree 做什麼,請參閱 agent view 的刪除規則。3246* **沒有 WorktreeRemove hook**:當您結束 `--worktree` 工作階段並選擇移除時,Claude Code 會改用 `git worktree remove --force` 處理您的 WorktreeCreate hook 回傳的路徑,因此 git 能識別的 worktree 會被移除。git 無法識別的 worktree,例如您的 hook 以非 git 版本控制系統建立的 worktree,會保留在磁碟上。關於刪除[背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes)時如何處理 hook 建立的 worktree,請參閱 agent view 的刪除規則。

3238* **Hook 退出 0**:worktree 計為已移除。Claude Code 從 hook 讀取任何其他內容,因此確保您的 hook 刪除了目錄。3247* **Hook 以 0 結束**:該 worktree 視為已移除。Claude Code 不會從 hook 讀取其他任何內容,因此請確保您的 hook 已刪除該目錄。

3239* **Hook 退出非零**:如果 `worktree_path` 處的目錄在之後仍然存在,移除失敗,worktree 保留在磁碟上,沒有 git 回退。在退出非零之前刪除目錄的 hook 計為已移除。對於失敗如何報告,請參閱 [WorktreeRemove input](#worktreeremove-input)。3248* **Hook 以非零結束**:如果 `worktree_path` 處的目錄在之後仍然存在,移除即失敗,且 worktree 會保留在磁碟上,不會改用 git。在以非零結束之前已刪除目錄的 hook 視為已移除。關於失敗的回報方式,請參閱 [WorktreeRemove 輸入](#worktreeremove-input)。

3240 3249 

3241Claude Code 永遠不會刪除屬於 hook 建立的 worktree 的分支,因為它僅知道您的 WorktreeCreate hook 返回的路徑。如果您的 WorktreeCreate hook 建立分支,請在您的 WorktreeRemove hook 中刪除它。3250Claude Code 絕不會刪除屬於 hook 建立之 worktree 的分支,因為它只知道您的 WorktreeCreate hook 回傳的路徑。如果您的 WorktreeCreate hook 建立了分支,請在 WorktreeRemove hook 中將其刪除。

3242 3251 

3243Claude Code 捨棄 WorktreeRemove hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。3252Claude Code 會捨棄 WorktreeRemove hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。

3244 3253 

3245對於背景工作階段刪除,Claude Code 在執行 hook 之前驗證儲存的 worktree 路徑,並拒絕在儲存庫根下是符號連結或通過符號連結的路徑。hook 僅對仍包含檔案的 worktree 執行,當您在 [agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中確認刪除時;對於這樣的 worktree,[`claude rm`](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 保持工作階段和 worktree。在 v2.1.216 之前,hook 在儲存的路徑上執行,而不進行這些檢查。3254對於背景工作階段的刪除,Claude Code 會在執行 hook 之前驗證所儲存的 worktree 路徑,並拒絕本身為符號連結或經過儲存庫根目錄下方符號連結的路徑。只有當您在 [agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中確認刪除時,hook 才會針對仍含有檔案的 worktree 執行;對於這類 worktree,[`claude rm`](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 則會保留工作階段和 worktree。在 v2.1.216 之前,hook 會在未經這些檢查的情況下針對儲存的路徑執行。

3246 3255 

3247Claude Code 將 WorktreeCreate 返回的路徑作為 `worktree_path` 在 hook 輸入中傳遞。此範例讀取該路徑並移除目錄:3256Claude Code 會將 WorktreeCreate 回傳的路徑作為 hook 輸入中的 `worktree_path` 傳入。以下範例讀取該路徑並移除目錄:

3248 3257 

3249```json theme={null}3258```json theme={null}

3250{3259{


3267 WorktreeRemove 輸入3276 WorktreeRemove 輸入

3268</h4>3277</h4>

3269 3278 

3270除了 [常見輸入欄位](#common-input-fields) 外,WorktreeRemove hooks 還會接收 `worktree_path` 欄位,這是正在移除的 worktree 的絕對路徑。3279除了[通用輸入欄位](#common-input-fields)之外,WorktreeRemove hook 還會收到 `worktree_path` 欄位,即要移除之 worktree 的絕對路徑。

3271 3280 

3272```json theme={null}3281```json theme={null}

3273{3282{


3279}3288}

3280```3289```

3281 3290 

3282WorktreeRemove hook 的退出代碼決定結果。當 hook 退出非零且 `worktree_path` 處的目錄在之後仍然存在時,移除失敗:3291WorktreeRemove hook 的退出碼決定結果。當 hook 以非零結束,且 `worktree_path` 處的目錄在之後仍然存在時,移除即失敗:

3283 3292 

3284* worktree 保留在磁碟上,hook 的命令和 stderr 進入 [debug log](#debug-hooks)。3293* worktree 會保留在磁碟上,hook 的命令和 stderr 會寫入[偵錯日誌](#debug-hooks)。

3285* 如果您正在刪除背景工作階段,工作階段也保留。[agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中的拒絕訊息報告 hook 如何結束,例如 `exited 1`,引用其 stderr 的開頭,並說明再次刪除工作階段是否無論如何都會移除目錄。3294* 如果您正在刪除背景工作階段,該工作階段也會保留。[agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中的拒絕訊息會回報 hook 的結束方式(例如 `exited 1`)、引用其 stderr 的開頭,並說明再次刪除該工作階段是否仍會移除該目錄。

3286 3295 

3287<h3 id="precompact">3296<h3 id="precompact">

3288 PreCompact3297 PreCompact


3290 3299 

3291在 Claude Code 即將執行壓縮操作之前執行。3300在 Claude Code 即將執行壓縮操作之前執行。

3292 3301 

3293匹配器值指示壓縮是手動還是自動觸發:3302matcher 值表示壓縮是手動觸發還是自動觸發:

3294 3303 

3295| 匹配器 | 何時觸發 |3304| Matcher | 觸發時機 |

3296| :- | :- |3305| :- | :- |

3297| `manual` | `/compact` |3306| `manual` | `/compact` |

3298| `auto` | 當對話到達 [自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window) 時自動壓縮 |3307| `auto` | 當對話達到[自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window)時自動壓縮 |

3299 3308 

3300退出代碼 2 以阻止壓縮。對於手動 `/compact`,stderr 訊息顯示給使用者。您也可以透過返回 JSON 搭配 `"decision": "block"` 來阻止。3309以代碼 2 結束可封鎖壓縮。對於手動 `/compact`,stderr 訊息會顯示給使用者。您也可以回傳含有 `"decision": "block"` 的 JSON 來封鎖。

3301 3310 

3302阻止自動壓縮根據何時執行有不同的效果。如果壓縮在背景限制之前主動觸發,Claude Code 跳過它,對話繼續未壓縮。如果壓縮被觸發以從 API 已返回的背景限制錯誤恢復,基礎錯誤呈現,目前請求失敗。3311封鎖自動壓縮的效果取決於其觸發時機。如果壓縮是在達到上下文限制之前主動觸發的,Claude Code 會略過壓縮,對話會在未壓縮的狀態下繼續。如果壓縮是為了從 API 已回傳的上下文限制錯誤中恢復而觸發的,底層錯誤就會浮現,目前的請求會失敗。

3303 3312 

3304Claude Code 捨棄 PreCompact hook 的 `systemMessage` 和 `continue` 欄位。3313Claude Code 會捨棄 PreCompact hook 的 `systemMessage` 和 `continue` 欄位。

3305 3314 

3306<h4 id="precompact-input">3315<h4 id="precompact-input">

3307 PreCompact 輸入3316 PreCompact 輸入

3308</h4>3317</h4>

3309 3318 

3310除了 [常見輸入欄位](#common-input-fields) 外,PreCompact hooks 還會接收 `trigger` 和 `custom_instructions`。對於 `manual`,`custom_instructions` 包含使用者傳遞到 `/compact` 的內容,當他們傳遞任何內容時為 `null`。對於 `auto`,`custom_instructions` 為 `null`。3319除了[通用輸入欄位](#common-input-fields)之外,PreCompact hook 還會收到 `trigger` 和 `custom_instructions`。對於 `manual`,`custom_instructions` 包含使用者傳入 `/compact` 的內容,未傳入任何內容時為 `null`。對於 `auto`,`custom_instructions` 為 `null`。

3311 3320 

3312```json theme={null}3321```json theme={null}

3313{3322{


3324 PostCompact3333 PostCompact

3325</h3>3334</h3>

3326 3335 

3327在 Claude Code 完成壓縮操作後執行。使用此事件對新壓縮狀態做出反應,例如記錄產生的摘要或更新外部狀態。Claude Code 捨棄 PostCompact hook 的 `systemMessage` 和 `continue` 欄位。3336在 Claude Code 完成壓縮操作之後執行。使用此事件來回應新的壓縮狀態,例如記錄產生的摘要或更新外部狀態。Claude Code 會捨棄 PostCompact hook 的 `systemMessage` 和 `continue` 欄位。

3328 3337 

3329與 `PreCompact` 相同的匹配器值適用:3338適用與 `PreCompact` 相同的 matcher 值:

3330 3339 

3331| 匹配器 | 何時觸發 |3340| Matcher | 觸發時機 |

3332| :- | :- |3341| :- | :- |

3333| `manual` | 在 `/compact` 後 |3342| `manual` | `/compact` 之後 |

3334| `auto` | 當對話到達 [自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window) 時自動壓縮後 |3343| `auto` | 當對話達到[自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window)而自動壓縮之後 |

3335 3344 

3336<h4 id="postcompact-input">3345<h4 id="postcompact-input">

3337 PostCompact 輸入3346 PostCompact 輸入

3338</h4>3347</h4>

3339 3348 

3340除了 [常見輸入欄位](#common-input-fields) 外,PostCompact hooks 還會接收 `trigger` 和 `compact_summary`。`compact_summary` 欄位包含壓縮操作產生的對話摘要。3349除了[通用輸入欄位](#common-input-fields)之外,PostCompact hook 還會收到 `trigger` 和 `compact_summary`。`compact_summary` 欄位包含壓縮操作所產生的對話摘要。

3341 3350 

3342```json theme={null}3351```json theme={null}

3343{3352{


3350}3359}

3351```3360```

3352 3361 

3353PostCompact hooks 沒有決策控制。它們無法影響壓縮結果,但可以執行後續任務。3362PostCompact hook 沒有決策控制。它們無法影響壓縮結果,但可以執行後續工作。

3354 3363 

3355<h3 id="premodelswitch">3364<h3 id="premodelswitch">

3356 PreModelSwitch3365 PreModelSwitch

3357</h3>3366</h3>

3358 3367 

3359在 Claude Code 應用您或用戶端請求的模型切換之前執行。使用它來阻止切換、要求確認或在切換發生前顯示成本。3368在 Claude Code 套用您或用戶端所請求的模型切換之前執行。使用它來封鎖切換、要求確認,或在切換發生之前顯示切換的成本。

3360 3369 

3361PreModelSwitch 需要 Claude Code v2.1.251 或更新版本。Claude Code 為這些請求執行它:3370PreModelSwitch 需要 Claude Code v2.1.251 或更新版本。Claude Code 會針對以下請求執行它:

3362 3371 

3363* `/model <name>` 和 `/model` 選擇器3372* `/model <name>` 和 `/model` 選擇器

3364* `Option+P` 或 `Alt+P` 模型選擇器3373* `Option+P` 或 `Alt+P` 模型選擇器

3365* `/config` 中的 Model 設定3374* `/config` 中的 Model 設定

3366* 當 [fast mode](/docs/zh-TW/fast-mode) 改變工作階段的模型時打開它3375* 開啟[快速模式](/docs/zh-TW/fast-mode)而導致工作階段的模型變更時

3367* 來自 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 主機或 [Remote Control](/docs/zh-TW/remote-control) 的 `set_model` 請求,或 `apply_flag_settings` 請求中的模型變更3376* 來自 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 主機或 [Remote Control](/docs/zh-TW/remote-control) 的 `set_model` 請求,或 `apply_flag_settings` 請求中的模型變更

3368 3377 

3369Claude Code 不為它自己進行的切換執行 PreModelSwitch hooks,例如 [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback) 或恢復工作階段時還原模型。這些變更僅到達 [PostModelSwitch](#postmodelswitch)。3378對於 Claude Code 自行進行的切換,例如[自動模型備援](/docs/zh-TW/model-config#automatic-model-fallback)或在您恢復工作階段時還原模型,Claude Code 不會執行 PreModelSwitch hook。這些變更只會觸發 [PostModelSwitch](#postmodelswitch)。

3370 3379 

3371Claude Code 將匹配器與工作階段切換到的模型的規範名稱進行比較,忽略任何 `[1m]` 後綴。別名(例如 `opus`)、日期模型 ID 和提供者特定 ID(例如 Amazon Bedrock 模型 ID)都匹配它們解決到的一個規範名稱,因此 `claude-opus-5` 涵蓋 Opus 5 的每個拼寫。3380Claude Code 會將 matcher 與工作階段要切換到的模型的正式名稱進行比對,並忽略任何 `[1m]` 後綴。別名(例如 `opus`)、帶日期的模型 ID,以及供應商專屬 ID(例如 Amazon Bedrock 模型 ID)都會比對到它們解析出的同一個正式名稱,因此 `claude-opus-5` 涵蓋 Opus 5 的所有寫法。

3372 3381 

3373當 Claude Code 無法確定目標的規範名稱時,例如僅您的 [LLM gateway](/docs/zh-TW/llm-gateway) 知道的自訂模型 ID,它無論匹配器如何都執行每個 PreModelSwitch hook。阻止的 hook 應該檢查其輸入中的 `to_model` 而不是僅依賴匹配器。3382當 Claude Code 無法判斷目標的正式名稱時,例如只有您的 [LLM 閘道](/docs/zh-TW/llm-gateway)知道的自訂模型 ID,它會不論 matcher 為何都執行每個 PreModelSwitch hook。因此,會進行封鎖的 hook 應檢查其輸入中的 `to_model`,而不是僅依賴 matcher。

3374 3383 

3375將匹配器寫為精確名稱、`|` 分隔清單(例如 `claude-opus-4-6|claude-opus-5`)或正規表達式(例如 `.*opus.*`)。此範例使用精確名稱匹配器,也檢查 hook 輸入中的 `to_model`,因此它拒絕切換到 Opus 4.6,退出代碼 2,並讓任何其他目標通過:3384matcher 可以寫成確切名稱、以 `|` 分隔的清單(例如 `claude-opus-4-6|claude-opus-5`),或正規表示式(例如 `.*opus.*`)。以下範例使用確切名稱 matcher,並同時檢查 hook 輸入中的 `to_model`,因此它會以代碼 2 結束來拒絕切換到 Opus 4.6,並允許任何其他目標通過:

3376 3385 

3377<Tabs>3386<Tabs>

3378 <Tab title="macOS/Linux">3387 <Tab title="macOS/Linux">

3379 命令使用 `jq` 檢查 `to_model`:3388 該命令使用 `jq` 檢查 `to_model`:

3380 3389 

3381 ```json theme={null}3390 ```json theme={null}

3382 {3391 {


3398 </Tab>3407 </Tab>

3399 3408 

3400 <Tab title="Windows (PowerShell)">3409 <Tab title="Windows (PowerShell)">

3401 註冊一個命令 hook,透過 PowerShell 執行指令碼:3410 註冊一個透過 PowerShell 執行指令碼的命令 hook:

3402 3411 

3403 ```json theme={null}3412 ```json theme={null}

3404 {3413 {


3425 }3434 }

3426 ```3435 ```

3427 3436 

3428 將此指令碼儲存到您的專案中的 `.claude/hooks/block-opus-46.ps1`:3437 將此指令碼儲存至專案中的 `.claude/hooks/block-opus-46.ps1`:

3429 3438 

3430 ```powershell theme={null}3439 ```powershell theme={null}

3431 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json3440 $hookInput = [Console]::In.ReadToEnd() | ConvertFrom-Json


3438 </Tab>3447 </Tab>

3439</Tabs>3448</Tabs>

3440 3449 

3441要確認 hook 有效,從執行不同模型的工作階段執行 `/model claude-opus-4-6`。Claude Code 保持目前模型並報告 PreModelSwitch hook 阻止了切換,以您的訊息作為原因。3450若要確認 hook 正常運作,請在執行其他模型的工作階段中執行 `/model claude-opus-4-6`。Claude Code 會保留目前的模型,並回報 PreModelSwitch hook 封鎖了切換,並以您的訊息作為原因。

3442 3451 

3443<h4 id="premodelswitch-input">3452<h4 id="premodelswitch-input">

3444 PreModelSwitch 輸入3453 PreModelSwitch 輸入

3445</h4>3454</h4>

3446 3455 

3447除了 [常見輸入欄位](#common-input-fields) 外,PreModelSwitch hooks 還會接收此表中的欄位。最後五個描述重新傳送對話到新模型的成本,因此 hook 可以在切換發生前顯示該數字。3456除了[通用輸入欄位](#common-input-fields)之外,PreModelSwitch hook 還會收到下表中的欄位。最後五個欄位描述將對話重新傳送至新模型的成本,讓 hook 能在切換發生之前顯示該數字。

3448 3457 

3449| 欄位 | 類型 | 描述 |3458| 欄位 | 類型 | 說明 |

3450| :- | :- | :- |3459| :- | :- | :- |

3451| `from_model` | string | 切換變更的模型 ID |3460| `from_model` | string | 切換前的模型 ID |

3452| `to_model` | string | 切換變更為的模型 ID。匹配器與此模型的規範名稱進行比較 |3461| `to_model` | string | 切換後的模型 ID。matcher 會與此模型的正式名稱進行比對 |

3453| `requested_model` | string 或 `null` | 請求命名的模型:別名(例如 `opus`)、完整模型 ID,或當請求為預設模型時為 `null` |3462| `requested_model` | string 或 `null` | 請求中指定的模型:別名(例如 `opus`)、完整模型 ID,或當請求的是預設模型時為 `null` |

3454| `source` | string | 請求來自何處:`/model <name>`、`/config` 中的 Model 設定或打開 fast mode 的 `"command"`;模型選擇器的 `"picker"`;來自 Agent SDK 主機或 Remote Control 的 `set_model` 請求或 `apply_flag_settings` 請求中的模型變更的 `"sdk"` |3463| `source` | string | 請求的來源:`"command"` 表示 `/model <name>`、`/config` 中的 Model 設定,或開啟快速模式;`"picker"` 表示模型選擇器;`"sdk"` 表示來自 Agent SDK 主機或 Remote Control 的 `set_model` 請求,或 `apply_flag_settings` 請求中的模型變更 |

3455| `context_tokens` | number | 下一個請求重新傳送作為其提示的權杖:主對話中最後一個回應的輸入、快取讀取、快取建立和輸出權杖,合併。第一個回應前為 `0` |3464| `context_tokens` | number | 下一個請求作為提示詞重新傳送的 token 數:主對話中最後一個回應的輸入、快取讀取、快取建立和輸出 token 的總和。在第一個回應之前為 `0` |

3456| `prompt_cache_warm` | boolean | 目前模型的 prompt cache 是否可能仍然溫暖,意味著切換放棄它 |3465| `prompt_cache_warm` | boolean | 目前模型的提示快取是否可能仍處於暖狀態,亦即切換會使其失效 |

3457| `cache_ttl` | string | [Prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) Claude Code 為此工作階段請求:`"5m"` 或 `"1h"` |3466| `cache_ttl` | string | Claude Code 為此工作階段請求的[提示快取存留期](/docs/zh-TW/prompt-caching#cache-lifetime):`"5m"` 或 `"1h"` |

3458| `estimated_cache_write_usd` | number | 在 `cache_ttl` 速率下將 `context_tokens` 寫入 `to_model` 上的 prompt cache 的估計成本(美元),不包括下一個回應。伺服器可能不需要重新快取整個背景資訊,因此將其視為估計 |3467| `estimated_cache_write_usd` | number | 以 `cache_ttl` 費率將 `context_tokens` 寫入 `to_model` 提示快取的預估成本(美元),不含下一個回應。伺服器可能不需要重新快取整個上下文,因此請將其視為估計值 |

3459| `pricing` | string | Claude Code 如何定價 `estimated_cache_write_usd`:當您的組織配置了自己的速率時為 `"configured"`,列表價格為 `"catalog"`,或當 `to_model` 沒有已知價格且 Claude Code 假設預設速率時為 `"default"` |3468| `pricing` | string | Claude Code 計算 `estimated_cache_write_usd` 的方式:`"configured"` 表示在您的組織已設定自有費率時採用該費率,`"catalog"` 表示採用定價表價格,`"default"` 表示 `to_model` 沒有已知價格而 Claude Code 採用預設費率 |

3460 3469 

3461此範例顯示在執行 Sonnet 5 的工作階段中 `/model opus` 的輸入:3470以下範例顯示在執行 Sonnet 5 的工作階段中執行 `/model opus` 時的輸入:

3462 3471 

3463```json theme={null}3472```json theme={null}

3464{3473{


3482 PreModelSwitch 決策控制3491 PreModelSwitch 決策控制

3483</h4>3492</h4>

3484 3493 

3485`PreModelSwitch` hooks 可以取消切換、要求使用者確認它或讓它繼續。退出代碼 2 或頂級 `decision: "block"` 取消切換。3494`PreModelSwitch` hook 可以取消切換、要求使用者確認,或讓切換繼續進行。退出碼 2 或頂層 `decision: "block"` 會取消切換。

3486 3495 

3487為了更精細的控制,在 `hookSpecificOutput` 物件中返回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control) 上。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述兩個欄位:3496若需要更精細的控制,請在 `hookSpecificOutput` 物件中回傳 `permissionDecision` 和 `permissionDecisionReason`,與 [PreToolUse](#pretooluse-decision-control) 相同。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表說明這兩個欄位:

3488 3497 

3489| 欄位 | 描述 |3498| 欄位 | 說明 |

3490| :- | :- |3499| :- | :- |

3491| `permissionDecision` | `"allow"` 繼續並跳過 [Claude Code 在 prompt cache 溫暖時顯示的確認](/docs/zh-TW/prompt-caching#switching-models)。`"deny"` 取消切換。`"ask"` 提示使用者確認它 |3500| `permissionDecision` | `"allow"` 會繼續進行並略過[提示快取處於暖狀態時 Claude Code 顯示的確認](/docs/zh-TW/prompt-caching#switching-models)。`"deny"` 會取消切換。`"ask"` 會提示使用者確認 |

3492| `permissionDecisionReason` | 對於 `"deny"`,顯示給使用者作為切換被阻止的原因,或作為 `set_model` 請求的錯誤返回。對於 `"ask"`,在確認提示中顯示。對於 `"allow"` 忽略 |3501| `permissionDecisionReason` | 對於 `"deny"`,會作為切換被封鎖的原因顯示給使用者,或作為 `set_model` 請求的錯誤回傳。對於 `"ask"`,會顯示在確認提示中。對於 `"allow"` 則會被忽略 |

3493 3502 

3494僅互動式工作階段中的 `/model` 可以顯示 `"ask"` 提示。在每個其他表面上,包括搭配 `-p` 旗標的非互動模式、`/config` 和 `set_model` 請求,Claude Code 將 `"ask"` 視為拒絕。3503只有互動式工作階段中的 `/model` 能顯示 `"ask"` 提示。在其他所有使用介面上,包括使用 `-p` 旗標的非互動模式、`/config` 和 `set_model` 請求,Claude Code 都會將 `"ask"` 視為拒絕。

3495 3504 

3496此範例要求使用者確認並引用 `context_tokens` 中的權杖計數:3505以下範例要求使用者確認,並引用 `context_tokens` 中的 token 數:

3497 3506 

3498```json theme={null}3507```json theme={null}

3499{3508{


3505}3514}

3506```3515```

3507 3516 

3508當多個 PreModelSwitch hooks 返回不同的決定時,優先順序為 `deny` > `ask` > `allow`。3517當多個 PreModelSwitch hook 回傳不同的決策時,優先順序為 `deny` > `ask` > `allow`。

3509 3518 

3510Claude Code 無論決定如何都顯示您的 hook 返回的任何 `systemMessage`,因此成本報告 hook 可以返回 `{"systemMessage": "..."}` 並退出 0。3519無論決策為何,Claude Code 都會向使用者顯示您的 hook 回傳的任何 `systemMessage`,因此成本回報 hook 可以回傳 `{"systemMessage": "..."}` 並以 0 結束。

3511 3520 

3512在其逾時之前未回應的 PreModelSwitch hook 會阻止切換。在 [PreToolUse](#timeouts) 上,相比之下,逾時的命令 hook 讓工具呼叫繼續。此事件的預設逾時為 30 秒。`PreModelSwitch` 僅執行 `command`、`http` 和 `mcp_tool` hooks,因此 `prompt` 和 `agent` 預設不適用。3521在逾時前未回應的 PreModelSwitch hook 會封鎖切換。相較之下,在 [PreToolUse](#timeouts) 上,逾時的命令 hook 會讓工具呼叫繼續進行。此事件的預設逾時為 30 秒。`PreModelSwitch` 只執行 `command`、`http` 和 `mcp_tool` hook,因此 `prompt` 和 `agent` 的預設值不適用。

3513 3522 

3514退出代碼不是 0 或 2 且不列印 JSON 決定的 hook 不阻止:Claude Code 顯示其 stderr 並應用切換,如 [其他退出代碼](#other-exit-codes) 下所述。3523以 0 或 2 以外的代碼結束且未印出 JSON 決策的 hook 不會封鎖:Claude Code 會顯示其 stderr 並套用切換,如[其他退出碼](#other-exit-codes)中所述。

3515 3524 

3516<h3 id="postmodelswitch">3525<h3 id="postmodelswitch">

3517 PostModelSwitch3526 PostModelSwitch

3518</h3>3527</h3>

3519 3528 

3520在工作階段的模型變更後執行。使用它來給予 Claude 模型特定的指導,而不編輯每個 CLAUDE.md,例如僅在某些模型上適用的組織範圍指令。3529在工作階段的模型變更之後執行。使用它來為 Claude 提供特定於模型的指引,而無需編輯每個 CLAUDE.md,例如適用於特定模型的全組織指令。

3521 3530 

3522PostModelSwitch 需要 Claude Code v2.1.251 或更新版本。它無法阻止,因為模型已變更。Claude Code 在這些變更後執行 PostModelSwitch hooks:3531PostModelSwitch 需要 Claude Code v2.1.251 或更新版本。它無法封鎖,因為模型已經變更。Claude Code 會在以下任何變更之後執行 PostModelSwitch hook:

3523 3532 

3524* 您或用戶端請求的切換3533* 您或用戶端所請求的切換

3525* [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback),改變工作階段的模型3534* [自動模型備援](/docs/zh-TW/model-config#automatic-model-fallback),會變更工作階段的模型

3526* 設定(例如 [`opusplan`](/docs/zh-TW/model-config#opusplan-model-setting))進入或離開 plan mode3535* 諸如 [`opusplan`](/docs/zh-TW/model-config#opusplan-model-setting) 之類的設定進入或離開 plan mode

3527* Claude Code 在您恢復工作階段時還原模型3536* Claude Code 在您恢復工作階段時還原模型

3528 3537 

3529當 [回退模型鏈](/docs/zh-TW/model-config#fallback-model-chains) 中的模型服務回合時,Claude Code 不執行 PostModelSwitch hooks,因為該替換持續一個回合,並保持工作階段的模型不變。3538當[備援模型鏈](/docs/zh-TW/model-config#fallback-model-chains)中的模型服務某個回合時,Claude Code 不會執行 PostModelSwitch hook,因為該替換只持續一個回合,且不會變更工作階段的模型。

3530 3539 

3531匹配器遵循與 [PreModelSwitch](#premodelswitch) 相同的規則:Claude Code 將其與工作階段切換到的模型的規範名稱進行比較。3540matcher 遵循與 [PreModelSwitch](#premodelswitch) 相同的規則:Claude Code 會將其與工作階段所切換到的模型的正式名稱進行比對。

3532 3541 

3533此範例在工作階段的模型變更為任何 Opus 模型時新增指導:3542以下範例會在工作階段的模型變更為任何 Opus 模型時新增指引:

3534 3543 

3535```json theme={null}3544```json theme={null}

3536{3545{


3550}3559}

3551```3560```

3552 3561 

3553要確認 hook 有效,從執行不同模型的工作階段切換到 Opus 模型,例如從 Sonnet 工作階段執行 `/model opus`,然後詢問 Claude 它對目前模型有什麼指導。3562若要確認 hook 正常運作,請從執行其他模型的工作階段切換到 Opus 模型,例如在 Sonnet 工作階段中執行 `/model opus`,然後詢問 Claude 它對目前模型有哪些指引。

3554 3563 

3555<h4 id="postmodelswitch-input">3564<h4 id="postmodelswitch-input">

3556 PostModelSwitch 輸入3565 PostModelSwitch 輸入

3557</h4>3566</h4>

3558 3567 

3559PostModelSwitch hooks 接收與 [PreModelSwitch](#premodelswitch-input) 相同的欄位,`hook_event_name` 設定為 `"PostModelSwitch"` 和兩個更多 `source` 值:`"auto"` 用於 Claude Code 自己進行的自動回退或其他變更,以及 `"resume"` 用於您恢復工作階段時還原的模型。3568PostModelSwitch hook 會收到與 [PreModelSwitch](#premodelswitch-input) 相同的欄位,其中 `hook_event_name` 設定為 `"PostModelSwitch"`,且多了兩個 `source` 值:`"auto"` 表示自動備援或 Claude Code 自行進行的其他變更,`"resume"` 表示在您恢復工作階段時還原的模型。

3560 3569 

3561當 `source` 為 `"auto"` 時,`requested_model` 為 `null`。當 `source` 為 `"resume"` 時,它是 Claude Code 還原的儲存模型設定。3570當 `source` 為 `"auto"` 時,`requested_model` 為 `null`。當 `source` 為 `"resume"` 時,它是 Claude Code 所還原的已儲存模型設定。

3562 3571 

3563<h4 id="postmodelswitch-decision-control">3572<h4 id="postmodelswitch-decision-control">

3564 PostModelSwitch 決策控制3573 PostModelSwitch 決策控制

3565</h4>3574</h4>

3566 3575 

3567Claude Code 採用您的 hook 在退出 0 時的 [純文字 stdout](#exit-code-0),或 JSON 輸出中的 `additionalContext`,並在切換後的下一個請求中將其傳遞給 Claude。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您可以返回:3576Claude Code 會在結束代碼為 0 時取用您的 hook 的[純文字 stdout](#exit-code-0),或取用 JSON 輸出中的 `additionalContext`,並隨切換後的下一個請求傳遞給 Claude。除了所有 hook 都可使用的 [JSON 輸出欄位](#json-output)之外,您還可以回傳:

3568 3577 

3569| 欄位 | 描述 |3578| 欄位 | 說明 |

3570| :- | :- |3579| :- | :- |

3571| `additionalContext` | 與下一個請求一起新增到 Claude 背景資訊的字串。有關詳細資訊,請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |3580| `additionalContext` | 隨下一個請求加入 Claude 上下文的字串。請參閱[為 Claude 新增上下文](#add-context-for-claude) |

3572 3581 

3573如果 hook 在您傳送下一個提示後五秒內未完成,Claude Code 傳送該請求而不輸出,並將其附加到下一個請求。如果模型在下一個請求之前變更多次,Claude Code 僅傳遞最後一個切換目標模型的輸出。3582如果在您傳送下一個提示詞後五秒內 hook 尚未完成,Claude Code 會在不含該輸出的情況下傳送該請求,並改為將輸出附加到之後的請求。如果模型在下一個請求之前變更多次,Claude Code 只會傳遞最後一次切換之目標模型的輸出。

3574 3583 

3575<h3 id="sessionend">3584<h3 id="sessionend">

3576 SessionEnd3585 SessionEnd

3577</h3>3586</h3>

3578 3587 

3579在 Claude Code 工作階段結束時執行。適用於清理任務、記錄工作階段統計資訊或儲存工作階段狀態。支援匹配器以按退出原因篩選。3588在 Claude Code 工作階段結束時執行。適用於清理工作、記錄工作階段

3589統計資料或儲存工作階段狀態。支援使用 matcher 依結束原因進行篩選。

3580 3590 

3581hook 輸入中的 `reason` 欄位指示工作階段為什麼結束:3591hook 輸入中的 `reason` 欄位表示工作階段結束的原因:

3582 3592 

3583| 原因 | 描述 |3593| 原因 | 說明 |

3584| :- | :- |3594| :- | :- |

3585| `clear` | 使用 `/clear` 命令清除工作階段 |3595| `clear` | 使用 `/clear` 命令清除工作階段 |

3586| `resume` | 透過互動式 `/resume` 切換工作階段 |3596| `resume` | 透過互動式 `/resume` 切換工作階段 |

3587| `logout` | 使用者登出 |3597| `logout` | 使用者登出 |

3588| `prompt_input_exit` | 使用者在提示輸入可見時退出 |3598| `prompt_input_exit` | 使用者在提示詞輸入可見時結束 |

3589| `other` | 其他退出原因 |3599| `other` | 其他結束原因 |

3590| `bypass_permissions_disabled` | 在 v2.1.234 中移除;Claude Code 不傳送它。從您的 `SessionEnd` 匹配器中刪除它 |3600| `bypass_permissions_disabled` | 已在 v2.1.234 中移除;Claude Code 不會傳送此值。請從您的 `SessionEnd` matcher 中移除它 |

3591 3601 

3592<h4 id="sessionend-input">3602<h4 id="sessionend-input">

3593 SessionEnd 輸入3603 SessionEnd 輸入

3594</h4>3604</h4>

3595 3605 

3596除了 [常見輸入欄位](#common-input-fields) 外,SessionEnd hooks 還會接收 `reason` 欄位,指示工作階段為什麼結束。有關所有值,請參閱上面的 [原因表](#sessionend)。3606除了[通用輸入欄位](#common-input-fields)之外,SessionEnd hook 還會收到表示工作階段結束原因的 `reason` 欄位。所有值請參閱上方的[原因表格](#sessionend)。

3597 3607 

3598```json theme={null}3608```json theme={null}

3599{3609{


3605}3615}

3606```3616```

3607 3617 

3608SessionEnd hooks 沒有決策控制。它們無法阻止工作階段終止,但可以執行清理任務。Claude Code 捨棄它們的 [JSON 輸出欄位](#json-output),例如 `systemMessage`。3618SessionEnd hook 沒有決策控制。它們無法封鎖工作階段終止,但可以執行清理工作。Claude Code 會捨棄它們的 [JSON 輸出欄位](#json-output),例如 `systemMessage`。

3609 3619 

3610SessionEnd hooks 的預設逾時為 1.5 秒。當您退出、執行 `/clear` 或使用互動式 `/resume` 切換工作階段時適用。您可以透過兩種方式給予 hook 更多時間:3620SessionEnd hook 的預設逾時為 1.5 秒。此逾時適用於您結束、執行 `/clear` 或透過互動式 `/resume` 切換工作階段時。您可以透過兩種方式給予 hook 更多時間:

3611 3621 

3612* **每個 hook `timeout`**:在該 hook 的配置中設定 `timeout`。整體預算自動上升以符合您設定檔中最高每個 hook `timeout`,最多 60 秒。如果您以這種方式提高預算,沒有自己的 `timeout` 的 hook 仍保持預設。在外掛提供的 hooks 上設定的逾時不會提高預算。3622* **個別 hook 的 `timeout`**:在該 hook 的設定中設定 `timeout`。整體預算會自動提高,以符合您設定檔中最高的個別 hook `timeout`,上限為 60 秒。如果您以這種方式提高預算,沒有自己 `timeout` 的 hook 仍會保留預設值。在外掛程式提供的 hook 上設定的逾時不會提高預算。

3613* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:設定此環境變數(毫秒)以明確覆寫預算。您設定的值也成為每個沒有自己的 `timeout` 的 hook 的逾時。3623* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:以毫秒為單位設定此環境變數,以明確覆寫預算。您設定的值也會成為每個沒有自己 `timeout` 之 hook 的逾時。

3614 3624 

3615此範例將預算設定為 5 秒:3625以下範例將預算設定為 5 秒:

3616 3626 

3617```bash theme={null}3627```bash theme={null}

3618CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3628CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3619```3629```

3620 3630 

3621在 v2.1.268 之前,`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` 僅提高整體預算,沒有自己的 `timeout` 的 hook 在 1.5 秒後仍被取消。3631在 v2.1.268 之前,`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` 只會提高整體預算,沒有自己 `timeout` 的 hook 仍會在 1.5 秒後被取消。

3622 3632 

3623<h3 id="elicitation">3633<h3 id="elicitation">

3624 Elicitation3634 Elicitation

3625</h3>3635</h3>

3626 3636 

3627在 MCP 伺服器要求使用者輸入中途任務時執行。預設情況下,Claude Code 為使用者回應顯示互動式對話。Hooks 可以攔截此請求並以程式設計方式回應,完全跳過對話。3637在 MCP 伺服器於工作進行中請求使用者輸入時執行。根據預設,Claude Code 會顯示互動式對話方塊供使用者回應。hook 可以攔截此請求並以程式化方式回應,完全略過對話方塊。

3628 3638 

3629匹配器欄位與 MCP 伺服器名稱匹配。3639matcher 欄位會與 MCP 伺服器名稱進行比對。

3630 3640 

3631<h4 id="elicitation-input">3641<h4 id="elicitation-input">

3632 Elicitation 輸入3642 Elicitation 輸入

3633</h4>3643</h4>

3634 3644 

3635除了 [常見輸入欄位](#common-input-fields) 外,Elicitation hooks 還會接收 `mcp_server_name`、`message` 和可選的 `mode`、`url`、`elicitation_id` 和 `requested_schema` 欄位。3645除了[通用輸入欄位](#common-input-fields)之外,Elicitation hook 還會收到 `mcp_server_name`、`message`,以及選用的 `mode`、`url`、`elicitation_id` 和 `requested_schema` 欄位。

3636 3646 

3637對於表單模式引出,最常見的情況:3647對於表單模式的 elicitation(最常見的情況):

3638 3648 

3639```json theme={null}3649```json theme={null}

3640{3650{


3654}3664}

3655```3665```

3656 3666 

3657對於 URL 模式引出,用於基於瀏覽器的驗證:3667對於 URL 模式的 elicitation,用於基於瀏覽器的身分驗證:

3658 3668 

3659```json theme={null}3669```json theme={null}

3660{3670{


3673 Elicitation 輸出3683 Elicitation 輸出

3674</h4>3684</h4>

3675 3685 

3676要以程式設計方式回應而不顯示對話,請返回具有 `hookSpecificOutput` 的 JSON 物件:3686若要在不顯示對話方塊的情況下以程式化方式回應,請回傳含有 `hookSpecificOutput` 的 JSON 物件:

3677 3687 

3678```json theme={null}3688```json theme={null}

3679{3689{


3687}3697}

3688```3698```

3689 3699 

3690| 欄位 | 值 | 描述 |3700| 欄位 | 值 | 說明 |

3691| :- | :- | :- |3701| :- | :- | :- |

3692| `action` | `accept`、`decline`、`cancel` | 是否接受、拒絕或取消請求 |3702| `action` | `accept`、`decline`、`cancel` | 是否接受、拒絕或取消請求 |

3693| `content` | object | 要提交的表單欄位值。僅在 `action` 為 `accept` 時使用 |3703| `content` | object | 要提交的表單欄位值。僅在 `action` 為 `accept` 時使用 |

3694 3704 

3695退出代碼 2 拒絕引出。Claude Code 不在任何地方顯示您的 stderr 訊息。3705退出碼 2 會拒絕 elicitation。Claude Code 不會在任何地方顯示您的 stderr 訊息。

3696 3706 

3697Claude Code 作用於 Elicitation hook 的 JSON 輸出中的 `hookSpecificOutput`,並捨棄 `systemMessage` 和 `continue`。3707Claude Code 會依據 Elicitation hook JSON 輸出中的 `hookSpecificOutput` 採取行動,並捨棄 `systemMessage` 和 `continue`。

3698 3708 

3699<h3 id="elicitationresult">3709<h3 id="elicitationresult">

3700 ElicitationResult3710 ElicitationResult

3701</h3>3711</h3>

3702 3712 

3703在使用者回應 MCP 引出後執行。Hooks 可以觀察、修改或阻止回應,然後將其傳送回 MCP 伺服器。3713在使用者回應 MCP elicitation 之後執行。hook 可以在回應傳回 MCP 伺服器之前觀察、修改或封鎖該回應。

3704 3714 

3705匹配器欄位與 MCP 伺服器名稱匹配。3715matcher 欄位會與 MCP 伺服器名稱進行比對。

3706 3716 

3707<h4 id="elicitationresult-input">3717<h4 id="elicitationresult-input">

3708 ElicitationResult 輸入3718 ElicitationResult 輸入

3709</h4>3719</h4>

3710 3720 

3711除了 [常見輸入欄位](#common-input-fields) 外,ElicitationResult hooks 還會接收 `mcp_server_name`、`action` 和可選的 `mode`、`elicitation_id` 和 `content` 欄位。3721除了[通用輸入欄位](#common-input-fields)之外,ElicitationResult hook 還會收到 `mcp_server_name`、`action`,以及選用的 `mode`、`elicitation_id` 和 `content` 欄位。

3712 3722 

3713```json theme={null}3723```json theme={null}

3714{3724{


3728 ElicitationResult 輸出3738 ElicitationResult 輸出

3729</h4>3739</h4>

3730 3740 

3731要覆寫使用者的回應,請返回具有 `hookSpecificOutput` 的 JSON 物件:3741若要覆寫使用者的回應,請回傳含有 `hookSpecificOutput` 的 JSON 物件:

3732 3742 

3733```json theme={null}3743```json theme={null}

3734{3744{


3740}3750}

3741```3751```

3742 3752 

3743| 欄位 | 值 | 描述 |3753| 欄位 | 值 | 說明 |

3744| :- | :- | :- |3754| :- | :- | :- |

3745| `action` | `accept`、`decline`、`cancel` | 覆寫使用者的動作 |3755| `action` | `accept`、`decline`、`cancel` | 覆寫使用者的動作 |

3746| `content` | object | 覆寫表單欄位值。僅在 `action` 為 `accept` 時有意義 |3756| `content` | object | 覆寫表單欄位值。僅在 `action` 為 `accept` 時有意義 |

3747 3757 

3748退出代碼 2 阻止回應,將有效動作變更為 `decline`。Claude Code 不在任何地方顯示您的 stderr 訊息。3758退出碼 2 會封鎖回應,將實際動作變更為 `decline`。Claude Code 不會在任何地方顯示您的 stderr 訊息。

3749 3759 

3750Claude Code 作用於 ElicitationResult hook 的 JSON 輸出中的 `hookSpecificOutput`,並捨棄 `systemMessage` 和 `continue`。3760Claude Code 會依據 ElicitationResult hook JSON 輸出中的 `hookSpecificOutput` 採取行動,並捨棄 `systemMessage` 和 `continue`。

3751 3761 

3752<h2 id="prompt-based-hooks">3762<h2 id="prompt-based-hooks">

3753 基於提示的 hooks3763 基於提示的 hooks

hooks-guide.md +1 −1

Details

503| :- | :- |503| :- | :- |

504| `SessionStart` | 當工作階段開始或繼續時 |504| `SessionStart` | 當工作階段開始或繼續時 |

505| `Setup` | 當您使用 `--init-only` 啟動 Claude Code,或在 `-p` 模式中使用 `--init` 或 `--maintenance` 時。用於 CI 或指令碼中的一次性準備 |505| `Setup` | 當您使用 `--init-only` 啟動 Claude Code,或在 `-p` 模式中使用 `--init` 或 `--maintenance` 時。用於 CI 或指令碼中的一次性準備 |

506| `UserPromptSubmit` | 當您提交提示詞時,在 Claude 處理之前 |506| `UserPromptSubmit` | 當提示詞被提交時,在 Claude 處理之前。也會在 [Claude Code 自行開始的回合](/docs/zh-TW/hooks#userpromptsubmit)上觸發 |

507| `UserPromptExpansion` | 當使用者輸入的命令擴展為提示詞時,在到達 Claude 之前。可以阻止擴展 |507| `UserPromptExpansion` | 當使用者輸入的命令擴展為提示詞時,在到達 Claude 之前。可以阻止擴展 |

508| `PreToolUse` | 在工具呼叫執行之前。可以阻止它 |508| `PreToolUse` | 在工具呼叫執行之前。可以阻止它 |

509| `PermissionRequest` | 當工具呼叫需要權限決定時 |509| `PermissionRequest` | 當工具呼叫需要權限決定時 |

keybindings.md +27 −1

Details

68| `EffortSlider` | 由 `/effort` 開啟的努力滑桿 |68| `EffortSlider` | 由 `/effort` 開啟的努力滑桿 |

69| `Select` | 通用選取/清單元件 |69| `Select` | 通用選取/清單元件 |

70| `Plugin` | Plugin 對話框 (瀏覽、探索、管理) |70| `Plugin` | Plugin 對話框 (瀏覽、探索、管理) |

71| `Pane` | 由 [mod](/docs/zh-TW/plugins/mods/interface#know-which-keys-your-mod-can-receive) 繪製的窗格擁有鍵盤焦點 |

72| `PaneField` | mod 窗格中的輸入欄位或選取元件擁有鍵盤焦點 |

71| `Agents` | [Agent 檢視](/docs/zh-TW/agent-view) (`claude agents`) |73| `Agents` | [Agent 檢視](/docs/zh-TW/agent-view) (`claude agents`) |

72| `Scroll` | 對話捲動和全螢幕模式中的文字選取 |74| `Scroll` | 對話捲動和全螢幕模式中的文字選取 |

73 75 


596 598 

597這也適用於和弦繫結。取消繫結共享前綴的每個和弦會釋放該前綴以用作單一鍵繫結。任何作用中的內容中的和弦會保留其前綴的保留狀態,因此您必須在定義該和弦的內容中取消繫結每個和弦。599這也適用於和弦繫結。取消繫結共享前綴的每個和弦會釋放該前綴以用作單一鍵繫結。任何作用中的內容中的和弦會保留其前綴的保留狀態,因此您必須在定義該和弦的內容中取消繫結每個和弦。

598 600 

599Claude Code 在 `ctrl+x` 前綴上繫結這些預設和弦:`Chat` 中的 `ctrl+x ctrl+k`、`ctrl+x ctrl+e`、`ctrl+x enter`、`ctrl+x ctrl+a`、`ctrl+x ctrl+s` 和 `ctrl+x tab`,`Task` 中的 `ctrl+x ctrl+b`,以及 `DiffPanel` 中的 `ctrl+x b`。`ctrl+x enter` 和弦需要 v2.1.247 或更新版本,`ctrl+x b`、`ctrl+x ctrl+a` 和 `ctrl+x tab` 需要 v2.1.260 或更新版本,而 `ctrl+x ctrl+s` 需要 v2.1.275 或更新版本。601Claude Code 在 `ctrl+x` 前綴上繫結這些預設和弦,依內容分列如下:

602 

603* `Chat`:`ctrl+x ctrl+k`、`ctrl+x ctrl+e`、`ctrl+x enter`、`ctrl+x ctrl+a`、`ctrl+x ctrl+s` 和 `ctrl+x tab`

604* `Task`:`ctrl+x ctrl+b`

605* `DiffPanel`:`ctrl+x b`

606* `Pane`:`ctrl+x left`、`ctrl+x right`、`ctrl+x up`、`ctrl+x down` 和 `ctrl+x x`

607* `PaneField`:`ctrl+x x`

608 

609`ctrl+x enter` 和弦需要 v2.1.247 或更新版本,`ctrl+x b`、`ctrl+x ctrl+a` 和 `ctrl+x tab` 需要 v2.1.260 或更新版本,而 `ctrl+x ctrl+s` 需要 v2.1.275 或更新版本。

600 610 

601若要將 `ctrl+x` 本身回收為單一鍵繫結,請取消繫結所有這些:611若要將 `ctrl+x` 本身回收為單一鍵繫結,請取消繫結所有這些:

602 612 


615 "ctrl+x b": null625 "ctrl+x b": null

616 }626 }

617 },627 },

628 {

629 "context": "Pane",

630 "bindings": {

631 "ctrl+x left": null,

632 "ctrl+x right": null,

633 "ctrl+x up": null,

634 "ctrl+x down": null,

635 "ctrl+x x": null

636 }

637 },

638 {

639 "context": "PaneField",

640 "bindings": {

641 "ctrl+x x": null

642 }

643 },

618 {644 {

619 "context": "Chat",645 "context": "Chat",

620 "bindings": {646 "bindings": {

Details

245| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理測試版標頭與 `context_management` 請求體欄位配對 | `400` 搭配 `Extra inputs are not permitted`。常見於閘道接受 Anthropic 格式請求但將其轉發到 Amazon Bedrock 時 | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |245| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理測試版標頭與 `context_management` 請求體欄位配對 | `400` 搭配 `Extra inputs are not permitted`。常見於閘道接受 Anthropic 格式請求但將其轉發到 Amazon Bedrock 時 | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

246| [擴展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交錯思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 僅測試版標頭,無請求體欄位 | 當標頭被移除時無聲地不可用;上游永遠不會看到功能請求 | 逐字轉發 `anthropic-beta` |246| [擴展上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)和[交錯思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) | 僅測試版標頭,無請求體欄位 | 當標頭被移除時無聲地不可用;上游永遠不會看到功能請求 | 逐字轉發 `anthropic-beta` |

247| 測試版[工具欄位](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相關的測試版標頭與工具架構欄位(如 `strict` 和 `defer_loading`)配對 | 當請求體在沒有其標頭的情況下通過時,命名無法識別的工具架構欄位的 `400` | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |247| 測試版[工具欄位](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) | 工具相關的測試版標頭與工具架構欄位(如 `strict` 和 `defer_loading`)配對 | 當請求體在沒有其標頭的情況下通過時,命名無法識別的工具架構欄位的 `400` | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities) |

248| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[結構化輸出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 請求體欄位攜帶努力、結構化輸出格式和任務預算設定;每個都與其自己的測試版標頭配對 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起轉發欄位及其標頭,或讓開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities),這會移除格式和任務預算設定,但不會移除努力 |248| [努力](https://platform.claude.com/docs/en/build-with-claude/effort)和[結構化輸出](https://platform.claude.com/docs/en/build-with-claude/structured-outputs) | `output_config` 請求體欄位攜帶努力、結構化輸出格式和任務預算設定;每個都與其自己的測試版標頭配對 | 在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上游上命名 `output_config` 的 `400`,通常是 `Extra inputs are not permitted` | 一起轉發欄位及其標頭,或讓開發人員設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](#disable-pre-release-capabilities),這會移除格式和任務預算設定,但不會移除努力。若只要移除格式,他們可以改為設定 [`CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS=1`](/docs/zh-TW/env-vars),這需要 v2.1.288 或更新版本 |

249| [提示詞快取](/docs/zh-TW/prompt-caching) | 無測試版配對。Claude Code 將 `cache_control` 標記附加到 `system` 區塊和 `messages` 項目,包括在對話中途附加的 `role: "system"` 項目 | 無錯誤:對話在每個回合上都計費為未快取的輸入,在 `usage` 中可見為高 `input_tokens` 且很少或沒有快取活動 | 無論在何處出現,都逐字轉發 `cache_control`,並且不要將區塊形式的 `system` 或訊息內容轉換為純字串 |249| [提示詞快取](/docs/zh-TW/prompt-caching) | 無測試版配對。Claude Code 將 `cache_control` 標記附加到 `system` 區塊和 `messages` 項目,包括在對話中途附加的 `role: "system"` 項目 | 無錯誤:對話在每個回合上都計費為未快取的輸入,在 `usage` 中可見為高 `input_tokens` 且很少或沒有快取活動 | 無論在何處出現,都逐字轉發 `cache_control`,並且不要將區塊形式的 `system` 或訊息內容轉換為純字串 |

250| [令牌計數](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 無測試版配對;使用 `count_tokens` 端點 | 無錯誤:Claude Code 回退到基於字元的估計,因此 `/context` 顯示近似計數 | 公開端點以取得精確令牌計數 |250| [令牌計數](https://platform.claude.com/docs/en/build-with-claude/token-counting) | 無測試版配對;使用 `count_tokens` 端點 | 無錯誤:Claude Code 回退到基於字元的估計,因此 `/context` 顯示近似計數 | 公開端點以取得精確令牌計數 |

251 251 


362當發現的 ID 與選擇器中已有的列匹配時,它不會獲得自己的列:362當發現的 ID 與選擇器中已有的列匹配時,它不會獲得自己的列:

363 363 

364* 相同 ID:發現的 ID 完全匹配現有列的 ID,或兩個 ID 是同一 [Fable](/docs/zh-TW/model-config#work-with-fable) 版本的拼寫。364* 相同 ID:發現的 ID 完全匹配現有列的 ID,或兩個 ID 是同一 [Fable](/docs/zh-TW/model-config#work-with-fable) 版本的拼寫。

365* 與內建別名相同的模型:當發現的明確 ID 命名內建別名目前解析到的模型時,選擇器僅顯示別名列。例如,當 `sonnet` 解析為 `claude-sonnet-5-5` 時,發現的 `claude-sonnet-5-5` 會折疊到 `sonnet` 列中,而發現的 `claude-sonnet-5` 仍會獲得自己的列。在 v2.1.197 之前,Claude Code 沒有將這些 ID 折疊到內建列中,因此別名解析到的 ID 也會獲得自己的「來自 gateway」列。365* 與內建別名相同的模型:當發現的明確 ID 命名內建別名目前解析到的模型時,選擇器僅顯示別名列。例如,當 `sonnet` 解析為 `claude-sonnet-5-5` 時,發現的 `claude-sonnet-5-5` 會折疊到 `sonnet` 列中,而發現的 `claude-sonnet-5` 仍會獲得自己的列。

366 366 

367結果被快取到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,並在每次啟動時刷新。如果您設定 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars),快取會改為位於該目錄下。如果請求失敗或 gateway 未實現 `/v1/models`,選擇器會回退到上次啟動的快取清單或內建模型清單。如果您的 gateway 在不匹配發現篩選器的別名下提供 Claude 模型,開發人員可以使用[模型配置](/docs/zh-TW/model-config)變數手動添加這些別名。367結果被快取到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,並在每次啟動時刷新。如果您設定 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars),快取會改為位於該目錄下。如果請求失敗或 gateway 未實現 `/v1/models`,選擇器會回退到上次啟動的快取清單或內建模型清單。如果您的 gateway 在不匹配發現篩選器的別名下提供 Claude 模型,開發人員可以使用[模型配置](/docs/zh-TW/model-config)變數手動添加這些別名。

368 368 

mcp.md +12 −12

Details

371 371 

372在 v2 上,Claude Code 也:372在 v2 上,Claude Code 也:

373 373 

374* 詢問 HTTP 伺服器他們是否支援較新的修訂,並與支援的伺服器一起使用它。它也在擷取功能旗標的工作階段中詢問 claude.ai 連接器伺服器。若要讓它詢問 stdio 伺服器或每個工作階段中的連接器伺服器,請設定 [`MCP_PROTOCOL_NEGOTIATION`](/docs/zh-TW/env-vars) 為 `auto`。它連接到每個其他伺服器,如 v1 所做的那樣。374* 詢問 HTTP 伺服器他們是否支援較新的修訂,並與支援的伺服器一起使用它。在擷取功能旗標的工作階段中,它也會詢問 claude.ai 連接器伺服器,並且隨著 Anthropic 推出該變更,在 Claude Code v2.1.285 或更新版本上它會詢問 stdio 伺服器。若要讓它在每個工作階段中詢問連接器和 stdio 伺服器,請設定 [`MCP_PROTOCOL_NEGOTIATION`](/docs/zh-TW/env-vars) 為 `auto`。它連接到每個其他伺服器,如 v1 所做的那樣。

375* 在 [它保持開啟的流](#notification-streams-on-the-v2-runtime)上從較新修訂上的伺服器接收 `list_changed` 通知。375* 在 [它保持開啟的流](#notification-streams-on-the-v2-runtime)上從較新修訂上的伺服器接收 `list_changed` 通知。

376* 不註冊在較新修訂上連接的 [頻道](#push-messages-with-channels)伺服器,因為該修訂無法攜帶頻道訊息。376* 不註冊在較新修訂上連接的 [頻道](#push-messages-with-channels)伺服器,因為該修訂無法攜帶頻道訊息。

377* 失敗 [MCP OAuth 登入](#authenticate-with-remote-mcp-servers),其授權回應命名意外發行者。377* 失敗 [MCP OAuth 登入](#authenticate-with-remote-mcp-servers),其授權回應命名意外發行者。


456 456 

457MCP 伺服器也可以直接將訊息推送到您的工作階段,以便 Claude 可以對外部事件(如 CI 結果、監控警報或聊天訊息)做出反應。若要啟用此功能,您的伺服器宣告 `claude/channel` 功能,您在啟動時使用 `--channels` 旗標選擇加入。請參閱 [頻道](/docs/zh-TW/channels)以使用官方支援的頻道,或 [頻道參考](/docs/zh-TW/channels-reference)以建立您自己的。457MCP 伺服器也可以直接將訊息推送到您的工作階段,以便 Claude 可以對外部事件(如 CI 結果、監控警報或聊天訊息)做出反應。若要啟用此功能,您的伺服器宣告 `claude/channel` 功能,您在啟動時使用 `--channels` 旗標選擇加入。請參閱 [頻道](/docs/zh-TW/channels)以使用官方支援的頻道,或 [頻道參考](/docs/zh-TW/channels-reference)以建立您自己的。

458 458 

459在 [v2 執行時](#mcp-client-runtimes)上,如果您設定 [`MCP_PROTOCOL_NEGOTIATION`](/docs/zh-TW/env-vars) 為 `auto` 且頻道伺服器協商 MCP 協議修訂 2026-07-28,它無法傳遞頻道訊息,因此 Claude Code 不會將其註冊為頻道。保持變數未設定或設定為 `legacy` 會將 stdio 伺服器保持在較早的握手上。459在 [v2 執行時](#mcp-client-runtimes)上,協商 MCP 協議修訂 2026-07-28 的頻道伺服器無法傳遞頻道訊息,因此 Claude Code 不會將其註冊為頻道。不支援該修訂的頻道伺服器會在較早的握手上連接,並如以往一樣註冊。

460 

461當您設定 [`MCP_PROTOCOL_NEGOTIATION`](/docs/zh-TW/env-vars) 為 `auto` 時,Claude Code 會向 stdio 伺服器詢問該修訂。Anthropic 也正在 Claude Code [擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中,針對 Claude Code v2.1.285 或更新版本預設開啟此行為。若要將 stdio 頻道伺服器保持在較早的握手上,請設定 `MCP_PROTOCOL_NEGOTIATION` 為 `legacy`,這會將每個伺服器都保持在較早的握手上。

460 462 

461<Tip>463<Tip>

462 提示:464 提示:


1478[根層級組合子處理](#tool-input-schemas-with-a-root-level-combinator)是獨立的,當旗標取得關閉或旗標從未到達時,會保持自己的行為。1480[根層級組合子處理](#tool-input-schemas-with-a-root-level-combinator)是獨立的,當旗標取得關閉或旗標從未到達時,會保持自己的行為。

1479 1481 

1480<h2 id="require-approval-for-a-specific-tool">1482<h2 id="require-approval-for-a-specific-tool">

1481 要求特定工具的批准1483 要求特定工具的核准

1482</h2>1484</h2>

1483 1485 

1484如果您正在建立 MCP 伺服器,可以透過在工具的 `tools/list` 回應項目中將 `_meta["anthropic/requiresUserInteraction"]` 設定為 `true`,來標記工具在每次呼叫時都需要明確批准。該值必須是 JSON 布林值 `true`;任何其他值都會被忽略。1486如果您正在建立 MCP 伺服器,可以透過在工具的 `tools/list` 回應項目中將 `_meta["anthropic/requiresUserInteraction"]` 設定為 `true`,來標記工具在每次呼叫時都需要明確核准。該值必須是 JSON 布林值 `true`;任何其他值都會被忽略。

1485 1487 

1486Claude Code 會在每次呼叫時顯示該工具的權限提示,即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [權限模式](/docs/zh-TW/permissions#permission-modes)中也是如此,並且不會為其提供「不再詢問」選項。與該工具相符的[允許規則](/docs/zh-TW/permissions#permission-rule-syntax)也不會跳過提示。在 `dontAsk` 模式中(從不提示),Claude Code 會改為拒絕該呼叫。1488Claude Code 會在每次呼叫時顯示該工具的權限提示,即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [權限模式](/docs/zh-TW/permissions#permission-modes)中也是如此,並且不會為其提供「不再詢問」選項。與該工具相符的[允許規則](/docs/zh-TW/permissions#permission-rule-syntax)也不會跳過提示。在 `dontAsk` 模式中(從不提示),Claude Code 會改為拒絕該呼叫。

1487 1489 

1488提示必須到達一個人。在非互動模式下使用 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),來自提示工具的 `allow` 結果對於標記的工具會被轉換為拒絕,並顯示訊息 `MCP tool requires user interaction; not supported via --permission-prompt-tool`。Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/permissions)確實會接收這些呼叫並可以批准它們,因為您的 SDK 應用程式應該會將它們顯示給使用者。1490提示必須到達一個人。在非互動模式下使用 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),來自提示工具的 `allow` 結果對於標記的工具會被轉換為拒絕,並顯示訊息 `MCP tool requires user interaction; not supported via --permission-prompt-tool`。Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/permissions)確實會接收這些呼叫並可以核准它們,因為您的 SDK 應用程式應該會將它們顯示給使用者。

1489 1491 

1490將此用於權限提示本身就是重點的工具,例如同意或存取授予步驟,其中自動批准意味著沒有人類曾經同意。來自同一伺服器的其他工具保持其正常的權限行為。1492將此用於權限提示本身就是重點的工具,例如同意或存取授予步驟,其中自動核准意味著沒有人類曾經同意。來自同一伺服器的其他工具保持其正常的權限行為。

1491 1493 

1492以下 `tools/list` 項目將一個工具標記為始終需要批准。1494以下 `tools/list` 項目將一個工具標記為始終需要核准。

1493 1495 

1494```json theme={null}1496```json theme={null}

1495{1497{


1501}1503}

1502```1504```

1503 1505 

1504`anthropic/requiresUserInteraction` 註解需要 Claude Code v2.1.199 或更新版本。較早的版本會忽略它並套用標準權限流程。1506某些使用介面,例如 [Remote Control](/docs/zh-TW/remote-control) 和基於 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 建立的應用程式,通常允許您透過一次點擊來核准工具呼叫。對於使用此註解標記的工具,Claude Code 會隱藏一次點擊動作並改為顯示工具的完整權限提示,因此核准仍然來自於回答提示的人,而不是點擊。

1505 

1506某些介面,例如 [Remote Control](/docs/zh-TW/remote-control) 和基於 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 建立的應用程式,通常允許您透過一次點擊來批准工具呼叫。對於使用此註解標記的工具,Claude Code 會隱藏一次點擊動作並改為顯示工具的完整權限提示,因此批准仍然來自於回答提示的人,而不是點擊。

1507 1507 

1508Claude Code 對於任何只有終端對話框才能完整呈現的權限請求(例如包含安全警告或遠端介面無法顯示的始終允許選項的請求),也會以相同方式隱藏一次點擊批准。您在終端對話框中回答該請求,而不是從 Remote Control 回答。需要 Claude Code v2.1.214 或更新版本。1508Claude Code 對於任何只有終端機對話框才能完整呈現的權限請求(例如包含安全警告或遠端使用介面無法顯示的始終允許選項的請求),也會以相同方式隱藏一次點擊核准。您在終端機對話框中回答該請求,而不是從 Remote Control 回答。需要 Claude Code v2.1.214 或更新版本。

1509 1509 

1510<h2 id="respond-to-mcp-elicitation-requests">1510<h2 id="respond-to-mcp-elicitation-requests">

1511 回應 MCP 徵詢請求1511 回應 MCP 徵詢請求


1516伺服器可以透過兩種方式請求輸入:1516伺服器可以透過兩種方式請求輸入:

1517 1517 

1518* **表單模式**:Claude Code 顯示一個對話框,其中包含伺服器定義的表單欄位(例如,使用者名稱和密碼提示)。填入欄位並提交。1518* **表單模式**:Claude Code 顯示一個對話框,其中包含伺服器定義的表單欄位(例如,使用者名稱和密碼提示)。填入欄位並提交。

1519* **URL 模式**:Claude Code 詢問是否在您的瀏覽器中開啟連結,當您接受時會開啟它。伺服器使用此模式進行在終端外完成的流程,例如登入。1519* **URL 模式**:Claude Code 詢問是否在您的瀏覽器中開啟連結。伺服器使用此模式進行在終端機外完成的流程,例如登入。

1520 1520 

1521在 URL 模式中,Claude Code 會將 URL 作為命令列引數傳遞給您系統的 URL 處理程式,並限制該引數的長度。當 URL 經過命令列轉義後超過該限制時,您只能拒絕請求。每個需要轉義的字元,例如 `%` 或 `&`,都會計為上限的四倍:其本身的字元加上三個轉義字元。沒有這些字元的 URL 在約 8,000 個字元時達到上限。主要由百分比轉義組成的 URL,其中每三個字元中有一個是 `%`,在大約 4,000 個字元時達到上限。1521在 URL 模式中,Claude Code 會將 URL 作為命令列引數傳遞給您系統的 URL 處理程式,並限制該引數的長度。當 URL 經過命令列轉義後超過該限制時,您只能拒絕請求。每個需要轉義的字元,例如 `%` 或 `&`,都會計為上限的四倍:其本身的字元加上三個轉義字元。沒有這些字元的 URL 在約 8,000 個字元時達到上限。主要由百分比轉義組成的 URL,其中每三個字元中有一個是 `%`,在大約 4,000 個字元時達到上限。

1522 1522 

model-config.md +4 −3

Details

794 794 

795<span id="context-window-behind-a-gateway" />795<span id="context-window-behind-a-gateway" />

796 796 

797如果您將 `ANTHROPIC_BASE_URL` 設定為 [LLM 閘道](/docs/zh-TW/llm-gateway)或其他代理伺服器,Claude Code 會為它能識別的每個模型提供與該模型在 Anthropic API 上相同的上下文視窗。Fable 5.1、Fable 5、Sonnet 5 及更新版本,以及 Opus 4.7 及更新版本會取得 1M 視窗,無需選擇 `[1m]` 變體;而只能透過 `[1m]` 變體達到 1M 的模型(例如 Opus 4.6),在未使用該變體時會以 200K 執行。Claude Code 無法偵測閘道或其後方伺服器所強制執行的較低限制。如果您的閘道會拒絕超過 200K token 的請求,請執行 [`/autocompact 200k`](#set-the-auto-compact-window),讓工作階段在該邊界進行壓縮。797如果您將 `ANTHROPIC_BASE_URL` 設定為 [LLM 閘道](/docs/zh-TW/llm-gateway)或其他代理伺服器,Claude Code 會為它能識別的每個模型提供與該模型在 Anthropic API 上相同的上下文視窗。Fable 5.1、Fable 5、Sonnet 5 及更新版本,以及 Opus 4.7 及更新版本會取得 1M 視窗,無需選擇 `[1m]` 變體;而只能透過 `[1m]` 變體達到 1M 的模型(例如 Opus 4.6),在未使用該變體時會以 200K 執行。Claude Code 無法偵測閘道或其後方伺服器所強制執行的較低限制。如果您的閘道會拒絕超過 200K token 的請求,請在啟動 Claude Code 的環境中設定 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000`](/docs/zh-TW/env-vars),讓所有模型上的工作階段都[在該邊界進行壓縮](#set-the-auto-compact-window)。

798 798 

799若要關閉 1M 上下文,請設定 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。Claude Code 會從模型選擇器中移除 1M 模型變體。對於具有原生 1M 視窗的模型(例如 Sonnet 5 和 Fable 模型),它也會將該模型視為具有 200K 上下文視窗:799若要關閉 1M 上下文,請設定 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。Claude Code 會從模型選擇器中移除 1M 模型變體。對於具有原生 1M 視窗的模型(例如 Sonnet 5 和 Fable 模型),它也會將該模型視為具有 200K 上下文視窗:

800 800 


840 設定自動壓縮視窗840 設定自動壓縮視窗

841</h3>841</h3>

842 842 

843您可以在三個地方設定自動壓縮視窗:843您可以在下列地方設定自動壓縮視窗:

844 844 

845* **適用於本次及之後的工作階段**:執行帶有值的 `/autocompact`,例如 `/autocompact 500k`。Claude Code 會將其以 [`autoCompactWindow`](/docs/zh-TW/settings-reference#autocompactwindow) 儲存至您的使用者設定,並套用至目前的工作階段;若受管設定等優先順序較高的[設定範圍](/docs/zh-TW/settings#settings-precedence)設定了此鍵,該命令仍會儲存您的值,但工作階段會維持該範圍的視窗,且命令會說明此情況。執行 `/autocompact auto` 可恢復為針對您的模型調校的視窗。845* **適用於目前模型,於本次及之後的工作階段**:執行帶有值的 `/autocompact`,例如 `/autocompact 500k`。Claude Code 會將其儲存至您的使用者設定中 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 下的目前模型,並套用至目前的工作階段。若受管設定等優先順序較高的[設定範圍](/docs/zh-TW/settings#settings-precedence)為該模型或所有模型設定了自己的視窗,該命令仍會儲存您的值,但工作階段會維持該範圍的視窗,且命令會說明此情況。執行 `/autocompact auto` 可恢復為針對您的模型調校的視窗。在 v2.1.288 之前,此命令會為所有模型儲存單一視窗,即頂層的 `autoCompactWindow`。

846* **適用於所有模型**:在設定檔中設定 [`autoCompactWindow`](/docs/zh-TW/settings-reference#autocompactwindow),例如在 `~/.claude/settings.json` 中設定 `"autoCompactWindow": 200000`。對於某個模型,您透過 `/autocompact` 為該模型儲存的視窗會優先於同一檔案中的此設定鍵。

846* **適用於單次啟動**:啟動 Claude Code 時傳入 [`--autocompact`](/docs/zh-TW/cli-reference#cli-flags)。此旗標會在該次啟動中覆寫您已儲存的設定,但不會變更該設定;即使您已儲存的設定有值,`claude --autocompact auto` 仍會以調校後的視窗執行工作階段。與 `/autocompact` 不同,此旗標不會被受管設定等優先順序較高的設定範圍搶先覆寫。847* **適用於單次啟動**:啟動 Claude Code 時傳入 [`--autocompact`](/docs/zh-TW/cli-reference#cli-flags)。此旗標會在該次啟動中覆寫您已儲存的設定,但不會變更該設定;即使您已儲存的設定有值,`claude --autocompact auto` 仍會以調校後的視窗執行工作階段。與 `/autocompact` 不同,此旗標不會被受管設定等優先順序較高的設定範圍搶先覆寫。

847* **在指令碼與雲端環境中**:設定 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-TW/env-vars)。設定此變數期間,它會優先於命令、旗標與設定,且 `/autocompact` 會回報此覆寫,而不會變更視窗。848* **在指令碼與雲端環境中**:設定 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-TW/env-vars)。設定此變數期間,它會優先於命令、旗標與設定,且 `/autocompact` 會回報此覆寫,而不會變更視窗。

848 849 

Details

785 使用者提示事件785 使用者提示事件

786</h4>786</h4>

787 787 

788當使用者提交提示時記錄。788於提示詞送出時記錄,包括 Claude Code 自行開始的回合。

789 789 

790**事件名稱**:`claude_code.user_prompt`790**事件名稱**:`claude_code.user_prompt`

791 791 

Details

578 578 

579如果您設定 `dontAsk` 模式,Claude Code 會自動拒絕所有原本會提示的工具呼叫。Claude 仍會執行在 Manual 模式中不需要批准的操作,例如您工作目錄內的檔案讀取和[唯讀 Bash 命令](/docs/zh-TW/permissions#read-only-commands),加上符合您 `permissions.allow` 規則的操作和由 [PreToolUse hook](/docs/zh-TW/permissions#extend-permissions-with-hooks) 批准的呼叫。在您預先定義 Claude 可以執行的確切操作的 CI 管道或受限環境中使用此模式;工作階段永遠不會等待輸入。此模式啟用時,狀態列會顯示 `⏵⏵ don't ask on`。579如果您設定 `dontAsk` 模式,Claude Code 會自動拒絕所有原本會提示的工具呼叫。Claude 仍會執行在 Manual 模式中不需要批准的操作,例如您工作目錄內的檔案讀取和[唯讀 Bash 命令](/docs/zh-TW/permissions#read-only-commands),加上符合您 `permissions.allow` 規則的操作和由 [PreToolUse hook](/docs/zh-TW/permissions#extend-permissions-with-hooks) 批准的呼叫。在您預先定義 Claude 可以執行的確切操作的 CI 管道或受限環境中使用此模式;工作階段永遠不會等待輸入。此模式啟用時,狀態列會顯示 `⏵⏵ don't ask on`。

580 580 

581Claude Code 會拒絕符合您明確 [`ask` 規則](/docs/zh-TW/permissions#manage-permissions)的呼叫,而不是提示。它也會拒絕內建的 `AskUserQuestion` 工具,即使您的允許規則符合它,以及您的組織[設定為 `ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools)的連接器工具在該設定到達 Claude Code 的工作階段中。它以相同方式拒絕標記為 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,因為它們的批准卡需要此模式永遠不會收集的答案;這需要 Claude Code v2.1.199 或更新版本。581Claude Code 會拒絕符合您明確 [`ask` 規則](/docs/zh-TW/permissions#manage-permissions)的呼叫,而不是提示。它也會拒絕內建的 `AskUserQuestion` 工具,即使您的允許規則符合它,以及您的組織[設定為 `ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools)的連接器工具在該設定到達 Claude Code 的工作階段中。它以相同方式拒絕標記為 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,因為它們的核准卡需要此模式永遠不會收集的答案。

582 582 

583`rm` 和 `rmdir` 移除針對[關鍵路徑](#critical-paths),例如 `rm -rf /` 和 `rm -rf ~`,即使允許規則或 `PreToolUse` hook 允許它們也被拒絕。583`rm` 和 `rmdir` 移除針對[關鍵路徑](#critical-paths),例如 `rm -rf /` 和 `rm -rf ~`,即使允許規則或 `PreToolUse` hook 允許它們也被拒絕。

584 584 

Details

371| `workspaceFolder` | No | 伺服器的工作區資料夾路徑 |371| `workspaceFolder` | No | 伺服器的工作區資料夾路徑 |

372| `startupTimeout` | No | 等待啟動的毫秒數,正整數 |372| `startupTimeout` | No | 等待啟動的毫秒數,正整數 |

373| `shutdownTimeout` | No | 等待正常關閉的毫秒數,正整數。當逾時經過時,Claude Code 終止伺服器程序。未設定時,不適用逾時 |373| `shutdownTimeout` | No | 等待正常關閉的毫秒數,正整數。當逾時經過時,Claude Code 終止伺服器程序。未設定時,不適用逾時 |

374| `requestTimeout` | No | 等待伺服器回應請求的毫秒數,正整數。預設為 `60000`,因此伺服器從未回應的請求會在 60 秒後失敗。需要 v2.1.288 或更新版本 |

374| `restartOnCrash` | No | 伺服器崩潰後是否重新啟動。預設為 `true`。設定為 `false` 以保持崩潰的伺服器停止而不是重新啟動 |375| `restartOnCrash` | No | 伺服器崩潰後是否重新啟動。預設為 `true`。設定為 `false` 以保持崩潰的伺服器停止而不是重新啟動 |

375| `maxRestarts` | No | 放棄前的重新啟動嘗試,零或更多 |376| `maxRestarts` | No | 放棄前的重新啟動嘗試,零或更多 |

376| `diagnostics` | No | 編輯後是否將診斷推送到上下文。預設為 `true` |377| `diagnostics` | No | 編輯後是否將診斷推送到上下文。預設為 `true` |

Details

63 63 

64| 欄位 | 類型 | 描述 |64| 欄位 | 類型 | 描述 |

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | 字串 | Marketplace 識別碼:字母、數字、`.`、`_` 和 `-`,以字母或數字開頭,沒有 `..`。它形成從 marketplace 安裝的每個 [plugin id](/docs/zh-TW/plugins/loading#find-where-a-plugin-came-from) 的 `@` 後面的部分,因此 `claude plugin validate` 會拒絕其他名稱。請參閱 [Reserved names](#reserved-names) |66| `name` | 字串 | Marketplace 識別碼:字母、數字、`.`、`_` 和 `-`,以字母或數字開頭,且不得包含 `..`。`claude plugin validate` 會讓任何其他名稱驗證失敗,因為 Claude Code 無法從使用此類名稱的市集安裝外掛。使用者安裝外掛時,會在 [plugin id](/docs/zh-TW/plugins/loading#find-where-a-plugin-came-from)(例如 `my-plugin@my-marketplace`)中的 `@` 後面輸入此名稱。請參閱 [Reserved names](#reserved-names) |

67| `owner` | 物件 | 維護者資訊。`name` 是必需的;`email` 和 `url` 是可選的 |67| `owner` | 物件 | 維護者資訊。`name` 是必需的;`email` 和 `url` 是可選的 |

68| `plugins` | 陣列 | [Plugin entries](#plugin-entries)。每個項目都單獨驗證,因此一個無效項目不會導致 marketplace 失敗 |68| `plugins` | 陣列 | [Plugin entries](#plugin-entries)。每個項目都單獨驗證,因此一個無效項目不會導致 marketplace 失敗 |

69| `$schema` | 字串 | JSON Schema URL 用於編輯器自動完成。在載入時忽略 |69| `$schema` | 字串 | JSON Schema URL 用於編輯器自動完成。在載入時忽略 |

Details

377 分享你的 mod377 分享你的 mod

378</h2>378</h2>

379 379 

380Mod 是一個 plugin,所以你在清單中版本化它,人們使用 `/plugin` 命令安裝和更新它。若要將其提供給其他人,[將其新增到市場](/docs/zh-TW/plugins/publish)。380mod 就是一個外掛,因此您在清單中為其設定版本,其他人則使用 `/plugin` 命令來安裝和更新它。分享方式取決於對象:

381 

382* **少數幾個人**:將外掛的目錄或其 `.zip` 檔案傳送給對方。請參閱[不透過市集分享外掛](/docs/zh-TW/plugins/publish#share-a-plugin-without-a-marketplace)

383* **您的團隊**:將其列在[您自己的市集](/docs/zh-TW/plugins/publish#publish-through-your-own-marketplace)中,例如每個外掛各有一個目錄的私人儲存庫。若要為在某個儲存庫中工作的所有人新增該市集,請[在儲存庫的設定中註冊它](/docs/zh-TW/plugins/host-marketplace#register-the-marketplace-for-everyone-in-a-repository)

384* **您的整個組織**:管理員可以透過受管設定[安裝您組織的 mod](/docs/zh-TW/plugins/mods/admin#install-your-organizations-mods)

385* **任何人**:將您市集的儲存庫設為公開,或[將外掛提交至 Anthropic 的目錄](/docs/zh-TW/plugins/publish#submit-to-anthropics-directory)

381 386 

382在你這樣做之前,檢查 plugin 的 `name`:`claude plugin validate` 失敗一個[看起來像 Anthropic 自己的](/docs/zh-TW/plugins/manifest-reference#name)名稱,例如以 `claude-` 開頭的名稱。事件和方法可以在版本之間變更,所以你的 README 是說明你測試的 Claude Code 版本的地方。387在你這樣做之前,檢查 plugin 的 `name`:`claude plugin validate` 失敗一個[看起來像 Anthropic 自己的](/docs/zh-TW/plugins/manifest-reference#name)名稱,例如以 `claude-` 開頭的名稱。事件和方法可以在版本之間變更,所以你的 README 是說明你測試的 Claude Code 版本的地方。

383 388 

Details

531| 向上和向下 | 在您的繪製適合時在控制項之間移動。當窗格或帶狀區域的列數超過它可以顯示的列數時,它們會滾動它。 |531| 向上和向下 | 在您的繪製適合時在控制項之間移動。當窗格或帶狀區域的列數超過它可以顯示的列數時,它們會滾動它。 |

532| Enter | 按下焦點 `Button`、提交焦點 `Input` 或在 `Select` 中選擇 |532| Enter | 按下焦點 `Button`、提交焦點 `Input` 或在 `Select` 中選擇 |

533| 按鈕的快捷鍵 | 按下該按鈕。當 `Input` 具有焦點時,每個可列印鍵都進入欄位。 |533| 按鈕的快捷鍵 | 按下該按鈕。當 `Input` 具有焦點時,每個可列印鍵都進入欄位。 |

534| Page Up、Page Down、Home 和 End | 當您的窗格或帶狀區域的列數超過它可以顯示的列數時,滾動它 |

535| Ctrl+X 然後方向鍵 | 調整您的窗格大小。向左或向上會給它更多空間,向右或向下則會歸還空間。 |

536| Ctrl+X 然後 X | 關閉您的窗格,即使它的某個欄位具有焦點 |

534| Esc | 將鍵盤焦點返回到提示詞輸入區。使用 `closeOnEscape: true` 時,它也會關閉窗格。 |537| Esc | 將鍵盤焦點返回到提示詞輸入區。使用 `closeOnEscape: true` 時,它也會關閉窗格。 |

535 538 

536mod 無法將 Tab 或箭頭鍵綁定到其他任何內容,因此遊戲使用 `w`、`a`、`s` 和 `d` 進行轉向。539mod 無法將 Tab 或箭頭鍵綁定到其他任何內容,因此遊戲使用 `w`、`a`、`s` 和 `d` 進行轉向。

Details

63| :- | :- | :- |63| :- | :- | :- |

64| [`tool.call`](/docs/zh-TW/plugins/mods/events#guard-or-change-a-tool-call) | 工具即將執行時 | `next(e)`、`{ deny: reason }` 或 `{ result }` |64| [`tool.call`](/docs/zh-TW/plugins/mods/events#guard-or-change-a-tool-call) | 工具即將執行時 | `next(e)`、`{ deny: reason }` 或 `{ result }` |

65| [`tool.check`](/docs/zh-TW/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code 在 `tool.call` 與 `PreToolUse` hook 之後,決定工具呼叫是否可以執行時。`next(e)` 會解析為規則、權限模式與這些 hook 所得出的決定。 | `{ decision }`,值為 `allow`、`ask` 或 `deny` |65| [`tool.check`](/docs/zh-TW/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code 在 `tool.call` 與 `PreToolUse` hook 之後,決定工具呼叫是否可以執行時。`next(e)` 會解析為規則、權限模式與這些 hook 所得出的決定。 | `{ decision }`,值為 `allow`、`ask` 或 `deny` |

66| `tool.describe` | 每個工具一次,在其說明首次傳送給 Claude 時 | `{ description }` |66| `tool.describe` | 每個工具一次,在其說明首次傳送給 Claude 時 | `{ description }`,可選擇將 `isDeferred` 設為 `true` 以將該工具置於[工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)之後,或設為 `false` 以預先載入 |

67 67 

68<h3 id="prompts-and-what-claude-reads">68<h3 id="prompts-and-what-claude-reads">

69 提示詞與 Claude 讀取的內容69 提示詞與 Claude 讀取的內容

plugins/publish.md +26 −11

Details

145 提交到 Anthropic 的目錄145 提交到 Anthropic 的目錄

146</h2>146</h2>

147 147 

148Anthropic 的目錄是人們在 claude.ai 和 Cowork 中瀏覽以新增外掛程式和連接器的目錄。在那裡的一個列表可以觸及 claude.ai、Cowork 和 Claude Code 上的人。您可以從開發者入口網站 [claude.ai/directory/manage](https://claude.ai/directory/manage) 提交;[準備審查](https://claude.com/docs/directory/publish#prepare-for-review) 在 claude.com 上說明每個版本在發佈前會發生什麼。148[Anthropic 的目錄](https://claude.ai/directory)是人們在 claude.ai 和 Cowork 中瀏覽以新增外掛程式和連接器的目錄。在那裡的一個列表可以觸及 claude.ai、Cowork 和 Claude Code 上的人。您可以從開發者入口網站 [claude.ai/directory/manage](https://claude.ai/directory/manage) 提交,claude.com 上的[提交外掛程式](https://claude.com/docs/plugins/submit#submit-a-plugin)會逐步說明入口網站的操作。

149 149 

150提交需要付費的 claude.ai 方案。在 Pro 和 Max 上,您可以從自己的帳戶提交。在 Team 和 Enterprise 上,擁有者可以提交,在 Enterprise 上,擁有者也可以透過 **組織設定 > 角色** 下的自訂角色將 **目錄** 權限授予其他成員。請參閱 [確認您可以提交到目錄](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)。150Anthropic 的官方市集 `claude-plugins-official` 不透過目錄入口網站接受提交。如果您與 Anthropic 合作夥伴聯絡合作,請詢問他們有關官方市集列表。

151 151 

152提交步驟、每個版本必須通過的檢查,以及發佈後會發生什麼都記錄在 claude.com 上,因為無論您的使用者在哪個介面上,它們都是相同的:152若要提交外掛程式:

153 153 

154* [發佈到目錄](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory):您可以提交什麼以及誰可以提交154<Steps>

155* [提交外掛程式](https://claude.com/docs/plugins/submit#submit-a-plugin):入口網站步驟和 [更新已發佈的外掛程式](https://claude.com/docs/plugins/submit#update-a-published-plugin)155 <Step title="確認您可以提交">

156* [外掛程式提交前檢查清單](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit):提交前要執行和修復的檢查156 提交需要付費的 claude.ai 方案。在 Pro 和 Max 上,您可以從自己的帳戶提交。在 Team 和 Enterprise 上,擁有者可以提交,在 Enterprise 上,擁有者也可以透過 **組織設定 > 角色** 下的自訂角色將 **目錄** 權限授予其他成員。請參閱 [確認您可以提交到目錄](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)。

157* [將較早的提交移至開發者入口網站](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal):如果您透過較早的提交表單之一提交了外掛程式(在入口網站存在之前),該怎麼辦157 </Step>

158 158 

159在您開啟入口網站之前,在本機驗證並檢查您的哪些元件在 Claude Code 外載入:159 <Step title="在本機驗證外掛程式">

160 在您的 shell 中執行 `claude plugin validate ./your-plugin --strict`。用您的外掛程式目錄的路徑替換 `./your-plugin`。該命令在本機捕捉清單錯誤;[plugin validate](/docs/zh-TW/plugins/cli-reference#plugin-validate) 列出每次執行讀取的檔案。入口網站應用 CLI 不檢查的其他目錄規則,因此乾淨的本機執行不保證乾淨的入口網站驗證。

160 161 

161* **在您的 shell 中執行 `claude plugin validate ./your-plugin --strict`**:用您的外掛程式目錄的路徑替換 `./your-plugin`。該命令在本機捕捉清單錯誤;[plugin validate](/docs/zh-TW/plugins/cli-reference#plugin-validate) 列出每次執行讀取的檔案。入口網站應用 CLI 不檢查的其他目錄規則,因此乾淨的本機執行不保證乾淨的入口網站驗證。162 claude.com 上的[外掛程式提交前檢查清單](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit)列出提交前要執行和修復的檢查。

162* **檢查在哪裡載入**:某些外掛程式元件僅限 Claude Code,不在 claude.ai 或 Cowork 中載入。[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) 按應用程式列出每個元件,因此您知道 Claude Code 外的使用者會得到什麼。163 </Step>

163 164 

164Anthropic 的官方市集 `claude-plugins-official` 不透過目錄入口網站接受提交。如果您與 Anthropic 合作夥伴聯絡合作,請詢問他們有關官方市集列表。165 <Step title="檢查在哪裡載入">

166 某些外掛程式元件僅限 Claude Code,不在 claude.ai 或 Cowork 中載入。[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) 按應用程式列出每個元件,因此您知道 Claude Code 外的使用者會得到什麼。

167 </Step>

168 

169 <Step title="在開發者入口網站中提交">

170 開啟開發者入口網站 [claude.ai/directory/manage](https://claude.ai/directory/manage),並依照 claude.com 上的[提交外掛程式](https://claude.com/docs/plugins/submit#submit-a-plugin)操作。

171 </Step>

172</Steps>

173 

174流程的其餘部分記錄在 claude.com 上:

175 

176* [準備審查](https://claude.com/docs/directory/publish#prepare-for-review):每個版本在發佈前會發生什麼

177* [更新已發佈的外掛程式](https://claude.com/docs/plugins/submit#update-a-published-plugin):新版本如何送達已安裝您外掛程式的人

178* [提交您的外掛程式,以及將您的 MCP 伺服器作為連接器提交](https://claude.com/docs/directory/publish#submit-your-plugin-and-your-mcp-server-as-a-connector):您可以提交什麼

179* [將較早的提交移至開發者入口網站](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal):如果您透過較早的提交表單之一提交了外掛程式(在入口網站存在之前),該怎麼辦

165 180 

166<h3 id="how-a-listed-plugin-reaches-claude-code-users">181<h3 id="how-a-listed-plugin-reaches-claude-code-users">

167 列出的外掛程式如何觸及 Claude Code 使用者182 列出的外掛程式如何觸及 Claude Code 使用者

routines.md +2 −2

Details

402 將滑鼠懸停在列表中的環境上,然後點擊右側出現的設定圖標。402 將滑鼠懸停在列表中的環境上,然後點擊右側出現的設定圖標。

403 </Step>403 </Step>

404 404 

405 <Step title="變更網路存取級別">405 <Step title="變更網路存取層級">

406 在 **Edit cloud environment** 對話框中,將 **Network access** 變更為 **Custom** 並在 **Allowed domains** 中輸入您的網域。勾選 **Also include default list of common package managers** 以在自訂網域旁邊保留 [預設允許清單](/docs/zh-TW/cloud-environments#default-allowed-domains)。選擇 **Full** 以獲得不受限制的存取。406 在 **Edit environment** 對話方塊中,將 **Network access** 變更為 **Custom**,並在 **Allowed domains** 中輸入您的網域。勾選 **Also include default list of common package managers**,即可在自訂網域之外保留[預設允許清單](/docs/zh-TW/cloud-environments#default-allowed-domains)。若需要不受限制的存取,請改為選擇 **Full**。

407 </Step>407 </Step>

408 408 

409 <Step title="儲存">409 <Step title="儲存">

sandboxing.md +2 −4

Details

459 遮罩憑證459 遮罩憑證

460</h3>460</h3>

461 461 

462當您遮罩憑證時,Claude Code 會向沙箱化命令顯示一個每個工作階段專屬的預留位置,稱為哨兵值,而[沙箱代理伺服器](#network-isolation)會在傳送至您允許之主機的外送請求中換入真實值。[保護憑證](#protect-credentials)中的 `deny` 項目則會改為封鎖憑證。對於 macOS 上的檔案,Claude Code 會[改為封鎖該檔案](#mask-credential-files),而非加以遮罩。462當您遮罩憑證時,Claude Code 會向沙箱化命令顯示一個每個工作階段專屬的預留位置,稱為哨兵值,而[沙箱代理伺服器](#network-isolation)會在傳送至您允許之主機的外送請求中換入真實值。[保護憑證](#protect-credentials)中的 `deny` 項目則會改為封鎖憑證。對於 macOS 上的檔案,Claude Code 會[改為封鎖該檔案](#mask-credential-files),而非加以遮罩。[`sandbox.credentials`](/docs/zh-TW/settings-reference#sandbox-credentials) 參考列出了每個欄位。

463 

464遮罩環境變數需要 Claude Code v2.1.199 或更新版本。[`sandbox.credentials`](/docs/zh-TW/settings-reference#sandbox-credentials) 參考列出了每個欄位。

465 463 

466遮罩需要以下條件:464遮罩需要以下條件:

467 465 


620在 `WebFetch(domain:...)` 規則中,沙箱支援兩種萬用字元形式:開頭的 `*.`(例如 `*.example.com`)以及單獨的 `*`。單獨的 `*` 形式需要 Claude Code v2.1.186 或更新版本。位於其他位置的萬用字元(例如 `WebFetch(domain:example.*)`)仍會比對擷取請求,但對沙箱化命令沒有作用。618在 `WebFetch(domain:...)` 規則中,沙箱支援兩種萬用字元形式:開頭的 `*.`(例如 `*.example.com`)以及單獨的 `*`。單獨的 `*` 形式需要 Claude Code v2.1.186 或更新版本。位於其他位置的萬用字元(例如 `WebFetch(domain:example.*)`)仍會比對擷取請求,但對沙箱化命令沒有作用。

621 619 

622<Note>620<Note>

623 內建代理伺服器會根據所請求的主機名稱強制執行允許清單,且預設不會終止或檢查 TLS 流量。實驗性的 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 設定(適用於 Claude Code v2.1.199 及更新版本)會讓內建代理伺服器自行終止 TLS,這是 [`mask` 憑證項目](#mask-credentials)所必需的。關於預設行為的影響,請參閱[安全性限制](#security-limitations);如果您的威脅模型需要 TLS 檢查,請參閱[自訂代理伺服器設定](#custom-proxy-configuration)。621 內建代理伺服器會根據所請求的主機名稱強制執行允許清單,且預設不會終止或檢查 TLS 流量。實驗性的 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 設定會讓內建代理伺服器自行終止 TLS,這是 [`mask` 憑證項目](#mask-credentials)所必需的。關於預設行為的影響,請參閱[安全性限制](#security-limitations);如果您的威脅模型需要 TLS 檢查,請參閱[自訂代理伺服器設定](#custom-proxy-configuration)。

624</Note>622</Note>

625 623 

626<h4 id="hosts-outside-your-allowed-domains">624<h4 id="hosts-outside-your-allowed-domains">

sessions.md +17 −17

Details

254有關壓縮如何與 CLAUDE.md、skills 和規則互動,請參閱[上下文視窗指南](/docs/zh-TW/context-window)。有關何時清除與壓縮的策略,請參閱[最佳實踐](/docs/zh-TW/best-practices#manage-your-session)。254有關壓縮如何與 CLAUDE.md、skills 和規則互動,請參閱[上下文視窗指南](/docs/zh-TW/context-window)。有關何時清除與壓縮的策略,請參閱[最佳實踐](/docs/zh-TW/best-practices#manage-your-session)。

255 255 

256<h2 id="export-and-locate-session-data">256<h2 id="export-and-locate-session-data">

257 匯出和定位 session 資料257 匯出和定位工作階段資料

258</h2>258</h2>

259 259 

260執行 `/export` 以開啟一個選單,讓您將目前對話複製到剪貼簿或將其儲存為純文字檔案,訊息和工具輸出呈現為可讀文字。傳遞檔案名以略過選單並直接寫入該檔案。260執行 `/export` 以開啟一個選單,讓您將目前對話複製到剪貼簿或將其儲存為純文字檔案,訊息和工具輸出呈現為可讀文字。傳遞檔案名以略過選單並直接寫入該檔案。


263 從指令碼存取對話263 從指令碼存取對話

264</h3>264</h3>

265 265 

266`/export` 產生供人閱讀的呈現文字記錄。下列介面產生供指令碼解析的結構化資料:執行的 JSON 結果、session 文字記錄檔案的路徑,或事件的即時串流。根據觸發指令碼的內容選擇:266`/export` 產生供人閱讀的呈現逐字稿。下列介面產生供指令碼解析的結構化資料:執行的 JSON 結果、工作階段逐字稿檔案的路徑,或事件的即時串流。根據觸發指令碼的內容選擇:

267 267 

268* **執行 Claude 一次並擷取結果**:使用 [`--output-format json` 或 `stream-json`](/docs/zh-TW/headless#get-structured-output) 叫用 `claude -p`,以將非互動執行的結果、session ID、使用情況和成本擷取為結構化 JSON。268* **執行 Claude 一次並擷取結果**:使用 [`--output-format json` 或 `stream-json`](/docs/zh-TW/headless#get-structured-output) 叫用 `claude -p`,以將非互動執行的結果、工作階段 ID、使用情況和成本擷取為結構化 JSON。

269* **詢問現有 session 一個問題**:將 session ID 傳遞給 [`claude -p --resume`](/docs/zh-TW/headless#continue-conversations),以傳送後續提示(例如摘要要求),並擷取結構化回應。269* **詢問現有工作階段一個問題**:將工作階段 ID 傳遞給 [`claude -p --resume`](/docs/zh-TW/headless#continue-conversations),以傳送後續提示詞(例如摘要請求),並擷取結構化回應。

270* **對 session 事件做出反應**:讀取 [hooks](/docs/zh-TW/hooks#common-input-fields) 和 [status line commands](/docs/zh-TW/statusline#available-data) 作為輸入接收的 `transcript_path` 欄位。`SessionEnd` hook 可在 session 結束時封存文字記錄。270* **對工作階段事件做出反應**:讀取 [hook](/docs/zh-TW/hooks#common-input-fields) 和 [狀態列命令](/docs/zh-TW/statusline#available-data) 作為輸入接收的 `transcript_path` 欄位。`SessionEnd` hook 可在工作階段結束時封存逐字稿。

271* **在 TypeScript 或 Python 應用程式中嵌入 Claude**:使用 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 以程式設計方式接收每條訊息。271* **在 TypeScript 或 Python 應用程式中嵌入 Claude**:使用 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 以程式設計方式接收每條訊息。

272 272 

273下列範例使用第二個介面。它傳送後續提示給現有 session,並使用 `jq` 讀取答案:273下列範例使用第二個介面。它傳送後續提示詞給現有工作階段,並使用 `jq` 讀取答案:

274 274 

275```bash theme={null}275```bash theme={null}

276claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'276claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'

277```277```

278 278 

279<h3 id="where-transcripts-are-stored">279<h3 id="where-transcripts-are-stored">

280 文字記錄儲存位置280 逐字稿儲存位置

281</h3>281</h3>

282 282 

283根據預設,Claude Code 將文字記錄儲存為 JSONL,位置為 `~/.claude/projects/<project>/<session-id>.jsonl`,其中 `<project>` 是您的工作目錄路徑,非英數字元已被 `-` 取代。對於轉換後的名稱超過 200 個字元的工作目錄,Claude Code 會將名稱截斷為 200 個字元,並附加完整路徑的雜湊值,以便目錄名稱保持在檔案系統限制內。283根據預設,Claude Code 將逐字稿儲存為 JSONL,位置為 `~/.claude/projects/<project>/<session-id>.jsonl`,其中 `<project>` 是您的工作目錄路徑,非英數字元已被 `-` 取代。對於轉換後的名稱超過 200 個字元的工作目錄,Claude Code 會將名稱截斷為 200 個字元,並附加完整路徑的雜湊值,以便目錄名稱保持在檔案系統限制內。

284 284 

285每一行都是訊息、工具使用或中繼資料項目的 JSON 物件。項目格式是 Claude Code 的內部格式,在版本之間會變更,因此直接解析這些檔案的指令碼可能在任何版本上中斷。若要建立在 session 資料上,請改用 `/export` 或 [指令碼介面](#access-conversations-from-scripts)。285每一行都是訊息、工具使用或中繼資料項目的 JSON 物件。項目格式是 Claude Code 的內部格式,在版本之間會變更,因此直接解析這些檔案的指令碼可能在任何版本上中斷。若要建立在工作階段資料上,請改用 `/export` 或 [指令碼介面](#access-conversations-from-scripts)。

286 286 

287位置、保留期和寫入行為可設定:287位置、保留期和寫入行為可設定:

288 288 


291| 將儲存空間移出 `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) | 環境變數 |291| 將儲存空間移出 `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) | 環境變數 |

292| [自行命名 `<project>` 目錄](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/zh-TW/env-vars) | 環境變數 |292| [自行命名 `<project>` 目錄](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/zh-TW/env-vars) | 環境變數 |

293| 變更 30 天保留期 | [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) | `settings.json` |293| 變更 30 天保留期 | [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) | `settings.json` |

294| 為 [Claude Desktop 和 Cowork 文字記錄](/docs/zh-TW/claude-directory#cleaned-up-automatically) 設定年齡限制 | [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays) | 使用者設定、受管設定或 `--settings` |294| 為 [Claude Desktop 和 Cowork 逐字稿](/docs/zh-TW/claude-directory#cleaned-up-automatically) 設定年齡限制 | [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays) | 使用者設定、受管設定或 `--settings` |

295| 在所有模式中禁止文字記錄寫入 | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-TW/env-vars) | 環境變數 |295| 在所有模式中禁止逐字稿寫入 | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-TW/env-vars) | 環境變數 |

296| 禁止一次非互動執行的寫入 | [`--no-session-persistence`](/docs/zh-TW/cli-reference) | 搭配 `claude -p` 的 CLI 旗標 |296| 禁止一次非互動執行的寫入 | [`--no-session-persistence`](/docs/zh-TW/cli-reference) | 搭配 `claude -p` 的 CLI 旗標 |

297 297 

298<h3 id="delete-session-data">298<h3 id="delete-session-data">

299 刪除 session 資料299 刪除工作階段資料

300</h3>300</h3>

301 301 

302文字記錄在 [保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically) 下會逐漸過期。若要更快刪除專案的文字記錄和相關狀態,請執行 [`claude project purge`](/docs/zh-TW/claude-directory#clear-local-data)。如果您使用 [`claude rm <id>`](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 刪除 [背景 session](/docs/zh-TW/agent-view),其文字記錄會保留在磁碟上,並且仍可透過 `claude --resume` 存取。302逐字稿在 [保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically) 下會逐漸過期。若要更快刪除專案的逐字稿和相關狀態,請執行 [`claude purge`](/docs/zh-TW/claude-directory#clear-local-data)。如果您使用 [`claude rm <id>`](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 刪除 [背景工作階段](/docs/zh-TW/agent-view),其逐字稿會保留在磁碟上,並且仍可透過 `claude --resume` 存取。

303 303 

304<h3 id="name-the-project-directory-yourself">304<h3 id="name-the-project-directory-yourself">

305 自行命名專案目錄305 自行命名專案目錄

306</h3>306</h3>

307 307 

308根據預設,Claude Code 從整個工作目錄路徑衍生 `<project>` 名稱。若要自行選擇名稱,請將 `CLAUDE_CODE_PROJECT_DIR_NAME` 與 `CLAUDE_CONFIG_DIR` 一起設定。Claude Code 隨後會將該 session 的文字記錄和 [自動記憶](/docs/zh-TW/memory#auto-memory) 儲存在您的名稱下。這適合嵌入 Claude Code 的主機,並為每個 session 提供自己的設定目錄。需要 Claude Code v2.1.234 或更新版本。308根據預設,Claude Code 從整個工作目錄路徑衍生 `<project>` 名稱。若要自行選擇名稱,請將 `CLAUDE_CODE_PROJECT_DIR_NAME` 與 `CLAUDE_CONFIG_DIR` 一起設定。Claude Code 隨後會將該工作階段的逐字稿和 [自動記憶](/docs/zh-TW/memory#auto-memory) 儲存在您的名稱下。這適合嵌入 Claude Code 的主機,並為每個工作階段提供自己的設定目錄。需要 Claude Code v2.1.234 或更新版本。

309 309 

310例如,此啟動會將租戶 A 的資料保留在 `/srv/tenant-a` 下,並將其專案目錄命名為 `work`:310例如,此啟動會將租戶 A 的資料保留在 `/srv/tenant-a` 下,並將其專案目錄命名為 `work`:

311 311 


313CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude313CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude

314```314```

315 315 

316Claude Code 將 session 的文字記錄寫入 `/srv/tenant-a/projects/work/`,並將其自動記憶寫入 `/srv/tenant-a/projects/work/memory/`,無論工作目錄為何。316Claude Code 將工作階段的逐字稿寫入 `/srv/tenant-a/projects/work/`,並將其自動記憶寫入 `/srv/tenant-a/projects/work/memory/`,無論工作目錄為何。

317 317 

318設定時適用三項規則:318設定時適用三項規則:

319 319 

320* **同時設定 `CLAUDE_CONFIG_DIR`**:名稱不會隨工作目錄而變化,因此在預設 `~/.claude` 下,它會將每個專案的文字記錄和自動記憶合併到一個目錄中。當 `CLAUDE_CONFIG_DIR` 未設定時,Claude Code 會忽略 `CLAUDE_CODE_PROJECT_DIR_NAME`。320* **同時設定 `CLAUDE_CONFIG_DIR`**:名稱不會隨工作目錄而變化,因此在預設 `~/.claude` 下,它會將每個專案的逐字稿和自動記憶合併到一個目錄中。當 `CLAUDE_CONFIG_DIR` 未設定時,Claude Code 會忽略 `CLAUDE_CODE_PROJECT_DIR_NAME`。

321* **使用 1-64 個字母、數字、連字號或底線**:不要使用 Windows 裝置名稱,例如 `con`。Claude Code 會忽略任何其他值,並使用衍生名稱。321* **使用 1-64 個字母、數字、連字號或底線**:不要使用 Windows 裝置名稱,例如 `con`。Claude Code 會忽略任何其他值,並使用衍生名稱。

322* **在啟動 `claude` 的 shell 環境中設定它**:Claude Code 在啟動時從該環境讀取一次,因此設定檔中的 `env` 區塊無法設定它。322* **在啟動 `claude` 的 shell 環境中設定它**:Claude Code 在啟動時從該環境讀取一次,因此設定檔中的 `env` 區塊無法設定它。

323 323 

324命名設定目錄的專案目錄後,請繼續使用該名稱啟動。如果您使用相同的 `CLAUDE_CONFIG_DIR` 啟動 Claude Code,但不使用 `CLAUDE_CODE_PROJECT_DIR_NAME`,它會再次讀取和寫入衍生目錄。儲存在您名稱下的 session 會保留在磁碟上:在 [session 選擇器](#use-the-session-picker) 中按 `Ctrl+A` 以列出該設定目錄下每個專案目錄中的 session(包括已釘選的),無論您如何啟動,[`claude --resume <session-id>`](#resume-a-session) 都會找到儲存在任一名稱下的 session。324命名設定目錄的專案目錄後,請繼續使用該名稱啟動。如果您使用相同的 `CLAUDE_CONFIG_DIR` 啟動 Claude Code,但不使用 `CLAUDE_CODE_PROJECT_DIR_NAME`,它會再次讀取和寫入衍生目錄。儲存在您名稱下的工作階段會保留在磁碟上:在 [工作階段選擇器](#use-the-session-picker) 中按 `Ctrl+A` 以列出該設定目錄下每個專案目錄中的工作階段(包括已釘選的),無論您如何啟動,[`claude --resume <session-id>`](#resume-a-session) 都會找到儲存在任一名稱下的工作階段。

325 325 

326<h2 id="see-also">326<h2 id="see-also">

327 另請參閱327 另請參閱

Details

708| [`modelOverrides`](#modeloverrides) | [將模型 ID 對應](/docs/zh-TW/model-config#override-model-ids-per-version)到您提供者的 ID,例如 Bedrock ARN | 模型和回應 | Any file |708| [`modelOverrides`](#modeloverrides) | [將模型 ID 對應](/docs/zh-TW/model-config#override-model-ids-per-version)到您提供者的 ID,例如 Bedrock ARN | 模型和回應 | Any file |

709| [`modelPicker`](#modelpicker) | 選擇 [`/model` 選擇器](/docs/zh-TW/model-config#available-models)要列出的模型,並使用您自己的順序和標籤 | 模型和回應 | User or managed |709| [`modelPicker`](#modelpicker) | 選擇 [`/model` 選擇器](/docs/zh-TW/model-config#available-models)要列出的模型,並使用您自己的順序和標籤 | 模型和回應 | User or managed |

710| [`modelPricing`](#modelpricing) | 以您組織的合約費率而非定價報告支出 | 模型和回應 | Managed |710| [`modelPricing`](#modelpricing) | 以您組織的合約費率而非定價報告支出 | 模型和回應 | Managed |

711| [`modelSettings`](#modelsettings) | 為每個模型保留已儲存的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level),或為單一模型設定 effort 上限 | 模型和回應 | Any file |711| [`modelSettings`](#modelsettings) | 為每個模型保留已儲存的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level)或[自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window),或為單一模型設定 effort 上限 | 模型和回應 | Any file |

712| [`otelHeadersHelper`](#otelheadershelper) | 使用您自己的命令產生輪替的 [OpenTelemetry](/docs/zh-TW/monitoring-usage#dynamic-headers) 標頭 | 身分驗證和提供者 | Any file |712| [`otelHeadersHelper`](#otelheadershelper) | 使用您自己的命令產生輪替的 [OpenTelemetry](/docs/zh-TW/monitoring-usage#dynamic-headers) 標頭 | 身分驗證和提供者 | Any file |

713| [`outputStyle`](#outputstyle) | 使用[輸出風格](/docs/zh-TW/output-styles)變更 Claude 的角色、語調和輸出格式 | 模型和回應 | Any file |713| [`outputStyle`](#outputstyle) | 使用[輸出風格](/docs/zh-TW/output-styles)變更 Claude 的角色、語調和輸出格式 | 模型和回應 | Any file |

714| [`parentSettingsBehavior`](#parentsettingsbehavior) | 在您部署[受管設定](/docs/zh-TW/managed-settings)時,套用或捨棄 [SDK 或 IDE 主機](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)傳遞的限制 | 企業和受管設定 | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | 在您部署[受管設定](/docs/zh-TW/managed-settings)時,套用或捨棄 [SDK 或 IDE 主機](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)傳遞的限制 | 企業和受管設定 | Managed |


1282要限制一個模型的努力而不是設定其級別,將 [`maxEffortLevel`](#maxeffortlevel) 欄位新增到該模型的項目。該欄位需要 Claude Code v2.1.267 或更新版本。1282要限制一個模型的努力而不是設定其級別,將 [`maxEffortLevel`](#maxeffortlevel) 欄位新增到該模型的項目。該欄位需要 Claude Code v2.1.267 或更新版本。

1283 1283 

1284* **範圍**: [`任何檔案`](#scopes)1284* **範圍**: [`任何檔案`](#scopes)

1285* **類型**: 將模型名稱對應到具有 `effortLevel` 欄位(其中之一 `"low"`、`"medium"`、`"high"` 或 `"xhigh"`)、[`maxEffortLevel`](#maxeffortlevel) 欄位或兩者的物件的物件1285* **類型**: 將模型名稱對應到物件的物件,該物件可包含下列任一欄位:

1286 * `effortLevel`: `"low"`、`"medium"`、`"high"` 或 `"xhigh"` 其中之一

1287 * [`maxEffortLevel`](#maxeffortlevel): 模型可執行的最高 effort 等級

1288 * `autoCompactWindow`: 介於 `100000` 到 `1000000` 的 token 數,或 `"auto"` 表示為該模型調校的視窗。[`/autocompact`](/docs/zh-TW/model-config#set-the-auto-compact-window) 會儲存於此。對於該模型,此值優先於同一設定檔中的頂層 [`autoCompactWindow`](#autocompactwindow)。需要 Claude Code v2.1.288 或更新版本

1286* **預設**: 未設定1289* **預設**: 未設定

1287 1290 

1288Claude Code 在模型的規範名稱下寫入每個項目,例如 `claude-opus-5-5`,並將該模型的別名、日期後綴、`[1m]` 和識別的提供者特定 ID 符合到同一項目。1291Claude Code 在模型的規範名稱下寫入每個項目,例如 `claude-opus-5-5`,並將該模型的別名、日期後綴、`[1m]` 和識別的提供者特定 ID 符合到同一項目。


2478 `sandbox.credentials.envVars`2481 `sandbox.credentials.envVars`

2479</h3>2482</h3>

2480 2483 

2481保護環境變數,使沙箱化命令無法存取。使用 `"mode": "deny"` 時,Claude Code 會從沙箱化命令的環境中移除該變數。使用 `"mode": "mask"` 時,沙箱化命令會看到每個工作階段專屬的哨兵值,並由沙箱代理伺服器在送往該項目 `injectHosts` 的外送請求中替換為真實值,因此 `gh` 和 `npm` 等工具可以在從不持有真實憑證的情況下持續通過驗證。`"mode": "mask"` 需要 Claude Code v2.1.199 或更新版本。2484保護環境變數,使沙箱化命令無法存取。使用 `"mode": "deny"` 時,Claude Code 會從沙箱化命令的環境中移除該變數。使用 `"mode": "mask"` 時,沙箱化命令會看到每個工作階段專屬的哨兵值,並由沙箱代理伺服器在送往該項目 `injectHosts` 的外送請求中替換為真實值,因此 `gh` 和 `npm` 等工具可以在從不持有真實憑證的情況下持續通過驗證。

2482 2485 

2483* **範圍**:[`Any file`](#scopes)。Claude Code 會捨棄來自專案 `.claude/settings.json` 和本機 `.claude/settings.local.json` 的 `mask` 項目。2486* **範圍**:[`Any file`](#scopes)。Claude Code 會捨棄來自專案 `.claude/settings.json` 和本機 `.claude/settings.local.json` 的 `mask` 項目。

2484* **類型**:物件陣列,每個物件包含 `name` 和值為 `"deny"` 或 `"mask"` 的 `mode`,以及選用的[環境變數遮罩欄位](#mask-fields-for-environment-variables)2487* **類型**:物件陣列,每個物件包含 `name` 和值為 `"deny"` 或 `"mask"` 的 `mode`,以及選用的[環境變數遮罩欄位](#mask-fields-for-environment-variables)


2499}2502}

2500```2503```

2501 2504 

2502`name` 必須以字母或底線開頭,且只能包含字母、數字和底線。Claude Code 會合併工作階段載入之所有設定範圍中的陣列,當同一個變數同時以兩種模式出現時,會套用 `deny`。[保護憑證](/docs/zh-TW/sandboxing#protect-credentials)說明了對於您使用 `--setting-sources` 排除的來源,哪些設定仍然適用。`mask` 項目需要 Claude Code v2.1.199 或更新版本。2505`name` 必須以字母或底線開頭,且只能包含字母、數字和底線。Claude Code 會合併工作階段載入之所有設定範圍中的陣列,當同一個變數同時以兩種模式出現時,會套用 `deny`。[保護憑證](/docs/zh-TW/sandboxing#protect-credentials)說明了對於您使用 `--setting-sources` 排除的來源,哪些設定仍然適用。

2503 2506 

2504`mask` 替換只會透過沙箱代理伺服器執行,因此請設定 [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate),或針對純 HTTP 測試網路設定 [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject);請參閱[遮罩憑證](/docs/zh-TW/sandboxing#mask-credentials)。Claude Code 接受但會忽略 `deny` 項目上的 `mask` 欄位。2507`mask` 替換只會透過沙箱代理伺服器執行,因此請設定 [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate),或針對純 HTTP 測試網路設定 [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject);請參閱[遮罩憑證](/docs/zh-TW/sandboxing#mask-credentials)。Claude Code 接受但會忽略 `deny` 項目上的 `mask` 欄位。

2505 2508 


2525| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;預設為 `"warn"`。在具有 `decode` 的項目上,只接受 `"warn"` | 當 `extract` 比對不到任何內容時會發生什麼。`warn` 會讓變數未經遮罩直接傳遞,`deny` 會在沙箱內取消設定該變數,而 `error` 會停止沙箱設定,直到您修正設定為止。需要 v2.1.224 或更新版本 |2528| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;預設為 `"warn"`。在具有 `decode` 的項目上,只接受 `"warn"` | 當 `extract` 比對不到任何內容時會發生什麼。`warn` 會讓變數未經遮罩直接傳遞,`deny` 會在沙箱內取消設定該變數,而 `error` 會停止沙箱設定,直到您修正設定為止。需要 v2.1.224 或更新版本 |

2526| `decode` | 字串 `"jwt"` | 驗證整個值是否為 JWT,並以結構有效的假 token 取代,讓沙箱內解碼該 token 的程式碼能繼續運作;代理伺服器會在輸出時替換為完整的真實 token。未通過驗證的值會未經遮罩直接傳遞並顯示警告。需要 v2.1.224 或更新版本 |2529| `decode` | 字串 `"jwt"` | 驗證整個值是否為 JWT,並以結構有效的假 token 取代,讓沙箱內解碼該 token 的程式碼能繼續運作;代理伺服器會在輸出時替換為完整的真實 token。未通過驗證的值會未經遮罩直接傳遞並顯示警告。需要 v2.1.224 或更新版本 |

2527| `maskClaims` | 字串陣列,至少包含一個 claim 名稱;需要 `decode` | 只遮罩解碼後 JWT 中指定的頂層 payload claim,並以修改後的 payload 重建 token,讓其他 claim 保持可讀。當沒有任何指定的 claim 符合時,變數會未經遮罩直接傳遞並顯示警告。需要 v2.1.224 或更新版本 |2530| `maskClaims` | 字串陣列,至少包含一個 claim 名稱;需要 `decode` | 只遮罩解碼後 JWT 中指定的頂層 payload claim,並以修改後的 payload 重建 token,讓其他 claim 保持可讀。當沒有任何指定的 claim 符合時,變數會未經遮罩直接傳遞並顯示警告。需要 v2.1.224 或更新版本 |

2528| `injectHosts` | 字串陣列,每個都是 [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 也允許的主機 | 縮小沙箱代理伺服器替換為真實值的主機範圍。未設定時,代理伺服器會在送往 `sandbox.network.allowedDomains` 中每個主機的請求中進行替換。IPv6 目的地請寫成不含括號的壓縮位址,例如 `"::1"`,而非加括號的形式;請參閱[`injectHosts` 中的 IPv6 目的地](/docs/zh-TW/sandboxing#ipv6-destinations-in-injecthosts)。需要 v2.1.199 或更新版本 |2531| `injectHosts` | 字串陣列,每個都是 [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 也允許的主機 | 縮小沙箱代理伺服器替換為真實值的主機範圍。未設定時,代理伺服器會在送往 `sandbox.network.allowedDomains` 中每個主機的請求中進行替換。IPv6 目的地請寫成不含括號的壓縮位址,例如 `"::1"`,而非加括號的形式;請參閱[`injectHosts` 中的 IPv6 目的地](/docs/zh-TW/sandboxing#ipv6-destinations-in-injecthosts) |

2529 2532 

2530以下設定只會遮罩 `DATABASE_URL` 中的密碼、在模式比對不到任何內容時取消設定該變數,並遮罩 `SERVICE_JWT` 中的 JWT,同時讓 `api_key` 以外的所有 claim 保持可讀:2533以下設定只會遮罩 `DATABASE_URL` 中的密碼、在模式比對不到任何內容時取消設定該變數,並遮罩 `SERVICE_JWT` 中的 JWT,同時讓 `api_key` 以外的所有 claim 保持可讀:

2531 2534 


2556 `sandbox.credentials.allowPlaintextInject`2559 `sandbox.credentials.allowPlaintextInject`

2557</h3>2560</h3>

2558 2561 

2559除了 TLS 終止的 HTTPS 之外,也允許在純 HTTP 請求上進行 `mask` 替換。在純 HTTP 上,上游身分未經驗證,且憑證會以明文傳輸,因此在受信任的測試網路以外請保持關閉。需要 Claude Code v2.1.199 或更新版本。2562除了 TLS 終止的 HTTPS 之外,也允許在純 HTTP 請求上進行 `mask` 替換。在純 HTTP 上,上游身分未經驗證,且憑證會以明文傳輸,因此在受信任的測試網路以外請保持關閉。

2560 2563 

2561* **範圍**:[`User or managed`](#scopes)2564* **範圍**:[`User or managed`](#scopes)

2562* **類型**:布林值2565* **類型**:布林值


2574}2577}

2575```2578```

2576 2579 

2577需要 Claude Code v2.1.199 或更新版本。

2578 

2579<h3 id="sandbox-credentials-awspairs">2580<h3 id="sandbox-credentials-awspairs">

2580 `sandbox.credentials.awsPairs`2581 `sandbox.credentials.awsPairs`

2581</h3>2582</h3>


2919}2920}

2920```2921```

2921 2922 

2922當有多個被採用的來源設定此項時,Claude Code 會使用優先順序最高之來源的值:受管設定,其次是 `--settings` 旗標,再來是使用者設定。需要 Claude Code v2.1.199 或更新版本。2923當有多個被採用的來源設定此項時,Claude Code 會使用優先順序最高之來源的值:受管設定,其次是 `--settings` 旗標,再來是使用者設定。

2923 2924 

2924<span id="context-and-memory" />2925<span id="context-and-memory" />

2925 2926 


2967}2968}

2968```2969```

2969 2970 

2970使用 [`/autocompact`](/docs/zh-TW/commands#all-commands) 命令設定它,該命令將此鍵寫入您的使用者設定。[設定自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window)涵蓋命令、旗標、變數和設定如何相互作用。2971[`/autocompact`](/docs/zh-TW/commands#all-commands) 命令會將目前模型的視窗保存在 [`modelSettings`](#modelsettings) 下,對於該模型,它優先於同一檔案中的此鍵。[設定自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window)涵蓋命令、旗標、變數和設定如何相互作用。

2971 2972 

2972<h3 id="automemorydirectory">2973<h3 id="automemorydirectory">

2973 `autoMemoryDirectory`2974 `autoMemoryDirectory`

setup.md +5 −5

Details

45 <Tab title="原生安裝(建議)">45 <Tab title="原生安裝(建議)">

46 **macOS、Linux、WSL:**46 **macOS、Linux、WSL:**

47 47 

48 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```bash theme={null}

49 curl -fsSL https://claude.ai/install.sh | bash49 curl -fsSL https://claude.ai/install.sh | bash

50 ```50 ```

51 51 

52 **Windows PowerShell:**52 **Windows PowerShell:**

53 53 

54 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}54 ```powershell theme={null}

55 irm https://claude.ai/install.ps1 | iex55 irm https://claude.ai/install.ps1 | iex

56 ```56 ```

57 57 

58 **Windows CMD:**58 **Windows CMD:**

59 59 

60 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}60 ```batch theme={null}

61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

62 ```62 ```

63 63 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="Homebrew">77 <Tab title="Homebrew">

78 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```bash theme={null}

79 brew install --cask claude-code79 brew install --cask claude-code

80 ```80 ```

81 81 


87 </Tab>87 </Tab>

88 88 

89 <Tab title="WinGet">89 <Tab title="WinGet">

90 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}90 ```powershell theme={null}

91 winget install Anthropic.ClaudeCode91 winget install Anthropic.ClaudeCode

92 ```92 ```

93 93 

skills.md +5 −4

Details

198 解決共享名稱的技能198 解決共享名稱的技能

199</h3>199</h3>

200 200 

201當兩個技能共享名稱時,每個技能的來源決定了 `/name` 執行哪一個。對於由前置資料 `name` 欄位設定的名稱,請參閱[技能如何獲得其命令名稱](#how-a-skill-gets-its-command-name)。該表涵蓋企業、個人、專案、巢狀、外掛程式和 claude.ai 位置、捆綁技能和命令檔案:201當兩個 skill 共用目錄或檔案名稱時,每個 skill 的來源決定了 `/name` 執行哪一個。對於由 frontmatter `name` 欄位設定的名稱,請參閱[skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)。此表涵蓋企業、個人、專案、巢狀、外掛和 claude.ai 位置、隨附 skill、內建命令和命令檔案:

202 202 

203| 相同名稱在 | 執行哪一個 |203| 相同名稱在 | 執行哪一個 |

204| :- | :- |204| :- | :- |

205| 企業、個人和專案中的兩個 | 企業優於個人,個人優於專案。在 `~/.claude/skills/` 和專案的 `.claude/skills/` 中都有 `deploy` 時,`/deploy` 執行個人的 |205| 企業、個人和專案中的兩個 | 企業優於個人,個人優於專案。在 `~/.claude/skills/` 和專案的 `.claude/skills/` 中都有 `deploy` 時,`/deploy` 執行個人的 |

206| 這些位置中的任何一個和[捆綁技能](#bundled-skills) | 您的技能取代捆綁命令,但不取代其別名。專案 `code-review` 技能取代 `/code-review`,捆綁別名 `/review` 永遠不會執行您的技能 |206| 這些位置中的任何一個和[捆綁技能](#bundled-skills) | 您的技能取代捆綁命令,但不取代其別名。專案 `code-review` 技能取代 `/code-review`,捆綁別名 `/review` 永遠不會執行您的技能 |

207| 上述任一位置和[內建命令](/docs/zh-TW/commands) | 在本機終端機工作階段中,您的 skill 會取代內建命令,但不取代其別名。專案 `usage` skill 會取代 `/usage`,而內建別名 `/cost` 仍會執行內建命令 |

207| 技能和 `.claude/commands/` 中的檔案 | 技能 |208| 技能和 `.claude/commands/` 中的檔案 | 技能 |

208| 專案根技能和巢狀技能 | 兩者都載入。請參閱[單一版本庫和子目錄](#discovery-from-parent-and-nested-directories) |209| 專案根技能和巢狀技能 | 兩者都載入。請參閱[單一版本庫和子目錄](#discovery-from-parent-and-nested-directories) |

209| 外掛程式技能和上述任何位置的技能 | 兩者都載入,因為外掛程式技能命名為 `/plugin-name:skill-name` |210| 外掛程式技能和上述任何位置的技能 | 兩者都載入,因為外掛程式技能命名為 `/plugin-name:skill-name` |


416| `allowed-tools` | 否 | Claude 在調用此 skill 的回合中可以使用而無需請求許可的工具。當您發送下一條訊息時,授予清除。接受以空格或逗號分隔的字串或 YAML 列表。請參閱[為 skill 預先批准工具](#pre-approve-tools-for-a-skill)。 |417| `allowed-tools` | 否 | Claude 在調用此 skill 的回合中可以使用而無需請求許可的工具。當您發送下一條訊息時,授予清除。接受以空格或逗號分隔的字串或 YAML 列表。請參閱[為 skill 預先批准工具](#pre-approve-tools-for-a-skill)。 |

417| `disallowed-tools` | 否 | 此 skill 處於活動狀態時從 Claude 的可用工具池中移除的工具。用於不應呼叫某些工具的自主 skills,例如背景迴圈的 `AskUserQuestion`。接受以空格或逗號分隔的字串或 YAML 列表。當您發送下一條訊息時,限制清除。與拒絕規則一樣,當任何其他工具保持時,該欄位無法移除[`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior)。 |418| `disallowed-tools` | 否 | 此 skill 處於活動狀態時從 Claude 的可用工具池中移除的工具。用於不應呼叫某些工具的自主 skills,例如背景迴圈的 `AskUserQuestion`。接受以空格或逗號分隔的字串或 YAML 列表。當您發送下一條訊息時,限制清除。與拒絕規則一樣,當任何其他工具保持時,該欄位無法移除[`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior)。 |

418| `model` | 否 | 此 skill 處於活動狀態時要使用的模型。覆蓋適用於目前回合的其餘部分,不會保存到設定。當您發送下一個提示時,工作階段模型恢復。接受與[`/model`](/docs/zh-TW/model-config)相同的值,或 `inherit` 以保持活動模型。您組織的[`availableModels`](/docs/zh-TW/model-config#restrict-model-selection)允許清單排除的值不被使用,工作階段保持其目前模型。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,以及在[計畫模式中,當分類器檢查命令時](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode),自動模式不支援的模型也不被使用,工作階段保持其目前模型。使用 `context: fork` 時,該值設定[分叉子代理的模型](#run-skills-in-a-subagent),排除的值遵循[與子代理模型覆蓋相同的規則](/docs/zh-TW/model-config#restrict-model-selection)。 |419| `model` | 否 | 此 skill 處於活動狀態時要使用的模型。覆蓋適用於目前回合的其餘部分,不會保存到設定。當您發送下一個提示時,工作階段模型恢復。接受與[`/model`](/docs/zh-TW/model-config)相同的值,或 `inherit` 以保持活動模型。您組織的[`availableModels`](/docs/zh-TW/model-config#restrict-model-selection)允許清單排除的值不被使用,工作階段保持其目前模型。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,以及在[計畫模式中,當分類器檢查命令時](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode),自動模式不支援的模型也不被使用,工作階段保持其目前模型。使用 `context: fork` 時,該值設定[分叉子代理的模型](#run-skills-in-a-subagent),排除的值遵循[與子代理模型覆蓋相同的規則](/docs/zh-TW/model-config#restrict-model-selection)。 |

419| `effort` | 否 | 此 skill 處於活動狀態時的[努力級別](/docs/zh-TW/model-config#adjust-effort-level)。覆蓋工作階段努力級別。預設值:從工作階段繼承。選項:`low`、`medium`、`high`、`xhigh`、`max`;可用級別取決於模型。 |420| `effort` | 否 | 此 skill 處於活動狀態時的[effort 等級](/docs/zh-TW/model-config#adjust-effort-level)。覆寫工作階段 effort 等級。省略時,等級依[effort 解析順序](/docs/zh-TW/model-config#adjust-effort-level)決定。選項:`low`、`medium`、`high`、`xhigh`、`max`;可用等級取決於模型。 |

420| `context` | 否 | 設定為 `fork` 以在分叉子代理上下文中運行。請參閱[在子代理中運行 skills](#run-skills-in-a-subagent)。 |421| `context` | 否 | 設定為 `fork` 以在分叉子代理上下文中運行。請參閱[在子代理中運行 skills](#run-skills-in-a-subagent)。 |

421| `agent` | 否 | 設定 `context: fork` 時要使用的子代理類型。 |422| `agent` | 否 | 設定 `context: fork` 時要使用的子代理類型。 |

422| `background` | 否 | 僅適用於 `context: fork`。設定為 `false` 以在調用 skill 的回合中等待分叉子代理的結果,而不是[在背景中運行它](#run-skills-in-a-subagent)。預設值:`true`。需要 Claude Code v2.1.218 或更新版本。 |423| `background` | 否 | 僅適用於 `context: fork`。設定為 `false` 以在調用 skill 的回合中等待分叉子代理的結果,而不是[在背景中運行它](#run-skills-in-a-subagent)。預設值:`true`。需要 Claude Code v2.1.218 或更新版本。 |


664 665 

665如果您使用引數調用 skill,但 skill 內容中沒有佔位符接收一個,Claude Code 將 `ARGUMENTS: <your input>` 附加到 skill 內容的末尾,以便 Claude 仍然看到您鍵入的內容。佔位符是 `$ARGUMENTS`、索引形式(例如 `$1`)或命名引數。沒有其位置引數的索引佔位符保持為文字文本,不計為接收一個。命名佔位符計數,即使其位置沒有引數,因為它擴展為空字串。666如果您使用引數調用 skill,但 skill 內容中沒有佔位符接收一個,Claude Code 將 `ARGUMENTS: <your input>` 附加到 skill 內容的末尾,以便 Claude 仍然看到您鍵入的內容。佔位符是 `$ARGUMENTS`、索引形式(例如 `$1`)或命名引數。沒有其位置引數的索引佔位符保持為文字文本,不計為接收一個。命名佔位符計數,即使其位置沒有引數,因為它擴展為空字串。

666 667 

667您也可以在一條訊息的開始堆疊多個 skills。鍵入 `/write-tests /fix-issue 123` 加載兩個 skills 並將尾隨文本 `123` 作為 `$ARGUMENTS` 傳遞給每個。在 v2.1.199 之前,只有第一個 skill 加載並接收 `/fix-issue 123` 作為文字引數文本。668您也可以在一條訊息的開始堆疊多個 skills。鍵入 `/write-tests /fix-issue 123` 加載兩個 skills 並將尾隨文本 `123` 作為 `$ARGUMENTS` 傳遞給每個。

668 669 

669Claude Code 擴展第一個 skill 加上最多五個堆疊在它之後的。擴展在第一個不是內聯使用者可調用 skill 的令牌處停止,因此作為[分叉子代理](#run-skills-in-a-subagent)運行的 skill(例如[`/code-review`](/docs/zh-TW/code-review#review-a-diff-locally))或其引數本身可能以斜杠命令開始的 skill(例如 `/loop`)也在那裡結束運行。該令牌和它之後的所有內容成為每個擴展 skill 的引數文本。從 v2.1.218 開始,`/code-review` 作為分叉子代理運行;在較早的版本上,它內聯運行並堆疊。670Claude Code 擴展第一個 skill 加上最多五個堆疊在它之後的。擴展在第一個不是內聯使用者可調用 skill 的令牌處停止,因此作為[分叉子代理](#run-skills-in-a-subagent)運行的 skill(例如[`/code-review`](/docs/zh-TW/code-review#review-a-diff-locally))或其引數本身可能以斜杠命令開始的 skill(例如 `/loop`)也在那裡結束運行。該令牌和它之後的所有內容成為每個擴展 skill 的引數文本。從 v2.1.218 開始,`/code-review` 作為分叉子代理運行;在較早的版本上,它內聯運行並堆疊。

670 671 


923 924 

924`/skills` 選單將 `"user-invocable-only"` 狀態標記為 `user-only`。925`/skills` 選單將 `"user-invocable-only"` 狀態標記為 `user-only`。

925 926 

926從 v2.1.199 開始,`"off"` 也會從廣告給[遠端控制](/docs/zh-TW/remote-control)用戶端和 [Agent SDK](/docs/zh-TW/agent-sdk/skills#discover-available-commands) 呼叫者的命令列表中隱藏技能,除了終端 `/` 選單外。按其完整名稱呼叫隱藏技能仍會返回 `skillOverrides` 錯誤而不是執行它。927除了終端機 `/` 選單外,`"off"` 也會從提供給 [Remote Control](/docs/zh-TW/remote-control) 用戶端和 [Agent SDK](/docs/zh-TW/agent-sdk/skills#discover-available-commands) 呼叫者的命令清單中隱藏該 skill。以完整名稱呼叫隱藏的 skill 會傳回 `skillOverrides` 錯誤,而不是執行它。

927 928 

928不在 `skillOverrides` 中的技能被視為 `"on"`。下面的範例將一個技能摺疊為其名稱,並完全關閉另一個:929不在 `skillOverrides` 中的技能被視為 `"on"`。下面的範例將一個技能摺疊為其名稱,並完全關閉另一個:

929 930 

sub-agents.md +2 −2

Details

986 986 

987當某些東西 [在中途切斷 subagent 的回應](/docs/zh-TW/errors#the-response-above-may-be-incomplete),且部分回應包含文字但沒有工具呼叫時,Claude Code 會提示 subagent 繼續而不是結束執行。這也發生在互動式工作階段中。執行僅在這些延續用完時才因錯誤而結束。987當某些東西 [在中途切斷 subagent 的回應](/docs/zh-TW/errors#the-response-above-may-be-incomplete),且部分回應包含文字但沒有工具呼叫時,Claude Code 會提示 subagent 繼續而不是結束執行。這也發生在互動式工作階段中。執行僅在這些延續用完時才因錯誤而結束。

988 988 

989自 v2.1.199 起,subagent 的執行因 API 錯誤(例如用量上限或重複的伺服器錯誤)而結束時,會將該失敗報告回 Claude,而不是將錯誤文字作為 subagent 的發現返回。Claude 接收的內容取決於 subagent 執行的位置:989subagent 的執行因 API 錯誤(例如用量上限或重複的伺服器錯誤)而結束時,會將該失敗報告回 Claude。Claude 接收的內容取決於 subagent 執行的位置:

990 990 

991* **前景**:如果速率限制、過載或伺服器錯誤切斷已經產生文字輸出的 subagent,Agent 工具會返回該部分輸出,並附註 subagent 被切斷且未完成其任務。未產生任何內容或其唯一輸出為工具呼叫的 subagent 會失敗,並顯示 [`Agent terminated early due to an API error`](/docs/zh-TW/errors#agent-terminated-early-due-to-an-api-error),後跟錯誤詳細資訊。在 v2.1.199 中,切斷僅含工具呼叫情況的速率限制、過載或伺服器錯誤,返回的是只包含切斷附註的空部分結果。991* **前景**:如果速率限制、過載或伺服器錯誤切斷已經產生文字輸出的 subagent,Agent 工具會返回該部分輸出,並附註 subagent 被切斷且未完成其任務。未產生任何內容或其唯一輸出為工具呼叫的 subagent 會失敗,並顯示 [`Agent terminated early due to an API error`](/docs/zh-TW/errors#agent-terminated-early-due-to-an-api-error),後跟錯誤詳細資訊。在 v2.1.199 中,切斷僅含工具呼叫情況的速率限制、過載或伺服器錯誤,返回的是只包含切斷附註的空部分結果。

992* **背景**:subagent 被標記為失敗,Claude 在其結束時接收的訊息會指出 API 錯誤並包括 subagent 的最後輸出,所以部分工作不會遺失。992* **背景**:subagent 被標記為失敗,Claude 在其結束時接收的訊息會指出 API 錯誤並包括 subagent 的最後輸出,所以部分工作不會遺失。


1188 1188 

1189恢復會在相同 ID 下啟動 agent 的新執行,所以已經失敗或完成的 subagent 在任務列表和 Agent SDK 的任務事件中再次顯示為執行中。在 v2.1.205 之前,它在恢復的執行工作時保持顯示其較早的失敗或完成狀態。1189恢復會在相同 ID 下啟動 agent 的新執行,所以已經失敗或完成的 subagent 在任務列表和 Agent SDK 的任務事件中再次顯示為執行中。在 v2.1.205 之前,它在恢復的執行工作時保持顯示其較早的失敗或完成狀態。

1190 1190 

1191自 v2.1.199 起,`SendMessage` 會檢查名稱是否仍然指向它在對話中較早時到達的同一 agent。如果較新的 agent 已取得該名稱,例如重新產生的背景 agent 重複使用了它,Claude Code 會拒絕發送,而不是將其傳遞給錯誤的 agent,錯誤會報告該名稱現在到達的 agent,以便 Claude 可以重新指定目標。若要在較早的 agent 仍在執行時到達它,Claude 會透過產生該 agent 時收到的 agent ID 來定址它。檢查的範圍是目前對話,並在 `/clear` 時重置。1191`SendMessage` 會檢查名稱是否仍然指向它在對話中較早時到達的同一 agent。如果較新的 agent 已取得該名稱,例如重新產生的背景 agent 重複使用了它,Claude Code 會拒絕發送,而不是將其傳遞給錯誤的 agent,錯誤會報告該名稱現在到達的 agent,以便 Claude 可以重新指定目標。若要在較早的 agent 仍在執行時到達它,Claude 會透過產生該 agent 時收到的 agent ID 來定址它。檢查的範圍是目前對話,並在 `/clear` 時重置。

1192 1192 

1193subagent 將來自啟動它的 agent 的訊息視為正常任務指示,包括任務中途的方向修正,並在其自己的權限設定內據以行動。無論誰發送訊息,兩個限制仍然成立:來自任何 agent 的任何訊息都不計為您對待處理權限提示的核准,任何 agent 訊息都無法改變 subagent 的權限設定、`CLAUDE.md` 或設定。只有權限系統或您自己的訊息可以授予核准。1193subagent 將來自啟動它的 agent 的訊息視為正常任務指示,包括任務中途的方向修正,並在其自己的權限設定內據以行動。無論誰發送訊息,兩個限制仍然成立:來自任何 agent 的任何訊息都不計為您對待處理權限提示的核准,任何 agent 訊息都無法改變 subagent 的權限設定、`CLAUDE.md` 或設定。只有權限系統或您自己的訊息可以授予核准。

1194 1194 

ultrareview.md +1 −5

Details

134| - | - | - |134| - | - | - |

135| Pro | 3 次免費執行 | 按 [額外使用量](https://support.claude.com/zh-TW/articles/12429409-extra-usage-for-paid-claude-plans) 計費 |135| Pro | 3 次免費執行 | 按 [額外使用量](https://support.claude.com/zh-TW/articles/12429409-extra-usage-for-paid-claude-plans) 計費 |

136| Max | 3 次免費執行 | 按 [額外使用量](https://support.claude.com/zh-TW/articles/12429409-extra-usage-for-paid-claude-plans) 計費 |136| Max | 3 次免費執行 | 按 [額外使用量](https://support.claude.com/zh-TW/articles/12429409-extra-usage-for-paid-claude-plans) 計費 |

137| Team 和 Enterprise | 無 | 按 [額外使用量](https://support.claude.com/zh-TW/articles/12429409-extra-usage-for-paid-claude-plans) 計費 |

138 137 

139* **免費執行次數**:Pro 和 Max 的三次執行是每個帳戶的一次性配額,不會刷新。138* **免費執行次數**:Pro 和 Max 的三次執行是每個帳戶的一次性配額,不會刷新。

140* **每次審查的成本**:使用完免費執行次數後,通常需要 $5 至 $25 的使用量額度,具體取決於變更的大小,與啟動對話框在每次執行前顯示的估計相符。139* **每次審查的成本**:使用完免費執行次數後,通常需要 $5 至 $25 的使用量額度,具體取決於變更的大小,與啟動對話框在每次執行前顯示的估計相符。

141* **何時計算執行次數**:一旦雲端工作階段開始。您提前停止或未能完成的審查仍會使用一次免費執行;付費審查僅針對執行的部分計費。140* **何時計算執行次數**:一旦雲端工作階段開始。您提前停止或未能完成的審查仍會使用一次免費執行;付費審查僅針對執行的部分計費。

142 141 

143由於 ultrareview 在免費執行次數外始終按使用量額度計費,您的帳戶或組織必須在啟動付費審查前啟用使用量額度。如果未啟用使用量額度,Claude Code 會阻止啟動,啟用方式取決於您的計費存取權限:142由於 ultrareview 在免費執行次數外始終按用量點數計費,您的帳戶或組織必須在啟動付費審查前啟用用量點數。如果未啟用用量點數,Claude Code 會阻止啟動。如果您可以管理帳戶的計費,Claude Code 會將您連結到計費設定,您可以在那裡開啟用量點數。

144 

145* 如果您可以管理帳戶的計費,Claude Code 會將您連結到計費設定,您可以在那裡開啟使用量額度。

146* 在 Team 和 Enterprise 計畫上,沒有計費存取權限的成員可以從 CLI 傳送請求,要求其管理員開啟使用量額度。

147 143 

148您也可以執行 `/usage-credits` 來檢查或變更您的使用量額度設定。144您也可以執行 `/usage-credits` 來檢查或變更您的使用量額度設定。

149 145 

Details

184 184 

185語音聽寫未啟動或錄製時的常見問題:185語音聽寫未啟動或錄製時的常見問題:

186 186 

187* **`Voice mode requires a Claude.ai account`**:您使用 API 金鑰或第三方提供者進行了身份驗證。執行 `/login` 以使用 Claude.ai 帳戶登入。187* **`Unknown command: /voice`**:`/voice` 僅在 claude.ai 帳戶為您目前使用中的登入身分時可用。如果您尚未使用此類帳戶登入,請執行 `/login`。如果正在使用 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、`apiKeyHelper` 設定或[第三方提供者](#requirements),它會優先於 claude.ai 登入,因此請將其移除並重新啟動 Claude Code。

188* **`Voice mode requires a Claude.ai account`**:您執行 `/voice` 或開始錄製時,Claude Code 找不到可用的 claude.ai 登入。執行 `/login` 以重新登入。

188* **`Voice mode is disabled by your organization's policy`**:您的組織的管理員政策停用了語音聽寫。請聯絡您的組織管理員以確認您的組織是否可使用語音聽寫。189* **`Voice mode is disabled by your organization's policy`**:您的組織的管理員政策停用了語音聽寫。請聯絡您的組織管理員以確認您的組織是否可使用語音聽寫。

189* **`Microphone access is denied`**:在系統設定中授予您的終端機麥克風權限。在 macOS 上,前往系統設定 → 隱私與安全 → 麥克風並啟用您的終端機應用程式,然後再次執行 `/voice`。在 Windows 上,前往設定 → 隱私與安全 → 麥克風並開啟桌面應用程式的麥克風存取,然後再次執行 `/voice`。如果您的終端機未列在 macOS 設定中,請參閱[終端機未列在 macOS 麥克風設定中](#terminal-not-listed-in-macos-microphone-settings)。190* **`Microphone access is denied`**:在系統設定中授予您的終端機麥克風權限。在 macOS 上,前往系統設定 → 隱私與安全 → 麥克風並啟用您的終端機應用程式,然後再次執行 `/voice`。在 Windows 上,前往設定 → 隱私與安全 → 麥克風並開啟桌面應用程式的麥克風存取,然後再次執行 `/voice`。如果您的終端機未列在 macOS 設定中,請參閱[終端機未列在 macOS 麥克風設定中](#terminal-not-listed-in-macos-microphone-settings)。

190* **`Voice mode requires SoX for audio recording` on Linux**:原生音頻模組無法載入,且未安裝回退。使用錯誤訊息中顯示的命令安裝 SoX,例如 `sudo apt-get install sox`。191* **`Voice mode requires SoX for audio recording` on Linux**:原生音頻模組無法載入,且未安裝回退。使用錯誤訊息中顯示的命令安裝 SoX,例如 `sudo apt-get install sox`。